A database of your own in a few seconds, with auth, storage, realtime and edge functions on top. The client library you use today works against it unmodified.
Nothing you do is bounded by what a neighbour is doing, and nothing a neighbour does is bounded by you.
snoutdata db urlpostgresql://postgres:••••••••@<ref>.db.snoutdata.com:5432/postgresA database nobody has touched for a while stops. The next connection wakes it and is held while it comes up. Paid databases stay up.
One host name over TLS, from psql, your application, your CI, the dashboard, or the SnoutData desktop app, which imports it as an ordinary connection.
Writes are shipped to object storage as they happen, and a machine reads them back nightly to prove they restore. Pro can restore to a point in time, into a new database.
Over your storage limit a database goes read only. It is never refused a read, never stopped and never deleted, and it writes again the moment you delete rows or move up a plan.
Every change to a database is recorded as what happened, and whether it was you, the command line or an agent that did it.
The API surface is the one your application is already written against, so the client library you already use works unmodified. Nothing to port, nothing to learn.
Your tables and functions, over HTTP and over GraphQL, generated from the schema. Row level security is the only thing deciding what a request can see.
/rest/v1/orders/graphql/v1Sign-up, sessions, magic links and social providers, writing users into your own database, where your policies can join against them.
/auth/v1/tokenauth.usersFiles in buckets, governed by the same kind of policies as your rows, kept in object storage and served straight from it.
/storage/v1/objectbucketsBroadcast and presence for anything your clients want to say to each other, and changes to your tables as they are committed.
/realtime/v1postgres_changesYour own TypeScript, run per request next to the database, for the work that should not happen in a browser.
/functions/v1/helloTypeScriptGenerate a typed schema for your codebase, and run the same Postgres locally, migrated and seeded, so development and production are the same shape.
snoutdata gen types typescriptconst db = createClient( 'https://<ref>.api.snoutdata.com', process.env.SNOUTDATA_ANON_KEY ) const { data } = await db.from('orders').select('*')
The data API and subscribing to table changes are on the paid plans. Everything else is on every plan, bounded by quota rather than by missing features.
No console, no wizard, and no browser if you do not want one. It creates the database, waits for it, and writes the connection string where your app will look for it.
npx snoutdata inita database for this folder, linked, ready to use snoutdata db urlprint a connection string snoutdata gen types typescriptthe schema as a TypeScript Database type snoutdata mcpserve these operations to an agent, over stdioEvery command takes --json, so a script or an agent gets a result rather than a screen.
The reason this exists: the thing an agent can set up on its own is the thing that gets used.
snoutdata mcp serves the whole command set to a coding agent over stdio, plus the desktop app's own tools when it is running on the same machine. Deleting is off unless you turn it on.
A token that does not expire, shown once, revocable by name. It is exchanged for a real short-lived session, so row level security is still the only thing deciding what it can see.
A leaked credential that could issue its own replacement could not be revoked, because the one you knew about would not be the one left behind. So it cannot.
The audit log records which of the three did a thing, so after an agent has been working you can read what it actually changed.
Four claims, and all of them are checkable.
A machine is a cache in front of it. Losing every machine we run would cost uptime, not data, and that is the property everything else here is built on.
There is no managed service in it that another cloud does not have, which makes moving it a job rather than a rewrite. Your own copy is a dump you can download whenever you want one.
We hold your project's password, encrypted, and serve it to you when you ask for it. We do not tell you we cannot read it, because that would not be true, and a promise you cannot check is worth nothing.
If what you want is credentials that never leave your machine, that is the desktop app, connected to your own databases wherever they run. It is free, and it needs none of this.
Both are free to begin, and one account covers them.