Skip to main content

Express Is Dead, Long Live Express

·PkgPulse Team

TL;DR

Express is simultaneously dying and immortal. Express 5.0 shipped after 10 years and immediately felt like a maintenance release, not a comeback. Fastify is 3-4x faster. Hono runs on the edge. But Express has 35M weekly downloads, runs half the internet's Node.js backends, and has documentation for every conceivable use case. It will be maintained forever because too many things depend on it. The question isn't "is Express dead?" — it's "should I start a new project with it?"

Key Takeaways

  • Express 5.0 shipped after 9+ years — minimal new features, breaking changes fixed
  • 35M weekly downloads — still the most-used Node.js framework by a wide margin
  • Fastify is 3-4x faster on throughput benchmarks
  • Hono is the right choice for edge/serverless and modern TypeScript APIs
  • Express is still correct for: teams that know it, legacy systems, maximum ecosystem compatibility

The State of Express in 2026

Express timeline:
2010: Launched (TJ Holowaychuk)
2014: Passed to StrongLoop (IBM acquires 2015)
2016: Express 5.0 alpha published — never shipped
2017-2023: Version 4.x maintained, no major features
2024: Express 5.0 finally released (rc → stable)
2026: Express 5.x is "stable" — but competitors have lapped it

Express 5.0 "new features":
→ Async/await error propagation (finally!)
→ Route path matching improvements
→ Removed deprecated APIs (res.json() params, etc.)
→ Updated dependencies

What Express 5.0 did NOT add:
→ Native TypeScript support
→ Built-in validation
→ Schema-based routing
→ Performance improvements (still synchronous middleware)
→ WebSocket support
→ Native HTTP/2

Compare to Fastify (released 2016, active development):
→ JSON schema validation built in
→ Plugin architecture (not middleware)
→ TypeScript-first
→ Logging with Pino (built in)
→ 80K+ req/s vs Express's 20K+ req/s
→ Active community, regular releases

Why Express Still Has 35M Weekly Downloads

Express isn't growing — it's coasting on inertia:

1. 15+ years of ecosystem
   → Thousands of express-* middleware packages
   → Every tutorial: "npm install express"
   → Every bootcamp teaches Express
   → Millions of existing apps in production

2. It works fine for most use cases
   → A CRUD API handling 100 req/s doesn't need Fastify's performance
   → Express is predictable — developers know exactly what it does
   → Debugging Express is easy because everything is a middleware

3. The cost of switching is real
   → Middleware doesn't work in Fastify (different plugin API)
   → Hono's edge focus requires different architecture thinking
   → Migration risk > performance gain for most teams

4. Enterprise inertia
   → Companies with 500K LOC Express codebases won't migrate
   → DevOps teams comfortable with Express deploy patterns
   → Hiring: "we use Express" is universally understood

The 35M/week number is not "developers choosing Express" —
it's "developers who happen to be using Express" (legacy + inertia).
New project adoption is a different story:
→ State of JS 2025: Hono and Fastify satisfaction both higher than Express
→ New project starts: Express declining year-over-year
→ Among devs starting NEW projects: Hono and Fastify capture most of the market

The Performance Gap Is Real (But May Not Matter)

# Framework throughput benchmarks (typical, varies by machine):

# Hello world JSON endpoint:
# Express:   ~20K req/s
# Fastify:   ~75K req/s
# Hono:      ~100K+ req/s (edge runtime)
# Elysia:    ~150K+ req/s (Bun runtime)

# Database query + JSON response:
# Express (with pg):   ~5K req/s
# Fastify (with pg):   ~12K req/s

# But here's the thing:
# Your database is probably the bottleneck, not your framework.
# If your DB handles 3K queries/second, your API handles ~3K req/s.
# Whether your framework adds 0.1ms or 0.5ms overhead is irrelevant.

# When performance DOES matter:
# → Very high traffic (>50K simultaneous users)
# → Latency-sensitive applications (real-time, gaming, HFT)
# → Edge computing (cold start time matters — Hono shines here)
# → Serverless (every ms of execution costs money)

# When performance DOESN'T matter:
# → Internal APIs (10 concurrent users)
# → B2B SaaS (peaks of hundreds, not thousands)
# → Startup MVPs
# → Any app where your DB is the bottleneck

# For most apps: Express's performance is completely fine.

When to Still Use Express

Express is the right choice when:

1. You're inheriting or maintaining an Express codebase
   → Don't migrate just because Fastify exists
   → Migration cost > performance gain for stable apps
   → Learn Express deeply instead of jumping to the new thing

2. You need maximum middleware ecosystem compatibility
   → express-rate-limit, passport, helmet, morgan, multer
   → These are designed for Express's middleware signature
   → Adapters exist for Fastify but add complexity

3. Your team knows Express and doesn't have bandwidth to learn a new framework
   → Shipping code > using the perfect tool
   → A team that knows Express ships faster than one learning Fastify

4. You're teaching Node.js backend development
   → Express is simpler to explain: "everything is middleware"
   → More tutorials, more Stack Overflow answers, more resources
   → Learn the simple thing first

5. You need a quick API with no performance requirements
   → 3 routes, internal use, 100 req/day
   → Express in 20 lines vs Fastify in 35 lines

Express is NOT the right choice when:
→ Starting a new production API with TypeScript requirements → Fastify
→ Building for edge runtime or serverless → Hono
→ Your app will handle massive traffic → Fastify or Hono
→ You want built-in validation + schema → Fastify

What Actually Replaced Express (For Different Use Cases)

# Use case: REST API, TypeScript, production Node.js
# → Fastify
npm install fastify @fastify/cors @fastify/helmet

# Fastify advantages over Express:
# - TypeScript built-in
# - Plugin system (not middleware) is more predictable
# - Built-in JSON schema validation (auto-generates TypeScript types)
# - Pino logging included
# - Same concepts, better defaults

# Use case: Edge runtime, Cloudflare Workers, Deno Deploy
# → Hono
npm install hono

# Hono advantages:
# - Runs in any JS runtime (Node, Bun, Deno, Cloudflare Workers)
# - Ultra-lightweight (14KB gzipped)
# - JSX built-in
# - Fast by design

# Use case: Full-stack, server components, SSR
# → Next.js API routes or Remix loaders
# These render the "need an Express API" moot

# Use case: tRPC (type-safe API)
# → tRPC adapter (works with Express AND Fastify AND Next.js)
npm install @trpc/server @trpc/client

# Express with tRPC is a valid modern stack:
# Express handles routing/middleware
# tRPC handles API type safety
# Best of both worlds for Express teams

The Verdict

Is Express dead? Technically: no.
Is Express the best choice for new projects? Also no.

Express will exist for 20+ more years.
Too many packages depend on it. Too many apps use it.
It will be maintained in the same way jQuery is maintained:
→ Security patches applied
→ Breaking changes avoided at all costs
→ No major new features
→ Kept running for the ecosystem that depends on it

The right mental model:
Express = jQuery of backend frameworks
→ Everywhere, battle-tested, slightly dated, works fine
→ New projects have better options
→ Existing projects: no urgent reason to migrate

The community's verdict (State of JS 2025):
→ Express: high usage (1st), lower satisfaction (4th)
→ Fastify: growing usage, high satisfaction (2nd)
→ Hono: low usage, highest satisfaction (1st)
→ Elysia: tiny but growing, excellent satisfaction

Translation:
People using Express are mostly doing so because they have to.
People who have chosen recently are choosing Fastify or Hono.
Express is the old reliable — not the exciting new thing.
And that's fine. Not everything needs to be exciting.

Compare Express vs Fastify download trends and health scores at PkgPulse.

Comments

Stay Updated

Get the latest package insights, npm trends, and tooling tips delivered to your inbox.