local-first document storage with jsi bridge
Provides native document persistence in React Native via JSI (JavaScript Interface) HostObject bindings that expose a native database layer without requiring network calls. Documents are stored locally on the device with structured schema support, enabling offline-first applications to maintain full CRUD operations on document collections without cloud synchronization overhead.
Unique: Uses JSI HostObject pattern to expose native database bindings directly to JavaScript without serialization overhead, enabling synchronous document access from React Native without bridge latency typical of async native modules
vs alternatives: Faster than SQLite.js or WatermelonDB for document queries because JSI eliminates the async bridge serialization layer, providing near-native performance for local document operations
vector embedding storage and semantic search
Stores vector embeddings alongside documents and provides semantic similarity search via vector distance calculations (likely cosine or Euclidean metrics). The system indexes embeddings for efficient retrieval, enabling RAG (Retrieval-Augmented Generation) patterns where documents are ranked by semantic relevance rather than keyword matching.
Unique: Integrates vector search directly into the local JSI database layer, allowing semantic queries to execute on-device without exfiltrating embeddings to cloud services, preserving privacy and enabling offline RAG workflows
vs alternatives: More privacy-preserving than Pinecone or Weaviate for mobile RAG because embeddings never leave the device, and faster than client-side JavaScript vector libraries because distance calculations run in native code via JSI
encryption at rest with device-level key management
Encrypts documents stored on the device using device-level encryption keys, protecting data if the device is lost or stolen. Encryption is transparent to the application — documents are encrypted on write and decrypted on read without explicit key management in JavaScript code.
Unique: Encryption is transparent and automatic at the JSI layer, protecting data without requiring application-level key management or explicit encryption calls, leveraging device-level hardware-backed keystores for key security
vs alternatives: More transparent than application-level encryption libraries (crypto-js) because encryption is automatic and uses hardware-backed keys, but less flexible because key management is device-level rather than per-user or per-document
schema-based document validation and type safety
Enforces document structure through schema definitions that validate incoming documents before storage, providing type safety and preventing malformed data from corrupting the database. Schemas define required fields, data types, and constraints that are checked at write time, with validation errors returned to the application layer.
Unique: Validation occurs in native code via JSI, avoiding JavaScript overhead and enabling synchronous schema enforcement without blocking the React Native event loop, unlike pure JavaScript validation libraries
vs alternatives: Faster validation than Zod or Yup for high-frequency writes because native code execution avoids JavaScript interpretation overhead, and more integrated than external validators since schemas are part of the database definition
synchronous document crud operations via jsi
Exposes synchronous create, read, update, and delete operations on documents through JSI HostObject methods, allowing React Native code to perform database operations without async/await overhead. Operations return results immediately from the native layer, enabling responsive UI updates without promise chains or callback hell.
Unique: Exposes synchronous CRUD via JSI HostObject instead of async bridge methods, eliminating promise overhead and enabling direct native method calls from JavaScript without serialization delays
vs alternatives: Simpler API than async database libraries (Firebase, Realm) for basic CRUD because no promise chains required, but trades off scalability for simplicity — better for small datasets, worse for high-concurrency scenarios
offline-first data persistence with eventual consistency
Stores all data locally on the device with no required network connectivity, supporting eventual consistency patterns where local changes are persisted immediately and synchronized to remote systems when connectivity is available. The database tracks local modifications independently of sync state, enabling applications to function fully offline.
Unique: Combines local-first persistence with JSI-based performance, enabling offline-capable apps to maintain full functionality without network calls while preserving data for eventual synchronization via external sync layers
vs alternatives: More performant than Firebase Realtime Database offline mode because all operations execute locally without cloud round-trips, and simpler than full CRDT libraries (Yjs, Automerge) because sync logic is decoupled from storage
query filtering and document retrieval with predicates
Supports querying documents using filter predicates (equality, comparison, range, logical operators) to retrieve subsets of the document collection matching specified conditions. Queries execute in native code via JSI, returning filtered result sets without loading the entire collection into memory.
Unique: Query predicates execute in native code via JSI, avoiding JavaScript interpretation overhead and enabling efficient filtering on large collections without materializing full result sets in JavaScript memory
vs alternatives: Faster than JavaScript-based filtering (lodash, ramda) for large collections because native execution avoids interpretation overhead, but less flexible than SQL databases for complex multi-table queries
document indexing for performance optimization
Automatically or manually creates indexes on frequently-queried document fields to accelerate retrieval operations. Indexes are maintained in native code and used transparently during query execution to reduce search time from O(n) to O(log n) or better, depending on index type and query selectivity.
Unique: Indexes are maintained in native code and transparent to JavaScript, enabling automatic query optimization without application-level index management or query rewriting
vs alternatives: More transparent than manual index management in SQL databases because indexing is automatic and hidden from the application, but less controllable than databases with explicit index hints and query plans
+3 more capabilities