The manual

SourceBoot teaches systems engineering by having you build the system. Built, not watched: the lessons live on the site, and the thing you actually produce is a working system — an operating system, to start — in a git repo you own, built and run on your own machine.

Two pieces, one loop.

The site holds each lab's lesson, the curated canon (readings worth your time, and why each one is there), the project brief, the hint ladder for when you are stuck, and — after a passing submission — the code review your work earns. It is also where a lab is finished: the Complete button lives under your review.

The CLI (sboot) is one static binary in your terminal. It lays the course workspace out on your machine, fetches each lab's tests as you reach it, and grades your work where it runs:

sboot                   # where am I, what's next, how
sboot test              # practice — build, run, grade, locally
sboot submit            # official — the same run, judged by our server

None of those needs a lab name. They default to your current lab — the first live lab you have not completed — and always print which one they picked. Name one (sboot test 02-glass-cockpit) to override.

The loop, per lab: read the lesson → read the canon → build it in your own editor → sboot test until green → sboot submit → read the review it earns → press Complete, which records the lab and opens the next one. Write the systems engineering experts are trusted with.

Browse what there is to build at /courses; your own progress lives on /home.

The pages

  • Getting started — from nothing installed to your first graded run.
  • CLI reference — every command, flag, environment variable and exit code.
  • How grading works — what runs where, what gets uploaded, practice vs official, the review, how labs unlock.
  • Troubleshooting — toolchains per course, getting unstuck, common failures and their messages, resetting state, pinning a CLI version.
  • Your code — ownership, publishing your repo, and exactly what leaves your machine.
  • Rust, spelled out — a lookup table for the mechanical half of Rust, for a working developer meeting the language for the first time. Not a lesson and not graded; the labs teach the rest.