What you will learn:
When to choose this path
Choose manual connection if you prefer not to install a Marketplace integration. This approach is ideal when you:
- Deploy via a custom pipeline (self-hosted CI, monorepo, etc.)
- Need non-Vercel hosting (e.g. Cloudflare Workers + Vercel Functions hybrid)
- Want full control over branch naming, seeding, migration, or teardown
If you simply want Neon and Vercel with minimal setup, stick to the managed integrations. They're simpler and include UI support.
Prerequisites
- Neon project with database (get a connection string via Connect in the Console)
- Deployed Vercel project
Connection steps
-
Copy the connection string from the Neon Console. Click Connect on your Project Dashboard, select the branch, role, and database you want, then copy the Connection string.
For example:
postgresql://alex:AbC123dEf@ep-cool-darkness-123456.us-east-2.aws.neon.tech/dbname?sslmode=require&channel_binding=require ^ ^ ^ |- <role> |- <hostname> |- <database>
-
In the Vercel dashboard, open your project and navigate to Settings → Environment Variables.
-
Add either:
Key: DATABASE_URL Value: <your connection string>
or the granular
PG*
variables:PGUSER=alex PGHOST=ep-cool-darkness-123456.us-east-2.aws.neon.tech PGDATABASE=dbname PGPASSWORD=AbC123dEf PGPORT=5432
note
Neon uses the default Postgres port,
5432
. -
Select which environments need database access (Production, Preview, Development) and click Save.
-
Redeploy your application (or wait for your next deployment) for the variables to take effect.
That's it. Your Vercel app now connects to Neon just like any other Postgres database.
CI/CD-based Preview Branching (GitHub Actions)
Looking for a full CI/CD recipe? See Automate branching with GitHub Actions.
Need help?
Join our Discord Server to ask questions or see what others are doing with Neon. Users on paid plans can open a support ticket from the console. For more details, see Getting Support.