Hono

A small, ultrafast web framework built on Web Standards that runs identically everywhere.

Framework
npm
v4.13.9
32,364 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
90 /100 Excellent
Development Activity 100
Maintenance 100
Community 64
Maturity 56
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
88 /100 Excellent
Architecture 92
Code Quality 90
Innovation 90
Learning Curve 78

Hono is a lightweight, ultrafast web framework for building HTTP APIs and full-stack web applications on Web Standard APIs (Request/Response, Fetch). Because it targets the platform rather than a specific runtime, the exact same application code runs unmodified on Cloudflare Workers, Deno, Bun, Node.js, Fastly Compute, AWS Lambda, and Vercel Edge Functions.

Its core is a router-agnostic, middleware-composable design: a pluggable router layer (RegExpRouter, TrieRouter, SmartRouter, and more) handles URL matching, a Koa-style compose function chains middleware around a single Context object, and dozens of first-party middleware modules cover authentication, CORS, caching, compression, JWT/JWK, and more. The hono/tiny preset stays under 12kB and has zero runtime dependencies, making it a common choice for edge and serverless workloads where cold-start size matters as much as raw throughput.

What You Get

  • A chainable, Express-style routing API (app.get, app.post, .route(), .basePath()) with full TypeScript inference for path params and typed environment bindings.
  • A pluggable router layer — RegExpRouter (fastest, precompiles routes into a single regex dispatch table), TrieRouter, LinearRouter, PatternRouter, and SmartRouter, which auto-selects the best one at runtime.
  • Over 25 first-party middleware modules covering CORS, CSRF, basic/bearer/JWT/JWK auth, caching, compression, secure headers, request ID, logging, ETag, and body-limit.
  • Runtime adapters for Cloudflare Workers/Pages, Deno, Bun, AWS Lambda, Lambda@Edge, Vercel, Netlify, and Service Workers, so the same handler code targets any of them.
  • A built-in JSX renderer and streaming helpers for server-rendered HTML without pulling in a separate templating engine.
  • A type-safe RPC client (hono/client) that infers request/response types directly from server route definitions for end-to-end type safety.

Common Use Cases

  • Building HTTP APIs and backends-for-frontend (BFF) layers deployed to edge platforms like Cloudflare Workers or Fastly Compute.
  • Serverless functions on AWS Lambda or Vercel where cold-start time and bundle size are critical.
  • Full-stack applications combining Hono’s JSX renderer with client-side hydration for lightweight server-rendered UIs.
  • Migrating Express-style Node.js APIs to modern, multi-runtime deployments without a framework rewrite.
  • Type-safe client-server communication via the built-in RPC client for internal service-to-service calls.

Under The Hood

Architecture: Hono’s core (src/hono-base.ts) is a router-agnostic base class: HTTP-method calls like app.get() register [method, path, handler] tuples onto an injected Router implementation (src/router.ts defines the Router<T> interface with add()/match()). Request dispatch flows through compose() (src/compose.ts), a Koa-style middleware chain that recursively calls dispatch(i+1) around a single mutable Context object, threading next(), error handling (onError), and 404 fallthrough (onNotFound) through one closure. .route() and .basePath() let sub-apps be mounted with path prefixes by cloning the instance and remapping registered routes, giving Hono’s routing tree its compositional, Express-like feel while staying framework-agnostic underneath.

Tech Stack: Written entirely in TypeScript (99.7% of the codebase) targeting ES modules with a CJS build via a custom build/build.ts script (using esbuild). The package ships zero runtime dependencies — everything from JSX to streaming to the RPC client is implemented against Web Standard APIs (Fetch, Request, Response, ReadableStream), which is exactly what allows the same bundle to run on Cloudflare Workers, Deno, Bun, and Node.js without polyfills. Build tooling includes TypeScript’s native-preview compiler, publint for package export validation, and Bun as the primary dev/build runner.

Code Quality: The repo maintains 99 *.test.ts files directly alongside source (co-located unit tests) plus a separate runtime-tests/ tree that runs the same suite against Deno, Bun, Node, Fastly, Lambda, and Workerd projects via per-runtime Vitest configs — a strong signal that cross-runtime parity is treated as a first-class quality requirement rather than an afterthought. ESLint is configured with @hono/eslint-config plus stricter custom rules (no-explicit-any mostly enforced, unused-vars errors), and Prettier/editorconfig-checker enforce formatting. Public APIs and internal helpers alike carry JSDoc comments with @see links back to the hono.dev docs.

API Design: The chainable app.get(path, handler) / app.use(handler) surface mirrors Express closely enough to be immediately familiar, while TypeScript generics (Env, Schema, BasePath) thread typed path params, bindings, and typed JSON responses through the whole chain with no manual type annotations required from the developer. Getting started is a single new Hono() plus one route — no config file, no build step required for the base framework — and the hono/client RPC layer extends that same type inference to the HTTP client, so consumers get compile-time safety on API calls without a code-gen step.

Used by 60 apps in this directory

TypeScript
76%
AGPL 3.0

Abby

Developer Tools · Product Management

166

Statically typed feature flags, remote config, and A/B testing with framework-native SDKs for TypeScript teams.

View details
31
Repo Health
70
Technical
64
Dependency
Built with
TypeScript 76%
MDX 18%
Updated 1 years ago
TypeScript
100%
Apache 2.0

agentic-inbox

AI Agents · Mcp · Productivity

8,118

A self-hosted email client with an AI agent that reads your inbox, drafts replies automatically, and exposes full email operations over MCP — running entirely on Cloudflare Workers.

View details
31
Repo Health
74
Technical
77
Dependency
Built with
TypeScript 100%
Updated 5 months ago
TypeScript
86%
MIT

Agents Observe

Developer Tools

684

A real-time, fully local observability dashboard for Claude Code and Codex agent sessions — filtering, search, session replay, and token/cost breakdowns via an auto-starting MCP server.

View details
66
Repo Health
67
Technical
77
Dependency
Built with
TypeScript 86%
JavaScript 10%
Updated 4 weeks ago
TypeScript
54%
MIT

Anarlog

AI Assistants · Note Taking · Productivity

9,404

Anarlog is an open-source, local-first AI meeting notetaker that records, transcribes, and summarizes meetings entirely on your device — no cloud lock-in, no mandatory account, and every note saved as a plain markdown file you own forever.

View details
86
Repo Health
77
Technical
68
Dependency
Built with
TypeScript 54%
Rust 34%
Updated 4 days ago
Python
59%
MIT

Auto Company

AI Agents · Automation

3,111

A 24/7 autonomous AI company: 14 expert-persona agents running on Claude Code or Codex CLI that research, decide, code, deploy, and market real products with a single markdown file as their only memory.

View details
79
Repo Health
51
Technical
72
Dependency
Built with
Python 59%
JavaScript 20%
Updated 5 days ago
TypeScript
45%
AGPL 3.0

BrowserOS

AI Assistants · Browser

13,763

The open-source agentic Chromium browser with native AI agents, MCP server, and visual workflow automation — your data never leaves your machine.

View details
87
Repo Health
82
Technical
68
Dependency
Built with
TypeScript 45%
Rust 23%
Python 18%
Updated 4 days ago
TypeScript
99%
Apache 2.0

Bubble Lab

AI Development · Automation

1,094

Open-core workflow engine for building AI-powered automations in TypeScript that run natively inside Slack — no context switching required.

View details
35
Repo Health
78
Technical
71
Dependency
Built with
TypeScript 99%
Updated 5 months ago
Rust
67%
MIT

Bun

Developer Tools

96,068

An all-in-one JavaScript and TypeScript toolkit — one Rust-and-JavaScriptCore binary that replaces Node.js, npm, a bundler, and a test runner with faster equivalents.

View details
92
Repo Health
91
Technical
64
Dependency
Built with
Rust 67%
C++ 19%
TypeScript 10%
Updated 5 days ago
Rust
54%
Other

Cap

Team Chat · Video Conferencing

22,884

Open source Loom alternative with GPU-accelerated recording, instant share links, AI summaries, and full self-hosting via Docker Compose.

View details
89
Repo Health
81
Technical
64
Dependency
Built with
Rust 54%
TypeScript 42%
Updated 4 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers