Skip to content

Deployment

The generated server is a standard Hono app — deploy it anywhere Hono runs. The main thing to get right is connection-pool sizing.

Serverless (Vercel, Netlify, Cloudflare Workers)

Section titled “Serverless (Vercel, Netlify, Cloudflare Workers)”

Each instance is ephemeral and handles one request at a time, so use max: 1 — pooling provides no benefit and wastes database connections.

import { Pool } from "@neondatabase/serverless";
const pool = new Pool({ connectionString: process.env.DATABASE_URL, max: 1 });
const router = createRouter({ pg: pool });

For edge runtimes, set useJsExtensions so generated imports include .js extensions.

Traditional servers (Railway, Render, VPS)

Section titled “Traditional servers (Railway, Render, VPS)”

Long-running servers handle many concurrent requests; pool to reuse connections.

import { Pool } from "@neondatabase/serverless"; // or "pg"
const pool = new Pool({ connectionString: process.env.DATABASE_URL, max: 10 });
const router = createRouter({ pg: pool });