Neon Auth lets you add authentication to your app in seconds — user data is synced directly to your Neon Postgres database, so you can query and join it just like any other table.
Beta
Neon Auth is in beta and ready to use. We're actively improving it based on feedback from developers like you. Share your experience in our Discord or via the Neon Console.
Add Neon Auth to a project
Go to pg.new to create a new Neon project.
Once your project is ready, open your project's Auth page. Neon Auth is ready for you to get started.
Click Setup instructions to continue.
Get your Neon Auth keys
In the Setup instructions tab, click Set up Auth.
This gets you the Neon Auth environment variables and connection string you need to integrate Neon Auth and connect to your database in Next.js. If you're using another framework, just change the prefixes as needed (see below).
You can use these keys right away to get started, or skip ahead to try out user creation in the Neon Console.
# Neon Auth environment variables for Next.js NEXT_PUBLIC_STACK_PROJECT_ID=YOUR_NEON_AUTH_PROJECT_ID NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY=YOUR_NEON_AUTH_PUBLISHABLE_KEY STACK_SECRET_SERVER_KEY=YOUR_NEON_AUTH_SECRET_KEY # Your Neon connection string DATABASE_URL=YOUR_NEON_CONNECTION_STRING
Are you a Vercel user?
If you're using the Neon native integration on Vercel, the integration automatically sets these environment variables for you in Vercel when you connect a Vercel project to a Neon database. Learn more.
Set up your app
Neon Auth works with any framework or language that supports JWTs — Next.js, React, and JavaScript/Node, for example.
Clone our template for the fastest way to see Neon Auth in action (Next.js).
git clone https://github.com/neondatabase-labs/neon-auth-nextjs-template.git
Or add Neon Auth to an existing project.
Run the setup wizard
npx @stackframe/init-stack@latest
This sets up auth routes, layout wrappers, and handlers automatically for Next.js (App Router).
Use your environment variables
Paste the Neon Auth environment variables from Step 2 into your
.env.local
file.Then
npm run dev
to start your dev server.Test your integration
Go to http://localhost:3000/handler/sign-up in your browser. Create a user or two, and you can them show up immediately in your database.
Create users in the Console (optional)
You can create test users directly from the Neon Console — no app integration required. This is useful for development or testing.
Now you can see your users in the database.
See your users in the database
As users sign up or log in — through your app or by creating test users in the Console — their profiles are synced to your Neon database in the
neon_auth.users_sync
table.Query your users table in the SQL Editor to see your new user:
SELECT * FROM neon_auth.users_sync;
id name email created_at updated_at deleted_at raw_json 51e491df... Sam Patel sam@startup.dev 2025-02-12 19:43... 2025-02-12 19:46... null {"id": "51e491df...", ...}
Next steps
Want to learn more or go deeper?
- How Neon Auth works — See a before and after showing the benefits of having your user data right in your database
- Neon Auth tutorial — Walk through our demo app for more examples of how Neon Auth can simplify your code
- Best Practices & FAQ — Tips, patterns, and troubleshooting.
- Neon Auth API Reference — Automate and manage Neon Auth via the API.