DROP TABLE hallucination
away from ruining everyone’s afternoon. Podflare gives each session
its own fresh Postgres (or Supabase stack) that evaporates when the
sandbox ends.
Ephemeral Postgres per session
Install Postgres inside the sandbox, start it, connect as a user the agent can’t escalate out of:What this unlocks
- “Test my migration” agents. Customer pastes a migration SQL, agent runs it against a fresh DB, returns whether it applies, what changed, and any lint warnings.
- Generated-query validators. Agent writes SQL, agent runs it against a schema-only copy, catches syntax errors before showing the user.
- Demo environments. Each trial user gets their own Postgres; teardown is automatic at sandbox end.
Local Supabase stack
For AI apps being built on Supabase, you want the full stack — Postgres + PostgREST + GoTrue + Storage — not just raw Postgres. Supabase’s CLI starts everything with one command:Per-session isolation matters
All of the above run only in the lifetime of one sandbox. When the sandbox dies — explicitdestroy, idle timeout, max lifetime —
the database, its rollbacks, its generated data all go with it.
No orphan DBs. No “whose user table is this?” cleanup scripts.
Pitfalls
- Start-up cost is real. Postgres cold-start: ~2–4 s. Supabase: ~15–25 s. Run the install in the sandbox’s first turn, keep the sandbox alive across the agent’s session.
- Free tier caps at 1 GB RAM — enough for Postgres + a small Supabase; not enough for big data loads. Upgrade to Pro (4 GB) for real workloads.
- If you need the DB after the session ends, dump with
pg_dumpat the end and download the file via the sandbox file API. Otherwise it’s gone.

