Skip to content

Ramose — the database optimized for humans and agents

The database optimized for humans and agents.

Right now those are two jobs: the app you shipped, and the MCP server, auth path, and permission model you bolt on beside it for agents. Ramose makes them one. Declare schema, operations, and policy once—your UI gets offline-first writes and local queries, your agents get one discoverable MCP endpoint, and both use the same capabilities.

◆ Nothing to keep in sync◆ Works offline◆ No SQL to inject◆ Your Cloudflare account

schema.ts

const Project = Ramose.Entity("project", {
slug: Ramose.Field.unique(Ramose.string(), "strict"),
})

Typed client

Type-safe reads and writes

Ask for a field that does not exist, or write the wrong shape, and TypeScript stops you before production does.

You getuseQuery(projectDb.query.from(Task))
1 / 4

01 — Instant by default

That snappy, no-spinner feel? You get it on day one.

The apps people call fast never wait on a round trip. Ramose gives you that architecture by default: writes commit to the local store and render immediately, sync catches up behind them, and every other client and agent converges on its own. Pull the plug; reads and writes keep working.

01 You drop the card input

02 — Agents

Everything a user can do an agent can do.

Ramose projects the capabilities already in your app through three MCP tools. Agents discover the catalog progressively, query visible data, and invoke the same named operations as your UI. No shadow database, glue server, or second authorization model to keep aligned.

01 describe catalog and what this caller may call

03 — History

Data is never lost.

Mistakes happen. A person clicks the wrong thing, an agent runs the wrong command, or a bug reaches production. Ramose keeps every committed version, so recovery is an elegant rewind instead of a restore drill. Move back to the moment before the mistake, verify the state, and continue.

01 An agent clears the backlog 12:41:04 · committed

04 — Backends

Cloudflare today, your provider tomorrow

Ramose runs on Cloudflare today, but your application is defined against Ramose — not a provider console. AWS and self-hosted backends are planned behind the same schema, policy, sync, and MCP surface, so changing infrastructure does not mean rewriting the app.

CloudflareWorkers · Durable Objects · R2 · Analytics Engine
Implemented
AWSLambda · DynamoDB · S3
Planned
Self-hostedYour compute · your object store · your network
Planned

Apache-2.0 · self-hosted · pre-release

Read the source. Run it in your own account.

One npm package, one Alchemy stack, no managed service in the path between your app and your data.

bun add ramosebun alchemy devbun alchemy deploy