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.

1 · Capture

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.

2 · Practice

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.

3 · Reflect

Reflect

Record the mistake, the lesson, confidence, and how independently you solved it — a ten-second form with an optional deeper layer.

4 · Review

Review

Return through a transparent review queue (again 1d · hard 3d · good 7d+ · easy 21d+) and compare attempts over time.

This site is a read-only demonstration using synthetic practices and fabricated progress. The local application additionally supports question entry, editor launching, live attempts, mistake recording, and review scheduling.

Use it yourself

  1. Use the GitHub template (or clone the repository).
  2. Run the setup script: .\scripts\setup.ps1 (Windows) / bash scripts/setup.sh (Mac).
  3. Launch practice-lab start — the dashboard opens in your browser.
  4. Complete the one-minute browser setup wizard (private folder, editor, default language — no files to edit).
  5. 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

Loading 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.