finds.dev← search

// the find

tinyplex/tinybase

★ 5,124 · TypeScript · MIT · updated Jul 2026

A reactive data store & sync engine.

TinyBase is a reactive in-memory data store for local-first JavaScript/TypeScript apps, combining key-value and tabular storage with built-in CRDT sync, persistence adapters, and UI framework bindings. It targets developers building offline-capable apps — todo lists, collaborative tools, games — where data needs to feel instant without a round-trip to a server. At v9.2 with active development, it's not a toy.

The CRDT implementation (MergeableStore) handles conflict resolution without you writing merge logic, and it works over WebSockets or BroadcastChannel out of the box. The module architecture is genuinely thoughtful — the core store is 6.4kB gzipped with zero dependencies, and you only pay for what you add. The persistence layer is unusually broad: IndexedDB, SQLite, PGlite, Expo SQLite, Turso, PowerSync, Yjs, Automerge — most local-first libraries force you to pick one and commit. Built-in Checkpoints give you an undo/redo stack for free, which most state libraries make you implement yourself.

TinyQL, the query API, is a JavaScript builder pattern rather than actual SQL — it works, but anyone expecting to write joins and aggregations the way they already know them will hit a learning cliff that isn't obvious from the marketing. The storage model is entirely in-memory with sync-to-persistence, which means cold start on a large dataset requires loading everything before the app is usable — fine for small data, painful at scale. The ecosystem integration list (16+ storage targets, 6 schema libraries, 3 UI frameworks) creates real versioning surface area; a breaking change in any adapter dependency can block upgrades. Documentation is thorough but the architectural options guide is load-bearing — without reading it, you will wire the wrong pieces together.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →