note
Remix is now React Router v7. The features of the Remix framework have been merged into React Router v7. If you are starting a new project, we recommend using React Router. Follow our React Router guide to connect to Neon.
For more information, see the Remix announcement.
Remix is an open-source full stack JavaScript framework that lets you focus on building out the user interface using familiar web standards. This guide explains how to connect Remix with Lakebase Postgres using a secure server-side request.
To create a project on Neon and access it from a Remix application:
Create a Neon project
If you do not have one already, create a Neon project. Save your connection details including your password. They are required when defining connection settings.
- Navigate to the Projects page in the Neon Console.
- Click New Project.
- Specify your project settings and click Create Project.
Create a Remix project and add dependencies
-
Create a Remix project if you do not have one. For instructions, see Quick Start, in the Remix documentation.
-
Add project dependencies using one of the following commands:
npm install @neondatabase/serverless
-
Store your Neon credentials
Add a
.envfile to your project directory and add your Neon connection string to it. You can find the connection string for your database by clicking the Connect button on your Project Dashboard. For more information, see Connect from any application.DATABASE_URL="postgresql://<user>:<password>@<endpoint_hostname>.neon.tech:<port>/<dbname>?sslmode=require&channel_binding=require"Configure the Postgres client
There are two parts to connecting a Remix application to Neon. The first is
db.server. Remix will ensure any code added to this file won't be included in the client bundle. The second is the route where the connection to the database will be used.db.server
Create a
db.server.tsfile at the root of your/appdirectory and add the following code snippet to connect to your Neon database:import { neon } from '@neondatabase/serverless'; const sql = neon(process.env.DATABASE_URL); export { sql };route
Create a new route in your
app/routesdirectory and import thedb.serverfile.import { sql } from '~/db.server'; import { json } from '@remix-run/node'; import { useLoaderData } from '@remix-run/react'; export const loader = async () => { const response = await sql`SELECT version()`; return response[0].version; }; export default function Page() { const data = useLoaderData(); return <>{data}</>; }Run the app
When you run
npm run devyou can expect to see the following on localhost:3000:PostgreSQL 16.0 on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
Next steps
- Set up Managed Better Auth: Add managed authentication that branches with your database
- Add Object Storage: S3-compatible file storage that branches with your database
- Deploy a Function: Run backend compute next to your database, no separate hosting needed
- Call an LLM with AI Gateway: Access foundation models from Anthropic, OpenAI, Google, and more with one credential
Need help?
Join our Discord Server to ask questions or see what others are doing with Neon. For paid plan support options, see Support.








