PHPackages                             servicioslineaonce/starter-kit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. servicioslineaonce/starter-kit

ActiveLibrary[Framework](/categories/framework)

servicioslineaonce/starter-kit
==============================

Servicio Linea Once starter kit for Laravel, Inertia, Vue, React, MUI, PrimeVue, Ziggy, and Tailwind CSS.

212

Since May 20Compare

[ Source](https://github.com/servicios-linea-once/starter-kit)[ Packagist](https://packagist.org/packages/servicioslineaonce/starter-kit)[ RSS](/packages/servicioslineaonce-starter-kit/feed)WikiDiscussions Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Servicio Linea Once Starter Kit
===============================

[](#servicio-linea-once-starter-kit)

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.0`Paquete Composer: `servicioslineaonce/starter-kit`

Contenido
---------

[](#contenido)

- [Descripcion](#descripcion)
- [Caracteristicas](#caracteristicas)
- [Presets disponibles](#presets-disponibles)
- [Requisitos](#requisitos)
- [Instalacion](#instalacion)
- [Uso rapido](#uso-rapido)
- [Opciones del comando](#opciones-del-comando)
- [Que archivos instala](#que-archivos-instala)
- [Autenticacion](#autenticacion)
- [Two-Factor Authentication](#two-factor-authentication)
- [Internacionalizacion](#internacionalizacion)
- [Flujo recomendado despues de instalar](#flujo-recomendado-despues-de-instalar)
- [Cambiar de preset](#cambiar-de-preset)
- [Estructura del paquete](#estructura-del-paquete)
- [Crear un nuevo preset](#crear-un-nuevo-preset)
- [Troubleshooting](#troubleshooting)
- [Desarrollo](#desarrollo)
- [Licencia](#licencia)

Descripcion
-----------

[](#descripcion)

`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:

- Rutas web iniciales.
- Pantalla de bienvenida.
- Dashboard inicial.
- Layout principal.
- Cambio de idioma entre espanol e ingles.
- Frontend con Vite y Tailwind CSS 4.
- Presets UI listos para desarrollar.
- Autenticacion opcional.
- Verificacion de email.
- Perfil de usuario.
- Cambio de password.
- Eliminacion de cuenta.
- Cierre de otras sesiones.
- Autenticacion de dos factores con TOTP.
- Tests feature para flujos de auth.

Caracteristicas
---------------

[](#caracteristicas)

- Comando de instalacion interactivo.
- Instalador bilingue en `en` y `es`.
- Soporte para modo no interactivo.
- Presets separados por stack: Inertia y Livewire.
- Actualizacion automatica de dependencias Composer.
- Actualizacion automatica de dependencias NPM.
- Copia de stubs por capas: base + preset.
- Registro automatico de middleware en `bootstrap/app.php`.
- Limpieza de archivos obsoletos al usar `--force`.
- Auth propia sin depender de Fortify.
- 2FA TOTP con QR y codigos de recuperacion.
- Traducciones base en `lang/es` y `lang/en`.

Presets disponibles
-------------------

[](#presets-disponibles)

UIStackFrontendBackend`primevue`InertiaVue 3, PrimeVue, Ziggy, Tailwind CSS 4Controllers + Inertia`naive`InertiaVue 3, Naive UI, Ziggy, Tailwind CSS 4Controllers + Inertia`react`InertiaReact, MUI, componentes UI, Ziggy, Tailwind CSS 4Controllers + Inertia`wireui`LivewireBlade, Livewire, WireUI, Tailwind CSS 4Controllers + Livewire### PrimeVue

[](#primevue)

Preset Inertia + Vue 3 con PrimeVue.

Dependencias principales:

- `@inertiajs/vue3`
- `@inertiajs/vite`
- `@primeuix/themes`
- `primeicons`
- `primevue`
- `vue`
- `ziggy-js`
- `@vitejs/plugin-vue`

Incluye:

- `resources/js/app.js`
- `resources/js/Pages/Welcome.vue`
- `resources/js/Pages/Dashboard.vue`
- `resources/js/Layouts/AppLayout.vue`
- componentes compartidos
- preset visual en `resources/js/presets`
- estilos extra en `resources/css/theme-effects.css`

### Naive UI

[](#naive-ui)

Preset Inertia + Vue 3 con Naive UI.

Dependencias principales:

- `@inertiajs/vue3`
- `@inertiajs/vite`
- `@lucide/vue`
- `naive-ui`
- `vfonts`
- `vue`
- `ziggy-js`
- `@vitejs/plugin-vue`

Incluye:

- providers globales de Naive UI
- tema oscuro base
- componentes de formulario
- selector de idioma
- paginas Inertia para welcome, dashboard y auth

### React + MUI

[](#react--mui)

Preset Inertia + React con Material UI y componentes propios.

Dependencias principales:

- `@inertiajs/react`
- `@inertiajs/vite`
- `react`
- `react-dom`
- `@mui/material`
- `@mui/icons-material`
- `@emotion/react`
- `@emotion/styled`
- `lucide-react`
- `class-variance-authority`
- `clsx`
- `tailwind-merge`
- `ziggy-js`
- `@vitejs/plugin-react`

Incluye componentes base:

- `Button`
- `Input`
- `Label`
- `Checkbox`
- `Card`
- `Badge`
- `Alert`
- `Textarea`

Tambien incluye helpers en:

```
resources/js/lib/i18n.jsx
resources/js/lib/muiTheme.js
resources/js/lib/utils.js

```

### WireUI

[](#wireui)

Preset Livewire + WireUI para aplicaciones Blade.

Dependencias principales:

- `livewire/livewire`
- `wireui/wireui`
- `@tailwindcss/forms`

Incluye:

- layouts Blade
- paginas Blade
- componentes Livewire para auth
- vistas Livewire
- configuracion WireUI
- Vite sin Inertia

Cuando instalas `wireui`, el comando elimina el middleware de Inertia si estaba registrado anteriormente.

Requisitos
----------

[](#requisitos)

- PHP `^8.3`
- Laravel `^13.0`
- Composer
- Node.js y NPM
- Base de datos configurada
- Proyecto Laravel con `composer.json`, `package.json` y `bootstrap/app.php`

Instalacion
-----------

[](#instalacion)

Instala 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
```

Uso rapido
----------

[](#uso-rapido)

### Instalacion interactiva

[](#instalacion-interactiva)

```
php artisan kitlauncher:install
```

El asistente pregunta:

1. Idioma del instalador.
2. Stack: `Inertia` o `Livewire`.
3. UI compatible con el stack.
4. Si quieres instalar autenticacion.
5. Si quieres sobrescribir archivos existentes.
6. Si quieres ejecutar comandos posteriores.

### Instalacion no interactiva

[](#instalacion-no-interactiva)

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
```

Opciones del comando
--------------------

[](#opciones-del-comando)

OpcionDescripcion`--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
```

Que archivos instala
--------------------

[](#que-archivos-instala)

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

```

Autenticacion
-------------

[](#autenticacion)

Al usar `--auth`, el starter kit instala un flujo completo de autenticacion web.

Incluye:

- Registro de usuario.
- Login.
- Logout.
- Remember me.
- Recuperacion de password.
- Reset de password por token.
- Verificacion de email.
- Reenvio de email de verificacion.
- Confirmacion de password.
- Dashboard protegido.
- Perfil de usuario.
- Actualizacion de informacion personal.
- Cambio de password.
- Cierre de otras sesiones.
- Eliminacion de cuenta.
- Tests feature para los flujos principales.

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
```

Two-Factor Authentication
-------------------------

[](#two-factor-authentication)

El starter kit incluye 2FA basado en TOTP.

Paquetes usados:

- `pragmarx/google2fa`
- `bacon/bacon-qr-code`

Incluye:

- Activacion de 2FA desde perfil.
- Confirmacion con codigo TOTP.
- QR para apps autenticadoras.
- Codigos de recuperacion.
- Regeneracion de codigos.
- Challenge de segundo factor durante login.
- Middleware para completar el challenge antes de acceder.

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,
        ],
    ],
];
```

Internacionalizacion
--------------------

[](#internacionalizacion)

El paquete trabaja con dos idiomas:

- `es`
- `en`

### Idioma del instalador

[](#idioma-del-instalador)

El 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

```

### Idioma de la aplicacion

[](#idioma-de-la-aplicacion)

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

```

Flujo recomendado despues de instalar
-------------------------------------

[](#flujo-recomendado-despues-de-instalar)

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
```

Cambiar de preset
-----------------

[](#cambiar-de-preset)

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:

- Actualiza dependencias Composer.
- Actualiza dependencias NPM.
- Elimina dependencias UI obsoletas conocidas.
- Limpia archivos frontend administrados.
- Cambia `vite.config.js`.
- Elimina `HandleInertiaRequests` si el preset nuevo no usa Inertia.

Estructura del paquete
----------------------

[](#estructura-del-paquete)

```
starter-kit/
|-- src/
|   |-- StarterKitServiceProvider.php
|   `-- Console/
|       `-- InstallCommand.php
|-- stubs/
|   |-- base/
|   |   |-- install/
|   |   |-- auth/
|   |   `-- middleware/
|   `-- presets/
|       |-- primevue/
|       |-- naive/
|       |-- react/
|       `-- wireui/
|-- composer.json
|-- LICENSE
`-- README.md

```

### `StarterKitServiceProvider`

[](#starterkitserviceprovider)

Registra el comando cuando Laravel corre en consola:

```
$this->commands([
    InstallCommand::class,
]);
```

### `InstallCommand`

[](#installcommand)

Contiene la logica principal:

- definicion de presets UI
- validacion de opciones
- wizard bilingue
- actualizacion de `composer.json`
- actualizacion de `package.json`
- copia de stubs
- registro de middleware
- instalacion de auth
- limpieza de archivos obsoletos
- ejecucion opcional de comandos posteriores

### `stubs/base`

[](#stubsbase)

Archivos comunes para todos los presets:

- rutas base
- middleware de locale
- middleware Inertia
- configuracion de auth
- controladores
- requests
- modelo `User`
- soporte de 2FA
- migracion de 2FA
- tests de auth
- traducciones

### `stubs/presets`

[](#stubspresets)

Archivos 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`.

Crear un nuevo preset
---------------------

[](#crear-un-nuevo-preset)

Los presets se registran en `InstallCommand::UI_PRESETS`.

Pasos recomendados:

1. Crear una carpeta para el preset:

```
stubs/presets/{nombre}/install

```

2. Agregar los archivos frontend necesarios:

```
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

```

3. Si el preset tiene pantallas de auth propias, crear:

```
stubs/presets/{nombre}/auth

```

4. Registrar el preset en `UI_PRESETS`:

```
'nombre' => [
    'label' => 'Nombre UI',
    'stack' => 'inertia',
    'extension' => 'js',
    'inertia' => true,
    'composer' => self::INERTIA_COMPOSER_REQUIREMENTS,
    'dependencies' => [
        // npm dependencies
    ],
    'devDependencies' => [
        // npm dev dependencies
    ],
],
```

5. Probar instalacion:

```
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
```

Troubleshooting
---------------

[](#troubleshooting)

### Composer no encuentra una version compatible con `minimum-stability (stable)`

[](#composer-no-encuentra-una-version-compatible-con-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 found`

[](#class-livewirelivewireserviceprovider-not-found)

El proyecto tiene `composer.json` actualizado, pero `vendor` todavia no tiene las dependencias nuevas.

Solucion:

```
composer install
php artisan optimize:clear
```

### `Class "Inertia\Middleware" not found`

[](#class-inertiamiddleware-not-found)

Suele 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
```

### Tailwind no encuentra `@tailwindcss/forms`

[](#tailwind-no-encuentra-tailwindcssforms)

El preset WireUI necesita instalar dependencias NPM.

```
npm install
npm run build
```

### Vite no encuentra paginas Inertia

[](#vite-no-encuentra-paginas-inertia)

Verifica que el preset y la extension coincidan:

- Vue usa `resources/js/app.js` y paginas `.vue`.
- React usa `resources/js/app.jsx` y paginas `.jsx`.
- WireUI no usa paginas Inertia.

Si cambiaste de preset, reinstala con `--force`:

```
php artisan kitlauncher:install --lang=es --ui=react --auth --force --no-interaction
npm install
npm run build
```

### La ruta `/dashboard` no existe

[](#la-ruta-dashboard-no-existe)

Instala 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
```

### El instalador omite archivos existentes

[](#el-instalador-omite-archivos-existentes)

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
```

### No se ven cambios despues de instalar

[](#no-se-ven-cambios-despues-de-instalar)

Limpia caches y recompila:

```
php artisan optimize:clear
npm run build
```

Desarrollo
----------

[](#desarrollo)

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
```

Licencia
--------

[](#licencia)

Este paquete esta publicado bajo licencia MIT. Ver [LICENSE](LICENSE).

###  Health Score

11

—

LowBetter than 0% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/38963600?v=4)[Jhon Smith](/maintainers/servicios-linea-once)[@servicios-linea-once](https://github.com/servicios-linea-once)

### Embed Badge

![Health badge](/badges/servicioslineaonce-starter-kit/health.svg)

```
[![Health](https://phpackages.com/badges/servicioslineaonce-starter-kit/health.svg)](https://phpackages.com/packages/servicioslineaonce-starter-kit)
```

###  Alternatives

[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)[alizharb/laravel-modular

A professional, framework-agnostic modular architecture for Laravel 11+. Features zero-config autoloading, 29+ Artisan command overrides, and seamless Vite integration.

211.6k9](/packages/alizharb-laravel-modular)[link-cloud/fast-hyperf

LinkCloud Fast Hyperf

241.2k1](/packages/link-cloud-fast-hyperf)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
