Local first.
Sync on demand.
Fast always.
TinyBase is a reactive data store & sync engine for apps that need to feel instant, work well when they are offline, and yet stay consistent when they are back online.
NEW! v9.0 release
"The one with bug fixes!"
Get started
Try the demos
Read the docs
Your first TinyBase app
Create a todo list, a chat app, a drawing tool, a charting app, or a tic-tac-toe game - with sync & persistence! - in less than 60s.
> npm create tinybase@latest
📦 Creating your project...
It's Reactive
TinyBase lets you
listen to changes made to any part of your data. This means your app will be fast, since you only spend rendering cycles on things that change. The optional
bindings to React,
pre-built components, and
charts let you easily build fully reactive UIs on top of TinyBase. You even get a built-in
undo stack, and
developer tools!
It's Database-Like
Consumer app? Enterprise app? Or even a game? Model
key-value data and
tabular data with optional typed
schematization, whatever its data structures. There are built-in
indexing,
metric aggregation, and tabular
relationships APIs - and a powerful
query engine to select, join, filter, and group data (reactively!) without SQL.
It Synchronizes
TinyBase has
native CRDT support, meaning that you can deterministically
synchronize and merge data across multiple sources, clients, and servers. And although TinyBase is an in-memory data store, you can easily
persist your data to file,
browser storage,
IndexedDB,
SQLite or PostgreSQL databases, and
more.
It's Built For A Local-First World
TinyBase works anywhere that JavaScript does, but it's especially great for local-first apps: where data is stored locally on the user's device and that can be run offline. It's tiny by name, tiny by nature: just
6.2kB - 13.8kB and with no dependencies - yet
100% tested,
fully documented, and of course,
open source!
TinyBase works great on its own, but also plays well with friends.
React
Solid
Svelte
IndexedDB
OPFS
Cloudflare
PostgreSQL
PGlite
SQLite
Bun SQLite
Expo SQLite