Microtoll Engine pre-1.0 · the locks, pre-built

Notes — the first example

End-to-end-encrypted notes with sharing and revocation, on the unchanged blind-store reference server. Small enough to read in ten minutes: notes.js is the whole model (about 200 lines), page.js wires it to buttons, and nothing else is the app's.

Run it

cd examples/notes-app
docker compose up

Then open http://localhost:8088. The first start builds the server image and pulls Postgres and nginx (a few minutes on a clean machine); the notes appear the moment nginx answers.

  1. Boot, then Sign up with a recovery code (works in every browser; the passkey button needs a browser with PRF support). Keep the code: it is the only way back in.
  2. New note, open it, write, Save.
  3. Share: copy the link. Open a private window as a second person, paste the link's address into the browser, boot, sign up, press Open link. The second person reads the note.
  4. As the second person, join as member. As the owner, members shows them (verified by their signature); remove rotates every key.
  5. As the owner, edit and save. The second person's copy is now stale: heal finds no new key for them — they were removed, and the old key opens nothing written since.

docker compose down -v throws the database away.

What the server learns, honestly

It does not learn a title, a body, a name, who owns what, who is a member of what, or a link's secret. THREATMODEL.md §6 in the repository root is the full list.

Where things are

The packages load from /packages/*/src through an import map: no build step, and exactly the files that will be published.