CyberSim — An Interactive Cybersecurity Learning Platform

Inspiration

I started studying cybersecurity and kept hitting the same wall: I could read about SQL injection, memorise the definition, and still have no real feel for how it actually worked or why a particular defense stopped it. Every resource either hand-waved the details or required setting up a whole lab environment before you could touch anything.

I wanted something I could open in a browser, break something, fix it, and immediately understand what changed — with zero setup and zero friction. Nothing quite like that existed, so I built it.


What I Built

CyberSim is a browser-based learning tool with many parts:

  • 20 interactive security labs — configure real defenses, run a simulated attack, and see it either succeed or get blocked
  • A 147-term glossary — plain-English definitions and ELI5 explanations for every concept you'll encounter studying for Security+, CEH, or working through CTFs
  • An interactive certification map — 37 certifications plotted across 9 domains, ranked by industry value and how beginner-friendly they actually are

No install, no login, no prior experience needed.


How I Built It

I used React and Tailwind CSS, keeping the stack as simple as possible so I could focus on the learning experience rather than the infrastructure. The entire app runs client-side — there's no backend, no database, nothing to deploy beyond a static site.

Each lab is a self-contained simulation. Clicking a defense toggle doesn't call an API — it changes how the browser evaluates your attack input, so the feedback is instant and the cause-and-effect is obvious.


Challenges

Getting the simulations to feel real without being overwhelming was harder than I expected. Each one needed to be convincing enough to actually teach the concept, but simple enough that a beginner could follow what was happening. I went through a lot of iterations before each lab's core mechanic clicked.

I also underestimated how much the failure states matter. A lab where you get the wrong answer needs to clearly explain why — not just tell you that you're wrong. Building good, honest feedback for every possible outcome took as much work as building the happy path.


What I Learned

Building the labs forced me to understand every vulnerability at the implementation level. You can't write a convincing SQL injection simulation without truly understanding why a prepared statement defeats it. The project taught me more than any tutorial I'd read, precisely because I had to get every detail right for it to work at all.


What's Next

More labs, a guided learning path that sequences content by difficulty, and better mobile support.


Built With

Share this project:

Updates

Submission history