MCPcopy
hub / github.com/tinyplex/tinybase

github.com/tinyplex/tinybase @v9.0.0 sqlite

repository ↗ · DeepWiki ↗ · release v9.0.0 ↗
6,742 symbols 23,998 edges 568 files 0 documented · 0%
README

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.

UI Frameworks

React Solid Svelte

Storage & Sync

IndexedDB OPFS Cloudflare PostgreSQL PGlite SQLite Bun SQLite Expo SQLite

Extension points exported contracts — how you extend this code

ContextPrimitiveThingsChildProps (Interface)
(no doc)
test/unit/core/ui-react/components/ContextPrimitiveThingsChild.tsx
Listener (Interface)
(no doc)
src/persisters/persister-react-native-mmkv/index.ts
Middleware (Interface)
(no doc)
src/@types/middleware/index.d.ts
Props (Interface)
(no doc)
src/ui-react-inspector/ErrorBoundary.tsx
ContextPrimitiveThingsProps (Interface)
(no doc)
test/unit/core/ui-react/components/ContextPrimitiveThings.tsx
Middleware (Interface)
(no doc)
src/@types/middleware/with-schemas/index.d.ts
State (Interface)
(no doc)
src/ui-react-inspector/ErrorBoundary.tsx
ContextPrimitiveThingsChildProps (Interface)
(no doc)
test/unit/core/ui-solid/components/ContextPrimitiveThingsChild.tsx

Core symbols most depended-on inside this repo

expectChanges
called by 2196
test/unit/common/expect.ts
getTables
called by 1442
src/@types/store/with-schemas/index.d.ts
expectNoChanges
called by 1055
test/unit/common/expect.ts
setCell
called by 741
src/@types/store/with-schemas/index.d.ts
setTables
called by 598
src/@types/store/with-schemas/index.d.ts
get
called by 584
test/unit/persisters/common/mocks.ts
expectedFramedElement
called by 531
test/e2e/common.ts
select
called by 446
src/queries/index.ts

Shape

Function 5,950
Method 653
Interface 91
Class 34
Enum 14

Languages

TypeScript100%

Modules by API surface

docs/pseudo.esm.sh/tinybase@9.0.0/ui-solid-inspector/index.js510 symbols
docs/pseudo.esm.sh/tinybase@9.0.0/ui-react-inspector/index.js468 symbols
docs/pseudo.esm.sh/tinybase@9.0.0/ui-svelte-inspector/index.js450 symbols
docs/pseudo.esm.sh/tinybase@9.0.0/index.js409 symbols
docs/js/app.js279 symbols
docs/js/home.js277 symbols
docs/pseudo.esm.sh/tinybase@9.0.0/ui-solid/index.js254 symbols
docs/pseudo.esm.sh/tinybase@9.0.0/ui-react/index.js234 symbols
docs/pseudo.esm.sh/tinybase@9.0.0/ui-svelte/index.js214 symbols
src/ui-solid/primitives.ts180 symbols
src/ui-react/hooks.ts176 symbols
docs/pseudo.esm.sh/tinybase@9.0.0/ui-solid-dom/index.js146 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

@arethetypeswrong/cli0.18.4 · 1×
@automerge/automerge-repo2.5.6 · 1×
@automerge/automerge-repo-network-broadcastchannel2.5.6 · 1×
@cloudflare/workers-types5.20260703.1 · 1×
@eslint/js9.39.2 · 1×
@flydotio/dockerfile0.7.9 · 1×
@journeyapps/wa-sqlite1.7.0 · 1×
@libsql/client0.17.4 · 1×
@playwright/test1.61.1 · 1×
@powersync/common1.57.0 · 1×
@powersync/node0.19.2 · 1×

Datastores touched

tinybaseDatabase · 1 repos
postgresDatabase · 1 repos

For agents

$ claude mcp add tinybase \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact