The TypeScript OpenAPI space is crowded and mature. hey-api,
orval, kubb, and
openapi-fetch are all good tools, actively maintained, and
in some areas more featureful than this one. If you want the broadest plugin ecosystem, mocks, or
hooks for every framework, one of them is probably the better pick, and that is fine.
This page exists so you can decide quickly and fairly. It is kept deliberately honest: where the
alternatives are ahead, that is stated plainly. A comparison that only flatters itself is not worth
reading.
Most generators treat your generated code as disposable: every run overwrites everything, so the
output is a black box you are not meant to touch. openapi-zod-ts is built around the opposite idea.
The Zod schema file is bootstrapped once and then yours forever, the client uses native fetch
with no runtime library, and the whole thing is 1.0 and deliberately small rather than a moving
target. You trade breadth for ownership and stability.
With input_schema enabled, schemas.ts is written once and then never touched again. Add
refinements, custom error messages, and business rules. Re-running the generator overwrites the
client and types but leaves your schemas alone. Every other tool here regenerates schemas on every
run, so hand edits do not survive.
Full-stack from one spec
The only tool in this set that also generates the server side: a framework-agnostic service
interface plus an optional router for Hono, Express, or Fastify. One spec drives the client, the
hooks, and the server contract, validated at both ends.
Nothing in your bundle
The generated client uses only native fetch. The generator is a devDependency. openapi-fetch
ships a small runtime library you import; orval and kubb generate code that calls a client you
install. Here, nothing the codegen produces lingers in production that your project did not already
have.
Boring on purpose
1.0 and semver-stable, proven on 128 real-world specs in CI with live smoke tests, mutation
testing, and published provenance. A code generator has a wide blast radius; for this layer of your
stack, predictable beats cutting-edge.
Breadth of frameworks. We generate React Query hooks only. hey-api, orval, and kubb generate
hooks for Vue, Svelte, Angular, Solid, and more. If your frontend is not React, they win outright.
Mocks and test fixtures. orval and kubb generate MSW handlers and faker mocks; hey-api has a
plugin for it. We do not generate mocks at all.
Plugin ecosystems. hey-api has 20+ plugins and is used by Vercel, OpenCode, and PayPal. kubb is
a plugin meta-framework. If you want to bolt on MSW, Cypress, MCP, or a custom transformer, they are
built for that. We are deliberately small and opinionated.
Swagger 2.0. orval and kubb read Swagger 2.0 specs. We only support OpenAPI 3.x.
Adoption. These projects have years of users and battle-testing behind them. We are new. That is
a real factor, and you should weigh it.