back to home

tinyplex / tinybase

A reactive data store & sync engine.

4,962 stars
124 forks
41 issues
TypeScriptJavaScriptLess

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing tinyplex/tinybase in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/tinyplex/tinybase)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

A reactive data store & sync engine NEW! v8.0 release "The one with objects, arrays & middleware!" Get started Try the demos Read the docs Let's build local-first apps Create a todo list, a chat app, a drawing tool, or a tic-tac-toe game - with sync & persistence! - in less than 60 seconds. 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 and pre-built components 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.2kB 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 IndexedDB OPFS Cloudflare PostgreSQL PGlite SQLite Bun SQLite Expo SQLite ElectricSQL Turso PowerSync PartyKit YJS CR-SQLite Automerge Zod TypeBox Valibot ArkType Yup Effect (Baffled by all these logos? Check out our architectural options guide to make sense of it all!) Start with a simple key-value store. Creating a Store requires just a simple call to the createStore function. Once you have one, you can easily set Values in it by unique Id . And of course you can easily get them back out again. Read more about using keyed value data in The Basics guide. Level up to use tabular data. For other types of data applications, a tabular data structure is more useful. TinyBase lets you set and get nested Table , Row , or Cell data, by unique Id - and in the same Store as the keyed values! Read more about setting and changing data in The Basics guide. Register granular listeners. The magic starts to happen when you register listeners on a Value , Table , Row , or Cell . They get called when any part of that object changes. You can also use wildcards - useful when you don't know the Id of the objects that might change. Read mo _...truncated for preview_