Tutorial for local-first P2P PWAs: WebAuthn/Passkey identity, OrbitDB data, browser-to-browser sync. No server, no accounts, no passwords.
▶ simple-todo — chapter "main" — every visitor automatically joins the same shared todo list; just open the URL.
▶ collab01 — chapter "collab01" — create your own lists and share them with chosen peers via their OrbitDB address.
▶ passkey01 — chapter "passkey01" — sign in with a passkey instead of a throwaway key. Your WebAuthn DID signs every entry and is shown as its author.
▶ acl01 — chapter "acl01" — private, owner-only lists with per-DID write permissions. Grant or revoke access at runtime, without the list address changing.
▶ qr01 — chapter "qr01" — hand a list to another device by scanning a code. No relay, no bootstrap list, no internet: the two devices meet directly and the data stays in the browser's own storage.
▶ privacy01 — chapter "privacy01" — a private list is encrypted, so holding its address is no longer enough to read it. Letting somebody in also hands them the key; taking it back afterwards is not possible.
▶ delegation01 — chapter "delegation01" — hand a single todo to another DID and take it back, without giving away the rest of the list. The two devices settle it directly: the relay pins the owner's entries and does not accept a delegate's, so both have to be online together for a handover to arrive.
▶ escrow01 — chapter "escrow01" — a delegated todo carries a budget between Alice and Bob: Alice locks an amount for Bob when she hands the todo over, releases it when the work is done, or takes it back after a deadline. Her passkey signs all of it — behind each passkey stands a smart account (EIP-7702, gas sponsored) that pays on Sepolia — and the amount is a Zama confidential token: the chain shows who locked money for whom, never how much. Only Alice, Bob and one auditor fixed in the contract can decrypt it.