awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
tinyplex avatar

tinyplex/tinybase

0
View on GitHub↗
5,110 stars·130 forks·TypeScript·MIT·11 viewstinybase.org↗

Tinybase

TinyBase is a reactive data store and in-memory relational database designed for client-side state persistence. It serves as a local-first sync engine that merges distributed state using conflict-free replicated data types and logical clocks to ensure deterministic data convergence.

The project features a schema validation library that converts external definitions from tools like Zod, Yup, and TypeBox into type-safe store definitions. It provides an infrastructure for real-time collaborative editing, utilizing synchronization with Automerge, Yjs, and PartyKit to maintain consistent state across multiple clients and servers.

The capability surface includes relational data modeling with tables and foreign keys, SQL-like querying and indexing, and atomic transactions for grouped mutations. It supports a wide range of persistence adapters, including browser storage, SQLite, and Cloudflare Durable Objects. The system also provides bidirectional state binding and declarative components for integration with React, SolidJS, and Svelte.

Features

  • Application State Management - Provides a reactive system for managing and synchronizing application-wide state using relational tables or key-value pairs.
  • Local-First Storage Engines - Provides a local-first sync engine that ensures deterministic data convergence using CRDTs and logical clocks.
  • Local-First Synchronization - Implements a local-first architecture that prioritizes offline data access with conflict-free remote synchronization.
  • Data Change Listeners - Registers callbacks that trigger automatically when specific values, tables, or cells are modified.
  • Local-First Data Persistence - Uses Conflict-free Replicated Data Types to ensure local-first reconciliation and persistence.
  • Client-Side Persistence - Manages data storage directly on user devices and within browser environments to maintain state across sessions.
  • Tabular Row Storage - Organizes data into structured rows and columns using primary keys for tabular storage.
  • Deterministic State Merging - Ensures deterministic data convergence across instances using CRDT logic and hybrid logical clocks.
  • In-Memory Databases - Functions as a lightweight in-memory database supporting relational structures, querying, and indexing for low-latency performance.
  • Key-Value Stores - Provides a lightweight key-value storage system for persisting application state.
  • Relational Data Modeling - Organizes data into a hierarchy of tables and rows using foreign keys to model complex entity relationships.
  • Mutable State Tracking - Tracks changes to data and triggers listeners on specific entities to update the UI.
  • Reactive Data Stores - Initializes a central reactive state container to manage and synchronize application data.
  • Deterministic State Convergence - Uses hybrid logical clocks and last-write-wins logic to ensure deterministic state convergence across distributed data stores.
  • CRDT State Synchronization Engines - Provides a synchronization engine using conflict-free replicated data types to maintain consistency across distributed clients.
  • Sync Conflict Resolution - Implements processes for detecting and resolving version mismatches and conflicts between synchronized datasets.
  • Fine-Grained Reactivity - Tracks data dependencies at the cell, row, and table level to trigger high-performance, fine-grained UI updates.
  • Client-Side State Management - Provides a comprehensive mechanism for managing application state within the browser and persisting it to local or remote storage.
  • Reactive State Management - Uses a reactive store to automatically update the user interface when the underlying application state changes.
  • Automerge Synchronizations - Provides synchronization between the local data store and Automerge documents to maintain consistent state across clients.
  • Client-Server State Synchronization - Synchronizes local client state with a remote PartyKit server to maintain coherence across distributed environments.
  • Atomic Transaction Execution - Groups multiple data changes into atomic transactions to ensure consistent application of state mutations.
  • Data Persistence - Automatically synchronizes the in-memory data store with a persistence layer by listening for state changes.
  • Data Schema Definitions - Provides declarative systems for defining tabular data structures and enforcing value types.
  • Database Indexing - Creates indexes that allow rapid retrieval of matching row objects within large data tables.
  • SQL-like Queries - Performs fast lookups via indexes and executes SQL-like operations including joins and filters.
  • General State Persistence - Saves data to a storage medium so that state is maintained across sessions and page reloads.
  • Durable Object Persistence - Saves a data store to Cloudflare Durable Objects using JSON serialization or fragmented SQL rows.
  • Relational Join Engines - Combines information from multiple tables by linking related records through foreign keys.
  • Relationship Management - Defines and tracks relationships between different entities within the data store.
  • Schema Validation Libraries - Provides a schema validation library that converts Zod, Yup, and TypeBox definitions into type-safe store structures.
  • SQLite or PostgreSQL Storage - Persists application state to SQLite or PostgreSQL databases using JSON blobs or tabular mapping.
  • Pluggable State Backends - Offers a pluggable architecture to switch between different storage backends like IndexedDB, SQLite, or cloud objects.
  • Browser Storage Persistence - Saves and loads application data using browser-native storage like session storage, local storage, or OPFS.
  • Third-Party Sync Integrations - Integrates the local store with external synchronization platforms and CRDT libraries to leverage cloud infrastructure.
  • Store API Type Safety - Infers API types from defined schemas to provide type constraints for store methods and listeners.
  • State Storage Implementations - Allows definition of custom logic to fetch, write, and monitor changes in external storage backends.
  • Multi-Transport Real-time Layers - Uses multi-transport layers including WebSockets and BroadcastChannels to exchange real-time state updates.
  • Atomic Transaction Grouping - Bundles multiple state mutations into a single atomic operation to prevent intermediate listeners from firing.
  • Operation Interceptors - Provides operation interceptors that run before data writes to validate, modify, or block mutations.
  • Server-Side Sources of Truth - Establishes a server-side store as the authoritative source of truth that persists data and synchronizes with clients.
  • Schema-Driven Type Inference - Automatically derives static TypeScript type definitions from internal runtime store schemas for type-safe operations.
  • Schema Type Inference - Generates TypeScript type definitions based on active data schemas for improved type safety.
  • Write Interception Middleware - Registers hooks that run before data is written to intercept, modify, or block updates based on validation rules.
  • Bidirectional Data-Binding - Synchronizes interface components with the data store by automatically updating views and writing user input back.
  • SolidJS Bindings - Connects the reactive data store to SolidJS components using fine-grained accessors for automatic updates.
  • Declarative UI Components - Provides pre-built declarative components to display specific parts of the data store.
  • Svelte Bindings - Creates reactive objects that automatically update Svelte user interface elements when the store changes.
  • Real-Time Collaborative Editing - Synchronizes data changes across multiple users instantly for simultaneous editing of shared interfaces.
  • Update Batching - Groups multiple store modifications into a single transaction to prevent redundant listener triggers.
  • Undo-Redo History - Tracks state changes over time to allow users to revert to previous versions or re-apply changes.
  • React State Bindings - Provides specialized bindings that connect the reactive data store to React UI components.
  • Yjs Document Synchronizations - Persists application state to Yjs documents to enable real-time collaborative synchronization and shared data.
  • Miscellaneous Tools - Reactive data store for local-first applications.

Star history

Star history chart for tinyplex/tinybaseStar history chart for tinyplex/tinybase

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Tinybase

Similar open-source projects, ranked by how many features they share with Tinybase.
  • legendapp/legend-stateLegendApp avatar

    LegendApp/legend-state

    4,145View on GitHub↗

    Legend-State is a reactive state management library for JavaScript applications that provides a centralized container for application data. It utilizes a fine-grained reactivity engine to track state access automatically, allowing developers to update and retrieve data without the need for boilerplate patterns like reducers, actions, or dispatchers. The library distinguishes itself through its hierarchical, path-based state addressing and proxy-based dependency tracking. By isolating state dependencies, it ensures that user interface updates are triggered only for the specific components that

    TypeScript
    View on GitHub↗4,145
  • didi/mpxdidi avatar

    didi/mpx

    3,905View on GitHub↗

    MPX is a cross-platform framework designed to build applications for multiple mini-program ecosystems and the web from a single codebase. It utilizes a static transpilation pipeline to transform source code into platform-specific bundles, employing a single-file component system that encapsulates templates, logic, and styles. The framework provides a reactive state management system that automatically synchronizes application data with the user interface through computed properties and watchers. The project distinguishes itself through a robust build-time toolchain that supports sub-package p

    JavaScript
    View on GitHub↗3,905
  • leptos-rs/leptosleptos-rs avatar

    leptos-rs/leptos

    20,993View on GitHub↗

    Leptos is a full-stack Rust web framework designed for building reactive applications that share logic and types between the server and the browser. It provides a comprehensive toolkit for developing web interfaces where specific DOM nodes update automatically in response to changes in underlying reactive signals, rather than re-rendering entire component trees. The framework distinguishes itself through a fine-grained reactivity model that tracks dependencies at the individual data point level. It utilizes compile-time template transformation to convert declarative HTML-like syntax into opti

    Rustdomfine-grainedisomorphic
    View on GitHub↗20,993
  • pubkey/rxdbpubkey avatar

    pubkey/rxdb

    23,048View on GitHub↗

    This project is a reactive, offline-first NoSQL database engine designed for JavaScript applications. It provides a robust framework for managing application state by synchronizing data across browsers, mobile devices, and server-side runtimes. By treating local storage as the primary source of truth, it enables applications to remain functional without network connectivity, automatically reconciling changes with remote backends once a connection is restored. The database distinguishes itself through a modular architecture that supports cross-environment synchronization and high-performance d

    TypeScriptangularbrowser-databasecouchdb
    View on GitHub↗23,048
See all 30 alternatives to Tinybase→

Frequently asked questions

What does tinyplex/tinybase do?

TinyBase is a reactive data store and in-memory relational database designed for client-side state persistence. It serves as a local-first sync engine that merges distributed state using conflict-free replicated data types and logical clocks to ensure deterministic data convergence.

What are the main features of tinyplex/tinybase?

The main features of tinyplex/tinybase are: Application State Management, Local-First Storage Engines, Local-First Synchronization, Data Change Listeners, Local-First Data Persistence, Client-Side Persistence, Tabular Row Storage, Deterministic State Merging.

What are some open-source alternatives to tinyplex/tinybase?

Open-source alternatives to tinyplex/tinybase include: legendapp/legend-state — Legend-State is a reactive state management library for JavaScript applications that provides a centralized container… didi/mpx — MPX is a cross-platform framework designed to build applications for multiple mini-program ecosystems and the web from… leptos-rs/leptos — Leptos is a full-stack Rust web framework designed for building reactive applications that share logic and types… pubkey/rxdb — This project is a reactive, offline-first NoSQL database engine designed for JavaScript applications. It provides a… fastapi/sqlmodel — SQLModel is a type-safe object-relational mapping library for Python that integrates database schema definitions with… solidjs/solid — Solid is a declarative JavaScript framework for building user interfaces through fine-grained reactivity. By utilizing…