Native state
Collections behave like application data structures: typed CRUD, predicates, relationships, and subscriptions without an ORM-shaped detour.

FeltDB makes durable, reactive, distributed data feel native—then extends that same state model to workflows, autonomous agents, security, provenance, and placement.
npx create-feltdb@latest my-app
cd my-app
npm install
npm run devFeltDB collapses the distance between the state your product uses and the systems required to persist, react to, coordinate, and understand it.
Collections behave like application data structures: typed CRUD, predicates, relationships, and subscriptions without an ORM-shaped detour.
Durable browser storage keeps the application useful offline. State reacts immediately and converges when a network returns.
Data, workflows, agents, capabilities, policies, provenance, and placement share one inspectable application fabric.
Causal operations, content addressing, quorum ownership, and dynamic membership provide real coordination guarantees.
Durable workflow and agent state lets workers observe, claim, act, recover, and explain decisions without a separate job system.
Studio exposes state, references, executions, peers, provenance, conflicts, health, and versioned application deployments.
The same API works in-process, in the browser, and against a remote server. Infrastructure changes placement—not how application code understands state.
import { createFeltDB } from '@feltdb/core';
const state = createFeltDB({
namespace: 'field-ops',
browser: true
});
const incidents = state.collection<Incident>('incidents');
await incidents.insert({ title: 'Power outage', urgency: 5 }, 'incident-1');
incidents.subscribe(items => render(items));Use browser mode for embedded local-first applications, memory mode for tests and short-lived workers, or a FeltDB server for authenticated shared state.
A Collection<T> is the primary API. Insert, update, delete, search, acquire references, and subscribe to live results through the same abstraction.
import { createFeltDB } from '@feltdb/core';
const state = createFeltDB({
namespace: 'field-ops',
browser: true
});
const incidents = state.collection<Incident>('incidents');
await incidents.insert({ title: 'Power outage', urgency: 5 }, 'incident-1');
incidents.subscribe(items => render(items));feltdb.flow declares collections, indexes, capabilities, workflows, agents, triggers, schedules, and policies as one portable application model.
feltdb validate feltdb.flow
feltdb diff feltdb.flow
feltdb deploy feltdb.flowRun feltdb validate, feltdb diff, and feltdb deploy. Studio uses the same public model and APIs, so visual and code-driven workflows stay aligned.
Use scoped API keys, health and runtime endpoints, online backups, verified point-in-time recovery, membership recovery, and bounded lease clocks.
Local commits do not wait for a round trip. Causal operations preserve origin identity, content hashes make artifacts verifiable, and ownership protocols keep distributed work safe.
const edge = createFeltDB({ namespace: 'ops', browser: true });
const cloud = createFeltDB({
namespace: 'ops',
server: { url: FELTDB_URL, token: FELTDB_API_KEY }
});
await edge.synchronizeWith(cloud); // causal, replay-safe convergence
Not tables hidden behind services. Not events detached from meaning. One durable application fabric that can react, move, coordinate, and explain itself.
Create a FeltDB app