Skip to content

raku_router

raku_router

A tiny, code-generation-free router for Flutter. Type-safe. Deep linking that just works. Nested tabs with their own back stacks — built in.

That’s the real example app running in your browser — tap the tabs, open a note, push a full-page photo, and watch the URL change and back/forward work, each tab keeping its own history.

Every router pushes navigation complexity somewherego_router into redirects/shells, auto_route into a build step, Navigator 2.0 onto you. raku_router’s bet: for most apps the real need is modest, and a small reactive core beats a big framework.

Type-safe, no codegen

Routes are plain sealed classes; an exhaustive switch is your route table. No build_runner, no .gr.dart, no annotations.

Nested tabs built in

Each tab keeps its own persistent back stack — what StatefulShellRoute does, but by default.

Deep linking from a tree

A URL’s structure reconstructs the navigation stack, both ways — and browser back/forward preserves state.

No state / design-system dep

The core only needs flutter. Drops into Material, Cupertino, or a custom design system equally. WASM-ready.

Tutorial

Build a notes app step by step — tabs, a detail screen, a guard, and deep linking.

Concepts

How it works: the mental model, URL ⇄ stack, and how tabs preserve state.