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.
| Feature | RouteGraph | Raw framework |
|---|---|---|
| Registering a route | ✓ drop a file | ✕ write a line, remember to write it |
| Request validation | ✓ Zod, automatic | ✕ manual, or a second library |
| API docs | ✓ generated, always current | ✕ hand-written, aging in real time |
| Switching frameworks | ✓ edit one file | ✕ rewrite the router |
| Typed client for consumers | ✓ included | ✕ build 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.
| Feature | RouteGraph | NestJS |
|---|---|---|
| Mental model | files and functions | decorators, DI containers, modules, providers |
| What it is | a routing layer | a framework — you live inside it |
| Works with your existing Express app | ✓ | ✕ it *is* the app |
| Boilerplate to add one endpoint | one file | controller + 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.
| Feature | RouteGraph | tRPC |
|---|---|---|
| End-to-end types | ✓ | ✓ |
| Consumable by non-TS clients | ✓ it's just REST | ✕ awkward without a REST shim |
| HTTP semantics (caching, verbs, status codes) | ✓ | ✕ mostly POST |
| OpenAPI export | ✓ | ✕ needs 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.
| Feature | RouteGraph | OpenAPI-first / codegen |
|---|---|---|
| Source of truth | your Zod schemas | a YAML file, maintained separately |
| Types drift from the spec | ✓ can't — same source | ✕ constantly |
| Still get an OpenAPI spec | ✓ exported 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.