Starter kit instalable para Laravel que crea una base moderna con frontend, rutas, layouts, internacionalizacion y autenticacion lista para usar.
El paquete registra el comando:
php artisan kitlauncher:install
Con ese comando puedes elegir entre presets Inertia o Livewire, instalar autenticacion completa y preparar las dependencias Composer/NPM del proyecto.
Version actual:
1.0.0Paquete Composer:servicioslineaonce/starter-kit
servicioslineaonce/starter-kit evita repetir el mismo scaffolding cada vez que se inicia una aplicacion Laravel. El instalador copia archivos base, actualiza composer.json, actualiza package.json, configura Vite, registra middleware y opcionalmente instala un sistema de autenticacion completo.
Esta pensado para proyectos nuevos o proyectos donde quieres reemplazar el frontend inicial por uno de los presets soportados.
El objetivo es dejar una aplicacion con:
en y es.bootstrap/app.php.--force.lang/es y lang/en.| UI | Stack | Frontend | Backend |
|---|---|---|---|
primevue |
Inertia | Vue 3, PrimeVue, Ziggy, Tailwind CSS 4 | Controllers + Inertia |
naive |
Inertia | Vue 3, Naive UI, Ziggy, Tailwind CSS 4 | Controllers + Inertia |
react |
Inertia | React, MUI, componentes UI, Ziggy, Tailwind CSS 4 | Controllers + Inertia |
wireui |
Livewire | Blade, Livewire, WireUI, Tailwind CSS 4 | Controllers + Livewire |
Preset Inertia + Vue 3 con PrimeVue.
Dependencias principales:
@inertiajs/vue3@inertiajs/vite@primeuix/themesprimeiconsprimevuevueziggy-js@vitejs/plugin-vueIncluye:
resources/js/app.jsresources/js/Pages/Welcome.vueresources/js/Pages/Dashboard.vueresources/js/Layouts/AppLayout.vueresources/js/presetsresources/css/theme-effects.cssPreset Inertia + Vue 3 con Naive UI.
Dependencias principales:
@inertiajs/vue3@inertiajs/vite@lucide/vuenaive-uivfontsvueziggy-js@vitejs/plugin-vueIncluye:
Preset Inertia + React con Material UI y componentes propios.
Dependencias principales:
@inertiajs/react@inertiajs/vitereactreact-dom@mui/material@mui/icons-material@emotion/react@emotion/styledlucide-reactclass-variance-authorityclsxtailwind-mergeziggy-js@vitejs/plugin-reactIncluye componentes base:
ButtonInputLabelCheckboxCardBadgeAlertTextareaTambien incluye helpers en:
resources/js/lib/i18n.jsx
resources/js/lib/muiTheme.js
resources/js/lib/utils.js
Preset Livewire + WireUI para aplicaciones Blade.
Dependencias principales:
livewire/livewirewireui/wireui@tailwindcss/formsIncluye:
Cuando instalas wireui, el comando elimina el middleware de Inertia si estaba registrado anteriormente.
^8.3^13.0composer.json, package.json y bootstrap/app.phpInstala el paquete desde la raiz de tu proyecto Laravel:
composer require servicioslineaonce/starter-kit:^1.0 --dev
Si Composer muestra un error de minimum-stability (stable), el repositorio todavia no tiene un tag estable publicado para esa version. Mientras trabajas contra la rama main, instala explicitamente la version de desarrollo:
composer require "servicioslineaonce/starter-kit:^1.0@dev" --dev
Para desarrollo local desde este monorepo, registra el paquete como repositorio path y luego instalalo:
composer config repositories.servicioslineaonce path packages/kitlauncher/starter-kit
composer require servicioslineaonce/starter-kit:^1.0 --dev
Laravel descubre automaticamente este service provider:
ServiciosLineaOnce\StarterKit\StarterKitServiceProvider::class
Despues de instalar el paquete, ejecuta el instalador:
php artisan kitlauncher:install
Tambien puedes instalar un preset directamente:
php artisan kitlauncher:install --lang=es --ui=primevue --auth --force --no-interaction
Al terminar, sincroniza dependencias y compila los assets:
composer install
npm install
php artisan migrate
npm run build
php artisan kitlauncher:install
El asistente pregunta:
Inertia o Livewire.PrimeVue con autenticacion:
php artisan kitlauncher:install --lang=es --ui=primevue --auth --force --no-interaction
Naive UI con autenticacion:
php artisan kitlauncher:install --lang=es --ui=naive --auth --force --no-interaction
React + MUI con autenticacion:
php artisan kitlauncher:install --lang=es --ui=react --auth --force --no-interaction
Livewire + WireUI con autenticacion:
php artisan kitlauncher:install --lang=es --ui=wireui --auth --force --no-interaction
Solo frontend, sin auth:
php artisan kitlauncher:install --lang=es --ui=primevue --force --no-interaction
| Opcion | Descripcion |
|---|---|
--lang=en |
Muestra los mensajes del instalador en ingles. |
--lang=es |
Muestra los mensajes del instalador en espanol. |
--ui=primevue |
Instala Inertia + Vue + PrimeVue. |
--ui=naive |
Instala Inertia + Vue + Naive UI. |
--ui=react |
Instala Inertia + React + MUI. |
--ui=wireui |
Instala Livewire + WireUI. |
--auth |
Instala rutas, controladores, requests, vistas y tests de autenticacion. |
--force |
Sobrescribe archivos existentes y limpia archivos administrados por presets anteriores. |
--no-interaction |
Ejecuta el comando sin preguntas. Si no indicas --ui, usa primevue. |
Ejemplo para CI o scripts:
php artisan kitlauncher:install --lang=en --ui=react --auth --force --no-interaction
El comando puede crear o modificar archivos en estas rutas:
app/Http/Controllers/Auth
app/Http/Controllers/Settings
app/Http/Middleware
app/Http/Requests/Auth
app/Http/Requests/Settings
app/Livewire
app/Models/User.php
app/Support/Auth
bootstrap/app.php
composer.json
config/servicios-linea-once.php
database/migrations
lang/en/kit.php
lang/es/kit.php
package.json
resources/css
resources/js
resources/views
routes/auth.php
routes/web.php
tests/Feature/Auth
tests/Feature/ExampleTest.php
vite.config.js
Sin --force, los archivos existentes se omiten para proteger cambios del proyecto.
Con --force, el comando sobrescribe stubs administrados por el starter kit y limpia rutas frontend obsoletas, por ejemplo:
resources/js/Components
resources/js/Layouts
resources/js/Pages
resources/js/lib
resources/js/presets
resources/views/layouts
resources/views/pages
resources/css/theme-effects.css
tests/Feature/ExampleTest.php
Al usar --auth, el starter kit instala un flujo completo de autenticacion web.
Incluye:
Rutas principales:
GET /login
POST /login
POST /logout
GET /register
POST /register
GET /forgot-password
POST /forgot-password
GET /reset-password/{token}
POST /reset-password
GET /verify-email
GET /verify-email/{id}/{hash}
POST /email/verification-notification
GET /confirm-password
POST /confirm-password
GET /dashboard
GET /settings/profile
PATCH /settings/profile
DELETE /settings/profile
PUT /settings/password
DELETE /settings/sessions
La configuracion queda en:
config/servicios-linea-once.php
Variables disponibles:
SLO_AUTH_REGISTRATION=true
SLO_AUTH_TWO_FACTOR=true
El starter kit incluye 2FA basado en TOTP.
Paquetes usados:
pragmarx/google2fabacon/bacon-qr-codeIncluye:
Rutas principales:
GET /two-factor-challenge
POST /two-factor-challenge
DELETE /two-factor-challenge
POST /settings/two-factor
POST /settings/two-factor/confirm
DELETE /settings/two-factor
POST /settings/two-factor/recovery-codes
Migracion instalada:
database/migrations/2026_01_01_000100_add_two_factor_columns_to_users_table.php
Configuracion base:
return [
'auth' => [
'registration' => env('SLO_AUTH_REGISTRATION', true),
'two_factor' => [
'enabled' => env('SLO_AUTH_TWO_FACTOR', true),
'required' => false,
'issuer' => env('APP_NAME', 'Servicio Linea Once'),
'window' => 1,
'recovery_codes' => 8,
],
],
];
El paquete trabaja con dos idiomas:
esenEl idioma del comando se controla con:
php artisan kitlauncher:install --lang=es
php artisan kitlauncher:install --lang=en
Si no pasas --lang y el comando es interactivo, el instalador pregunta:
Choose installer language / Elige el idioma del instalador
El scaffolding instala:
app/Http/Middleware/SetLocale.php
lang/es/kit.php
lang/en/kit.php
Tambien registra la ruta:
POST /locale/{locale}
El middleware lee el idioma desde la sesion:
$locale = $request->session()->get('locale', config('app.locale', 'es'));
Los presets Inertia incluyen helpers frontend:
resources/js/lib/i18n.js
resources/js/lib/i18n.jsx
El instalador puede modificar composer.json y package.json segun el preset elegido. Por eso, despues de ejecutarlo, corre:
composer install
npm install
php artisan migrate
npm run build
Para iniciar el entorno de desarrollo:
npm run dev
php artisan serve
Para validar el proyecto:
php artisan test
Puedes cambiar de preset ejecutando el instalador otra vez con --force.
De PrimeVue a React:
php artisan kitlauncher:install --lang=es --ui=react --auth --force --no-interaction
composer install
npm install
npm run build
De Inertia a WireUI:
php artisan kitlauncher:install --lang=es --ui=wireui --auth --force --no-interaction
composer install
npm install
npm run build
Al cambiar de preset, el comando:
vite.config.js.HandleInertiaRequests si el preset nuevo no usa Inertia.starter-kit/
|-- src/
| |-- StarterKitServiceProvider.php
| `-- Console/
| `-- InstallCommand.php
|-- stubs/
| |-- base/
| | |-- install/
| | |-- auth/
| | `-- middleware/
| `-- presets/
| |-- primevue/
| |-- naive/
| |-- react/
| `-- wireui/
|-- composer.json
|-- LICENSE
`-- README.md
StarterKitServiceProviderRegistra el comando cuando Laravel corre en consola:
$this->commands([
InstallCommand::class,
]);
InstallCommandContiene la logica principal:
composer.jsonpackage.jsonstubs/baseArchivos comunes para todos los presets:
Userstubs/presetsArchivos especificos por UI:
stubs/presets/primevue
stubs/presets/naive
stubs/presets/react
stubs/presets/wireui
Cada preset puede tener:
install: archivos instalados siempre.auth: archivos instalados solo con --auth.Los presets se registran en InstallCommand::UI_PRESETS.
Pasos recomendados:
stubs/presets/{nombre}/install
resources/css/app.css
resources/js/app.js
resources/js/Pages
resources/js/Layouts
resources/js/Components
resources/views/app.blade.php
vite.config.js
stubs/presets/{nombre}/auth
UI_PRESETS:'nombre' => [
'label' => 'Nombre UI',
'stack' => 'inertia',
'extension' => 'js',
'inertia' => true,
'composer' => self::INERTIA_COMPOSER_REQUIREMENTS,
'dependencies' => [
// npm dependencies
],
'devDependencies' => [
// npm dev dependencies
],
],
php artisan kitlauncher:install --lang=es --ui=nombre --auth --force --no-interaction
composer install
npm install
php artisan migrate
npm run build
php artisan test
minimum-stability (stable)Composer solo considera estable una version que existe como tag Git, por ejemplo v1.0.0. Si el paquete solo existe en la rama main, Composer lo resuelve como dev-main y una aplicacion con minimum-stability: stable lo rechaza.
Para usar la rama actual:
composer require "servicioslineaonce/starter-kit:^1.0@dev" --dev
Para publicar una version estable:
git tag v1.0.0
git push origin v1.0.0
Despues actualiza Packagist o espera el webhook del repositorio.
Class "Livewire\LivewireServiceProvider" not foundEl proyecto tiene composer.json actualizado, pero vendor todavia no tiene las dependencias nuevas.
Solucion:
composer install
php artisan optimize:clear
Class "Inertia\Middleware" not foundSuele ocurrir si la aplicacion quedo con middleware Inertia registrado, pero ya no tiene instalado inertiajs/inertia-laravel.
Solucion al usar WireUI:
php artisan kitlauncher:install --lang=es --ui=wireui --auth --force --no-interaction
composer install
php artisan optimize:clear
@tailwindcss/formsEl preset WireUI necesita instalar dependencias NPM.
npm install
npm run build
Verifica que el preset y la extension coincidan:
resources/js/app.js y paginas .vue.resources/js/app.jsx y paginas .jsx.Si cambiaste de preset, reinstala con --force:
php artisan kitlauncher:install --lang=es --ui=react --auth --force --no-interaction
npm install
npm run build
/dashboard no existeInstala auth con --auth. El dashboard protegido se registra dentro de routes/auth.php.
php artisan kitlauncher:install --lang=es --ui=primevue --auth --force --no-interaction
Es el comportamiento esperado cuando no usas --force.
Para sobrescribir los archivos administrados por el starter kit:
php artisan kitlauncher:install --lang=es --ui=primevue --auth --force
Limpia caches y recompila:
php artisan optimize:clear
npm run build
Comandos utiles para mantener el paquete:
composer validate --no-check-publish
php -l src/StarterKitServiceProvider.php
php -l src/Console/InstallCommand.php
Validacion recomendada dentro de una app Laravel de prueba:
php artisan kitlauncher:install --lang=es --ui=primevue --auth --force --no-interaction
composer install
npm install
php artisan migrate
npm run build
php artisan test
Repetir la validacion para cada preset:
php artisan kitlauncher:install --lang=es --ui=naive --auth --force --no-interaction
php artisan kitlauncher:install --lang=es --ui=react --auth --force --no-interaction
php artisan kitlauncher:install --lang=es --ui=wireui --auth --force --no-interaction
Este paquete esta publicado bajo licencia MIT. Ver LICENSE.
How can I help you explore Laravel packages today?