Inspiration
Security learning splits into two unfortunate camps: dense textbooks and 90-minute lectures that learners bounce off, or CTF platforms that drop you in with no scaffolding. I wanted something in the middle, a self-paced course with the rigor of a university class and the engagement loop of a game. Free, no signup, opinionated about what actually matters.
What it does
Twenty modules across five chapters (Foundations, Cryptography, Authentication & Access, Network Security, Attacks & Defenses), each available in three difficulty tracks. Every module ends with a self-check quiz. Three hands-on mini-games turn the concepts into reflexes:
- Phishing Detector: ten mock emails, decide phish vs. legit, get a debrief with the cues you should have spotted.
- Cipher Cracker: five rounds of Caesar-shift ciphertext with a live shift slider.
- Password Strength: four rounds of rising entropy targets you have to beat against a timer, with a live crack-time estimate.
XP, levels, badges, and streaks track progress. Everything lives in the browser's localStorage and is exportable as a JSON file, so a single user can hop between devices without an account.
How I built it
Vanilla HTML, CSS, and ES-module JavaScript. No framework, no build step, no backend, no tracking.
- Reusable UI as Web Components (
<site-nav>,<site-footer>) in light DOM so existing CSS still applies. - All content (modules manifest, quizzes, glossary, badges) lives in JSON files so I can grow content without editing layouts.
- Theming via CSS custom properties with a dual dark/light toggle that respects
prefers-color-schemeand persists across pages. - Progress engine is a small versioned
localStoragewrapper with subscribe/notify, plus explicit JSON import/export. - Hosted straight from
mainon GitHub Pages, push, refresh, done.
Challenges I ran into
- Designing a progress system without a backend. Solved with a schema-versioned
localStoragewrapper and an export/import button so a wipe isn't catastrophic. - Building reusable layout components without pulling in a framework. Web Components in light DOM turned out to be enough.
- Writing 20 substantive modules and 20 quizzes that stay accurate, plain-language, and consistent in voice across topics as different as elliptic-curve crypto and incident response.
- Keeping the gamification visible enough to motivate a casual learner without being annoying for a serious one, the rule I landed on: XP and badges are present on every page but always skippable.
What I learned
- Web Components are genuinely enough for a small-to-medium site if you stay disciplined.
- An accountless progress system is mostly a JSON schema plus an export button. Everything else is UX polish.
- Writing accurate beginner content is harder than writing accurate advanced content. Plain language without hand-waving is its own skill.
What's next
- Intermediate and Advanced track module bodies (the manifest is already wired for them).
- Three more games from the roadmap: Packet Inspector, Firewall Rules, and Hash Match.
- A guided "learning path" mode that suggests the next thing to do based on what you've already completed.
Log in or sign up for Devpost to join the conversation.