pushery/wirekit
WireKit is a free, open-source UI component library for Laravel Livewire. Build dashboards and marketing pages with Tailwind CSS v4 and Alpine.js—themeable, accessible, dark-mode aware components for forms, navigation, overlays, layouts, and more.
WireKit is a TALL (Tailwind + Alpine + Laravel + Livewire) stack UI component library, making it an excellent fit for Laravel-based applications leveraging Livewire for interactivity. Its Blade-based component architecture aligns seamlessly with Laravel’s view layer, while its Tailwind CSS v4 foundation ensures consistency with modern frontend workflows. The library’s Alpine.js integration provides lightweight client-side interactivity without requiring full JavaScript frameworks, reducing bundle size and complexity.
Key strengths:
wire:model, wire:click support).wirekit:doctor:a11y) for auditing.Potential misfits:
WireKit’s integration is straightforward for TALL stack projects but requires upfront setup in:
@wirekitStyles/@wirekitScripts to layouts.@source in app.css).wire:model support), but custom Livewire logic may need adaptation (e.g., debouncing sliders).Feasibility score: High (8/10) for greenfield TALL projects; Medium (6/10) for legacy Laravel apps requiring migration.
| Risk Area | Assessment | Mitigation Strategy |
|---|---|---|
| Version Lock-in | Ties to Laravel 12+, Livewire 4+, and PHP 8.4+. | Evaluate upgrade path for legacy systems; consider forking if backporting is needed. |
| Tailwind CSS v4 | Requires modern Tailwind (v3.x may need migration). | Audit tailwind.config.js for compatibility; test with npm install tailwindcss@latest. |
| Livewire Reactivity | Some components (e.g., slider) may trigger excessive Livewire updates. |
Use wire:model.debounce or .lazy to optimize performance. |
| Third-Party Licenses | ApexCharts has a non-MIT license (Commercial License >$2M revenue). | Stick to Chart.js or monitor revenue if using ApexCharts. |
| Customization Depth | Heavy theming may require CSS overrides. | Leverage WireKit’s CSS variable system (--color-wk-*) for consistency. |
| Browser Support | No polyfills; drops older browsers (e.g., Safari <16.4). | Audit target audience; use @supports for fallbacks if needed. |
Critical risks: Low (3/10) for TALL stack projects; Medium (5/10) for projects with strict legacy constraints.
WireKit is optimized for the TALL stack and integrates cleanly with:
wire:model, wire:click, and server-side state management.Non-TALL projects:
| Phase | Task | Tools/Commands |
|---|---|---|
| Preparation | Audit stack compatibility (PHP 8.4+, Laravel 12+, Livewire 4+, Tailwind v4). | composer validate, php -v, npm list tailwindcss. |
| Installation | Add WireKit via Composer and configure Blade/Tailwind. | composer require pushery/wirekit, update app.css, tailwind.config.js. |
| Component Adoption | Replace legacy UI with WireKit components (e.g., <x-wirekit::button>). |
Start with forms and layout components; test incrementally. |
| Theming | Customize colors/icons via CSS variables or config. | config/wirekit.php, resources/css/app.css. |
| Optional Integrations | Add icons/charts/fonts as needed. | php artisan wirekit:doctor (CLI tools). |
| Testing | Validate Livewire reactivity, a11y, and performance. | wirekit:doctor:a11y, Livewire tests, Lighthouse audits. |
Recommended sequencing:
<x-wirekit::button>).| Dependency | Compatibility Status | Notes |
|---|---|---|
| Laravel | ✅ 12+ (tested) | Breaking changes in Laravel 11+ may require adjustments. |
| Livewire | ✅ 4+ (tested) | Livewire 3.x may need polyfills for newer features (e.g., wire:model.lazy). |
| Tailwind CSS | ✅ v4+ (required) | v3.x may work but lacks v4 features (e.g., JIT mode optimizations). |
| Alpine.js | ✅ v3+ (bundled) | No conflicts with other Alpine versions. |
| PHP | ✅ 8.4+ (required) | PHP 8.3 may work but lacks attributes (e.g., #[\Override]). |
| Browser Support | ⚠️ Modern browsers only (see README) | Polyfills not included; audit target audience. |
Known conflicts:
wire:model.debounce).How can I help you explore Laravel packages today?