A reactive data store & sync engine.
5.1k
Stars
130
Forks
26
Open issues
25
Contributors
AI Analysis
TinyBase is a reactive data store and synchronization engine for JavaScript/TypeScript applications, designed for real-time data management with multi-framework support (React, Solid, Svelte) and broad backend integration (IndexedDB, PostgreSQL, SQLite, and distributed sync platforms). It serves developers building reactive, data-driven applications with offline-first and collaborative data needs; it is not a general-purpose database replacement but a specialized state management layer for fr...
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
TinyBase brings reactive tables, sync, and CRDT-based collaboration to client-side TypeScript apps
TinyBase is a structured, reactive in-memory data store with optional persistence and multi-peer synchronization. It targets frontend and local-first application developers who need tabular data primitives, fine-grained reactivity, and sync capabilities (including CRDT conflict resolution) without a heavy backend. It integrates with React, Solid, Svelte, SQLite, IndexedDB, PostgreSQL, Cloudflare, PartyKit, ElectricSQL, PowerSync, Yjs, and Automerge. It is best suited for offline-capable apps, local-first SPAs, browser extensions, and Expo/React Native apps where structured state management and optional sync matter.
Created in late 2021 as a lightweight reactive store, TinyBase has expanded significantly from a simple key-value/table store into a full sync engine with CRDT support, schema validation, and a large integration surface by 2024–2026.
Growth has been steady rather than viral — approximately 5,100 stars since 2021 suggests organic adoption among local-first and offline-first developer communities. The recent 7-day star velocity (8 stars) is modest, indicating the project has not broken into mainstream awareness but retains a loyal, specialized audience. The expanding integration list (PowerSync, ElectricSQL, PGlite, Turso) may attract new users as local-first patterns gain broader industry traction.
A list of GitHub sponsors and named contributors (including Expo-affiliated accounts and other named individuals) appears in the README, suggesting real adoption among at least a subset of developers. Expo ecosystem presence (expo.png sponsor) indicates some production-adjacent usage. Broader production adoption at scale is not directly verified from available metadata — adoption appears concentrated in local-first/indie app developers rather than enterprise deployments.
Appears to use a modular, multi-package architecture exposing separate primitives: Tables/Row/Cell store, key-value store, metrics, indexes, relationships, and query layers — all with reactive listener APIs. Sync is likely implemented via MergeableStore using CRDT semantics. Persistence adapters appear to be pluggable. UI bindings likely wrap store listeners into framework-specific hooks and stores. Based on README integration breadth, the codebase is likely large and multi-module.
README badge explicitly claims 100% test coverage (via Vitest), which is a strong signal of test discipline, though the practical meaning of 100% coverage varies by implementation.
Last push was 2026-06-21, only 3 days before the evaluation date — indicating active, ongoing maintenance. The project appears to receive regular updates based on its expanding integration surface and the recency of the last commit. A Discord community and GitHub Discussions are listed, suggesting active author engagement.
ADOPT IF: you are building a local-first, offline-capable TypeScript app (browser, Expo, or edge) that needs structured tabular state, fine-grained reactivity, and optional multi-peer sync without a heavy backend — and you value a well-maintained, TypeScript-native library with broad persistence integrations. AVOID IF: you need a proven production-grade sync backend, server-side data management, or you are building a large-scale collaborative product where Yjs/Automerge ecosystems with their existing tooling are better fits. MONITOR IF: you are evaluating local-first patterns but not yet committed — TinyBase's integration surface is growing and the local-first space is maturing, making it a strong candidate to watch over the next 12–18 months.
Independent dimensions
Mainstream potential
4/10
Technical importance
8/10
Adoption evidence
3/10
- Primarily maintained by a single author or very small core team (based on fork count of 130 vs star count), creating bus-factor risk for a library with significant API surface.
- The breadth of integrations (20+ adapters and sync targets) may be difficult to maintain at high quality simultaneously, potentially leading to uneven reliability across adapters.
- Modest star velocity and community size relative to competitors may result in limited third-party learning resources, plugins, and community support over time.
- The local-first/offline-first space has multiple competing sync standards emerging (ElectricSQL, PowerSync, Liveblocks, etc.); changes in that landscape could affect TinyBase's sync adapter relevance.
- The 100% test coverage claim, while encouraging, cannot be verified from outside the codebase — actual edge-case robustness in sync and CRDT scenarios requires independent validation.
TinyBase is likely to remain a well-maintained, high-quality option for local-first TypeScript developers. It is unlikely to displace RxDB or enter mainstream awareness in the next 1–2 years, but may grow steadily as local-first patterns become more common in production apps.
Explore similar
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Website
- https://tinybase.org
- Language
- TypeScript
- License
- MIT
- Last updated
- 11h ago
- Created
- 55mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Cascade deletion based on relationship
CrossWS websocket adapter
Explicitly define allowness of undefined in schema
Feature request: Mergable persistance in Postgres tabular
Feature request: partial update in PostgresPersister autoload
Open pull requests
No open pull requests.
Top contributors
Recent releases
Similar repos
nanostores/nanostores
Nanostores is a minimal state management library (340–864 bytes) designed for...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
5.1k | +12 | TypeScript | 8/10 | 11h ago |
|
|
3.8k | — | TypeScript | 7/10 | 15h ago |
|
|
7.5k | — | TypeScript | 9/10 | 2d ago |
|
|
23.3k | — | TypeScript | 8/10 | 1d ago |
|
|
2k | — | TypeScript | 8/10 | 2d ago |
|
|
22.6k | — | JavaScript | 8/10 | 3mo ago |
RxDB is more mature, more widely adopted, and targets similar offline-first use cases with reactive queries. It has far more stars (23K+) and a longer track record. TinyBase is lighter and has a more opinionated tabular data model; RxDB offers richer query semantics and more backend sync options. TinyBase may be simpler to adopt for straightforward use cases.
nanostores is a minimal reactive state library focused on simplicity and framework-agnosticism. TinyBase offers a much richer structured data model (tables, rows, relationships, indexes) and sync capabilities that nanostores lacks entirely. They target overlapping but distinct needs.
Jotai is a React-centric atomic state manager with a large community. It does not offer persistence, sync, or tabular data primitives. TinyBase is a less general-purpose state manager but a more complete data layer for structured, persistent, or collaborative data.
PocketBase is a self-hosted backend-as-a-service (Go), fundamentally a server-side product. TinyBase is entirely client-side/edge. They can potentially complement each other but serve different architectural roles — TinyBase is not a PocketBase replacement.
Yjs and Automerge are CRDT libraries focused on collaborative document editing. TinyBase integrates with both and adds a structured tabular layer on top. TinyBase is higher-level and more opinionated; Yjs/Automerge offer lower-level, more flexible conflict resolution primitives.