Launching today
Named Routes
Turn your pages into typed, named URLs
2 followers
Turn your pages into typed, named URLs
2 followers
Generate typed URL helpers from the pages your framework already routes. Discover routes across Next.js, Nuxt, Vue, SvelteKit, Astro, React Router and TanStack Router, with typed parameters, locale-aware URLs and zero runtime dependencies.






Launch Team

Render Sandboxes: a computer for every agentRun untrusted code safely. Idle sandboxes cost nothing
Promoted
Hey Product Hunt! 👋
I’m the creator of Triooo Named Routes, an open-source package that generates typed URL helpers from the pages your framework already routes.
The problem I wanted to solve is familiar: the filesystem defines a URL, but application code repeats it in links, redirects and other places. Renaming a parameter or changing a path then means finding those strings and checking them by hand.
With Named Routes, a page like:
app/users/[user]/page.tsx
becomes:
route("users.$user", { user: 42 })
That returns /users/42, with TypeScript checking the route name and parameters.
Version 1 includes Next.js and Vite integrations, adapters for seven framework ecosystems, locale-aware URLs, and a standalone runtime for manually declared routes. The runtime has zero dependencies.
One design choice worth explaining: automatic names follow URL structure. If you move a URL, its inferred name can change, and TypeScript helps identify affected call sites. When you need a stable semantic name such as users.show, you can configure one explicitly.
This is a URL builder: your framework still handles route matching, rendering and navigation. File discovery also has limits—custom paths declared inside page code need an explicit mapping or a manual manifest.
You can get started with:
npm install @triooo/named-routes
I’d love feedback from developers working with file-based routing, especially multilingual apps or projects with unusual route conventions.
What’s the URL-generation edge case you keep having to solve in your projects?
Thanks for taking a look!