← SOP Library

Runbooks

Supabase Project Lifecycle — Pause Prevention, Restoration, Tier Sizing

Owner Build & Infrastructure Updated 2026-05-27 For Operator (Jerry); CyberSuite Engineer

Supabase Project Lifecycle — Pause Prevention, Restoration, Tier Sizing

Document name: supabase-project-lifecycle.md Version: 1.0.0 Last updated: 2026-05-27 Owned by: Build & Infrastructure Pairs with: cybersuite-supabase-runbook.md (project setup, deploy, env vars) — wherever that runbook lives; this document covers the lifecycle layer above setup


Purpose

The CyberSuite assessment app’s Supabase project (cmevvhyvrkphsfkghpix) paused on or about 2026-05-06 after the initial deploy was followed by ~10 days of no incoming traffic. The project was restored on 2026-05-26 with all data intact. This runbook documents:

  1. Why Supabase projects pause (Free-tier behavior)
  2. How to verify which tier the project is on
  3. How to prevent pause recurrence
  4. What the 90-day deletion clock means
  5. The restoration procedure
  6. Monitoring options
  7. The Free vs Pro cost picture
  8. CyberSuite’s recommendation

The short version: a production assessment app cannot run on Free tier. Pro at $25/mo is the right answer once revenue covers it, and a daily uptime ping is the stopgap before then.


1. Why Supabase projects pause

Supabase Free-tier projects pause after 7 consecutive days of inactivity. “Inactivity” here means no database connections, no incoming API requests, no Edge Function invocations against the project. A Free project sitting with no traffic for 7 days transitions from ACTIVE_HEALTHY to INACTIVE automatically.

What happened with the CyberSuite project:

Pro-tier projects are not subject to this rule. Pro projects stay ACTIVE_HEALTHY regardless of traffic.


2. How to verify the current tier

Three options, in increasing order of definitiveness:

Option A — Supabase dashboard

  1. Open https://supabase.com/dashboard/project/cmevvhyvrkphsfkghpix
  2. Left sidebar → Project SettingsBilling
  3. The plan card at the top names the current plan: Free, Pro, Team, or Enterprise

Option B — Project home banner

Option C — Supabase CLI (advanced)

supabase projects list

The output column shows the project’s plan if you’re authenticated with an account that owns the project.


3. How to prevent pause

Two paths. Pro is recommended.

Path A — Upgrade to Pro ($25/mo per project)

This is the production answer. Project Settings → Billing → Upgrade. Pro removes the 7-day inactivity pause entirely. It also unlocks the items listed in section 7.

Path B — Stay on Free with a daily uptime ping

This is the stopgap. Set up an external service to hit a Supabase Edge Function or REST endpoint once per day. Any database connection within 7 days resets the inactivity timer.

Acceptable ping targets, in order of preference:

  1. A no-op Edge Function (e.g., https://cmevvhyvrkphsfkghpix.supabase.co/functions/v1/healthcheck) that returns 200 OK and exits.
  2. A read against a small table via the REST API.

Acceptable ping services:

This is a stopgap because (a) it does not provide the additional resources Pro provides, (b) any ping outage of >7 days still triggers pause, and (c) it does not fix the larger problem: Free tier is not intended for production.


4. The 90-day deletion clock

When a Free project pauses, Supabase starts a 90-day countdown. During those 90 days:

If the 90 days elapse without restoration, the project and its data are permanently deleted. There is no recovery path past day 90.

The CyberSuite project entered INACTIVE around 2026-05-13. It was restored 2026-05-26, well inside the window. The next pause cycle (if Free is retained) would start 7 days after the last database connection.


5. Restoration procedure

If the project shows Inactive in the dashboard:

  1. Open https://supabase.com/dashboard/project/cmevvhyvrkphsfkghpix
  2. The project home page shows a banner: “Restore project”
  3. Click Restore project. Confirm the prompt.
  4. Wait approximately 2 to 5 minutes. The dashboard transitions through RESTORING to ACTIVE_HEALTHY.
  5. Verify by hitting one of the existing Edge Function URLs:
    • curl -i https://cmevvhyvrkphsfkghpix.supabase.co/functions/v1/submit
    • Expect HTTP 405 or 400 (route exists, method/body wrong) — NOT a connection error.
  6. Verify the database is responsive: dashboard → SQL Editor → select count(*) from submissions;

If restoration fails or the project never returns to ACTIVE_HEALTHY, open a Supabase support ticket from the dashboard. Free-tier support response is best-effort; Pro support is the same channel with priority.


6. Monitoring

Supabase does not send automatic email alerts on project state changes for Free-tier projects. Two ways to know if the project pauses:

Option A — UptimeRobot or equivalent If a daily uptime ping is configured (section 3, Path B), failure of the ping is the first signal that pause is approaching or has happened. Configure UptimeRobot to email on three consecutive failures.

Option B — Supabase notification settings Dashboard → Account Settings → Notifications. Enable “Project status changes”. Supabase will email the account owner when the project transitions between states (paused, restored). This works on Free and Pro.

For production: combine both. The notification setting tells you when state changes. The uptime ping prevents the state change in the first place (and tells you sooner if anything else goes wrong).


7. Free vs Pro — what Pro unlocks beyond no-pause

Free-tier limits (as of 2026):

Pro-tier ($25/mo per project, as of 2026):

For the CyberSuite assessment app, the operationally important Pro features are:

  1. No pause (the immediate driver)
  2. Daily backups (matters once we have real customer submissions; a corrupted schema or bad migration is recoverable)
  3. Higher compute (matters during marketing pushes where a wave of prospects hits the assessment in a short window)

8. Cost implications

CyberSuite production infrastructure cost on Pro tier:

ComponentCostNotes
Supabase Pro (cmevvhyvrkphsfkghpix)$25/moOne project; covers assessment app DB + Edge Functions
Cloudflare Workers Paid$5/moRequired for Reports Engine routes; covers Browser Rendering API quota
Fixed infrastructure subtotal$30/moFloor cost regardless of customer count

Additional per-customer costs (Resend email sends, Cloudflare Pages bandwidth) remain on free tiers at low volume and shift to usage-based billing at scale.

Below first paying customer revenue, the $30/mo is a real cost out of pocket. Above first customer revenue ($500/mo Standard plan would cover ~16x the infra floor), it is negligible. The decision on when to upgrade Supabase to Pro is therefore an Operations call, not a Build call — see the recommendation below.


9. Recommendation

Upgrade Supabase to Pro before the assessment app accepts the first real prospect submission. The trigger conditions, in priority order:

  1. Hard trigger: Cloudflare Pages deployment goes live at assessment.cybersuite.tech with the embed snippet on the marketing site. From that moment the project is in production posture and pause risk is unacceptable.
  2. Soft trigger: A scheduled sales conversation where a prospect is expected to visit the assessment within days.

Until those triggers fire, Free tier with a daily uptime ping is acceptable but fragile. Set the ping up now if Pro is deferred.

The Pro upgrade is one click from Project Settings → Billing → Upgrade. Pro pricing is prorated daily, so partial-month upgrades are not punitive.

Operator decision needed: when to upgrade to Pro. This belongs in Operations because it’s a $25/mo recurring spend decision tied to launch timing.


Change log

VersionDateChange
1.0.02026-05-27Initial runbook drafted after the 2026-05-06 → 2026-05-26 pause/restore cycle

How to update

Edit this file in place. Increment the version in the header per semantic versioning rules:

Update the change log table with one line summarizing the change.