Skip to content
liter8.sh
~/liter8/00_hero

Free · hands-on · no account required

The model writes the code. You still have to read it. Thirteen free, hands-on gyms for the skills that don't go away.

↓ keep reading. the cursor comes with you.

~/liter8/01_read.diff

A green suite is a claim. This is what checking it looks like.

Each snippet below is the kind a competent model produces: clean, idiomatic, tests passing, and wrong in exactly one line.

sum.js· model output · generated in 0.4s1 defect
export function total(items) {
let sum = 0;
for (let i = 0; i <= items.length; i++) {
sum += items[i].price;
}
return sum;
}

Read this.

line 3 · off-by-one

`<=` reads one past the last element. items[items.length] is undefined, and `.price` throws.

Caught it? That's the skill. Train it at review.liter8.sh

The suite is green. Read the lines anyway.

1/4
~/liter8/02_why.md

The argument

Why fundamentals, now.

01

Reading is the new writing.

Generated code arrives faster than anyone can review it. The bottleneck moved from typing to judgment: does this diff do what it claims, and what happens on the input nobody tried?

02

Fundamentals outlive the tooling.

Editors, models and frameworks turn over every few years. Object models, query plans, schedulers, quoting rules and failure modes do not. Learn the layer that stays.

03

Practice on the real thing.

Every gym runs a real engine in your browser: a shell with inodes, a Git DAG, a SQL planner, a model checker. Grading is arithmetic on state, not an opinion about your answer.

~/liter8/03_gyms

The gyms

Thirteen gyms. One real engine each.

Pick whichever you'd fail today. Every card below is a live sketch of the engine underneath.

See all thirteen with details →free · local-first · no account
~/liter8/04_how.md

How it works

How every gym works.

engineReal engine, not an animation.
Type actual commands. Watch the actual object model change. There are no fake dials and no cartoon graphs.
gradeGraded on state, not opinion.
Did the filesystem reach the target? Did the repository? Did your test notice the mutant? The engine checks, and it does not round up.
localLocal-first. Free forever.
No account, no backend, no analytics. Every byte of progress stays in your browser. It is the reason the whole thing can be free.
~/liter8/05_workbench.md

Also on the workbench

Tools we build while we're at it.

liter8.sh also builds open-source developer tools and libraries in Rust, Go, and TypeScript, with practical engineering notes on the blog.

~/liter8/06_terminal

Or just ask the terminal

This site has been a shell since day one. It still is.

The cursor you followed down the page ends here, inside a real terminal (built on our own xterm-mock). Try:

  • $ cd learn
  • $ ls
  • $ cat sql
  • $ route sql
  • $ help
guest@liter8:/
booting shell…