Skip to main content

Cuitty Store

Local-first storage that syncs.

SQLite + CRDT sync · local-firstkey-value, docs, blobs — offline capableemits → observe, safe, registry, code
store — cli
$ cui store init --adapter sqlite --sync crdt
store initialized (local-first, CRDT sync enabled)
$ cui store put user:1 '{"name":"acme"}' --encrypt
written 1 doc, AES-256-GCM, sync pending
observe: store.write event emitted
Built from
standalonemixed
01Capabilities

Storage that follows your data

One SDK for SQL, documents, events, queues, blobs, media, search, vectors, graph, archive, and key-value data. Works offline, syncs when connected, encrypts before data leaves the device.

Safe resolves credentials before Store opens a remote connection. Every write, sync, and conflict resolution emits telemetry to Observe.

Local-first

Reads hit a local database. Writes sync in the background. Your app works whether the network is there or not.

Pluggable adapters

SQLite, Postgres, S3-compatible storage, queues, search, vectors, graph, and archive. Swap backends without changing application code.

Sync strategies

Last-write-wins, CRDTs, or custom conflict resolution. Choose the right tradeoff for each data type in your application.

End-to-end encryption

Zero-knowledge encryption by default. Data is encrypted before it leaves the device. The sync layer never sees plaintext.

02Data model

All storage classes. One store.

Every storage class shares the same sync, encryption, and adapter layer. Mix SQL queries, event streams, media uploads, and search indexes in one application without separate infrastructure per concern.

store.sql Relational queries, migrations
store.events Append-only event streams
store.media Blobs, images, video
store.indexes Full-text search, vectors
03Interactive

Store operations in the TUI

A scripted TUI session showing Store operations. Switch tabs to see how Code and Observe interact with the same data layer.

~/projects/webapp — cui (code)scene 1 / 3
0 / 34 frames
04Deployment

A deployment decision, without an API rewrite

One SDK target, five deployment profiles. Compare what is local, what syncs, and who operates the destination before choosing a route.

Profile comparison

Choose a profile. Keep your Store API.

The destination changes with the profile; the local-first Store contract does not.

Available Preview Bring your own

Store profile capabilities and ownership
Capability
Local readsWrites land locally before any network work. The profile chooses the destination, not the local-first contract.Previewdevice storePreviewlocal cachePreviewlocal workspacePreviewlocal cachePreviewlocal cache
Background syncWhen a remote route is configured, the sync queue sends local changes and receives remote changes without blocking writes.Not offeredno remote routePreviewremote routePreviewpeer routePreviewpeer replicationPreviewprovider route
Encryption boundaryStore supports client-side encryption for local-first and compatible remote routes; remote services can also provide encryption at rest.Previewclient-sidePreviewapp + servicePreviewclient-sidePreviewbridge routePreviewprovider route
Provider portabilityProfiles keep application storage calls stable while the configured adapter destination changes.Availablesame Store APIPreviewadapter profilePreviewcloud-shaped profilePreviewbridge profilePreviewnative-cloud profile
Operational ownershipThe profile makes ownership explicit instead of hiding it behind an undifferentiated cloud label.Bring your ownyour deviceBring your ownyour servicesBring your ownyour workspaceAvailableCuitty-managedBring your ownyour account
Recommended useStart with the profile closest to your current environment, then move the target as operating requirements change.Availableoffline and testsBring your ownoperated stackPreviewprovider rehearsalPreviewmanaged routeBring your ownexisting estate

SQLite and device-local routes

Keep state on the device for offline work, deterministic tests, and local development.

Local readsWrites land locally before any network work. The profile chooses the destination, not the local-first contract.
Previewdevice store
Background syncWhen a remote route is configured, the sync queue sends local changes and receives remote changes without blocking writes.
Not offeredno remote route
Encryption boundaryStore supports client-side encryption for local-first and compatible remote routes; remote services can also provide encryption at rest.
Previewclient-side
Provider portabilityProfiles keep application storage calls stable while the configured adapter destination changes.
Availablesame Store API
Operational ownershipThe profile makes ownership explicit instead of hiding it behind an undifferentiated cloud label.
Bring your ownyour device
Recommended useStart with the profile closest to your current environment, then move the target as operating requirements change.
Availableoffline and tests
Ecosystem

Works with Cuitty Store

Browse products

Cuitty Observe

Sixteen modules. One ingest.

Cuitty Safe

A developer-first secret vault and resolver.

Cuitty Registry

npm, Cargo, PyPI, OCI.

Cuitty Code

Self-hosted Git. PRs, CI, deploys.