Skip to main content

Introducción

Un starter kit es un proyecto plantilla que se despliega con create-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.

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 el name de composer.json.
Este 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 ejecute laravel 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.
Este ejemplo está basado en el composer.json de laravel/react-starter-kit. Si tu kit usa base de datos, puedes reutilizarlo tal cual.

Controla los archivos distribuidos con .gitattributes

Con export-ignore puedes excluir archivos que quieres tener en el repositorio del starter kit pero que no debería recibir el proyecto del usuario.
Para más detalle, mira el ejemplo oficial de .gitattributes.

Registro en Packagist

Para que los usuarios puedan usar --using, hay que registrar el paquete en Packagist.
1

Prepara un repositorio público en GitHub

Publícalo alineando el name de composer.json con la URL del repositorio.
2

Regístralo en Packagist

Registra el repositorio en Packagist. Tras la publicación, example/starter-kit será resoluble.
3

Documenta el comando de uso en el README

Añade para los usuarios el siguiente comando de instalación.

Flujo del comando laravel new

El NewCommand 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:

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.
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 en composer.json y verifica la compatibilidad en CI.
En una versión mayor de Laravel, revisa a la vez 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 install funciona.
  • Que php artisan test pasa.
  • Que npm install && npm run build termina correctamente.

Buenas prácticas

  • Fija el name cuanto 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 .gitattributes desde 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.
Última modificación el 13 de julio de 2026