Before you commit to yet another AWS instance, see how Neon cuts costs at scale
Docs/Neon Auth

Neon Auth

beta

Add authentication to your project. Access user data directly in your Postgres database.

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.

  1. 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.

    Neon Auth Console - Ready for users

  2. 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.

  3. 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.

  4. 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.

    Create user in Neon Console

    Now you can see your users in the database.

  5. 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;
    idnameemailcreated_atupdated_atdeleted_atraw_json
    51e491df...Sam Patelsam@startup.dev2025-02-12 19:43...2025-02-12 19:46...null{"id": "51e491df...", ...}

Next steps

Want to learn more or go deeper?

Last updated on

Was this page helpful?