{"adoption": {"forks": 109, "observed_at": "2026-08-28T04:05:39.606598+00:00", "stars": 1811}, "canonical_url": "https://ross.abutalabs.com/products/wayfinder", "card": {"archived": false, "artifact_type": "library", "description": null, "domain": ["web-development", "frontend", "backend", "developer-tools"], "enriched": true, "function": ["routing", "sdk", "developer-tools"], "health_score": 99, "homepage": null, "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "experimental", "member_repos": ["laravel/wayfinder"], "name": "laravel/wayfinder", "platform": ["php"], "pushed_at": "2026-08-22T02:54:22+00:00", "repo": "laravel/wayfinder", "stars": 1811, "tags": ["laravel", "typescript", "vite-plugin", "route-generation", "type-safety", "inertia", "code-generation", "nodejs", "web-server"], "topics": [], "urls": [], "use_cases": ["generate typed TypeScript functions for Laravel routes", "call Laravel backend endpoints from a TypeScript frontend without hardcoding URLs", "keep frontend route links in sync with backend route changes automatically", "avoid guessing route parameters when linking to Laravel controllers", "integrate Laravel routes into a Vite build pipeline", "replace manually maintained API client files in a Laravel + Inertia app"], "what_it_is": "Laravel Wayfinder is a Composer package plus Vite plugin that generates fully-typed, importable TypeScript functions from Laravel controllers and routes. It lets frontend code call Laravel endpoints like regular functions without hardcoding URLs or manually syncing route changes.", "when_to_avoid": ["your frontend is not TypeScript-based", "you need a stable v1 API — Wayfinder is in beta and its API may change", "you do not use Vite or are unwilling to run a generation step in your build"], "when_to_choose": ["you build a Laravel app with a TypeScript frontend (Inertia, Vue, React) and want type-safe route handling", "you are tired of hardcoding URLs and manually updating frontend links after backend route changes", "you want route definitions generated automatically during Vite builds and dev server runs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/wayfinder", "repo": "laravel/wayfinder", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:21:16.059537+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3c1615766fee06951817429dbb4c14216bdf85c26235824f918f689d2c23e0", "fetched_at": "2026-08-28T04:05:39.606598+00:00", "kind": "readme", "missing": false, "url": "https://github.com/laravel/wayfinder"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:21:16.059537+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3c1615766fee06951817429dbb4c14216bdf85c26235824f918f689d2c23e0", "fetched_at": "2026-08-28T04:05:39.606598+00:00", "kind": "readme", "missing": false, "url": "https://github.com/laravel/wayfinder"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:21:16.059537+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3c1615766fee06951817429dbb4c14216bdf85c26235824f918f689d2c23e0", "fetched_at": "2026-08-28T04:05:39.606598+00:00", "kind": "readme", "missing": false, "url": "https://github.com/laravel/wayfinder"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:21:16.059537+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3c1615766fee06951817429dbb4c14216bdf85c26235824f918f689d2c23e0", "fetched_at": "2026-08-28T04:05:39.606598+00:00", "kind": "readme", "missing": false, "url": "https://github.com/laravel/wayfinder"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:21:16.059537+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3c1615766fee06951817429dbb4c14216bdf85c26235824f918f689d2c23e0", "fetched_at": "2026-08-28T04:05:39.606598+00:00", "kind": "readme", "missing": false, "url": "https://github.com/laravel/wayfinder"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:21:16.059537+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3c1615766fee06951817429dbb4c14216bdf85c26235824f918f689d2c23e0", "fetched_at": "2026-08-28T04:05:39.606598+00:00", "kind": "readme", "missing": false, "url": "https://github.com/laravel/wayfinder"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.606598+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:21:16.059537+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3c1615766fee06951817429dbb4c14216bdf85c26235824f918f689d2c23e0", "fetched_at": "2026-08-28T04:05:39.606598+00:00", "kind": "readme", "missing": false, "url": "https://github.com/laravel/wayfinder"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:21:16.059537+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3c1615766fee06951817429dbb4c14216bdf85c26235824f918f689d2c23e0", "fetched_at": "2026-08-28T04:05:39.606598+00:00", "kind": "readme", "missing": false, "url": "https://github.com/laravel/wayfinder"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:21:16.059537+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3c1615766fee06951817429dbb4c14216bdf85c26235824f918f689d2c23e0", "fetched_at": "2026-08-28T04:05:39.606598+00:00", "kind": "readme", "missing": false, "url": "https://github.com/laravel/wayfinder"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:21:16.059537+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b3c1615766fee06951817429dbb4c14216bdf85c26235824f918f689d2c23e0", "fetched_at": "2026-08-28T04:05:39.606598+00:00", "kind": "readme", "missing": false, "url": "https://github.com/laravel/wayfinder"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 37, "rhythm": 96}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 524, "days_push": 11, "days_rel": 29, "gap_med": 6, "n_releases_24m": 22}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}