onelegstudios / starter-kit
A Laravel starter kit for Livewire.
Package info
github.com/onelegstudios/starter-kit
Language:Blade
Type:project
pkg:composer/onelegstudios/starter-kit
Requires
- php: ^8.2
- laravel/fortify: ^1.30
- laravel/framework: ^12.0
- laravel/tinker: ^2.10.1
- livewire/blaze: ^1.0
- livewire/flux: ^2.9.0
- livewire/livewire: ^4.0
Requires (Dev)
- barryvdh/laravel-ide-helper: ^3.6
- fakerphp/faker: ^1.23
- fruitcake/laravel-debugbar: ^4.0
- laravel/pail: ^1.2.2
- laravel/pint: ^1.24
- laravel/sail: ^1.41
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- onelegstudios/starter-kit-setup: ^1.0.0
- phpunit/phpunit: ^11.5.3
- soloterm/solo: ^0.5.0
- spatie/laravel-login-link: ^1.6
This package is auto-updated.
Last update: 2026-03-20 21:33:03 UTC
README
Overview
This project extends laravel/livewire-starter-kit by providing enhanced developer experience and local development tools.
It is intended for teams seeking a Laravel + Livewire solution, offering a practical default setup that runs quickly, tests easily, and is highly customizable.
Project improvements
Philosophy
This starter kit adopts the Livewire 4 view-first structure, organizing code into dedicated pages, layouts, and components folders.
- Store only full-page Livewire components in
resources/views/pages. - Place reusable helper UI components in
resources/views/components, grouping them by domain (for example, (for examplecomponents/settings/profile/*andcomponents/settings/two-factor/*). - Use Blade components when Livewire interactivity is not required.
- Favor components over partials for reusable UI.
Key enhancements
Experience enhanced usability and customization with this starter kit. It introduces several practical improvements over the upstream default. Enjoy customizable dark mode controls, including a button, a dropdown, and a visual toggle switch. The toggle switch comes in two variants. One displays text labels, while the other uses only an icon. Both variants are ideal for a settings page. The kit also supports profile picture upload, replacement, and removal from settings. Mail settings compatible with MailPint. It switches to Lucide icons for a cleaner visual style and enables MustVerifyEmail by default.
Developer Tooling
It also adds focused development and local tooling packages to improve workflow. barryvdh/laravel-ide-helper improves editor intelligence, fruitcake/laravel-debugbar helps inspect requests and performance during development, soloterm/soloruns multiple commands simultaneously to aid local development. We made it easy to enable the local HTTP server and run the mailpint server. All the commands needed to run your application live are available through a single artisan command. spatie/laravel-login-link simplifies secure local login and testing flows.
Installation
laravel new --using=onelegstudios/starter-kit
Documentation
Dark mode component
The resources/views/components/layouts/dark-mode.blade.php component provides a reusable UI for switching Flux appearance between light, dark, and system.
Use it in Blade as:
<x-layouts.dark-mode />
Supported props:
type(button|dropdown|bar|iconbar, default:button)align(default:start, used bydropdown)position(default:bottom, used bydropdown)- standard Blade attribute bag (for example
class)
Examples:
{{-- Default cycle button (light -> dark -> system) --}} <x-layouts.dark-mode /> {{-- Dropdown menu variant --}} <x-layouts.dark-mode type="dropdown" align="end" position="bottom" class="max-lg:hidden" /> {{-- Segmented control with labels --}} <x-layouts.dark-mode type="bar" class="w-full" /> {{-- Segmented control with icons only --}} <x-layouts.dark-mode type="iconbar" />
Notes:
- The component expects Flux appearance state (
$flux.appearanceand$flux.dark) to be available. type="bar"andtype="iconbar"are useful on settings/profile pages where users expect persistent display controls.
Upstream starter kit
The original upstream starter kit documentation is available at:
License
This project is open-sourced software licensed under the MIT license.