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

Wirekit Laravel Package

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 using clean, themeable, accessible components with dark mode support and no utility-class soup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

WireKit is a Tailwind CSS + Alpine.js-powered UI component library designed specifically for Laravel Livewire, making it a near-perfect architectural fit for applications leveraging this stack. Its Blade-based component system aligns seamlessly with Laravel’s view layer, while its Livewire-first design ensures real-time interactivity without manual JavaScript. The CSS-variable theming system allows for deep customization without breaking component structure, and its Alpine.js integration enables lightweight client-side behavior without bloating the frontend.

Key strengths:

  • Livewire-native: Components are optimized for Livewire’s declarative reactivity (e.g., wire:model support, event dispatching).
  • Tailwind-first: No utility-class soup; components use Tailwind’s utility classes internally, allowing for easy theming via CSS variables.
  • Alpine.js for interactivity: Overlays (modals, tooltips), animations, and client-side logic are handled by Alpine, reducing Livewire’s workload.
  • Dark mode support: Built-in via CSS variables, requiring no manual overrides.
  • Accessibility-first: Components include ARIA attributes, keyboard navigation, and screen-reader optimizations by default.

Potential misfits:

  • Non-Livewire Laravel apps: While WireKit could be used in non-Livewire apps, its full value (e.g., real-time updates, Alpine-Livewire sync) is unlocked only with Livewire.
  • Legacy browser support: Requires modern browsers (Chrome 111+, Safari 16.4+), which may exclude older user bases.
  • Charting dependencies: Optional chart integrations (Chart.js, ApexCharts) introduce licensing considerations (ApexCharts is non-MIT).

Integration Feasibility

WireKit’s integration is low-friction for Laravel/Livewire projects but requires upfront setup to align with existing infrastructure. The composer install + Blade/Vite configuration is straightforward, but the Tailwind CSS and Alpine.js dependencies must already be in place.

Key integration steps:

  1. Composer install: composer require pushery/wirekit (PHP 8.4+, Laravel 12+, Livewire 4+ required).
  2. Vite/Tailwind setup:
    • Add @wirekitStyles and @wirekitScripts to Blade layouts.
    • Configure Tailwind to import WireKit’s Blade views (@source directive in app.css).
  3. Livewire compatibility: Ensure Livewire 4+ is used (WireKit leverages Livewire’s event system and model binding).
  4. Optional integrations:
    • Fonts (GDPR-compliant local bundles via wirekit:fonts CLI).
    • Icons (publish presets like Heroicons via wirekit:publish-icons).
    • Charts (configure in config/wirekit.php).

Feasibility risks:

  • Tailwind CSS version lock: WireKit requires Tailwind v4, which may conflict with projects using v3 or custom builds.
  • Alpine.js conflicts: If the app already uses Alpine.js, ensure no namespace collisions (WireKit uses wirekit-* events).
  • Livewire 4+ requirement: Projects on Livewire 3.x will need a major upgrade.
  • CSS variable conflicts: Custom --color-* variables in the app could clash with WireKit’s --color-wk-* tokens.

Technical Risk

Risk Area Severity Mitigation Strategy
Livewire version mismatch High Test WireKit with Livewire 4.x early; pin versions in composer.json.
Tailwind CSS conflicts Medium Audit existing Tailwind config for v3/v4 incompatibilities; isolate WireKit styles.
Alpine.js event collisions Medium Prefix custom Alpine events (e.g., wirekit-*app-wirekit-*).
Performance overhead Low Profile component rendering; lazy-load non-critical components (e.g., modals).
Chart licensing Medium Review ApexCharts license terms; use Chart.js for MIT-only projects.
Browser support gap Low Polyfill missing features (e.g., color-mix()) only if targeting older browsers.
Theming customization Low Start with WireKit’s defaults; override CSS variables incrementally.

Critical questions for evaluation:

  1. Livewire adoption: Is Livewire 4+ already in use, or is this a blocking upgrade?
  2. Tailwind version: Can the project migrate to Tailwind v4, or are there customizations preventing this?
  3. Alpine.js usage: Does the app already use Alpine, and if so, how are events scoped?
  4. Charting needs: Are non-MIT licenses (ApexCharts) acceptable, or must Chart.js be used?
  5. Browser target: Can the project drop support for browsers below Chrome 111/Safari 16.4?
  6. Component overlap: Does the app already have a UI library (e.g., Bootstrap, shadcn), and how will WireKit coexist?
  7. Dark mode: Is dark mode a requirement, or can it be added later via CSS variables?

Integration Approach

Stack Fit

WireKit is optimized for the Laravel Livewire + Tailwind CSS + Alpine.js stack and integrates cleanly with:

  • Laravel: Blade components, service providers, and config files.
  • Livewire: Real-time reactivity, event dispatching, and model binding.
  • Tailwind CSS: Utility-first styling with CSS variable theming.
  • Alpine.js: Lightweight client-side interactivity (e.g., modals, tooltips).
  • Vite: Asset compilation (WireKit uses @vite directives for JS/CSS).

Non-native integrations:

  • Inertia.js: Possible but untested (WireKit assumes Livewire’s server-side rendering).
  • Vue/React: Not supported (WireKit is Blade-centric).
  • Non-Tailwind CSS: Requires manual overrides for utility classes.

Migration Path

Phase Tasks Tools/Commands
Pre-integration 1. Audit Laravel/Livewire/Tailwind versions. 2. Backup existing UI components. 3. Test WireKit’s browser support against target audience. 4. Review charting license requirements. composer why-not pushery/wirekit, npm ls tailwindcss
Setup 1. Install WireKit via Composer. 2. Configure Vite/Tailwind to include WireKit styles/scripts. 3. Publish WireKit config (php artisan vendor:publish --provider="Pushery\WireKit\WireKitServiceProvider"). composer require pushery/wirekit, php artisan wirekit:install
Pilot 1. Replace 1–2 low-complexity components (e.g., buttons, inputs). 2. Test Livewire reactivity (e.g., wire:model). 3. Verify theming and dark mode. 4. Check performance impact. php artisan wirekit:show button, php artisan wirekit:verify
Rollout 1. Gradually replace UI components. 2. Migrate forms to WireKit’s input components. 3. Integrate overlays (modals, tooltips). 4. Customize theme via CSS variables. php artisan wirekit:make page:dashboard, php artisan wirekit:theme cupertino
Optimization 1. Lazy-load non-critical components. 2. Audit Alpine/Livewire event collisions. 3. Optimize charting libraries. 4. Document custom components. php artisan wirekit:export-json, php artisan wirekit:doctor

Compatibility

Dependency Compatibility Status Notes
Laravel 12+ ✅ Full support WireKit is built for Laravel 12’s features (e.g., Blade component namespaces).
Livewire 4+ ✅ Full support Uses Livewire 4’s event system and model binding.
Tailwind CSS v4 ✅ Required WireKit uses v4’s features (e.g., @property, color-mix()).
Alpine.js ✅ Required WireKit’s interactivity (modals, tooltips) relies on Alpine.
Vite ✅ Required WireKit uses @vite directives for asset compilation.
PHP 8.4+ ✅ Required Uses PHP 8.4’s typed properties and attributes.
Chart.js
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.
ilhamsyabani/laravel-volt-starter
thethunderturner/filament-latex
ghostcompiler/laravel-querybuilder
webrek/laravel-telescope-mongodb
anousss007/blatui
zatona-eg/zatona-eg-api
cocosmos/filament-sticky-save-bar
patrickbussmann/oauth2-apple
3brs/enterprise-security-bundle
anousss007/vigilance
supportpal/eloquent-model
ardenexal/fhir-models
laravel-at/laravel-image-sanitize
romalytar/yammi-audit-log-laravel
ardenexal/fhir-validation
arshaviras/weather-widget
laravel-chronicle/core
sunchayn/nimbus
daikazu/eloquent-salesforce-objects
unseen-codes/chat