Skip to content

Getting started

byox uses mise to pin the toolchain (Go 1.25) and just, so you don’t need Go installed globally.

Terminal window
brew install mise # macOS; see mise docs for other platforms
Terminal window
git clone https://github.com/madhank93/build-your-own-x
cd build-your-own-x
mise install # provisions Go 1.25 + just
just setup # clones course + tester repos, builds testers, seeds Go starters
Terminal window
just tui # single-screen TUI: stage list left, instructions right

Rustlings-style watch mode is always on: save any file in solutions/<course>/ and the current stage’s tests run automatically, streaming into the right pane.

Or headless:

Terminal window
just test redis # run official tests for redis's current stage (+ all prior as regression)
just status # progress across courses

Your code lives in solutions/<course>/app/ — edit main.go, run tests, pass, next stage unlocks. progress.json records completion. Passing reruns every earlier stage too, exactly like the real platform.

  • just setup shallow-clones codecrafters-io/build-your-own-<course> (course definition + stage instructions + Go starter) and codecrafters-io/<course>-tester (official tester), then builds each tester to testers/<name>/dist/main.out.
  • byox invokes the tester with CODECRAFTERS_REPOSITORY_DIR=solutions/<course> and CODECRAFTERS_TEST_CASES_JSON covering stages 1..current; exit 0 marks the stage complete.
  • Stage instructions render in the TUI from the vendored stage_descriptions/*.md.
KeyAction
↑/↓ j/k, g/Gmove / top / bottom (moves across all courses)
enter (on a course header)fold / unfold that course
esc escfold / unfold the cursor’s course from anywhere
trun tests for the cursor’s course (or just save a file)
eopen the solution’s main.go in $VISUAL/$EDITOR; tests rerun on return
sshow / hide the reference solution for the selected stage
/fuzzy-filter stages by name or slug, across all courses
cjump to the current stage of the cursor’s course
J/K / pgup/pgdnscroll the instructions / log / solution pane
esclog or solution → instructions, or clear filter
qquit

Pressing s in the TUI shows a reference solution for the selected stage. This repo ships complete, tester-verified Go solutions for most stages, authored under reference-solutions/. Each reference-solutions/<course>/NN-slug/main.go was verified by running the official CodeCrafters tester cumulatively (stages 1..N) against it before being snapshotted. byox reads these first, falling back to CodeCrafters’ vendored free-stage solutions.

Browse every stage of every course — filter by course, search, and read the worked solution — in the Catalog.

Terminal window
just build # build the engine binary
just reset <course> <stage> # rewind a course's progress pointer to a stage (code untouched)

Next: browse the Catalog to see every course and stage.