{"slug": "rhumb-static-user-journey-maps-from-your-frontend-source", "title": "Rhumb — static user-journey maps from your frontend source", "summary": "Satnam Sandhu released Rhumb, a Python library and CLI that builds static user-journey graphs from frontend source code by extracting routes and navigation edges. It supports React Router, TanStack Router, and Expo Router without requiring runtime or an LLM. The tool is currently in alpha (0.1.0) and available via GitHub.", "body_md": "I wanted a boring answer to a useful question:\n\nFrom this codebase, what are the real paths users can take to reach\n\n`/checkout`\n\n?\n\nNot “what PostHog recorded last week.” Not “what an LLM invents after reading three files.” Just: **routes + navigation edges → journey paths**, extracted from source.\n\nThat’s [Rhumb](https://github.com/satnam-sandhu/rhumb).\n\nRhumb is a small Python library/CLI that builds **static user-journey graphs** from frontend apps:\n\n`package.json`\n\n`Link`\n\n, `navigate`\n\n, `redirect`\n\n, …) with tree-sitterNo app runtime. No LLM in the extract path.\n\nSupported today:\n\n| Framework | Status |\n|---|---|\n| React Router | Supported |\n| TanStack Router | Supported |\n| Expo Router | Supported |\n\nNext.js, Remix, Vue Router, SvelteKit, Angular — detected or stubbed, not fully extracting yet. This is **alpha ( 0.1.0)**.\n\nNot on PyPI yet. Install from GitHub:\n\n```\nuv pip install git+https://github.com/satnam-sandhu/rhumb.git\n# or\npip install git+https://github.com/satnam-sandhu/rhumb.git\n```\n\nConstant-bearing journeys through your app.\n\nStatic **user journey** graphs from frontend source — routes, navigation edges, and concrete paths. No runtime. No LLM in the extract path.\n\n| Framework | Status | Notes |\n|---|---|---|\n| React Router | Supported |\nConfig / JSX routes + Link / navigate / redirect |\n| TanStack Router | Supported |\nFS + `routeTree.gen.ts` + virtual routes + nav |\n| Expo Router | Supported |\nFilesystem `app/` + Link / `router.*` |\n| Vue Router | Coming soon | Stub registered — SFC + router TS planned |\n| SvelteKit | Coming soon | Stub registered — `src/routes` + Svelte nav planned |\n| Next.js | Coming soon |\n`app/` / `pages/` filesystem + Link / redirects |\n| Remix | Coming soon | Filesystem routes + nav |\n| Angular | Coming soon | TS `Routes` arrays |\n| Vite + React (no router) | Coming soon | Thin / delegate when React Router present |\n\nDetection already recognizes several of the “coming soon” stacks from `package.json`\n\n; journey extraction ships only for the **Supported** rows today.\n\n| Tool |\n|---|", "url": "https://wpnews.pro/news/rhumb-static-user-journey-maps-from-your-frontend-source", "canonical_source": "https://dev.to/satnam_sandhu/rhumb-static-user-journey-maps-from-your-frontend-source-1pkc", "published_at": "2026-07-13 04:20:11+00:00", "updated_at": "2026-07-13 04:44:45.160041+00:00", "lang": "en", "topics": ["developer-tools"], "entities": ["Satnam Sandhu", "Rhumb", "React Router", "TanStack Router", "Expo Router", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/rhumb-static-user-journey-maps-from-your-frontend-source", "markdown": "https://wpnews.pro/news/rhumb-static-user-journey-maps-from-your-frontend-source.md", "text": "https://wpnews.pro/news/rhumb-static-user-journey-maps-from-your-frontend-source.txt", "jsonld": "https://wpnews.pro/news/rhumb-static-user-journey-maps-from-your-frontend-source.jsonld"}}