A backup you've never restored is a hope, not a backup.
Supabase's built-in backups are solid, but they leave three gaps:
Storage files don't come back. A database restore brings back
storage.objectsmetadata — pointers to files that no longer exist.Backups live inside Supabase. They can't be exported to infrastructure you control, and they disappear with the project.
Nothing ever tests them. PITR costs $100/month per project — and still skips Storage files.
BackupDrill closes all three:
Backs up Postgres + Storage files together, straight to your own S3/R2/B2 bucket. You hold the keys; bytes stream through our workers and never land on our disks.
On a schedule, it restores your latest snapshot into a throwaway Postgres, verifies table counts, populated tables and Storage file checksums, then destroys the sandbox and emails you the graded report. Proof, not a green cron job.
The backup engine is MIT open source (github.com/backupdrill/cli) — audit what runs, or DIY it in CI and skip the hosted service entirely.
Free plan includes one restore drill on your first backup — you see the proof before paying anything. Paid plans start at $19/month, around one-fifth of the cost of Supabase PITR, with daily backups and scheduled drills.
Honest limits: No PITR/WAL. Run Supabase PITR alongside BackupDrill if you need point-in-time recovery. Currently supports hosted Supabase only, covering Postgres and Storage.


