agentsclimarketplace

Laravel livewire

Skill fusengine/agents/plugins/laravel-expert/skills/laravel-livewire

Livewire 4 reactive components on Laravel 13 - wire:model, actions, events, Volt, Folio. Use when building reactive UI without JavaScript.From its SKILL.md

Install
npx -y skills add fusengine/agents --skill laravel-livewire

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.5 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

Laravel Livewire

Agent Workflow (MANDATORY)

Before ANY implementation, use TeamCreate to spawn 3 agents:

  1. fuse-ai-pilot:explore-codebase - Check existing Livewire components
  2. fuse-ai-pilot:research-expert - Verify Livewire 3 patterns via Context7
  3. mcp__context7__query-docs - Check specific Livewire features

After implementation, run fuse-ai-pilot:sniper for validation.


Overview

FeatureDescription
ComponentsReactive PHP classes with Blade views
wire:modelTwo-way data binding
ActionsCall PHP methods from frontend
EventsComponent communication
VoltSingle-file components
FolioFile-based routing

Critical Rules

  1. Always use wire:key in loops
  2. Use wire:model.blur for validation, not .live everywhere
  3. Debounce search inputs with .debounce.300ms
  4. #[Locked] for sensitive IDs
  5. authorize() in destructive actions
  6. protected methods for internal logic

Decision Guide

Component Type

Component choice?
├── Complex logic → Class-based component
├── Simple page → Volt functional API
├── Medium complexity → Volt class-based
├── Quick embed → @volt inline
└── File-based route → Folio + Volt

Data Binding

Binding type?
├── Form fields → wire:model.blur
├── Search input → wire:model.live.debounce.300ms
├── Checkbox/toggle → wire:model.live
├── Select → wire:model
└── No sync → Local Alpine x-data

Reference Guide

Core Concepts (WHY & Architecture)

TopicReferenceWhen to Consult
Componentscomponents.mdCreating components
Wire Directiveswire-directives.mdData binding, events
Lifecyclelifecycle.mdHooks, mount, hydrate
Formsforms-validation.mdValidation, form objects
Eventsevents.mdDispatch, listen
Alpinealpine-integration.md$wire, @entangle
File Uploadsfile-uploads.mdUpload handling
Nestingnesting.mdParent-child
Loadingloading-states.mdwire:loading, lazy
Navigationnavigation.mdSPA mode
Testingtesting.mdComponent tests
Securitysecurity.mdAuth, rate limit
Voltvolt.mdSingle-file components

Advanced Features

TopicReferenceWhen to Consult
Foliofolio.mdFile-based routing
Precognitionprecognition.mdLive validation
Reverbreverb.mdWebSockets

Templates (Complete Code)

TemplateWhen to Use
BasicComponent.php.mdStandard component
FormComponent.php.mdForm with validation
VoltComponent.blade.mdVolt patterns
DataTableComponent.php.mdTable with search/sort
FileUploadComponent.php.mdFile uploads
NestedComponents.php.mdParent-child
ComponentTest.php.mdTesting patterns

Quick Reference

Basic Component

class Counter extends Component
{
    public int $count = 0;

    public function increment(): void
    {
        $this->count++;
    }

    public function render()
    {
        return view('livewire.counter');
    }
}

Volt Functional

<?php
use function Livewire\Volt\{state};

state(['count' => 0]);

$increment = fn() => $this->count++;
?>

<button wire:click="increment">{{ $count }}</button>

Wire Directives

<input wire:model.blur="email">
<input wire:model.live.debounce.300ms="search">
<button wire:click="save" wire:loading.attr="disabled">Save</button>

Best Practices

DO

  • Use wire:key in @foreach loops
  • Debounce search/filter inputs
  • Use Form Objects for reusable logic
  • Test with Livewire::test()
  • #[Locked] for IDs, #[Computed] for derived data

DON'T

  • wire:model.live on every field
  • Query in render() method
  • Forget authorization in actions
  • Skip wire:key in loops
  • Store sensitive data in public properties

Laravel 13 Notes

Livewire 4 sur Laravel 13

Livewire 4 est la version compatible Laravel 13. Changements clés :

  • PHP 8.3 minimum (était 8.2 sur Livewire 3)
  • wire:model.live rate-limited par défaut (300ms debounce implicite)
  • #[Locked], #[Computed], #[On] toujours supportés
  • Volt et Folio : versions majeures alignées (Volt 2, Folio 2)
  • PreventRequestForgery : routes /livewire/update gérées automatiquement, pas de config requise

Migration depuis Livewire 3

  • wire:poll.5s → toujours valide
  • $this->dispatch('event') → toujours valide
  • Form Objects (#[\Livewire\Attributes\Validate]) → API stable

What ships with it: 23 files

90.4 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.