The tests↑ Why · Someone checks every claim before trusting it Each claim names the test that shows it, and whether it passed.
Every test runs in Docker, one command for each kind
The same on a laptop and in CI, with nothing installed but Docker and Node.
Shown when npm run e2e on a machine with only Docker builds the site, serves
it and runs every browser test; ./run.sh test runs every Rust test.
How Docker and Playwright, for the tests
1 of 1 test passed · 1 place in the code
- passed the run is `npm run e2e`'s: in Docker, built from this commit
test/yours.spec.mjs:255 - code
test/Dockerfile:4
Browser tests run against commit 30ec684 on 2026-10-24.
End-to-end tests use real browsers and the site as it ships
Several tabs at once, loading the same files that ship, so a test of two people editing is two tabs editing.
Shown when the editing tests open two or more tabs against the site served locally by the same Worker that serves it live.
How Docker and Playwright, for the tests
1 of 1 test passed · 1 place in the code
- passed the editing tests are real tabs on the site as the Worker serves it
test/yours.spec.mjs:235 - code
test/playwright.config.mjs:3
Browser tests run against commit 30ec684 on 2026-10-24.
Each test is shown to fail when its promise is broken
A test that can't fail proves nothing.
Shown when each browser test run against a build with its promise broken on purpose fails. The Rust tests aren't broken on purpose yet.
How Docker and Playwright, for the tests
1 of 1 test passed · 0 places in the code
- passed every promise's tests fail against a build with that promise broken
test/yours.spec.mjs:266
Browser tests run against commit 30ec684 on 2026-10-24.
This site↑ Why · Someone checks every claim before trusting it They answer 'does it really do this?' from the site alone.
The site is the spec: every promise lives here, beside the code that keeps it, so the site can't claim more than the project does.
Four pages, named what readers already call them
A reader holds about four things at once. Home is the hook, Why is the reason for the rest, Features is what it promises, How it works is how.
Shown when the header holds the logo, which is Home, then Why, Features and How it works, and no other page; at its end, Try now, which opens the OS.
How This site
1 of 1 test passed · 1 place in the code
- passed the header holds the logo and three pages, and nothing else
test/site.spec.mjs:14 - code
site/build.mjs:40
Browser tests run against commit 30ec684 on 2026-10-24.
Every promise is in a part of Features
Shown when the trace finds no promise heading outside a part's Features half.
How The trace
1 of 1 test passed · 1 place in the code
- passed every promise is in a part of Features
test/site.spec.mjs:59 - code
site/build.mjs:277
Browser tests run against commit 30ec684 on 2026-10-24.
What shows a promise is worked out, never typed
Each promise opens onto the tests that name it, whether each passed and at which commit, and the code that keeps it.
Shown when every promise's popover lists exactly the tests and code the trace
found from the code's meets: and the tests' proves: tags.
How The trace
1 of 1 test passed · 0 places in the code
- passed every promise opens onto exactly the tests and code that name it
test/site.spec.mjs:68
Browser tests run against commit 30ec684 on 2026-10-24.
Every promise links up to its story and across to how it's built
A promise with no story has no reason to exist, and one with no design behind it can't be judged. A line joins each part of Features to each story it serves, drawn at both ends, so either page goes one step to the other.
Shown when every promise names a story that exists, and every link between a story, a promise and How it works is there in both directions.
How The trace
1 of 1 test passed · 1 place in the code
- passed stories, promises and How it works link to each other both ways
test/site.spec.mjs:175 - code
site/build.mjs:194
Browser tests run against commit 30ec684 on 2026-10-24.
The comparison is fair and dated
A stale or slanted claim costs more trust than none.
Shown when both views, by tool and by need, are built from one data file, each tool with its source and the date it was checked.
How This site
1 of 1 test passed · 1 place in the code
- passed the comparison shows every tool both ways, each sourced and dated
test/site.spec.mjs:88 - code
site/components.tsx:171
Browser tests run against commit 30ec684 on 2026-10-24.
Every page reads with scripts off, and loads nothing from anyone else
Its only scripts are its own live demos.
Shown when no page asks another origin for anything, and the CSP forbids it; each page's text is in its HTML.
How This site
1 of 1 test passed · 0 places in the code
- passed no page asks another origin for anything, and every page reads with scripts off
test/site.spec.mjs:105
Browser tests run against commit 30ec684 on 2026-10-24.
Every page reads on a phone, light or dark
Most first visits are a link on a phone.
Shown when no page scrolls sideways at 360 px, and both colour schemes change the page's colours.
How This site
1 of 1 test passed · 0 places in the code
- passed no page scrolls sideways at 360 px, and both schemes have their own colours
test/site.spec.mjs:130
Browser tests run against commit 30ec684 on 2026-10-24.
Every page is also markdown
For agents, and anyone who wants the source.
Shown when /features.md beside /features, every page listed in
/llms.txt.
How This site
1 of 1 test passed · 1 place in the code
- passed every page is also markdown, listed in llms.txt
test/site.spec.mjs:149 - code
site/build.mjs:493
Browser tests run against commit 30ec684 on 2026-10-24.