RouteGraph v1.0.0 is out. It's stable, it's typed, it's not going to rewrite your framework of choice into a decorator soup. → Try it in 90 seconds

Compare

Every comparison page on every dev tool’s website is a rigged fight. This one’s rigged too — we just tell you where the rigging is.

vs raw Express / Fastify / Hono / Koa

You already know how this ends. You’re maintaining a router file that has one job — staying in sync with reality — and it’s already lied to you at least once this sprint.

FeatureRouteGraphRaw framework
Registering a routedrop a filewrite a line, remember to write it
Request validationZod, automaticmanual, or a second library
API docsgenerated, always currenthand-written, aging in real time
Switching frameworksedit one filerewrite the router
Typed client for consumersincludedbuild it yourself

vs NestJS

NestJS is Angular for backends. Some people genuinely love that. Most people are quietly exhausted by the fourth decorator on a single method.

FeatureRouteGraphNestJS
Mental modelfiles and functionsdecorators, DI containers, modules, providers
What it isa routing layera framework — you live inside it
Works with your existing Express appit *is* the app
Boilerplate to add one endpointone filecontroller + module wiring + provider, usually

vs tRPC

tRPC is genuinely great if your client is TypeScript. Your iOS team’s Swift codebase does not care about your AppRouter type.

FeatureRouteGraphtRPC
End-to-end types
Consumable by non-TS clientsit's just RESTawkward without a REST shim
HTTP semantics (caching, verbs, status codes)mostly POST
OpenAPI exportneeds a separate plugin

RouteGraph’s actual pitch here: both, not a compromise. Real REST semantics, real end-to-end types, no client-and-server-must-both-be-TS requirement.

vs OpenAPI-first (Swagger + codegen)

Writing YAML to describe an API you haven’t built yet has always been backwards, and the generated client types are always just wrong enough that someone hand-patches the .d.ts and nobody ever removes the patch.

FeatureRouteGraphOpenAPI-first / codegen
Source of truthyour Zod schemasa YAML file, maintained separately
Types drift from the speccan't — same sourceconstantly
Still get an OpenAPI specexported from the same schemas

We checked every claim on this page against the actual v1.0.0 implementation before publishing it. If a future version breaks one of these, that’s a docs bug — open an issue.