Engineering

Restoring from a backup you have never tested

Ask a team when they last tested a restore and the usual answer is never. That is not carelessness. On most no-code platforms there is nothing to test: you get a button that rolls the account backwards, and either you press it during an emergency or you never press it at all. A backup you can only exercise under pressure is a promise, and you find out what the promise was worth on the worst day of the quarter.

A rollback button and a backup are different objects

Webflow creates restore points automatically as you work. Its docs are specific about the trigger: a restore point on every 50th auto-save, plus any you make by hand, and Webflow states plainly that it does not offer scheduled backups. Paid site plans keep unlimited restore points and free Starter sites keep the two most recent. For undoing a bad Tuesday in the Designer that is genuinely good, and better than what a lot of hand-rolled sites have.

Airtable schedules snapshots by usage rather than by clock. Heavy use gets you roughly one a day, lighter use gets fewer, and after a manual snapshot you wait a few hours before you are allowed another. Retention runs two weeks on Free, one year on Team, two years on Business, three on Enterprise Scale. The help center answers the obvious question directly: no, you cannot schedule snapshots at automated intervals.

What neither gives you is an artifact. There is no file to download, no checksum to compare, nothing to copy to storage you control or hand to an auditor. The recovery lives inside the account it is meant to protect, and the only way to find out whether it works is to use it on production.

The thing you restore is not the thing you lost

Restoring an Airtable snapshot creates a new base. Record, view, table and interface IDs survive, but the base ID changes, and the docs say the existing base cannot be overwritten to return it to a previous state. So the recovered data sits at a new address while every script, automation and partner integration keeps calling the base you were trying to replace. The restored base also arrives with no revision history; that history stays with the original, read only.

Webflow's restore has its own edges, all documented. reCAPTCHA settings refresh, so you re-add your keys or forms quietly stop working. Collection items that were scheduled to publish come back queued instead. Published-on dates jump to the current time. And any backup taken before 25 March 2024 resets Collection and item IDs, which breaks the API calls and third-party connections built on them.

None of this is hidden. Both vendors write it down, which is more than some infrastructure companies manage. The problem is that you learn it while restoring, and restoring is when you have the least attention to spare.

What a database lets you rehearse

Supabase keeps seven days of daily backups on Pro, fourteen on Team, thirty on Enterprise. Point-in-time recovery is a paid add-on: about $100 a month at seven days of retention, $200 at fourteen, $400 at twenty-eight, billed hourly at $0.137, $0.274 and $0.55. What you buy is granularity. Supabase restores the last physical backup and replays the write-ahead log up to the second you name, so a bad migration at 14:32 gets undone at 14:31 rather than at midnight.

The part that matters more costs nothing. A pg_dump from the CLI is a file. You can restore it on a laptop, in CI, into a throwaway project, on a Thursday when nothing is on fire. A restore you have actually run beats any retention number in a pricing table, and it is the only version of this that you can put in front of a client who asks what happens if the database is wrong.

We hit this during the Stay World Class migration off Webflow and Xano. The move to Next.js, NestJS and Supabase ran through a four stage ETL that mapped every legacy ID onto a PostgreSQL UUID, and the reason it worked was that the mapping was a script we could run again. Each rehearsal produced the same database from the same inputs. Lighthouse went from 55.91 to 91 and LCP dropped 77%, but the number that let us sleep was the count of times we had already done the cutover.

When the rollback button is genuinely enough

If your Webflow site is marketing pages plus a blog, unlimited restore points are more recovery than most teams have, and the failure you actually face is a designer deleting a section. Press the button. If your Airtable base is an internal tracker that nothing reads by API, a new base ID costs you a bookmark. Staying put is the right call whenever the data is reproducible and you are its only consumer.

It stops being enough the moment something else depends on your IDs: a mobile app, a billing job, a partner pulling records on a schedule, anything that treats your base as a stable address. That is the point where recovery has to be a file you hold and a procedure you have run, rather than a button you hope works.

Sources

Is your platform outgrowing its stack?

Book a call and we'll walk through how we'd approach your platform, with an estimate grounded in a working prototype.