Skip to content

Changelog

All notable changes to routekit will be listed here. The format follows Keep a Changelog, and routekit adheres to Semantic Versioning.

1.0.0 — 2026-04-15

The first stable release. The API is now frozen for the 1.x line; breaking changes will land in 2.0 and require a deprecation cycle.

Added

  • defineConfig() helper for routekit.config.ts (forward-compatible with the planned codegen CLI).
  • meta field on RouteDefinition, exposed as match.meta at runtime.
  • React adapter (routekit/react) with <Router /> and useRoute().
  • isActive(href, url, options?) utility for active-link styling.
  • Wildcard routes (/files/*) capture remaining segments as params.wildcard.

Changed

  • Default scrollBehavior is now 'auto' (was 'manual' in pre-1.0). The new default scrolls to top on forward nav and restores on back/forward.

Removed

  • router.subscribe() (deprecated in 0.9.0). Use router.on('navigate', ...) instead.

0.9.0 — 2026-02-01

Added

  • Multiple event types: navigate, no-match, before-navigate, after-navigate.
  • TypeScript: Match<T> is now a discriminated union keyed by path.

0.8.0 — 2025-11-12

Added

  • Hash-based routing via { hash: true } option. For environments that can’t fall back to index.html.
  • Programmatic router.replace() (does not push history).

Fixed

  • Cmd-click and middle-click on <a> elements no longer trigger router navigation (matches browser native behavior).

0.7.0 — 2025-09-04

Added

  • RouteDefinition.meta (typed as Record<string, unknown>).
  • match.state field for pushState-style state passing.

Fixed

  • Trailing slash matching is now consistent: /posts/ and /posts match the same route. Previously inconsistent across match() and start().

0.6.0 — 2025-07-21

Added

  • First TypeScript-first release. Generic types via as const route tables.
  • Tree-shakable bundle: importing only createRouter and useRoute lands ≤2 KB.

Removed

  • IE11 polyfill. routekit now targets ES2020.

0.5.0 — 2025-05-10

Initial public release. CHANGELOG started here. Earlier versions were internal.