Get Started
Run the HONC template CLI to create a new project.
npm create honc-app@latest
During the setup process, you’ll be able to choose:
- From the three supported databases: Cloudflare D1, Neon, or Supabase
- Select whether to include OpenAPI spec generation
All templates are set up to use TypeScript by default, and include Biome.js—a formatting and linting solution that requires minimal configuration.
Databases
Section titled “Databases”If you choose the Neon or Supabase templates, create a database through their respective dashboards, and update your .dev.vars
file with the DATABASE_URL
. To run the test suite, you’ll also need to add some additional values:
- Neon: Your project ID and API token.
- Supabase: The URL for a dedicated testing database (created separately).
The Cloudflare Vitest integration set up in the templates uses these values to connect to an isolated test database. The D1 template uses Miniflare to spin up test databases, so it’s ready to go out-of-box. For more information, refer to the HONC Testing docs.
DATABASE_URL=""NEON_PROJECT_ID=""NEON_API_TOKEN=""
DATABASE_URL=""TEST_DATABASE_URL=""
Templates come preconfigured with a simple database schema. To see it in action, run the db:setup
command, which will generate and apply migrations and seed the database.
# this is a convenience script that runs db:generate, db:migrate, and db:seednpm run db:setup
Local Development
Section titled “Local Development”Once you’ve set up the database, just run dev
to spin up your app locally!
npm run dev
Deployment
Section titled “Deployment”To deploy your app, you must first create a Cloudflare account, if you haven’t already. Then, create a production database and update your credentials.
With Cloudflare D1
Section titled “With Cloudflare D1”If you’re using a D1 database, you can create a remote D1 through the dashboard or via CLI. Then, update your wrangler.toml
and .prod.vars
file with the remote database name and ID.
With Other Databases
Section titled “With Other Databases”Create a production database through the Neon or Supabase dashboard, and update the DATABASE_URL
in your .dev.vars
file.
Apply Migrations
Section titled “Apply Migrations”Then, run the migration command to apply migrations to your remote database.
npm run db:migrate:prod
npm run db:migrate
Deploy Worker
Section titled “Deploy Worker”Once your database is set up, run the deploy
command to create a remote Worker.
npm run deploy
Copyright © 2025 Fiberplane