Nothing Drifts
The same definitions that validate requests in production generate your OpenAPI, TypeScript, and Zod. One source of truth for the entire boundary.
Define your API once — and generate everything from it
The same definitions that validate requests in production generate your OpenAPI, TypeScript, and Zod. One source of truth for the entire boundary.
ActiveRecord, migrations, associations, validations, gems — none of it changes. Apiwork adds the typed boundary.
Enums become typed enums. STI and polymorphic associations become discriminated unions. Apiwork maps what Rails knows to the typed world.
Filtering, sorting, and pagination with typed operators, validated parameters, and generated client types. Declare filterable and the rest is built for you.
Create, update, and delete nested records in one request. Fully typed payloads with structured error paths at every level.
Contracts work standalone. Define any request or response shape by hand — for webhooks, external APIs, or anything outside ActiveRecord.