SnoutData Cloud

Hosted Postgres, and the API your app already expects.

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.

Your own Postgres

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/postgres
  • Postgres 17, with pgvector
  • A container of its own, not a shared schema
  • You are the owner

It sleeps, and it wakes

A database nobody has touched for a while stops. The next connection wakes it and is held while it comes up. Paid databases stay up.

Reachable from anywhere

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.

Backed up continuously

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.

A limit that does not lose data

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.

An audit log in plain words

Every change to a database is recorded as what happened, and whether it was you, the command line or an agent that did it.

Point the client you already use at 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.

REST and GraphQL

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/v1

Auth

Sign-up, sessions, magic links and social providers, writing users into your own database, where your policies can join against them.

/auth/v1/tokenauth.users

Storage

Files in buckets, governed by the same kind of policies as your rows, kept in object storage and served straight from it.

/storage/v1/objectbuckets

Realtime

Broadcast and presence for anything your clients want to say to each other, and changes to your tables as they are committed.

/realtime/v1postgres_changes

Edge functions

Your own TypeScript, run per request next to the database, for the work that should not happen in a browser.

/functions/v1/helloTypeScript

Types, and a database on your laptop

Generate 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 typescript
app.tsThe client you already use. Our endpoint. Nothing in between.
const 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.

One command, and the folder has a database.

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 stdio

Every command takes --json, so a script or an agent gets a result rather than a screen.

Built to be used with nobody present

The reason this exists: the thing an agent can set up on its own is the thing that gets used.

Every operation, as agent tools

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 credential for CI

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 token cannot mint a token

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.

You, the CLI and the agent are different

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.

Where your data actually lives

Four claims, and all of them are checkable.

Object storage is the source of truth

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.

It is machines, object storage and DNS

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.

A regular cloud, held properly

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.

The other half is still the answer

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.

Start with a database, or with the app.

Both are free to begin, and one account covers them.

See what a plan includes