Skip to content
ReviveDB

Supabase backup tools compared

Six ways to back up a Supabase project, compared on what they actually capture. Every claim links to the vendor's own documentation.

  • Every row sourced
  • Our own limits listed
  • Checked 9 September 2026

The short version

Supabase native backups and PITR protect the database inside your project, but exclude Storage objects and cannot be restored elsewhere if the project itself is gone. pg_dump, pgBackWeb and SnapShooter give you a portable database dump but leave Storage, Edge Functions and configuration to you. SimpleBackups and ReviveDB both cover the wider project. The difference between those two is that SimpleBackups writes to a bucket you own, while ReviveDB stores the copy itself and restore-tests every database backup automatically.

Coverage by option

What each option captures. Follow the source links under the table to verify any row.

ComponentSupabase built-inSimpleBackupsOttomatikGeneric Postgres toolsReviveDB
PostgreSQL databaseYesYesYesYesYes
Auth users and identitiesYesYesPartialPartialYes
Storage object bytesNoYesNoNoYes
Edge Function bundlesNoYesNoNoYes
Project configuration1NoYesNoNoNo
Restore-tested automatically2NoUnclearUnclearNoYes
Restore test compares more than row counts3NoUnclearUnclearNoYes
Copy survives project deletionNoYesYesYesYes
Backup can be downloadedPartialYesYesYesYes
Self-hostableNoNoNoPartialNo
Bring your own bucketNoYesYesYesNo
Price4$25/mo$49/mo$14/moFree–$14/moFree / €9/mo
  1. Supabase built-in covers both daily backups and PITR. A daily backup can be restored from the dashboard; a PITR snapshot is not directly downloadable. Both stay with the project and are removed when the project is deleted.
  2. SnapShooter, Supabackup, pgBackWeb and pg_dump are listed together because they cover exactly the same components: the database and nothing else. They differ in who runs them, from fully managed to your own cron job.
  3. 1ReviveDB restores bucket settings and Function deploy metadata. General project settings, Auth providers and external service connections stay with the destination project.
  4. 2Restore-tested means the database dump is restored into an isolated PostgreSQL instance and compared against a capture-time inventory, on every backup. For ReviveDB this covers the database. Storage object bytes and Edge Function bundles are verified by SHA-256 hash instead. Where a vendor does not document a restore test, this is recorded as not documented rather than as an absence.
  5. 3A restore can return every row and still be wrong: permissions you revoked, policies on Storage tables, a scheduled job that came back switched on. ReviveDB compares schema and structure, grants on tables, sequences, functions and schemas, RLS policies and forced RLS, sequence values, extensions and their schema, publication membership and scheduled jobs, alongside row counts. Where a vendor documents a restore test without saying what it compares, this is recorded as not documented.
  6. 4Lowest paid tier, as published by each vendor on the date below. Supabase, SimpleBackups, SnapShooter and Ottomatik quote in dollars excluding VAT; ReviveDB quotes in euro including VAT. Supabase PITR adds $100 per month per 7 days of retention on top of the plan. pgBackWeb and pg_dump have no licence cost but you pay for the server, the storage and your own time.

Which one fits

What ReviveDB deliberately does not do

Ruling us out quickly is more useful to you than a longer pitch. These are deliberate, and none of them are on the roadmap.

Common questions

No. Supabase documents that database backups do not include objects stored through the Storage API, because the database holds only metadata about those objects. Storage files need a separate backup, whether that is a script you write, SimpleBackups or ReviveDB.

PITR recovers the database to a chosen point in time, which handles a bad write well. Its snapshots are not directly downloadable and are removed with the project. For project deletion or account loss you need an off-platform copy as well.

None automatically. Supabase recommends manual exports on the free plan, so you need to arrange those exports yourself.

A backup job reporting success only proves that a file was written. It does not prove the file can be restored. Restore-testing checks this directly by restoring the dump into a separate PostgreSQL instance and comparing it with what was captured.

Sources

Create your first recovery point free.

Connect one Supabase project. The first backup starts right away and shows what can be recovered. No card required.