The SnoutData stack
The stack is what a project IS: a Postgres database and the servers in front of it, behind one HTTPS door. A hosted project on SnoutData Cloud runs it, and so does a folder on your own machine with Docker. Same servers, same paths, same two keys, same client code; only the URL changes. Every part is open source.
What is in it
Postgres 18Upstream Postgres 18 with pgvector, pg_cron, pg_net, pg_graphql and SnoutTime built in. Your migrations, your extensions.The project APIOne door, six paths, two keys. Row-level security decides what every request can see.Data APIREST and GraphQL generated from your schema, with nothing to deploy.AuthSign-up, sign-in, sessions, multi-factor, OAuth and SAML single sign-on, with the users in your own database.StorageFiles in buckets, governed by the same kind of policies as your rows, with image resizing.RealtimeBroadcast, presence and table changes over WebSockets.FunctionsYour own TypeScript next to the database, with its secrets.PushNotifications to iPhone, Android and the web, from one API and from SQL.SnoutTimeTime series in plain Postgres: series tables, sealed columnar partitions, rollups.
Where it runs
| Hosted (SnoutData Cloud) | Your own Docker | |
|---|---|---|
| Postgres 18, extensions, SnoutTime | yes | yes |
| Data API, auth, storage, realtime, functions, push | yes | yes |
| Backups every few seconds, point-in-time restore | yes (durability) | your own (pg_dump, volume backups) |
| Sleeps when idle, wakes on connect | yes | no |
| Plans, the dashboard, status page | yes | no |
- Run it yourself: the whole stack with Docker Compose, from snoutdata/snout-stack.
- Local development: just the database, on your machine, in one command.
- Use the CLI with a local stack: migrations, types and functions against the stack on this machine.
- Create a hosted project: the same stack, run for you.
Moving between the two is a database dump and the files, since the schemas are the same (move a database).
The source
| Part | Repository |
|---|---|
| The stack (compose file, gateway, setup) | snoutdata/snout-stack |
| Auth | snoutdata/snout-auth |
| Storage | snoutdata/snout-storage |
| Image resizing | snoutdata/snout-images |
| Realtime | snoutdata/snout-realtime |
| Functions | snoutdata/snout-functions |
| Push | snoutdata/snout-push |
| SnoutTime | snoutdata/snouttime |
| JavaScript client | snoutdata/snout-client (@snoutdata/client on npm) |
What changed, part by part, is in the changelog.