API compatibility without a second API
Change your API without breaking old clients.
Keep one API. Versionless handles old clients.
No v1 folders. No duplicate handlers. No old-shape branches.
bun add @versionless/core↓ handler writes the current shape. Drag the pin.
case notesJul 2026
versionless
Stripe-style date-based API versioning, as a library
What it is
Your handlers only ever see the latest request and response shapes. Every breaking change is a dated, reversible transform, and old clients get walked down the chain at the edge until the payload looks like the version they pinned.
The bit I'm proud of
Zero runtime dependencies in core, and adapters for Elysia, Hono, Express, Next.js, TanStack Start, tRPC and oRPC. Plus an OTel → ClickHouse dashboard that shows which versions are still being called.
On this tab: The release ledger. Drag through the dates and watch one payload rewrite itself.