
3 days ago I said I'd build a proper Supabase backup/restore tool. So I did.
A few days ago there was a discussion here about backing up Supabase properly.
I originally replied with the usual approach supabase db dump, copy Storage somewhere else, run it from cron/GitHub Actions, etc.
People pointed out the parts that make this a lot less simple once you actually care about disaster recovery. Encryption, Storage consistency, restore testing, auth, roles, checksums, knowing what Supabase does and doesn't expose, and making sure a backup is actually usable before the day you need it.
So I said:
>Give me a couple of days. I've decided to build exactly this now.
Well... I built it.
It's called pgDumpster.
https://www.pgdumpster.com/
https://github.com/Ciroc0/pgdumpster
https://www.npmjs.com/package/pgdumpster
It's a CLI for backing up, inspecting, verifying and restoring hosted Supabase projects.
At the moment it handles the PostgreSQL side, Storage objects/metadata, Auth and API-related state where Supabase exposes it, Edge Functions/config where recoverable, and the relevant control-plane configuration that can actually be read/restored.
Backups are bundled with a manifest and integrity information, can be encrypted with age, and can optionally be stored on S3-compatible storage like R2.
The restore side is deliberately paranoid. There's a dry-run/planning stage, target validation, conflict handling and explicit reporting of things that cannot safely or automatically be restored.
I learned while building this that there really isn't such a thing as a completely atomic “Supabase backup”. PostgreSQL, Storage and the Supabase control plane are different systems. pgDumpster doesn't pretend otherwise. It records the consistency boundaries and tells you when something depends on platform limitations or manual recovery instead of calling everything “success”.
You can install it with:
npm install -g pgdumpster
This is v0.1.2, so very much an early release and something I'm going to keep improving. I'm mainly posting it here because this community is literally the reason I built it in the first place.
If anyone here actually uses Supabase in production, I'd especially like people to try to break it, find weird project configurations I haven't accounted for, or run backup + restore tests and tell me where the workflow sucks.
It's free to use for normal/self-hosted use. The source is public, but I used a source-available license rather than an OSI open-source license because I don't particularly want someone taking it tomorrow and wrapping it in a competing hosted backup service.
u/Optimal_External1434 u/sandspiegel - there you go 🤷♂️