A free, open technical-interview prep platform. Solve curated DSA problems in an in-browser code editor, get judged against real test cases, and study system design and CS fundamentals. No sign-up, no paywall, no database — clone, install, run.
DSA practice — 150 hand-authored problems across 15 topics (Arrays through Bit Manipulation), each with a markdown statement, constraints, worked examples, progressive hints, an editorial, alternative approaches with complexity analysis, and a linked video.
In-browser judge — a Monaco-based editor with starter code in Python, JavaScript, Java, and C++. Run against the sample tests, or submit to run the full hidden suite through a pluggable execution backend (Paiza by default; Piston or Judge0 via config) and get a verdict: Accepted, Wrong Answer, TLE, Runtime Error, or Compile Error.
Trustworthy test data — every problem ships with a reference solution. Expected outputs are computed from the reference over each test input when the catalog loads, so tests and solutions can never drift apart.
Interview question bank — behavioral, HR, and technical trivia questions with model answers and delivery tips.
System Design — case studies and concept guides (HLD + LLD, from load balancing to "design Netflix"), authored as markdown with frontmatter and rendered with Mermaid diagrams.
CS Fundamentals — OS, DBMS, Networks, and OOP modules with per-topic deep dives.
| Layer | Choice |
|---|---|
| Framework | Next.js 16 (App Router) · React 19 · TypeScript |
| Styling | Tailwind CSS v4 · Radix UI · Framer Motion |
| Content | Static TypeScript (src/data/) + markdown (content/) — no database |
| Editor | Monaco (@monaco-editor/react) |
| Code execution | Paiza.IO / Piston / Judge0 (env-selectable) |
There is no authentication, no billing, and no database — all content is checked into the repo and pages are statically rendered.
Requires Node.js 20+. Nothing else.
npm install
npm run devOpen http://localhost:3000. Code execution works out of the box (Paiza's guest tier needs no key). See .env.example for the optional execution-provider overrides.
| Command | What it does |
|---|---|
npm run dev |
Start the dev server |
npm run build / start |
Production build / serve |
npm run lint |
ESLint |
content/ # System Design + CS Fundamentals markdown
src/
data/
topics.ts # The 15-topic DSA taxonomy
problems/ # One file per topic; each problem includes a
# reference solution that generates expected outputs
questions.ts # Behavioral / HR / trivia question bank
dsa.ts # Assembled catalog: topics, problems, test cases
app/
(marketing)/ # Landing page
(app)/ # DSA workspace, System Design, CS, Question Bank
api/ # execute, submit
components/ # UI, editor workspace, problem views, design system
lib/
execution/ # Provider abstraction: paiza | piston | judge0
judge.ts # Runs test suites and maps outcomes to verdicts
Problems are stdin → stdout. When code is run or submitted, the API executes it once per test case on the configured execution provider, normalizes output (trailing whitespace and newlines are ignored), and compares against the expected output generated by the reference solution. Sample tests are shown to the user; the rest stay hidden. Results are returned live and are not stored — there are no accounts.
Contributions are very welcome — from fixing a typo to adding a new DSA problem to an entire new topic guide. See CONTRIBUTING.md for the full setup and workflow guide, and check the good first issues for a place to start. Please also read the Code of Conduct.
Found a security issue? See SECURITY.md instead of opening a public issue.
MIT — see LICENSE.