Short answer

Lakebase Postgres keeps a continuous log of every write (the Write-Ahead Log, or WAL). With instant restore, you point at any second within your history window and restore a root branch to that exact state, usually in seconds. There's no nightly snapshot to find, and no pg_restore to run. Child branches don't support point-in-time restore.

How instant restore works

The Lakebase Postgres architecture stores the WAL natively, so any point in time within your history window is queryable. You don't restore from a backup file. You restore a root branch to a timestamp or LSN (Lakebase Postgres keeps an automatic backup branch of the pre-restore state), or you create a new branch from a timestamp so you can inspect first.

History window by plan:

PlanHistory windowCost
Free plan6 hours, capped at 1 GB-monthIncluded
Launch planUp to 7 days$0.20/GB-month
Scale planUp to 30 days$0.20/GB-month

You can restore through the Neon Console, the CLI, or the API.

Restoring a branch from the CLI

# Roll a root branch back to 10 minutes ago (backup branch name is required for ^self)
neon branches restore main ^self@2026-05-17T13:45:00Z --preserve-under-name main_pre_restore

# Or fork a new branch from that point and inspect first
neon branches create --name recovery --parent 2026-05-17T13:45:00Z

The second approach is the safer pattern when you want to verify data before changing production: create a recovery branch, confirm the rows, then restore or copy what you need.

In-place restore overwrites the branch

Restoring a root branch replaces its current data and schema for every database on that branch. Lakebase Postgres creates a backup branch automatically (or via --preserve-under-name on the CLI). Use Time Travel Assist to confirm the restore point before you restore.

Picking the right history window

A longer window catches slow-rolling bugs (someone notices the missing rows three weeks later) but costs more in WAL storage. A 30-day window on a 10 GB database with active writes typically adds a few dollars per month. See history window configuration for tuning.

How other Postgres services handle point-in-time recovery

ServiceMechanismGranularity
NeonInstant restore via copy-on-write for root branches from any timestamp in the history window. See branch restore.Down to the millisecond
AWS RDS for PostgresAutomated backups in S3 plus transaction logs allow restore to a new database instance at any second within the retention period. The new instance must boot before you can connect. See RDS PITR.One second, into a new instance
SupabaseDaily backups by default (up to 7 days on Pro, 14 on Team, 30 on Enterprise). For finer recovery you add the PITR add-on, billed from $0.137/hr (~$100/mo) for 7 days of retention, requiring Small compute or larger. Worst-case RPO is about two minutes.Up to seconds with PITR add-on (≈2 min worst-case RPO)

The main differences: Lakebase Postgres restore updates the branch in place (with an automatic backup) rather than provisioning a new instance, and PITR history is bundled into all plans instead of being a per-project add-on.

Test a restore

Create a branch, run a bad query, and roll it back. The whole loop takes under a minute.