Getting started
Prerequisites
Section titled “Prerequisites”byox uses mise to pin the toolchain (Go 1.25) and
just, so you don’t need Go installed globally.
brew install mise # macOS; see mise docs for other platformsSet up
Section titled “Set up”git clone https://github.com/madhank93/build-your-own-xcd build-your-own-xmise install # provisions Go 1.25 + justjust setup # clones course + tester repos, builds testers, seeds Go startersDaily loop
Section titled “Daily loop”just tui # single-screen TUI: stage list left, instructions rightRustlings-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:
just test redis # run official tests for redis's current stage (+ all prior as regression)just status # progress across coursesYour 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.
How it works
Section titled “How it works”just setupshallow-clonescodecrafters-io/build-your-own-<course>(course definition + stage instructions + Go starter) andcodecrafters-io/<course>-tester(official tester), then builds each tester totesters/<name>/dist/main.out.byoxinvokes the tester withCODECRAFTERS_REPOSITORY_DIR=solutions/<course>andCODECRAFTERS_TEST_CASES_JSONcovering stages 1..current; exit 0 marks the stage complete.- Stage instructions render in the TUI from the vendored
stage_descriptions/*.md.
TUI keys
Section titled “TUI keys”| Key | Action |
|---|---|
↑/↓ j/k, g/G | move / top / bottom (moves across all courses) |
enter (on a course header) | fold / unfold that course |
esc esc | fold / unfold the cursor’s course from anywhere |
t | run tests for the cursor’s course (or just save a file) |
e | open the solution’s main.go in $VISUAL/$EDITOR; tests rerun on return |
s | show / hide the reference solution for the selected stage |
/ | fuzzy-filter stages by name or slug, across all courses |
c | jump to the current stage of the cursor’s course |
J/K / pgup/pgdn | scroll the instructions / log / solution pane |
esc | log or solution → instructions, or clear filter |
q | quit |
Reference solutions
Section titled “Reference solutions”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.
Other commands
Section titled “Other commands”just build # build the engine binaryjust reset <course> <stage> # rewind a course's progress pointer to a stage (code untouched)Next: browse the Catalog to see every course and stage.