| name | wayfinder-development |
| description | Use this skill for Laravel Wayfinder which auto-generates typed functions for Laravel controllers and routes. ALWAYS use this skill when frontend code needs to call backend routes or controller actions. Trigger when: connecting any React/Vue/Svelte/Inertia frontend to Laravel controllers, routes, building end-to-end features with both frontend and backend, wiring up forms or links to backend endpoints, fixing route-related TypeScript errors, importing from @/actions or @/routes, or running wayfinder:generate. Use Wayfinder route functions instead of hardcoded URLs. Covers: wayfinder() vite plugin, .url()/.get()/.post()/.form(), query params, route model binding, tree-shaking. Do not use for backend-only task |
| license | MIT |
| metadata | {"author":"laravel"} |
Wayfinder Development
Documentation
Use search-docs for detailed Wayfinder patterns and documentation.
Quick Reference
Generate Routes
Run after route changes if Vite plugin isn't installed:
php artisan wayfinder:generate --no-interaction
For form helpers, use --with-form flag:
php artisan wayfinder:generate --with-form --no-interaction
Import Patterns
import {
show,
store,
update,
} from '@/actions/App/Http/Controllers/PostController';
import { show as postShow } from '@/routes/post';
Common Methods
show(1);
show.url(1);
show.get(1);
store.post();
update.patch(1);
destroy.delete(1);
store.form();
show(1, { query: { page: 1 } });
Wayfinder + Inertia
Use Wayfinder with the <Form> component:
<Form {...store.form()}><input name="title" /></Form>
Verification
- Run
php artisan wayfinder:generate to regenerate routes if Vite plugin isn't installed
- Check TypeScript imports resolve correctly
- Verify route URLs match expected paths
Common Pitfalls
- Using default imports instead of named imports (breaks tree-shaking)
- Forgetting to regenerate after route changes
- Not using type-safe parameter objects for route model binding