finds.dev← search

// the find

hey-api/openapi-ts

★ 4,945 · TypeScript · MIT · updated Jun 2026

🌀 OpenAPI to TypeScript codegen. Production-grade SDKs, Zod schemas, TanStack Query hooks, and 20+ plugins. Used by Vercel, OpenCode, and PayPal.

OpenAPI-to-TypeScript codegen with a plugin architecture that generates typed SDKs, Zod/Valibot schemas, and TanStack Query hooks from the same spec. Targets teams who want a typed HTTP client that actually matches their API contract, not just hand-rolled fetch calls. Used in production by Vercel and PayPal, which means it's been through large, messy real-world specs.

The plugin architecture is the right design: types, SDK, and validation schemas are separate outputs you opt into individually, so you're not forced to take the whole bundle. Framework-specific clients are genuinely native — the Angular client returns Observables, the Next.js client threads through Next's fetch cache semantics, not just a thin wrapper. The breadth of HTTP client targets (Fetch, Axios, Ky, Angular, Next, Nuxt) is practical rather than gratuitous. Active release cadence with 20+ pending changesets as of the review date suggests the project isn't stagnating.

It's pre-1.0 and they say so plainly — pin exact versions because breaking changes ship regularly. For a tool that generates files your whole codebase imports, that's painful: every upgrade risks git noise and subtle behavioral changes in the generated client. The 'Hey API Registry' service shows up in every example as the input source, which creates an external dependency for spec management that doesn't fit a self-hosted or air-gapped setup. The generated output folder is explicitly off-limits for manual edits, which means there's no escape hatch when the generator produces something slightly wrong — you're either configuring your way out or waiting for a fix. The 'proposed plugins' list (MSW, Faker, SWR, Zustand, and a dozen more) is long and community-vote-gated, so the ecosystem feels larger than it actually is today.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →