Neon
Cost
Performance
Stability
Idle compute cost
Why your database never scales to zero.
Overview
Neon bills compute by the second and suspends when idle — unless something keeps waking it. lumioguard reads your autosuspend configuration, compute limits, and the background jobs and health checks that poll the database on a timer.
What it looks for
- Autosuspend disabled, so compute bills as always-on
- Autosuspend timeouts over an hour on non-production branches
- Pinned min and max compute units, preventing scale-down
- Pools with idleTimeoutMillis set to 0 or missing in long-lived processes
- Background polls under five minutes, and uptime monitors querying the database
Why it matters
An uptime monitor running a SELECT every 30 seconds keeps compute alive continuously, so you pay for a permanently-on database to answer a check nobody reads. Autosuspend disabled on a preview branch does the same thing, more expensively, for a branch nobody uses.
Rules in this check
| What it reports | Fix path |
|---|---|
| Neon autosuspend disabled — compute bills as always-on | Guide |
| Autosuspend timeout > 1 h on non-prod branch | Guide |
| Pinned min/max CU (no scale-down) | Guide |
| Pool with idleTimeoutMillis: 0 or missing (long-lived process) | Pull request |
| Background poll < 5 min interval hitting DB | Guide |
| Health-check SELECT used by uptime monitor | Guide |
How the fixes arrive
Pull requestLow-risk changes arrive as a pull request on a lumioguard branch, with a breakage analysis attached. You review and merge it.
GuideChanges only you can make safely arrive as a step-by-step guide you can follow yourself or hand to your coding agent.
Run them all on your app
Connect your repo and your live services with read-only scopes. The first scan is free, and nothing changes without your approval.