Skip to content

Projects · Open source · 2026

SysDesign Lab

A free system design course in Indonesian: 42 lessons, 16 mock interviews, quizzes and cheat sheets, written from primary sources rather than copied from paid material. Static site with tests that validate the content itself.

Astro · MDX · TypeScript · Vitest

Source

Problem

Good system design material in Indonesian is rare and the best English courses sit behind paywalls. I wanted a free, original curriculum I could also use to keep my own fundamentals sharp.

What I built

A static Astro site with a four-part curriculum of MDX lessons, case studies and postmortems, a mock-interview bank, quizzes and cheat sheets. Learning progress is kept in the browser; there is no backend or account.

Architecture

  • src/content/lessonsMDX lessons grouped by curriculum part, with a required front-matter format
  • src/data/curriculum.tssingle source of truth for ordering and parts
  • src/libpure logic: progress, quiz scoring, mock timer; unit tested
  • Vitest content testsvalidate every lesson's structure and links before build
  • GitHub Actions → Pagesstatic deploy; `BASE_PATH` switch for a custom domain

Decisions and trade-offs

  1. 01

    Test the content, not just the code

    Lessons are data. A test suite checks front matter, required sections and internal links, so a broken lesson fails CI the same way a broken function would.

  2. 02

    No backend on purpose

    Progress lives in localStorage. It loses cross-device sync, but it keeps the site free to host, private by default, and impossible to take down by a database bill.

  3. 03

    Original text from free primary sources

    Structure is inspired by popular courses, but every lesson, diagram and quiz is written from the System Design Primer, DDIA, engineering blogs and RFCs, so the material can stay open source.

Evidence

  • 42 lessons and 16 mock interviews in the repo; `pnpm test` runs logic and content validation.
  • CI workflow builds and deploys the static output.

Status · Growing; lessons added over time