Hono
CCCOpen sourceA small, fast web framework for Cloudflare Workers and every other JavaScript runtime.
What it is
Hono is a web framework built on Web Standard APIs (Request, Response, fetch), which is why the same code runs on Cloudflare Workers, Deno, Bun, Node.js, Vercel and AWS Lambda without adapters. It is a few kilobytes, has no dependencies, and its router is among the fastest measured. The API reads like Express (app.get('/path',
handler)) but with first-class TypeScript: typed path parameters, typed bindings for Workers (c.env.DB), and middleware for CORS, JWT, basic auth, caching, logging and validation (with Zod through a small adapter). An RPC mode lets a client import the server's route types so fetches are typed end to end.
For Workers projects it is the de-facto standard: the D1 statement, the R2 put, the Telegram webhook handler and the Stripe webhook all become short route functions in one file.
Where it fits in the AI OS
Build, the API and bot layer. When the website is Next.js and the business logic is a separate worker, Hono is the shape of that worker: small routes an agent can read in full, test with app.request() and deploy in seconds.
Insider notes
membersHow Serge's stack uses it
apps/core, the membership worker that owns sessions, billing webhooks, tier logic and the sync jobs to git and Telegram, is a Hono app. Serge's earlier Telegram bot factory for LinkedIn content (sergebulaev/ideas) is the same combination, Hono on Workers with D1, KV and R2, and served as the reference pattern for the membership's bot gatekeeper.
Setup in 5 minutes
npm create hono@latest my-api, choose thecloudflare-workerstemplate.- In
src/index.ts:const app = new Hono<{ Bindings: { DB: D1Database } }>(). - Add a route:
app.get('/members/:id', async (c) => c.json(await c.env.DB.prepare('select * from members where id = ?') .bind(c.req.param('id')).first())). - Add
import { cors } from 'hono/cors'andapp.use('*', cors()). npm run dev, curl it,npm run deploy.
Alternatives
- itty-router — even smaller, less batteries.
- Elysia — Bun-first with a similar typed feel.
- Express / Fastify — Node-only; not suited to Workers.
- Next.js route handlers — fine for a few endpoints; a separate worker scales better for webhooks and crons.