Turn coding questions into repeatable practice.
Capture a problem, open a fresh attempt directly in VS Code, record what went wrong, and revisit it at the right time. Your exercises, code, and progress stay on your own machine.
Capture
Paste a question or attach a screenshot, PDF, dataset, or starter file. A title and topics are derived automatically; uncategorized questions land in an Inbox for later sorting.
Practice
Open a fresh, self-contained attempt directly in VS Code — the full problem, attached images, data files, and starter code, with earlier attempts always preserved.
Reflect
Record the mistake, the lesson, confidence, and how independently you solved it — a ten-second form with an optional deeper layer.
Review
Return through a transparent review queue (again 1d · hard 3d · good 7d+ · easy 21d+) and compare attempts over time.
Use it yourself
- Use the GitHub template (or clone the repository).
- Run the setup script:
.\scripts\setup.ps1(Windows) /bash scripts/setup.sh(Mac). - Launch
practice-lab start— the dashboard opens in your browser. - Complete the one-minute browser setup wizard (private folder, editor, default language — no files to edit).
- Click Add question, paste a problem, press Create and start, and begin practicing.
Prefer to poke around first? Open in GitHub Codespaces — runs the demo practices in your browser with nothing installed. After the Codespace starts, open any folder under practices/ and run the solution or tests from the integrated terminal.
The three layers
| Layer | What it is |
|---|---|
| Public demo (this site) | Static Quarto pages with four synthetic example practices and fabricated, build-dated progress |
| Local application | practice-lab start — a FastAPI dashboard on 127.0.0.1 for daily practice; nothing is uploaded anywhere |
| Private content | Your real practices, attempts, and progress in a folder you choose — outside the repository, unreadable by the public build (enforced by tests) |
Practice catalog
The Quick practice (ml-004, “Quick tour · approximately 10 minutes”) is the fastest way to feel the format; ml-001 to ml-003 are fuller exercises.
Implementation, briefly
Plain files are the database: each practice is a folder of Markdown/YAML and ordinary code files; attempts are timestamped subfolders; progress is one YAML file. A small Python service layer is shared by the web dashboard and the CLI, Quarto renders these same files into this site, and pytest/testthat prove the official solutions run. Details: Architecture · Privacy · How to Use.