Deep linking is one of those things every Flutter app needs — and almost every app gets wrong.
Handling:
path & query params
auth-protected routes
redirects to login
returning users to their original deep link
usually ends up messy, tightly coupled, or hard to maintain.
So I built smart_deeplink_router.
It’s a focused, guard-based deep link router that solves the most common real-world problems without over-engineering.
Key ideas
Declarative deep link definitions
Async route guards
Automatic redirect memory
Minimal API, no magic
📦 Package:
https://pub.dev/packages/smart_deeplink_router
I’d love feedback from other Flutter devs — especially how you handle deep links today.
Top comments (1)
This addresses the part of deep linking most apps underestimate: control flow, not parsing.
Treating deep links as guarded entry points with async checks and redirect memory makes the behavior explicit and testable, instead of being scattered across navigation callbacks. That’s a solid architectural choice.
Keeping the API small and declarative is especially important here — deep linking logic tends to rot fastest when it becomes implicit or magical. Curious to see how this holds up as apps grow in complexity.