--- title: Connect a Hono application to Neon subtitle: Set up a Neon project in seconds and connect from a Hono application enableTableOfContents: true updatedOn: '2025-10-24T12:48:41.460Z' --- [Hono](https://hono.dev/) is a lightweight, multi-runtime web framework for the Edge, Node.js, Deno, Bun, and other runtimes. This topic describes how to create a Neon project and access it from a Hono application. To create a Neon project and access it from a Hono 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. 1. Navigate to the [Projects](https://console.neon.tech/app/projects) page in the Neon Console. 2. Click **New Project**. 3. Specify your project settings and click **Create Project**. ## Create a Hono project and add dependencies 1. Create a Hono project if you do not have one. For instructions, see [Quick Start](https://hono.dev/docs/getting-started/basic), in the Hono documentation. 2. Add project dependencies using one of the following commands: ```shell npm install pg ``` ```shell npm install postgres ``` ```shell npm install @neondatabase/serverless ``` ## Store your Neon credentials Add a `.env` file to your project directory and add your Neon connection string to it. You can find your connection details by clicking **Connect** on the Neon **Project Dashboard**. For more information, see [Connect from any application](/docs/connect/connect-from-any-app). ```shell shouldWrap DATABASE_URL="postgresql://:@.neon.tech:/?sslmode=require&channel_binding=require" ``` ## Configure the Postgres client In your Hono application (e.g., in `src/index.ts` or a specific route file), import the driver and use it within your route handlers. Here's how you can set up a simple route to query the database: ```typescript import { Pool } from 'pg'; import { Hono } from 'hono'; import { serve } from '@hono/node-server'; const app = new Hono(); const pool = new Pool({ connectionString: process.env.DATABASE_URL, ssl: true, }); app.get('/', async (c) => { const client = await pool.connect(); try { const { rows } = await client.query('SELECT version()'); return c.json({ version: rows[0].version }); } catch (error) { console.error('Database query failed:', error); return c.text('Failed to connect to database', 500); } finally { client.release(); } }); serve(app); ``` ```typescript import { Hono } from 'hono'; import postgres from 'postgres'; import { serve } from '@hono/node-server'; const app = new Hono(); app.get('/', async (c) => { try { const sql = postgres(process.env.DATABASE_URL, { ssl: 'require' }); const response = await sql`SELECT version()`; return c.json({ version: response[0].version }); } catch (error) { console.error('Database query failed:', error); return c.text('Failed to connect to database', 500); } }); serve(app); ``` ```typescript import { Hono } from 'hono'; import { serve } from '@hono/node-server'; import { neon } from '@neondatabase/serverless'; const app = new Hono(); app.get('/', async (c) => { try { const sql = neon(process.env.DATABASE_URL); const response = await sql`SELECT version()`; return c.json({ version: response[0]?.version }); } catch (error) { console.error('Database query failed:', error); return c.text('Failed to connect to database', 500); } }); serve(app); ``` ## 5. Run the app Start your Hono development server. You can use the following command: ```bash npm run dev ``` Navigate to your application's URL ([localhost:3000](http://localhost:3000)). You should see a JSON response with the PostgreSQL version: ```json shouldWrap { "version": "PostgreSQL 17.4 on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit" } ``` > The specific version may vary depending on the PostgreSQL version you are using. ## Source code You can find a sample Hono application configured for Neon on GitHub: Get started with Hono and Neon