Supabase backup tools compared
Four tools restore your Supabase backup on a schedule to test it: BackupDrill, BackProve, ReviveDB and SafeGrd. Reeve checks each copy's row counts against the file. SimpleBackups, SupaSafe, Supabackup and Ottomatik take the copy and leave the restore to you. Supabase's own daily backups leave out your Storage files and are deleted with the project.
Written by SafeGrd's founder, so SafeGrd is on this list. Each entry starts with what that tool does better than the others, including better than SafeGrd. Facts come from each product's own home page, pricing page and documentation, read on 2026-10-18. If a page has changed since, the product's page is right.
What a Supabase backup has to cover
- The whole database. Your tables in
public, and the rows inauth(your users) andstorage(the list of your files). - The Storage files. The bytes live in Supabase's object store, not in the database. A dump holds their names only.
- A copy outside the project. Deleting a project deletes its backups.
- A restore you have seen work. A dump can finish with no error and hold no rows, for example when a read-only role meets row-level security.
The short version
| Tool | Storage files | Where the copy is kept | Restore tested on a schedule | Encrypted before upload | Price |
|---|---|---|---|---|---|
| Supabase daily backups | No | Inside Supabase, deleted with the project | No | Kept by Supabase | Included from Pro ($25 a month) |
| pg_dump in GitHub Actions | No, a second job | Your bucket | No | If you add it | Free |
| BackupDrill | Yes | Your bucket | Yes, weekly on paid plans | Not stated | Free for 1 project; paid from $19 a month |
| BackProve | Yes | Not stated | Yes, daily | Yes, age | $12 a month for 3 projects |
| ReviveDB | Yes | ReviveDB's storage, in the EU | Yes, each backup | Stored encrypted | Free for 1 project; paid from EUR 9 a month |
| Reeve | Yes | Reeve's storage (R2), in the EU | No; row counts checked against the file | AES-256, Reeve holds the keys | Backups from $49 a month |
| SimpleBackups | Yes | Your bucket, or theirs | Not described | Optional, with your own key | Free for 1 job; paid from $49 a month |
| SupaSafe | Not stated | SupaSafe's Backblaze B2 | Not described | Yes, optional public key | Free for 1 project; paid from $4.99 a month |
| Supabackup | Not stated | Your Google Drive | Not described | Not stated | Free for 1 job; paid from $9 a month |
| Ottomatik | Not stated | Your bucket, Drive, Dropbox, or theirs | No; restore by hand | At rest | From $14 a month |
| SafeGrd | Yes | Your bucket, or SafeGrd's, under Object Lock | Yes, with a signed record | Yes, age | Free tier; paid from $15 a month |
"Restore tested" means the tool loads the backup into a fresh database and checks what came back. Counting rows in the dump file catches a dump that came out empty, but not one that fails to load.
Supabase's own daily backups and PITR
Best at: undoing a bad day inside the project, with nothing to set up. Pro keeps 7 days of daily backups, Team 14 and Enterprise up to 30. Point-in-time recovery is an add-on that restores to any second in its window, from about $100 a month for 7 days, and it needs a Small compute add-on or larger.
What it leaves to you: the Storage files, which no Supabase backup includes; a copy that survives deleting the project; and anything on the Free plan, which gets no backups. Turning on PITR turns off the daily backups. (How to back up a Supabase database)
pg_dump in a GitHub Actions workflow
Best at: a free copy outside the project, in a bucket you own. Supabase's
documentation has a workflow that runs the Supabase CLI's dump on a schedule, and the same
job can encrypt with age and upload to S3.
What it leaves to you: the Storage files, alerts when the workflow stops running (GitHub disables scheduled workflows in a public repository with no activity for 60 days), a lock on the bucket, and the restore test. How to back up Supabase with GitHub Actions is the workflow with those checks.
BackupDrill
Best at: the shortest setup for Supabase alone. It connects to a project by signing in to Supabase, backs up the database and the Storage files to your S3, R2, B2 or Wasabi bucket, and restores the backup in its own cloud every week on paid plans, with the report by email. Paid plans back up daily.
What it leaves to you: databases that are not Supabase, a size cap per project (10 GB on the $19 plan), and a lock on the bucket. (SafeGrd and BackupDrill)
BackProve
Best at: a daily restore test for a low flat price. Every day it backs up
the database and Storage files, restores the dump into a fresh Postgres with the same major
version and Supabase's extensions, and compares the object count with the dump's manifest.
Dumps are encrypted with age.
What it leaves to you: more than 3 projects, any database outside Supabase, and knowing where the backups are stored, which its page does not say.
ReviveDB
Best at: the whole project in one copy. It backs up the database, Auth users, Storage files and Edge Functions with their settings, test-restores each backup, and exports any of them as a standard Postgres backup file.
What it leaves to you: a copy in your own bucket, since backups are kept in ReviveDB's storage. Paid plans cap each database at 10 GB.
Reeve
Best at: restoring for you. It backs up with a read-only role, checks each copy by counting every table against the file, and restores a chosen date in one click, taking a safety copy of the current database first. The top plan backs up every 6 hours.
What it leaves to you: a scheduled test restore, which its page does not describe, and a copy in your own bucket. Reeve holds the encryption keys so that it can restore for you.
SimpleBackups
Best at: covering the most of a Supabase project. Its Supabase page lists the database, Storage buckets, Auth users and identities, Edge Function manifests and project config, to more than 25 storage providers, with restore to a new project, an existing one or plain Postgres. Backups run as often as every 5 minutes on the top plan.
What it leaves to you: a scheduled restore test, which its pages do not describe, and a lock on the bucket. Plans count backup jobs, 5 on the $49 plan. (SafeGrd and SimpleBackups)
SupaSafe
Best at: the lowest price for a daily copy outside Supabase. It runs
pg_dump daily or weekly, stores the dump in Backblaze B2 with a SHA-256
checksum, and can encrypt it to your own RSA public key so only you can read it.
What it leaves to you: the Storage files, which its page does not mention, a copy in your own bucket, and the restore test.
Supabackup
Best at: keeping the copy in Google Drive. It sends a dump from your project to a folder in your Drive daily, and Google's consent screen limits it to the files it creates.
What it leaves to you: the Storage files, encryption and the restore test, none of which its page mentions. A failed job pauses instead of retrying.
Ottomatik
Best at: one tool for Supabase and other databases, with destinations such as Google Drive and Dropbox. Backups run hourly to monthly, and a backup restores in one click to another server or a new database.
What it leaves to you: the Storage files, which its page does not mention, and running the restore test yourself. (SafeGrd and Ottomatik)
SafeGrd
Best at: proof that the backup restores, which someone outside the team can
check. SafeGrd dumps the project through the session pooler with auth and
storage included, encrypts it before upload, and writes it under Object Lock to
your bucket or SafeGrd's, so the credentials that reach the database cannot delete it. The
Storage files are backed up from the bucket's S3 key. On a schedule, a drill restores the
newest backup into Supabase's own PostgreSQL image, counts every table's rows against the
manifest written at backup time, and signs the result into a record an auditor can verify
offline:
- Free: weekly, checked in memory
- Starter, $15 a month: weekly, loaded into a throwaway database
- Growth, $49 a month: daily, loaded into a throwaway database
- Scale, $149 a month: daily, loaded into a throwaway database
It runs from a GitHub Actions workflow, or SafeGrd takes the backup itself: the console signs you in to Supabase, lists your projects, and a machine started for each backup dumps and encrypts it, then is destroyed. One plan covers every project and the databases, files and mailboxes beside them.
What it leaves to the others: point-in-time recovery, and Edge Functions and project settings, which you keep in git. Paying for Supabase's PITR and keeping a tested copy in SafeGrd do different jobs, and many teams run both.
Run your first Fire Drill Back up Supabase with SafeGrd
How to choose
- You need to undo the last hour: Supabase's PITR add-on. Keep a copy outside the project as well.
- Supabase only, shortest setup, your own bucket: BackupDrill.
- A daily restore test for up to 3 projects at the lowest price: BackProve.
- You want someone else to run the restore for you: Reeve or ReviveDB.
- Everything in the project, including Edge Functions and config: SimpleBackups or ReviveDB.
- Someone will ask whether your backups restore (a customer, an auditor, an insurer), or you run databases outside Supabase too: SafeGrd.
- No budget: the GitHub Actions workflow, plus one restore by hand each month.
Whatever you pick, restore one backup into a scratch database yourself before you rely on it. How to test that a backup restores has the steps. For self-hosted PostgreSQL, see PostgreSQL backup tools compared.
Questions
Does Supabase back up Storage files?
No. Supabase's daily backups and PITR hold the storage.objects table, which lists
the files, but not the files. Restoring an old backup does not bring back a file deleted
after it. Back up the bucket separately through its S3 endpoint, or with a tool above that
says Yes under Storage files.
Are Supabase backups deleted when the project is deleted?
Yes. Supabase's documentation says deleting a project removes all its data, including the backups it stored. A copy in a bucket outside Supabase is the one that survives.
Does the Free plan have backups?
No. Supabase recommends exporting the database yourself with the CLI's
db dump. A free tool above, or the GitHub Actions workflow, does that on a
schedule.
Which Supabase backup tools test the restore?
BackupDrill (weekly, on paid plans), BackProve (daily), ReviveDB (each backup) and SafeGrd (on every plan, with a signed record). Reeve counts rows against the dump file without restoring it.