How bootdotdev/bootdev works
Boot.dev CLI lets learners authenticate, discover or specify a lesson, run its checks locally, inspect results, and submit completion. The documented check types include CLI commands and HTTP requests; the tree also identifies jq and TMDL check support. Authentication and lesson/submission API behavior are visible in client source, while several command and runner implementations were not sampled, so their internal wiring is shown only where supported by the documented workflow. Configuration and terminal rendering support these runtime flows.
Main entry points: runner.go Check runner · cmd Command handlers · lessons.go Lesson client · main.go CLI entry
Components 16
CLI Commands
- CLI entry
main.go - Command handlers
cmd
Lesson Checks
- Check runner
checks/runner.go - Local assertions
checks/local.go - HTTP checks
checks/http.go - CLI checks
checks/cli.go - jq checks
checks/jq.go - TMDL checks
checks/tmdl.go
Accounts and API
- Authentication client
client/auth.go - Lesson client
client/lessons.go
Configuration and Output
- CLI configuration
cmd/root.go - Terminal renderer
render/render.go - Result view
render/view.go
Other components
- Learner
- Lesson project
- Boot.dev API
Connections 19
- Learner → CLI entry: invokes
- CLI entry → Command handlers: dispatches
- Command handlers → CLI configuration: reads and writes
- Command handlers → Authentication client: authenticates
- Authentication client → Boot.dev API: requests tokens
- Command handlers → Lesson client: fetches lesson
- Lesson client → Boot.dev API: requests lesson data
- Command handlers → Check runner: runs checks
- Lesson project → Check runner: provides lesson inputs
- Check runner → Local assertions: evaluates results
- Check runner → HTTP checks: executes requests
- Check runner → CLI checks: evaluates commands
- CLI checks → jq checks: runs queries
- Check runner → TMDL checks: checks TMDL
- Command handlers → Lesson client: submits completion
- Lesson client → Boot.dev API: submits result
- Check runner → Terminal renderer: returns check results
- Terminal renderer → Result view: formats output
- Result view → Learner: displays results