Product notes
Product updates, new challenges, and improvements, newest first.
History for Shell
Add command history to your shell.
Billing settings for every user
Manage membership billing from a dedicated Settings tab, including when you don't have an active membership.
Build SQLite in Elixir
The SQLite challenge now supports Elixir.
Build a Shell in Elixir
The Shell challenge now supports Elixir.
Pipelines for Shell
Connect commands so that one command's output becomes the next command's input.
Build an Interpreter in Elixir
The Interpreter challenge now supports Elixir.
TypeScript for Interpreter and Kafka
Build your own Interpreter or Kafka broker in TypeScript.
Persistent Connections for HTTP Server
Handle multiple requests over the same TCP connection in your HTTP server.
Easier browsing of code examples
Expand one code example at a time, with fewer clicks and scrolling that follows the example you open.
A clearer stage-completion workflow
Review passing tests, choose whether to refactor, and explicitly mark each stage complete.
Zig for Kafka, grep and DNS Server
The Zig track adds the Kafka, grep and DNS Server challenges.
Finish your interpreter with inheritance
The final extension completes the tree-walk interpreter journey, with base stages and eight extensions.
Reading is good.
Doing is better.
Build your own Claude Code, Shell, or SQLite. Understand what’s underneath.