Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Wayfinder Laravel Package

laravel/wayfinder

Generate fully typed TypeScript functions for your Laravel routes and controller methods. Wayfinder lets your frontend call endpoints like normal imports—no hardcoded URLs or manual param syncing. Works with Vite via @laravel/vite-plugin-wayfinder.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Eliminate API client boilerplate: Replace manual API route management (e.g., Axios/React Query) with auto-generated, type-safe TypeScript functions directly tied to Laravel controllers. Reduces frontend-backend drift and eliminates hardcoded URLs.
  • Accelerate frontend development: Enable zero-config API calls from React/Vue/Svelte, letting frontend teams work without backend coordination for route changes (via Vite plugin integration).
  • Unify Inertia.js workflows: Seamlessly integrate with Inertia’s useForm/Link components, enabling declarative form submissions and navigation without manual URL construction.
  • Build vs. Buy: Buy for Laravel-based projects using TypeScript frontends (React/Vue/Svelte). Avoid reinventing API client tooling if already using Laravel + Vite.
  • Roadmap prioritization:
    • Phase 1: Adopt for critical CRUD endpoints to reduce frontend-backend sync overhead.
    • Phase 2: Expand to complex workflows (e.g., multi-step forms, WebSocket-triggered actions) where URL management is error-prone.
    • Phase 3: Replace legacy API clients (e.g., custom Axios wrappers) with Wayfinder-generated types.

When to Consider This Package

Adopt if:

  • Your stack is Laravel (PHP) + TypeScript frontend (React/Vue/Svelte) with Vite for builds.
  • You struggle with frontend-backend route synchronization (e.g., broken links after backend changes).
  • Your team uses Inertia.js and wants to simplify form submissions/navigation.
  • You prioritize developer velocity over minimal bundle size (generated files are tree-shakable but not zero-cost).
  • Your API is mostly RESTful (Wayfinder excels at typed route generation but may require manual work for GraphQL/gRPC).

Look elsewhere if:

  • You’re not using Laravel (e.g., Node.js/Django backend).
  • Your frontend is not TypeScript-based (e.g., plain JavaScript or non-Vite builds).
  • You need real-time updates (e.g., WebSockets) beyond REST—Wayfinder focuses on HTTP routes.
  • Your API is highly dynamic (e.g., runtime-generated routes) or uses non-standard conventions.
  • You’re constrained by bundle size (generated files add ~10–50KB; evaluate tree-shaking impact).
  • Your team prefers GraphQL or gRPC over REST (Wayfinder is REST-first).

How to Pitch It (Stakeholders)

For Executives:

"Wayfinder eliminates a major friction point in our Laravel + TypeScript workflows. Today, frontend and backend teams waste time syncing API routes—changes in Laravel break frontend links, or devs hardcode URLs that become stale. Wayfinder auto-generates type-safe, importable TypeScript functions for every Laravel route, so our frontend teams can call backend endpoints like local functions. For example:

// Instead of:
axios.get(`/posts/${id}`);

// Now:
import { show } from '@/actions/App/Http/Controllers/PostController';
show(id); // Returns { url: "/posts/1", method: "get" }

This reduces bugs, speeds up development, and aligns with our Inertia.js strategy. The MIT license and Laravel team backing make it a low-risk bet. Initial adoption for CRUD endpoints could save 10–20 hours/month in sync overhead."

For Engineering:

"Wayfinder solves three key pain points:

  1. No more manual API clients: Forget writing Axios wrappers or maintaining route constants. Wayfinder generates fully typed TypeScript for your Laravel routes during Vite builds.
  2. Inertia.js superpowers: Pair with useForm/Link for zero-boilerplate submissions:
    <form {...store.form()}> {/* Auto-generates action="/posts" method="post" */}
    
  3. Deploy safety: The Vite plugin ensures generated files match your current route cache, catching stale routes early.

Tradeoffs:

  • Beta risk: API may change before v1.0 (monitor changelog).
  • Build dependency: Requires Vite and PHP route:clear in deploys.
  • Not a silver bullet: Complex APIs (e.g., nested resources with overlapping routes) need manual adjustments.

Proposal: Pilot with 2–3 high-traffic controllers (e.g., PostController, UserController) to validate the dev experience before full adoption."*

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
ecotone/kafka
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata