Neon

Serverless Postgres with autoscaling, branching and scale-to-zero.

Free tier

100 projects, each with 100 CU-hours/month, 1 GB storage (20 GB total) and 5 GB egress/month.

  • 100 projects
  • 100 CU-hours per project per month
  • 1 GB Postgres storage per project, 20 GB total across all projects
  • 5 GB public network transfer (egress) per project per month
  • Autoscaling up to 2 CU (8 GB RAM)
  • 10 branches per project
  • 6-hour restore window (1 GB limit)
  • 1 manual snapshot
  • 1 day monitoring retention

Gotchas

  • Compute scales to zero after 5 minutes idle and this can't be disabled on Free; the next query wakes it within a few hundred milliseconds.
  • Using up a project's 100 CU-hours or 5 GB egress suspends its compute until the next billing period or an upgrade.
  • Exceeding 1 GB in a project (or 20 GB in total) makes inserts, updates and deletes fail until space is freed; data is not deleted.
  • Neon says Free should be avoided for production workloads where uninterrupted availability matters.
  • The CLI's npm package is now neon (Homebrew formula is still neonctl); neon auth is a legacy alias for neon login.

Setup

What you do

  1. Sign up at https://neon.com/signup (GitHub or Google sign-in is fastest).
  2. Approve the browser prompt from neon login, or create an API key in the Console under Account settings > API keys.

How your agent gets access

CLI login

Install
npm i -g neon@latest
Run
neon login

Opens a browser for the human to approve; credentials are saved to ~/.config/neon/credentials.json.

API key

Get it at
console.neon.tech
Env var
NEON_API_KEY

Create under Account settings > API keys; the key is shown only once. The CLI uses it instead of neon login.

Connection string

Run
neon connection-string --pooled
Get it at
console.neon.tech
Env var
DATABASE_URL

Or copy it from the Connect button in the Console; the -pooler host enables connection pooling.

Check it worked

neon me

Optional: start without an account

Creates a temporary resource before you have an account, for trying things out. The steps above are the normal path.

Run
neon claim create --env-pull
Expires
Unclaimed projects expire after 72 hours and are capped at 100 MB storage and 1 GB transfer until claimed.
To keep it
The human runs neon claim accept, which opens the claim page (--no-open prints the URL instead); each claim code lasts 15 minutes.

Writes the connection details to .env. Functions, Object Storage and AI Gateway stay unavailable until the project is claimed.

Sources

Something out of date?