versionlessinstall

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
GET /users/u_1 200 OKx-api-version: 2026-05-14
handlerclient

↓ 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.