Skip to content

Live Demos ​

Real apps running right now, in your browser, on WebDB with IndexedDB storage. Every list, board and calendar below is driven by live queries: nobody calls refresh(), the UI just re-renders whenever the data it queries changes.

Try this ​

  1. Open any demo, change something, then reload the page: your data is still there (IndexedDB).
  2. Open the same demo in two tabs side by side and edit in one: the other updates instantly, because live queries listen to changes across tabs.
  3. Click Reset data at the top of a demo to restore the sample data.

What they demonstrate ​

CapabilityWhere
useLiveQuery() from @ahmadmoussawi/webdb/vueall demos
Reactive inputs (filter, search, month) re-running a queryTodo, Calendar
Several independent live queries on the same tablesall demos
GROUP BY / COUNT aggregates kept up to dateTodo, Kanban, Calendar
Atomic multi-row writes with db.transaction()Kanban, resets
Indexed range queries (start_at >= … AND < …)Calendar
JavaScript UDFs in SELECT, WHERE and ORDER BYSearch
Cross-tab sync over BroadcastChannelall demos

The demos are plain Vue 3 components with no state library: the database is the state. Each page links to the full source on GitHub.

No API, no server: your data lives in your browser

Every demo stores its data in your browser's IndexedDB (webdb_demo_todo, webdb_demo_kanban, webdb_demo_calendar, webdb_demo_search). There is no backend and nothing is ever sent anywhere. Change something, refresh the page, and it is still there.

Released under the MIT License.