Introducción
Un starter kit es un proyecto plantilla que se despliega concreate-project cuando ejecutas laravel new. Los starter kits oficiales de Laravel 13 son cuatro (React / Vue / Svelte / Livewire) e incluyen autenticación y la UI inicial.
Cuando creas un starter kit propio, el proceso es el mismo: partes de una aplicación Laravel, la preparas y la publicas como un paquete de Composer.
- Documentación oficial: Starter Kits
- Ejemplo oficial: laravel/react-starter-kit
- Página de referencia: Laravel Console Starter
Crear el starter kit
Inicializar el proyecto Laravel
Crea un proyecto Laravel base y limpia el código de ejemplo innecesario. Después, asigna un nombre de paquete único en elname de composer.json.
name es el identificador que se usará después con laravel new my-app --using=example/starter-kit.
Configura los scripts de composer.json
Cuando el usuario ejecutelaravel new, se usarán los Composer scripts del starter kit como flujo de inicialización. Como mínimo, deja preparados post-root-package-install y post-create-project-cmd.
Controla los archivos distribuidos con .gitattributes
Conexport-ignore puedes excluir archivos que quieres tener en el repositorio del starter kit pero que no debería recibir el proyecto del usuario.
Registro en Packagist
Para que los usuarios puedan usar--using, hay que registrar el paquete en Packagist.
Prepara un repositorio público en GitHub
Publícalo alineando el
name de composer.json con la URL del repositorio.Regístralo en Packagist
Registra el repositorio en Packagist. Tras la publicación,
example/starter-kit será resoluble.Flujo del comando laravel new
ElNewCommand de laravel/installer cambia el destino de create-project cuando se especifica un starter kit y ejecuta secuencialmente los comandos de inicialización.
Lugares interesantes en NewCommand.php:
- Definición de la opción —using
- Ejecución de
create-projectypost-root-package-install - Implementación de
getStarterKit()
Elección de framework frontend
Los starter kits oficiales de Laravel 13 ofrecen React / Vue / Svelte / Livewire, pero tu starter kit propio no tiene por qué ceñirse a esa lista. Elige libremente CSS, librería de componentes y método de autenticación según tu objetivo.| Opción | Composición principal | Cuándo encaja |
|---|---|---|
| React / Vue / Svelte / Livewire oficiales | Configuración oficial con Inertia 3 o Livewire 4 | Cuando quieres ofrecer una experiencia cercana a la oficial. |
| Frontend propio | CSS y librería de componentes a elección | Cuando quieres usar un design system o base CSS propios. |
| Kit Blade sencillo | Centrado en Blade con mínimas dependencias front | Cuando buscas un arranque ligero y rápido. |
| Kit de autenticación propio | No obligado a Fortify (p. ej. centrado en Socialite) | Cuando te especializas en un método de autenticación concreto. |
Es habitual que los starter kits de la comunidad usen bases CSS distintas a la oficial. Tampoco es obligatorio partir de Fortify: diseña la autenticación según tus requisitos.
Mantenimiento de versiones
Un starter kit no acaba «al terminar de crearlo». Debe evolucionar con Laravel y PHP.Adaptación a nuevas versiones de Laravel/PHP
Actualiza primero los requisitos encomposer.json y verifica la compatibilidad en CI.
laravel/framework y las dependencias colindantes.
Actualización periódica de dependencias
Las dependencias del frontend cambian rápido, así que es seguro tener una tarea mensual de actualización.- Tailwind
- Librerías de componentes (shadcn/ui, shadcn-vue, shadcn-svelte, Flux UI)
- Paquetes relacionados con Inertia / Livewire
Tests de compatibilidad
Incluye al menos estas comprobaciones en CI:- Que
composer installfunciona. - Que
php artisan testpasa. - Que
npm install && npm run buildtermina correctamente.
Buenas prácticas
- Fija el
namecuanto antes: cambiarlo después de publicar en Packagist es costoso. - Basa los scripts en el ejemplo oficial: si rompes el flujo de inicialización, aumentan los problemas de instalación.
- Configura
.gitattributesdesde el principio: reduce el ruido en las plantillas distribuidas. - Automatiza las actualizaciones: monta una operativa que te permita seguir a Laravel de inmediato tras cada release.
- Lee guías relacionadas: leer Fundamentos del desarrollo de paquetes y Gestión de la compatibilidad de versiones de paquetes hace que tu diseño sea más estable.