THE SAFETY NET / LOVABLE + SUPABASE

Backing up your Lovable app's database

THE APP IS A PROMPT AWAY FROM REBUILT — THE DATABASE ISN'T

Lovable's magic is that the app is disposable: lose it, fork it, regenerate it, the prompts rebuild it this afternoon. The database underneath has the opposite property. It's a real Supabase Postgres project — yours, not Lovable's — holding the one thing no prompt can regenerate: your users' data. This page is the five-minute safety net for it.

What Lovable keeps vs what you must keep

The Lovable-specific risk: the approval click

Every time you prompt a feature that touches existing data, Lovable proposes a schema migration and you click approve. That flow is the product working as intended — and it's also the riskiest moment your data has. A column rename that's actually a drop-and-recreate, a “cleanup” that cascades — they look exactly like every other approval. You won't catch it by reading the SQL more carefully (if you wanted to read SQL, you wouldn't be using Lovable). You catch it by making the click safe: seal a checkpoint before approving anything that touches existing tables, and the worst case becomes “restore the table from two minutes ago.”

Set it up in five minutes

  1. Find your Supabase connection string. Your Lovable app's data lives in your own Supabase project. Open supabase.com → your project → Project Settings → Database → Connection string (URI tab). Use the direct connection or session-mode pooler on port 5432.
  2. Paste it into OffsiteDB. Sign up, paste the connection string, and pick a schedule. Optionally point backups at your own S3/R2/B2 bucket — or use the managed vault while trialing.
  3. First proven backup runs in minutes. OffsiteDB dumps, encrypts, and ships the snapshot, then restores it into a real Postgres and counts the rows. Your dashboard says 'proven', not 'uploaded'.
  4. Click 'Back up now' before approving big schema changes. When Lovable proposes a migration that touches existing tables, seal a checkpoint first. If the change goes wrong, you restore just the damaged tables from minutes ago.

Want your copies in storage you own? Any of the Supabase bucket guides walk through it — R2 is the usual pick (no egress fees).

Keep shipping at prompt speed

Start free — paste one connection string, get your first proven backup in minutes. Or see the live demo first.

FAQ

Doesn't Lovable back up my app already?
Lovable keeps your app — the code, the prompts, the project history. Your data lives separately, in your own Supabase project, and follows Supabase's rules: no automated backups on the free tier, about a week of retention on Pro. The app is recoverable from Lovable; the data is your job.
Where exactly is my Lovable app's database?
In the Supabase project you connected (or Lovable created) — it's yours, visible at supabase.com. That's where the connection string lives: Project Settings → Database → Connection string. Lovable's editor doesn't expose it because it belongs to your Supabase account, not to Lovable.
I approve the migrations Lovable suggests. Isn't that enough review?
An approval click is not a code review — and that's fine, it's the point of building this way. But a rename that's secretly a DROP-and-recreate looks identical in a quick glance. The fix isn't reading SQL more carefully; it's making approval safe: a restore-tested checkpoint sealed before you click yes.
I'm not technical. How hard is the restore if something goes wrong?
Every snapshot is a standard Postgres archive that OffsiteDB has already test-restored — you download it decrypted or restore selectively with one command (the dashboard shows it). And because every snapshot was drilled when it was taken, 'will the restore work?' was answered before you needed it.
Does this work with Supabase's free tier?
Yes — and the free tier is exactly where it matters most, because Supabase keeps zero automated backups there. A daily (or hourly) encrypted snapshot is the difference between a bad migration being an annoyance and being the end of your customers' data.

Keep reading