Best Open Source Node.js Frameworks for APIs

I looked at 22 open source Node.js frameworks for building APIs and ranked the ones I'd pick. I checked what each one gives you beyond routing, such as validation, OpenAPI docs and a project structure, which runtimes it supports, and how many security fixes it shipped in the past year. Then I built the same REST API in seven of them, Express, Fastify, Hono, Koa, hapi, NestJS and AdonisJS, and load-tested each one on a single CPU core.

Data refreshedMethodologyHow we evaluate
Director of Geekflare

Rity Anand is a director of Geekflare. She has extensive experience managing business technology and a special interest in emerging technologies.

What I found

  • Fastify handled the most traffic on one CPU core, 19,918 reads and 12,288 writes a second, with Hono close behind at 18,397 and 10,867. Express managed 10,963 reads, about half of Fastify.
  • NestJS and the AdonisJS API starter were the heaviest. They took 1.1 and 1.3 seconds to start against under half a second for the rest, and the AdonisJS starter runs session, security and auth middleware on every request, which put it at 4,201 reads a second.
  • Hono installed only 4 packages including Zod, against 66 for Express with Zod and 104 for NestJS.
  • Express answered broken JSON with an HTML page and Koa and Hono with plain text, Fastify and hapi named only the first invalid field, and AdonisJS returned 422 rather than 400.

Tested on DigitalOcean Droplet with Ubuntu 24.04 server with 2 vCPU and 4 GB of RAM, using Docker. “Ready in” is installing the test app’s packages in an empty container, with any build step. “Memory at idle” is the app’s process after it starts, with no traffic. Each app has a health check, a read by ID from 100 items held in memory, and a create endpoint that validates a JSON body with the framework's usual validator. Each ran on Node.js 24.22 limited to one CPU core, while the oha load tester used the other core to send 50 concurrent connections for 20 seconds. Each figure is the median of three runs, and startup is the median of five, from launching the app to its first answer. These numbers show framework overhead. In a real API, database calls will usually take far longer than the framework.

SoftwareVersionReady inMemory at idleReads per secondWrites per secondStartupWhat happened
Fastify5.12.74 s78 MB of 4 GB19,91812,2880.44 sThe most requests a second in the test, 19,918 reads and 12,288 writes, with validation from a JSON Schema and no extra package.
NestJS12.3.210 s106 MB of 4 GB8,1825,2681.13 sStarted in 1.1 seconds against under half a second for the lighter frameworks, and handled 8,182 reads a second on its default Express adapter.
Express5.3.04 s75 MB of 4 GB10,9637,2700.46 sAbout half of Fastify's throughput, at 10,963 reads a second. Malformed JSON got Express's default HTML error page, not JSON.
Hono4.13.142 s80 MB of 4 GB18,39710,8670.40 sClose to Fastify at 18,397 reads a second, and the smallest install: 4 packages including Zod. The default validation error is awkward to read.
AdonisJS7.6.02 min133 MB of 4 GB4,2013,1111.35 sThe official API starter took 2 minutes to create and ran session, security and auth middleware on every request, which put it at 4,201 reads a second.
Koa3.2.15 s82 MB of 4 GB13,4978,2600.44 s23% more reads a second than Express with the same Zod check, at 13,497. Routing and body parsing come from separate packages.
hapi21.4.129 s81 MB of 4 GB10,1115,4210.48 sValidation, errors and limits are route configuration, and every error came back as JSON. Writes were the second slowest at 5,421 a second.

10 Open Source Node.js Frameworks compared

Licence, language and runtime, and whether the team sells hosting, side by side. Sort by latest release to see how often each one ships.

LicenceTypeManaged cloud
1
Fastify
JavaScript / Node.js 20+
MIT
Permissive
Web framework37kOct 2026(Actively maintained)None
2
NestJS
TypeScript / Node.js 20.19+
MIT
Permissive
Progressive Node.js framework77kOct 2026(Actively maintained)$12/month plus AWS costs
3
Express
JavaScript / Node.js 18+
MIT
Permissive
Minimal web framework70kOct 2026(Actively maintained)None
4
Hono
TypeScript / Node.js 20+, Bun, Deno, Cloudflare Workers
MIT
Permissive
Multi-runtime web framework33kOct 2026(Actively maintained)None
5
AdonisJS
TypeScript / Node.js 24+
MIT
Permissive
Full-stack MVC framework19kOct 2026(Actively maintained)None
6
Encore.ts
TypeScript / Node.js 18+, Rust runtime
MPL-2.0
Copyleft
Backend framework with infrastructure tooling13kOct 2026(Actively maintained)$49/month per member, plus $99 per cloud environment
7
Koa
JavaScript / Node.js 18+
MIT
Permissive
Minimal middleware framework36kMay 2026(Actively maintained)None
8
Feathers
TypeScript / Node.js 22+
MIT
Permissive
API and real-time framework15kOct 2026(Actively maintained)None
9
hapi
JavaScript / Node.js 16+
BSD-3-Clause
Permissive
Configuration-driven server framework15kOct 2026(Actively maintained)None
10
Elysia
TypeScript / Bun, Node.js 20.16+, Deno, Cloudflare Workers
MIT
Permissive
Bun-first web framework19kAug 2026(Actively maintained)None
  • Actively maintained
  • Slowing: last release 1 to 2 years ago
  • Stale: no release in over 2 years

What each one includes

What comes from the project itself, checked against each one's docs. Partial means community packages, an experimental feature or only part of it.

SoftwareTypeScript firstRequest validationOpenAPI docsBeyond Node.jsWebSocketsProject structureDatabase layerAuthentication
FastifyYesShips types; type providers type routes from schemasYesJSON Schema in the coreYesOfficial @fastify/swagger pluginNoNode.js only; AWS Lambda via @fastify/aws-lambdaYesOfficial @fastify/websocket pluginPartlyEncapsulated plugins, autoload and awilix DI; no fixed layoutPartlyOfficial connection plugins, no ORMYesOfficial @fastify/auth, @fastify/jwt and @fastify/oauth2
NestJSYesYesValidationPipe with class-validator, or Standard Schema such as ZodYesOfficial @nestjs/swagger moduleNoNode.js only; Bun is supported as a package managerYes@nestjs/websockets with socket.io or wsYesModules, providers and dependency injectionPartlyOfficial modules for TypeORM, Drizzle, Sequelize and Mongoose; no ORM of its ownYes@nestjs/authentication, plus @nestjs/passport and @nestjs/jwt
ExpressPartlyTypes from @types/expressPartlyCommunity packages such as express-validatorPartlyCommunity packages onlyNoNode.js only in the docsPartlyCommunity packages onlyNoNoPartlyOfficial session middleware; Passport is third-party
HonoYesYesBuilt-in validator plus official Zod and Standard Schema packagesYesOfficial @hono/zod-openapi packageYesBun, Deno, Cloudflare Workers, Fastly, Lambda, Vercel, NetlifyYesWebSocket helper per runtime; Node.js via @hono/node-serverPartlyOptional @hono/tsyringe DI middleware, no fixed layoutNoYesBuilt-in basic, bearer, JWT and JWK middleware
AdonisJSYesYesVineJS, from the AdonisJS teamPartlyCommunity packages onlyNoNode.js onlyNoTransmit offers server-sent events, not WebSocketsYesIoC container and a fixed project layoutYesLucid SQL ORMYes@adonisjs/auth guards, Ally social login and Bouncer
Encore.tsYesYesFrom TypeScript types, run in the Rust runtimePartlyencore gen client --lang=openapi, marked experimentalPartlyNode.js; Bun only as an experiment flagYesStreaming APIs over WebSocketYesServices defined by encore.service.ts foldersYesPostgreSQL with migrations; bring your own ORMYesAuth handlers run by the API gateway
KoaPartlyTypes from @types/koaPartlyOfficial koa-joi-router, last released 2021PartlyCommunity packages onlyNoNode.js only in the docsPartlyCommunity packages onlyNoNoYeskoa-jwt and koa-session in the koajs org
FeathersYesYes@feathersjs/schema with TypeBox or JSON SchemaPartlyCommunity feathers-swagger onlyNoNode.js in v5; Deno, Bun and Workers planned for v6YesSocket.io transport in core packagesYesServices and hooks, with a generated project layoutYesKnex SQL, MongoDB and memory adaptersYesLocal, JWT and OAuth strategies
hapiYesShips types with typed route refsYesRoute validation with joi from the hapijs orgPartlyhapi-swagger is a community pluginNoNode.js onlyYesOfficial @hapi/nes pluginPartlyPlugins and glue manifests; no fixed layoutNoYesCore auth strategies plus official jwt, cookie and bell
ElysiaYesYesTypeBox built in, plus Standard Schema librariesYesOfficial @elysia/openapi pluginYesBun first; Node.js, Deno, Workers via adaptersYesBuilt in on Bun; Node.js through @elysia/nodeNoUnopinionated; feature folders are only a suggestionNoGuides for Drizzle and PrismaYesOfficial JWT and bearer plugins
Ask Sparkian

Which Node.js framework fits your project?

Describe the API you're building, the size of your team and where it will run, and AI will shortlist the best fits from these picks.

Or try:

Recommended Node.js frameworks

Ranked on what a team needs to build and maintain an API including validation and docs from the project itself, types, structure as the codebase grows, how steadily it ships fixes, and how it did in my test.

  1. #1Best overall for Node.js APIsTested by Geekflare

    Fastify

    Node.js web framework with JSON Schema validation, a plugin system and built-in Pino logging

    JSON Schema validation in the core and official plugins for OpenAPI, WebSockets and auth, and the most requests a second in my test. It shipped many security fixes this year, so stay on the latest patch.

    Tested Oct 31, 2026, version 5.12.7
    Ready in
    4 s
    Memory in use at idle
    78 MB of 4 GB
    Reads per second
    19,918
    Writes per second
    12,288
    Startup
    0.44 s

    The most requests a second in the test, 19,918 reads and 12,288 writes, with validation from a JSON Schema and no extra package.

    Commands, notes and screenshots

    Best for

    Teams building JSON APIs on Node.js that want validation and OpenAPI docs from one project

    Not for

    Teams that need Bun, Deno or edge runtimes, or want a full MVC framework with an ORM

    • Request validation and response serialisation from JSON Schema in the core
    • Official plugins for OpenAPI, WebSockets, JWT, OAuth2 and rate limits
    • Ships its own types, with type providers that type routes from schemas
    • Published support policy for each major version
    • Many security advisories in the last year, most about validation
    • Plugin encapsulation and schemas take time to learn
    • Node.js only, with no official Bun, Deno or Workers support
    Licence
    MIT (permissive)
    Stack
    JavaScript / Node.js 20+
    Databases
    PostgreSQL, MySQL, MongoDB, Redis
    GitHub
    37k stars · 947 contributors
    Latest release
    v5.12.7 · Oct 13, 2026
  2. #2Best for large TypeScript codebasesTested by Geekflare

    NestJS

    TypeScript framework for Node.js servers with modules, dependency injection and decorators, on Express, Fastify or node:http

    Modules and dependency injection give every team the same layout, with official packages for OpenAPI, WebSockets, microservices and the main ORMs. It asks for more code than the others and took over a second to start in my test.

    Tested Oct 31, 2026, version 12.3.2
    Ready in
    10 s
    Memory in use at idle
    106 MB of 4 GB
    Reads per second
    8,182
    Writes per second
    5,268
    Startup
    1.13 s

    Started in 1.1 seconds against under half a second for the lighter frameworks, and handled 8,182 reads a second on its default Express adapter.

    Commands, notes and screenshots

    Best for

    TypeScript teams building larger APIs or microservices that want one agreed structure

    Not for

    Small services where plain routing is enough, or teams that need Bun, Deno or edge runtimes

    • Modules and dependency injection give every project the same layout
    • Runs on Express, Fastify or plain node:http through adapters
    • Official packages for OpenAPI, WebSockets, auth, TypeORM, Drizzle and Mongoose
    • Built-in microservice transports for Kafka, NATS, RabbitMQ, gRPC and more
    • Many security advisories in the last year, mostly Fastify middleware bypasses
    • Version 12 is ESM-only, which complicates upgrades of CommonJS apps and Jest suites
    • Leans on decorators and classes, which adds code compared with plain routing
    Licence
    MIT (permissive)
    Stack
    TypeScript / Node.js 20.19+
    Databases
    PostgreSQL, MySQL, SQLite, SQL Server, MongoDB
    GitHub
    77k stars · 799 contributors
    Latest release
    12.3.2 · Oct 27, 2026
    What people say
  3. #3Best for the widest choice of middlewareTested by Geekflare

    Express

    Minimal web framework for Node.js with routing, middleware and HTTP helpers

    The framework most Node.js developers already know, now on version 5 with async error handling and a huge range of middleware. Validation, OpenAPI and types all come from third-party packages.

    Tested Oct 31, 2026, version 5.3.0
    Ready in
    4 s
    Memory in use at idle
    75 MB of 4 GB
    Reads per second
    10,963
    Writes per second
    7,270
    Startup
    0.46 s

    About half of Fastify's throughput, at 10,963 reads a second. Malformed JSON got Express's default HTML error page, not JSON.

    Commands, notes and screenshots

    Best for

    Small APIs and teams that want a minimal core with a large middleware choice

    Not for

    Teams that want validation, OpenAPI docs and typed routes in the framework

    • Official middleware for bodies, CORS, cookies, sessions, uploads and logging
    • Express 5 passes errors from async handlers to the error handler
    • Both the 5.x and 4.x lines still get releases
    • Run under the OpenJS Foundation
    • TypeScript types come from DefinitelyTyped, not the project
    • No official validation, OpenAPI or WebSocket packages
    • The official generator has not been released since 2019
    Licence
    MIT (permissive)
    Stack
    JavaScript / Node.js 18+
    GitHub
    70k stars · 395 contributors
    Latest release
    v5.3.0 · Oct 9, 2026
  4. #4Best for edge and multi-runtime APIsTested by Geekflare

    Hono

    Small web framework built on Web Standards that runs the same code on Cloudflare Workers, Bun, Deno, Node.js and AWS Lambda

    The same code runs on Cloudflare Workers, Bun, Deno, Lambda and Node.js, and it came close to Fastify in my test with only four packages installed. It's a toolkit, so structure and data access are up to you.

    Tested Oct 31, 2026, version 4.13.14
    Ready in
    2 s
    Memory in use at idle
    80 MB of 4 GB
    Reads per second
    18,397
    Writes per second
    10,867
    Startup
    0.40 s

    Close to Fastify at 18,397 reads a second, and the smallest install: 4 packages including Zod. The default validation error is awkward to read.

    Commands, notes and screenshots

    Best for

    Teams building APIs for edge runtimes, serverless functions or more than one JavaScript runtime

    Not for

    Teams that want a structured framework with modules, dependency injection and a data layer

    • Same code runs on Workers, Bun, Deno, Lambda and Node.js
    • Auth, CORS, caching and security headers are built in
    • Typed client from server routes without code generation
    • No runtime dependencies
    • Many security fixes in middleware and adapters over the past year
    • No project structure or data layer, you assemble those yourself
    • Version 5 is in release candidate with breaking changes
    Licence
    MIT (permissive)
    Stack
    TypeScript / Node.js 20+, Bun, Deno, Cloudflare Workers
    GitHub
    33k stars · 378 contributors
    Latest release
    4.13.14 · Oct 25, 2026
    What people say
  5. #5Best batteries-included frameworkTested by Geekflare

    AdonisJS

    TypeScript MVC framework for Node.js with its own ORM, validator, auth, testing and CLI, for APIs and server-rendered apps

    An ORM, validator, auth, testing and a CLI from one team, in the style of Laravel. Its API starter was the heaviest in my test, it needs Node.js 24, and there's no official OpenAPI package.

    Tested Oct 31, 2026, version 7.6.0
    Ready in
    2 min
    Memory in use at idle
    133 MB of 4 GB
    Reads per second
    4,201
    Writes per second
    3,111
    Startup
    1.35 s

    The official API starter took 2 minutes to create and ran session, security and auth middleware on every request, which put it at 4,201 reads a second.

    Commands, notes and screenshots

    Best for

    Teams that want a batteries-included MVC framework like Laravel or Rails, in TypeScript

    Not for

    Teams that need OpenAPI generation or WebSockets from official packages, or older Node.js

    • Official SQL ORM with migrations, seeders and factories
    • VineJS validation for bodies, queries, params and headers
    • Session, token and social login plus policies from first-party packages
    • Typed API client generated from routes and validators
    • Needs Node.js 24 or later
    • No official OpenAPI or WebSocket package
    • Several multipart body parser advisories this year
    Licence
    MIT (permissive)
    Stack
    TypeScript / Node.js 24+
    Databases
    PostgreSQL, MySQL, SQLite, SQL Server, Turso
    GitHub
    19k stars · 75 contributors
    Latest release
    v7.6.0 · Oct 5, 2026
    What people say
  6. #6Best for infrastructure from code

    Encore.ts

    TypeScript backend framework with a Rust runtime that declares databases, Pub/Sub and cron jobs in code and runs them locally

    Declare databases, Pub/Sub and cron jobs in TypeScript and Encore runs them locally with tracing, while a Rust runtime handles HTTP. Having it provision them in AWS or GCP needs the paid Encore Cloud.

    Best for

    Teams building TypeScript microservices on AWS or GCP who want infrastructure declared in code

    Not for

    Teams that want a plain library they can drop into any Node.js server or edge runtime

    • Requests validated from TypeScript types, no schema library
    • encore run starts Postgres, Pub/Sub and caches locally
    • Tracing with no instrumentation code, including on a laptop
    • Docker images and a migrate-away guide limit lock-in
    • Automatic cloud provisioning needs the paid Encore Cloud plan
    • Static analysis sets rules on how code is written, and AWS and GCP only
    • Two critical advisories in July 2026, fixed in 1.57.11 and 1.57.13
    Licence
    MPL-2.0 (copyleft)
    Stack
    TypeScript / Node.js 18+, Rust runtime
    Databases
    PostgreSQL
    GitHub
    13k stars · 116 contributors
    Latest release
    v1.58.8 · Oct 20, 2026
    What people say
  7. #7Best minimal coreTested by Geekflare

    Koa

    Small async middleware framework for Node.js from the team behind Express, with no bundled middleware

    A small async middleware core that handled 23% more reads than Express in my test. Routing, body parsing and validation come from separate packages, and releases have slowed.

    Tested Oct 31, 2026, version 3.2.1
    Ready in
    5 s
    Memory in use at idle
    82 MB of 4 GB
    Reads per second
    13,497
    Writes per second
    8,260
    Startup
    0.44 s

    23% more reads a second than Express with the same Zod check, at 13,497. Routing and body parsing come from separate packages.

    Commands, notes and screenshots

    Best for

    Developers who want a minimal async core and pick every other piece

    Not for

    Teams that want validation, OpenAPI docs or project structure in the framework

    • Middleware can run code before and after downstream handlers
    • Small core that is quick to read in full
    • Koa 3 accepts Web Response bodies and exposes the current context
    • Official router, body parser, CORS, session and static file middleware
    • Routing and body parsing are separate packages
    • TypeScript types come from DefinitelyTyped, not the project
    • Official validation and JWT middleware have not been released in years
    Licence
    MIT (permissive)
    Stack
    JavaScript / Node.js 18+
    GitHub
    36k stars · 259 contributors
    Latest release
    v3.2.1 · May 21, 2026
  8. #8Best for real-time APIs

    Feathers

    TypeScript framework for REST and real-time APIs built from services and hooks, with Socket.io events and database adapters

    Services expose the same API over REST and WebSockets, with official adapters for SQL and MongoDB. Version 6 has been in pre-release since January 2026, and two maintainers do most of the work.

    Best for

    Teams building real-time APIs where clients should see changes as they happen

    Not for

    Teams that want OpenAPI docs from official packages or a large community around them

    • Every service is available over REST and Socket.io with real-time events
    • Hooks run the same for REST, WebSocket and internal calls
    • Schemas give both validation and TypeScript types, plus a typed client
    • Official adapters share one query syntax across SQL and MongoDB
    • Several OAuth account-takeover advisories this year
    • No official OpenAPI package; the community one was last published in 2023
    • The next major version has been in pre-release since January 2026
    Licence
    MIT (permissive)
    Stack
    TypeScript / Node.js 22+
    Databases
    PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, MongoDB
    GitHub
    15k stars · 270 contributors
    Latest release
    v5.0.53 · Oct 28, 2026
  9. #9Best for configuration-driven APIsTested by Geekflare

    hapi

    Configuration-driven Node.js server framework with built-in auth, validation, caching and plugins

    Routes declare validation, auth and limits as configuration, with joi from the same project, and every error in my test came back as JSON. A small volunteer committee maintains it.

    Tested Oct 31, 2026, version 21.4.12
    Ready in
    9 s
    Memory in use at idle
    81 MB of 4 GB
    Reads per second
    10,111
    Writes per second
    5,421
    Startup
    0.48 s

    Validation, errors and limits are route configuration, and every error came back as JSON. Writes were the second slowest at 5,421 a second.

    Commands, notes and screenshots

    Best for

    Teams that want auth and validation configured per route in one framework

    Not for

    Teams that want OpenAPI from an official plugin or a large plugin ecosystem

    • Auth schemes and strategies are part of the core
    • Route validation for params, queries, payloads and headers with joi
    • Ships its own TypeScript types
    • Regular patch and security releases through 2026
    • OpenAPI docs only through the community hapi-swagger plugin
    • Run by volunteers on a small community budget
    • Node.js minimums differ between hapi, its docs and joi
    Licence
    BSD-3-Clause (permissive)
    Stack
    JavaScript / Node.js 16+
    GitHub
    15k stars · 251 contributors
    Latest release
    21.4.12 · Oct 28, 2026
  10. #10Best for Bun

    Elysia

    TypeScript web framework built for Bun, with schema validation, OpenAPI docs and a typed client called Eden

    Typed routes, validation, OpenAPI and a typed client from one schema, built for Bun with adapters for Node.js, Deno and Workers. Version 1.4 now gets security fixes only while version 2, a rewrite, is a release candidate.

    Best for

    TypeScript teams on Bun who want typed routes, validation and OpenAPI from one schema

    Not for

    Teams that want a long-stable API or Node.js as the main target

    • Validation with TypeBox or any Standard Schema library
    • OpenAPI docs from schemas or straight from TypeScript types
    • Eden gives a typed client without code generation
    • Critical security fixes in schema compilation in the past year
    • 1.4 is security-only while Elysia 2 is still a release candidate
    • Some features follow Bun, and Workers support is experimental
    Licence
    MIT (permissive)
    Stack
    TypeScript / Bun, Node.js 20.16+, Deno, Cloudflare Workers
    GitHub
    19k stars · 123 contributors
    Latest release
    1.4.30 · Aug 26, 2026
    What people say

More open source Node.js frameworks

Older frameworks still in use, RPC and microservice toolkits, and smaller projects that fit a narrower need.

SoftwareLicenceTypeGitHub starsLatest release
LoopBack
TypeScript framework for OpenAPI-first REST APIs, with dependency injection, models, repositories and database connectors
MIT
Permissive
OpenAPI-first API framework5.1k(Actively maintained)Oct 2026
Ts.ED
Decorator-based TypeScript framework that runs on Express, Koa or Fastify, with dependency injection and JSON Schema models
MIT
Permissive
Decorator-based TypeScript framework3.1k(Actively maintained)Oct 2026
tRPC
Type-safe RPC layer for TypeScript, where the client calls server procedures with types shared from the router
MIT
Permissive
Type-safe RPC framework41k(Actively maintained)Oct 2026
Moleculer
Microservices framework for Node.js with service discovery, load balancing and fault tolerance built into the broker
MIT
Permissive
Microservices framework6.4k(Actively maintained)Aug 2026
H3
Minimal HTTP framework on Web Standards with tree-shakable utilities, used as the server layer in Nitro
MIT
Permissive
Minimal web framework5.5k(Actively maintained)Oct 2026
restify
Connect-style middleware framework for REST APIs on Node.js, with body parsing, throttling and logging plugins built in
MIT
Permissive
REST API framework11k(Actively maintained)Oct 2026
Midway
TypeScript framework with dependency injection for web apps, microservices and serverless functions, on Koa, Express or Egg
MIT
Permissive
Web and serverless framework7.8k(Actively maintained)Oct 2026
Egg
Convention-based framework on Koa from Alibaba, with process management, a plugin system and the tegg decorator layer
MIT
Permissive
Convention-based web framework19k(Actively maintained)Oct 2026
Foal
TypeScript framework for web apps and APIs with a CLI, TypeORM, authentication and OpenAPI in one package set
MIT
Permissive
Full-stack TypeScript framework1.9k(Actively maintained)Jul 2026
Sails
MVC framework for Node.js in the style of Ruby on Rails, built on Express and Socket.io with the Waterline ORM
MIT
Permissive
Full-stack MVC framework23k(Actively maintained)May 2026
Meteor
Full-stack JavaScript platform with MongoDB collections, real-time data over WebSockets, accounts and a build tool
MIT
Permissive
Full-stack app platform45k(Actively maintained)Oct 2026
Ultimate Express
Re-implementation of the Express 4 API on top of uWebSockets.js, meant as a drop-in replacement for Express
Apache-2.0
Permissive
Express-compatible web server1.1k(Actively maintained)Oct 2026
  • Actively maintained
  • Slowing: last release 1 to 2 years ago
  • Stale: no release in over 2 years

Not included, and why

Names from older lists that have stopped, front-end frameworks, and tools that aren't backend frameworks.

  • Total.js: The original framework repository was last updated in March 2024, and its successor, Total.js 5, is still at version 0.0.x with a small following.
  • micro: Vercel's micro has had no release since November 2022.
  • Next.js and Nuxt server routes: Features of meta-frameworks whose main job is rendering pages, not standalone backend frameworks.
  • Strapi: A headless CMS that gives you an API from content types, rather than a framework for writing your own. See open source CMS

How to choose

Start from how big the codebase will get

For a small service or a few endpoints, Fastify, Hono or Express keep things simple. When several teams will share one backend, NestJS, AdonisJS or Encore.ts give everyone the same structure, at the cost of more code and a slower start.

Check where it has to run

Hono, Elysia and h3 run on Cloudflare Workers, Bun and Deno as well as Node.js. Fastify, NestJS, Express, Koa, hapi and AdonisJS are Node.js frameworks, which is fine for a container or a server.

Count what you'd have to add

Fastify, NestJS, Hono and Elysia give you validation and OpenAPI docs from the project itself. With Express and Koa you choose and maintain third-party packages for both, and AdonisJS has validation but no official OpenAPI package.

Plan for patch releases

All ten picks shipped security fixes in the past year, many of them in validation, body parsing or auth middleware. Pin versions, watch each project's GitHub security advisories and update often, whichever framework you choose.

How we evaluate

No vendor influences these pages. A vendor can pay for a Featured placement, labelled Sponsored, which never changes a rank or a review.

What qualifies
Open source server-side frameworks for building HTTP APIs and microservices in JavaScript or TypeScript, with a release or commit in the last 12 months and 1,000+ GitHub stars. Front-end frameworks, meta-frameworks whose main job is rendering pages, headless CMSs and test frameworks are not considered.
Where we look
GitHub, the pages that rank for each category, so both established and newer projects are considered.
How we rank
Fit for business and technical teams: maintenance activity, self-hosting effort, licence terms, and which features the paid editions lock. Payment never changes a ranking.
Where the data comes from
Stars, releases, contributors and licences come from GitHub. Editions, pricing and requirements come from each software's own docs.
Hands-on testing
We install several of the picks in each category on a cloud Ubuntu 24.04 server (2 vCPU, 4 GB RAM) with Docker, and record install time and idle memory.
Questions

Frequently asked questions

No. Node.js is a JavaScript runtime. It runs JavaScript outside the browser and provides the HTTP server, file system and network APIs. Frameworks such as Express, Fastify and NestJS run on top of it and add routing, middleware, validation and structure.

For most new APIs, Fastify. It has schema validation in the core, official OpenAPI and auth plugins, and it was the fastest in my test. For a large TypeScript codebase shared by several teams, NestJS. For code that must also run on Cloudflare Workers, Bun or Deno, Hono.

Express has the most developers and middleware, but validation, OpenAPI and types come from other packages. Fastify adds validation and official plugins for those, and handled 19,918 reads a second on one core in my test against 10,963 for Express. Hono did 18,397 with only four packages and runs beyond Node.js, but you assemble more of the app yourself.

Yes, for teams that know it. Express 5 handles errors from async handlers, both the 5.x and 4.x lines still get releases, and it's an OpenJS Foundation project. For a new API, Fastify or Hono give you validation and better types with less to add.

In my test, Fastify, at 19,918 reads a second on one CPU core, then Hono at 18,397, Koa at 13,497 and Express at 10,963. The gap matters less than it looks, because a single database query usually takes longer than the framework's own work on a request.