Hono

Documentation

Quickstart

Installation

npm create --yes hono@latest my-app# For the `Which template do you want to use?` prompt, select `nodejs`cd my-appnpm uninstall @hono/node-server

Configuration

The docs explain how to use the SSG Helper to generate a static site from your Hono application.

Update the template to export the Hono app and remove @hono/node-server code:

src/index.ts

import { serve } from '@hono/node-server'import { Hono } from 'hono'const app = new Hono()app.get('/', (c) => {  return c.text('Hello Hono!')   return c.html('Hello Hono!') })const port = 3000console.log(`Server is running on port ${port}`)serve({  fetch: app.fetch,  port,})export default app 

Create a build script:

src/build.ts

import app from './index'import { toSSG } from 'hono/ssg'import fs from 'fs/promises'fs.rm('./static', { recursive: true, force: true }).then(() => toSSG(app, fs)) 

Note how Hono generates files and treats trailing slashes.

Hono supports middleware to define parameterized routes with ssgParams. Middleware supports options for disableSSG and onlySSG too.

Deployment

Build

npx tsx src/build

Preview

npx --yes serve@latest static

Deploy

npx --yes bunny-launcher@latest --interactive