Unbase escape Supabase lock-in

Escape Supabase lock-in.

Unbase migrates your database, storage, and auth off Supabase and onto infrastructure you own. Any Postgres, any S3-compatible bucket, and Better Auth. Read-only at the source, verified at the target.

What comes with you

Database
Introspects your schema + foreign keys, streams every row, and loads it into any Postgres in FK-safe order. Composite keys, enums, arrays, pgvector handled. Counts verified at the end.
Storage
Mirrors every object from Supabase Storage to R2, S3, GCS, or MinIO. Resumable, in parallel, optionally converting images to WebP, then rewrites the URLs in your data to the new home.
Auth
Moves users and OAuth identities to Better Auth, preserving the original bcrypt password hashes so nobody has to reset their password.

Seven phases, one snapshot

plan
extract
storage
rewrite
load
auth
verify

Extraction and loading are decoupled through a portable on-disk snapshot which doubles as a backup. Resume at any phase.

Read-only at the source
Unbase never writes to your Supabase project. Worst case, you re-run it.
Passwords just work
Bcrypt hashes are preserved verbatim. Migrated users log in without a reset.
Verified
Per-table row-count reconciliation, with a strict mode for fresh targets.
Resumable
Everything flows through a portable on-disk snapshot. Stop and resume any phase.

Your data, your infrastructure.

Run the guided migration, or drive each phase yourself from the CLI. Nothing executes until you confirm.