Code-first
Define routes in TypeScript with a fluent builder. No JSX route trees, no file-based conventions, no codegen step.
A small, code-first router with strong type inference for path and search parameters.
tss-router is built around four ideas. They show up everywhere — in the API, the implementation, and the docs.
<Route> trees to wire up, no file-based magic, no codegen pipeline. The path string you write is the source of truth./users/:id?tab=tab is a type — TypeScript parses placeholders and the query template, then propagates the param shape to every link, navigation call, and renderer. Mismatches are compile errors, not runtime bugs.route to start, .at to add, .group to compose, routingHooksFactory for Link / useNavigate / useRedirect. There's no nested context tree, no <Outlet />, no loaders. You can hold the whole surface in your head.If you only need one of these, you have plenty of choices. If you want all four, that's the gap tss-router fills.