SignalDB Documentation

repository·main·Indexed 20 days ago

https://github.com/maxnowack/signaldb

A local-first, client-side JavaScript database optimized for modern web applications. SignalDB provides a MongoDB-like interface, optimistic UI updates via signal-based reactivity, and real-time data synchronization. It includes a core library (@signaldb/core), synchronization tools (@signaldb/sync), developer tools (@signaldb/devtools), and a wide range of persistence adapters (IndexedDB, OPFS, LocalStorage, fs) and reactivity adapters for frameworks like React, Vue, Angular, Solid.js, and Preact.

Tokens
58.1K
Snippets
150
Records
260
Agent score
69%

What's inside SignalDB

  1. What is SignalDB?

    main
    SignalDB is a reactive, local-first JavaScript database designed for building fast, offline-capable applications. It uses signals to provide instant UI updates and supports real-time synchronization with various backends (REST, GraphQL, or custom APIs).
  2. Overview of @signaldb/sync

    main
    The @signaldb/sync package provides the synchronization implementation for SignalDB. SignalDB is a local-first JavaScript database designed for real-time synchronization. It enables optimistic UI updates by leveraging signal-based reactivity, making it compatible with various frontend frameworks. This allows developers to build applications that work offline and sync data seamlessly when connectivity is available.
  3. Explore SignalDB package structure and exports

    main

    SignalDB is a modular ecosystem composed of several specialized packages. To use SignalDB, you will interact with one or more of the following categories of packages:

    Core Packages

    • @signaldb/core: Contains the fundamental building blocks like Collection, Cursor, and adapter factory functions.
    • @signaldb/sync: Provides synchronization capabilities via the SyncManager.

    Integrations

    • @signaldb/react: Provides React-specific hooks for reactivity.

    Persistence Adapters

    Used to store data in different environments:

    • @signaldb/fs: File system storage.
    • @signaldb/localstorage: Browser LocalStorage.
    • @signaldb/opfs: Origin Private File System.

    Reactivity Adapters

    Used to bridge SignalDB's reactivity with specific UI frameworks or state management libraries (e.g., @signaldb/angular, @signaldb/mobx, @signaldb/solid, @signaldb/vue, etc.).

  4. Benefits of using SignalDB for real-time data

    main

    SignalDB is optimized for real-time web applications through several core architectural advantages:

    • Low Latency: Operates primarily in-memory for fast data access and manipulation, making it suitable for high-frequency updates like financial trading or analytics.
    • Real-Time Synchronization: Ensures instant data updates across all connected clients, maintaining consistency and reliability for collaborative tools and dashboards.
    • Ease of Integration: It is framework agnostic and provides reactivity adapters to automatically connect the database to your UI without manual state management.
    • Scalability: Features a lightweight architecture designed for horizontal scaling as user bases or data volumes grow.
    • Developer Experience: Uses a schema-less design and a MongoDB-like query language, reducing the complexity of data management compared to traditional relational databases.