incremental view maintenance, anywhere
Live queries, the cache, and optimistic updates — the three things every app gets wrong — handled by one small engine that runs wherever your data does: the browser, a Node server, over the wire, or embedded in Rust. Write the query once; it stays live everywhere. The playground below is that engine — ~200 kB of wasm — running live in this tab.
scroll ↓
01 / 03
Point a source at it — a table, a replication stream, an API, a queue, anything that produces rows. Materialize a query and the result stays live as writes land. No polling, no re-running. The view is the cache, and it never goes stale.
02 / 03
Bring in a second source — your model’s relevance scores, joined in. The same live view, now ordered by what your model thinks matters. Operational data and AI output, side by side, kept current by the engine.
03 / 03
Add a third source, a live comments stream. Three sources, one query, one view. Each write touches one row; the engine propagates just that delta and the view updates in place. Nothing re-scans — cost tracks the change, not the table.
04 / playground · live in your browser
This is the actual @rindle/wasm engine, booted in your tab. Change the query with the knobs — the engine re-materializes and streams genuine incremental deltas. The code on the left is exactly what runs.
proof · measured, not promised
Incremental maintenance means you pay for the change, not the table. Measured end to end over a real dataset, scaled 30×.
the docs · two ways in
Run the engine in-process — browser, Node, or Rust — keeping read models, caches, and derived state live. No server required.
use the engine →Take the same query all the way to a synced, local-first app: optimistic writes, live subscriptions, three tiers.
build a synced app →