First query against a side project’s Neon database after a quiet day: noticeably slow. Not a problem to fix — it’s the pricing model working as designed. Neon suspends compute after a few minutes of inactivity and cold-starts it on the next connection; that suspend time is exactly why the free tier can exist.
Two practical takeaways:
- For side projects and prototypes, accept it. A one-time cold start on the first visit after idle is a fine trade for $0 Postgres with branching.
- For anything latency-sensitive in production, either pay for always-on compute or keep the connection warm — but if you’re reaching for a cron that pings the database every four minutes to defeat autosuspend, you’re fighting the product instead of using it. Graduate to a paid tier; that’s what crossing the threshold is supposed to mean.