arm
  • Home
  • Work
  • About
  • Writing
  • Resume
  • Contact
Open to work
← Back to writing
ArchitectureVol. 02 · Issue 01 · 8 min read
Why I chose Hono over Express and what I gave up.
May 2026 · Parmjeet Mishra

When I started building Rentwise — a multi-tenant rental SaaS — I needed a backend framework. The obvious choice was Express. Everyone knows Express. Every tutorial uses Express. Every Stack Overflow answer assumes Express.

I chose Hono instead. This is what happened.

What Hono actually is

Hono is not a faster Express. That framing undersells it and also misleads you. Express was designed for Node.js and has been carrying that design debt for fifteen years. Hono was designed for the Web Platform — which means it runs natively on Cloudflare Workers, Bun, Deno, and Node.js, using the same Request/Response objects your browser uses.

That matters more than it sounds. When you write a Hono handler, you are writing code that is conceptually close to a Service Worker, a fetch handler, an edge function. The mental model transfers.

"Hono is not just 'Express but fast.' It is a fundamentally different mental model for HTTP."

The killer feature: RPC

The thing that actually made me commit to Hono for Rentwise was the hc client — Hono's built-in RPC system. Here is what it does:

// Server: define your route with a typed response
const app = new Hono()
  .get('/properties', async (c) => {
    const properties = await db.select().from(schema.properties)
    return c.json({ properties })
  })

// Client: get FULL type inference, zero codegen
const client = hc<typeof app>('http://localhost:3000')
const res = await client.properties.$get()
const { properties } = await res.json() // ← fully typed!

No tRPC setup. No OpenAPI spec. No codegen step. The types flow from your router definition to your client automatically. I eliminated an entire category of 'I changed the API and forgot to update the client' bugs.

What I gave up

Honesty time. Express has fifteen years of middleware. When I needed something slightly off the beaten path — a specific auth pattern, a specific CORS edge case — I could always find an Express answer in thirty seconds.

With Hono, I sometimes wrote the thing myself. That is not always bad (you understand what you wrote), but it is a real cost when you are under deadline.

The ecosystem gap is closing fast, though. Better Auth has first-class Hono support. Drizzle works everywhere. Most of what I needed was just there.

My verdict

For a new project where end-to-end type safety matters and you want to deploy to the edge, Hono is the right call. For a team that already knows Express and needs to ship fast, Express is still fine — do not migrate for vibes.

For Rentwise specifically, the RPC client alone saved me more time than the ecosystem cost me. Easy decision in hindsight.

Written by Parm

Full-Stack React Developer building SaaS and usuable apps.

Next piece
Three layers of auth →
Open to work

Have something in mind? Let's make it.

iamparmjeetmishra@gmail.com→
GithubMailLinkedInX/Twitter
arm© 2026 — Made with ♡ by Parm
HomeWorkAboutWritingResumeContact