Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
Hono (炎, "flame" in Japanese) is a small, ultrafast web framework built on Web Standards (Request/Response/fetch). It runs anywhere: Cloudflare Workers, Deno Deploy, Bun, Node.js, AWS Lambda, and any WinterCG-compatible runtime — with the same code. Hono's router is one of the fastest available, and its middleware system, built-in JSX support, and RPC client make it a strong choice for edge APIs, BFFs, and lightweight full-stack apps.
When to Use This Skill
Use when building a REST or RPC API for edge deployment (Cloudflare Workers, Deno Deploy)
Use when you need a minimal but type-safe server framework for Bun or Node.js
Use when building a Backend for Frontend (BFF) layer with low latency requirements
Use when migrating from Express but wanting better TypeScript support and edge compatibility
Use when the user asks about Hono routing, middleware, c.req, c.json, or hc() RPC client
How It Works
Step 1: Project Setup
Cloudflare Workers (recommended for edge):
npm create hono@latest my-api
# Select: cloudflare-workerscd my-api
npm install
npm run dev # Wrangler local dev
npm run deploy # Deploy to Cloudflare
import { stream, streamText } from'hono/streaming';
app.get('/stream', c =>streamText(c, async stream => {
for (const chunk of ['Hello', ' ', 'World']) {
await stream.write(chunk);
await stream.sleep(100);
}
})
);
Best Practices
✅ Use route groups (sub-apps) to keep handlers in separate files — app.route('/users', usersRouter)
✅ Use zValidator for all request body, query, and param validation
✅ Type Cloudflare Workers bindings with the Bindings generic: new Hono<{ Bindings: Env }>()
✅ Use the RPC client (hc) when your frontend and backend share the same repo
✅ Prefer returning c.json()/c.text() over new Response() for cleaner code
❌ Don't use Node.js-specific APIs (fs, path, process) if you want edge portability
❌ Don't add heavy dependencies — Hono's value is its tiny footprint on edge runtimes
❌ Don't skip middleware typing — use generics (Variables, Bindings) to keep c.get() type-safe
Security & Safety Notes
Always validate input with zValidator before using data from requests.
Use Hono's built-in csrf middleware on mutation endpoints when serving HTML/forms.
For Cloudflare Workers, store secrets in wrangler.toml[vars] (non-secret) or wrangler secret put (secret) — never hardcode them in source.
When using bearerAuth or jwt, ensure tokens are validated server-side — do not trust client-provided user IDs.
Rate-limit sensitive endpoints (auth, password reset) with Cloudflare Rate Limiting or a custom middleware.
Common Pitfalls
Problem: Handler returns undefined — response is empty
Solution: Always return a response from handlers: return c.json(...) not just c.json(...).
Problem: Middleware runs after the response is sent
Solution: Call await next() before post-response logic; Hono runs code after next() as the response travels back up the chain.
Problem:c.env is undefined on Node.js
Solution: Cloudflare env bindings only exist in Workers. Use process.env on Node.js.
Problem: Route not matching — gets a 404
Solution: Check that app.route('/prefix', subRouter) uses the same prefix your client calls. Sub-routers should not repeat the prefix in their own routes.
Related Skills
@cloudflare-workers-expert — Deep dive into Cloudflare Workers platform specifics
@trpc-fullstack — Alternative RPC approach for TypeScript full-stack apps
@zod-validation-expert — Detailed Zod schema patterns used with @hono/zod-validator
@nodejs-backend-patterns — When you need a Node.js-specific backend (not edge)