Keep making.
Even without a connection.
A small task board with a complete local database. Edits and totals update together, survive a reload, and sync when you reconnect.
Your task board
Your next idea starts here. Add a task, then try disconnecting.
Edits save locally first. Each task starts with 15 minutes.
Two replicas. One shared board.
These panels have separate local databases. Wait until both show your tasks, then pause sync in each. In Device A, add five minutes to a task. In Device B, complete that same task. Resume Device A, then Device B. The second edit is retained for you to review; apply it again against the latest task if that is still what you want.
Device A
Your next idea starts here. Add a task, then try disconnecting.
Edits save locally first. Each task starts with 15 minutes.
Device B
Your next idea starts here. Add a task, then try disconnecting.
Edits save locally first. Each task starts with 15 minutes.
The default policy checks whole-row revisions. Even changes to different fields can conflict. Your app owns invariants and the decision to retry. One batch’s rows, queue state and materialized totals publish together.
Built with the same APIs you use.
The browser uses SQLite in OPFS, a durable outbox and SQL materialized views. A dedicated worker owns each replica; other tabs forward operations to it. A SQLite-backed Durable Object validates changes with renku/data and returns receipts and ordered transactions.
Browser storage can be cleared or evicted. Opening this demo online prepares its code and public screen; it does not back up unsynced edits. If an owner tab is suspended, another tab waits for it to resume or close.