demos

see it run, live.

Three apps on one engine — one keeps a query correct under a firehose of reads, one syncs optimistic writes across everyone in the room, and one is a full slides editor shipped on Rindle. All run on the real engine. Pick one.

reads · at scale

Live Wikipedia edits

The real Wikimedia firehose streams into one query that stays correct edit-by-edit — no refetch, no diffing. Two recency boards mirror the same stream, grouped by page and by editor.

  • A query kept prepared, maintained incrementally.
  • Thousands of edits a minute — one materialization shared by every viewer.
  • The whole board runs on one small machine.
Open the live board →

writes · collaboration

Collaborative issue tracker

The other half of the engine: optimistic mutations that apply instantly and rebase on confirmation, multi-user sync, and a rejection path you can watch snap back. Open it in two windows and edit.

  • Optimistic writes through the client queue.
  • Serverless API tier (a Cloudflare Worker) + an always-up daemon.
  • A 5,000-issue table, browsed as live paginated windows.
Open the issue tracker →

writes · a real app

Strut, a slides editor

A full presentation editor built on Rindle — a Keynote-style canvas you drag, resize, and rotate objects on, plus an AI chat that streams into the deck. Not a demo: a shipped app that leans on the parts of the engine the other two never touch.

  • Drag events fold to the last value — instant on-canvas feedback, one debounced write per object, no throttling code. source ↗
  • The streaming AI reply lands in a local-only table — memory-only and per-device, so it never touches the sync path. source ↗
  • Fragments give fine-grained reactivity — the whole deck is one query, yet a leaf edit re-renders only its object. source ↗
Open strut.io →