Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
spatie avatar

Livewire Development

  • 511 installs
  • 652 repo stars
  • Updated July 28, 2026
  • spatie/freek.dev

livewire-development is a Cursor and Claude Code skill that scaffolds Livewire components with Alpine.js interactivity following Spatie best practices for developers building reactive Laravel UIs.

About

livewire-development is a Spatie-maintained agent skill ranked #5 on skills.sh with 443 installs that guides Livewire component development inside Cursor or Claude Code. The skill scaffolds Livewire components, writes Alpine.js interactivity, and enforces Spatie Laravel best practices without leaving the IDE. Developers reach for livewire-development when building reactive admin panels, forms, and dashboards in Laravel apps where full-page JavaScript frameworks are unnecessary overhead. It compresses boilerplate decisions—component structure, wire: directives, and Alpine pairings—into agent-driven workflows aligned with production Spatie codebases.

  • Livewire component scaffolding and full-page component generation
  • Alpine.js integration and reactive frontend behavior patterns
  • Spatie package conventions and Laravel ecosystem alignment
  • Tailwind CSS class generation and responsive layout patterns
  • Blade view + Livewire controller synchronization

Livewire Development by the numbers

  • 511 all-time installs (skills.sh)
  • +12 installs in the week ending Jul 27, 2026 (Skillselion tracking)
  • Ranked #617 of 2,245 Frontend Development skills by installs in the Skillselion catalog
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/spatie/freek.dev --skill livewire-development

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs511
repo stars652
Last updatedJuly 28, 2026
Repositoryspatie/freek.dev

How do you scaffold Livewire components with Alpine.js?

Get an expert Livewire coding agent that scaffolds components, writes Alpine.js interactivity, and follows Spatie best practices without leaving Cursor or Claude Code.

Who is it for?

Laravel developers using Cursor or Claude Code who build reactive UIs with Livewire and want Spatie-grade component patterns.

Skip if: Teams building React or Vue SPAs without Livewire, or PHP backends with no reactive frontend requirements.

When should I use this skill?

The user is creating or refactoring Livewire components, Alpine.js bindings, or Spatie-style Laravel reactive UI.

What you get

Livewire component classes, Blade templates, Alpine.js bindings, and Spatie-aligned reactive UI code.

  • Livewire component classes
  • Blade templates with Alpine.js bindings

By the numbers

  • 443 installs recorded on skills.sh
  • Ranked #5 on skills.sh catalog

Files

SKILL.mdMarkdownGitHub ↗

Livewire Development

When to Apply

Activate this skill when:

  • Creating or modifying Livewire components
  • Using wire: directives (model, click, loading, sort, intersect)
  • Implementing islands or async actions
  • Writing Livewire component tests

Documentation

Use search-docs for detailed Livewire 4 patterns and documentation.

Basic Usage

Creating Components

<code-snippet name="Component Creation Commands" lang="bash">

Single-file component (default in v4)

{{ $assist->artisanCommand('make:livewire create-post') }}

Multi-file component

{{ $assist->artisanCommand('make:livewire create-post --mfc') }}

Class-based component (v3 style)

{{ $assist->artisanCommand('make:livewire create-post --class') }}

With namespace

{{ $assist->artisanCommand('make:livewire Posts/CreatePost') }}

</code-snippet>

Converting Between Formats

Use php artisan livewire:convert create-post to convert between single-file, multi-file, and class-based formats.

Component Format Reference

FormatFlagStructure
Single-file (SFC)defaultPHP + Blade in one file
Multi-file (MFC)--mfcSeparate PHP class, Blade, JS, tests
Class-based--classTraditional v3 style class
View-based⚡ prefixBlade-only with functional state

Single-File Component Example

<code-snippet name="Single-File Component Example" lang="php">

<?php use Livewire\Component;

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

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

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

</code-snippet>

Livewire 4 Specifics

Key Changes From Livewire 3

These things changed in Livewire 4, but may not have been updated in this application. Verify this application's setup to ensure you follow existing conventions.

  • Use Route::livewire() for full-page components; config keys renamed: layoutcomponent_layout, lazy_placeholdercomponent_placeholder.
  • wire:model now ignores child events by default (use wire:model.deep for old behavior); wire:scroll renamed to wire:navigate:scroll.
  • Component tags must be properly closed; wire:transition now uses View Transitions API (modifiers removed).
  • JavaScript: $wire.$js('name', fn)$wire.$js.name = fn; commit/request hooks → interceptMessage()/interceptRequest().

New Features

  • Component formats: single-file (SFC), multi-file (MFC), view-based components.
  • Islands (@island) for isolated updates; async actions (wire:click.async, #[Async]) for parallel execution.
  • Deferred/bundled loading: defer, lazy.bundle for optimized component loading.
FeatureUsagePurpose
Islands@island(name: 'stats')Isolated update regions
Asyncwire:click.async or #[Async]Non-blocking actions
Deferreddefer attributeLoad after page render
Bundledlazy.bundleLoad multiple together

New Directives

  • wire:sort, wire:intersect, wire:ref, .renderless, .preserve-scroll are available for use.
  • data-loading attribute automatically added to elements triggering network requests.
DirectivePurpose
wire:sortDrag-and-drop sorting
wire:intersectViewport intersection detection
wire:refElement references for JS
.renderlessComponent without rendering
.preserve-scrollPreserve scroll position

Best Practices

  • Always use wire:key in loops
  • Use wire:loading for loading states
  • Use wire:model.live for instant updates (default is debounced)
  • Validate and authorize in actions (treat like HTTP requests)

Configuration

  • smart_wire_keys defaults to true; new configs: component_locations, component_namespaces, make_command, csp_safe.

Alpine & JavaScript

  • wire:transition uses browser View Transitions API; $errors and $intercept magic properties available.
  • Non-blocking wire:poll and parallel wire:model.live updates improve performance.

For interceptors and hooks, see reference/javascript-hooks.md.

Testing

<code-snippet name="Testing Example" lang="php">

Livewire::test(Counter::class) ->assertSet('count', 0) ->call('increment') ->assertSet('count', 1);

</code-snippet>

Verification

1. Browser console: Check for JS errors 2. Network tab: Verify Livewire requests return 200 3. Ensure wire:key on all @foreach loops

Common Pitfalls

  • Missing wire:key in loops → unexpected re-rendering
  • Expecting wire:model real-time → use wire:model.live
  • Unclosed component tags → syntax errors in v4
  • Using deprecated config keys or JS hooks
  • Including Alpine.js separately (already bundled in Livewire 4)

Related skills

How it compares

Choose livewire-development over generic Laravel skills when Livewire-specific scaffolding and Spatie UI conventions are the goal.

FAQ

What frameworks does livewire-development cover?

livewire-development targets Laravel Livewire for reactive PHP components plus Alpine.js for client-side interactivity. The skill follows Spatie best practices for Blade templates, wire: directives, and component class structure.

How popular is livewire-development on skills.sh?

livewire-development from spatie/freek.dev ranks #5 on skills.sh with 443 installs. Developers adopt it for agent-guided Livewire scaffolding inside Cursor and Claude Code sessions.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.