123
I shipped a Supabase app, set up backups, felt safe — then realized I had never actually restored one. When I finally tried, I learned the hard way that a database restore doesn't bring back Storage files (only the metadata pointing at them), and that nothing in my setup would have ever told me.
BackupDrill is what I built to fix that:
- Postgres + Storage files in one snapshot, written to your own S3/R2/B2 bucket. Your keys, your data — bytes stream through the workers and never touch our disks.
- Restore drills on a schedule: latest snapshot → throwaway Postgres → verify table counts, populated tables, Storage checksums → destroy the sandbox → graded report in your inbox. A backup is only real after it has been restored.
- MIT open-source engine (github.com/backupdrill/cli) — audit it, or run it yourself in CI for free.
Free plan: 1 project, weekly backups, and one restore drill on your first backup so you see the proof before paying. Paid from $19/month — a fifth of Supabase PITR, which still skips Storage files.
Built solo, launched seventeen days after the first commit. Ask me anything about pg_dump quirks, Supabase egress economics, or restoring into throwaway containers.
Built with