Skip to main content

Inleiding

Een starter kit is een templateproject dat via create-project wordt uitgerold wanneer je met laravel new een app maakt. Laravel 13 heeft vier officiële starter kits — React / Vue / Svelte / Livewire — inclusief authenticatie en een initiële UI. Als je een eigen starter kit maakt, doe je precies hetzelfde: je richt een Laravel-app in als basis en publiceert die als Composer-package.

De starter kit maken

Een Laravel-project initialiseren

Maak eerst het Laravel-project dat als template dient en ruim onnodige voorbeeldcode op. Geef vervolgens in composer.json een unieke packagenaam op bij name.
Deze name is de identifier die later wordt gebruikt bij laravel new my-app --using=example/starter-kit.

De scripts in composer.json instellen

Na het uitvoeren van laravel new worden de Composer-scripts van de starter kit gebruikt voor de initialisatieflow. Zorg minimaal voor post-root-package-install en post-create-project-cmd.
Dit voorbeeld is gebaseerd op de composer.json van laravel/react-starter-kit. Als je een database gebruikt, kun je het zo overnemen.

Bepalen wat je distribueert met .gitattributes

Bestanden die je wel in de repository van de starter kit wilt hebben maar niet in het gegenereerde project van de gebruiker, sluit je uit met export-ignore.
Zie het officiële .gitattributes-voorbeeld voor details.

Registreren op Packagist

Om gebruikers de kit te laten gebruiken via --using, is registratie op Packagist nodig.
1

Zet een publieke repository op GitHub op

Publiceer met de name uit composer.json en de repository-URL op elkaar afgestemd.
2

Registreer op Packagist

Registreer de repository op Packagist. Na publicatie kan example/starter-kit worden opgelost.
3

Vermeld het gebruikscommando in de README

Vermeld voor gebruikers het volgende installatiecommando.

De flow van het laravel new-commando

Het NewCommand van laravel/installer schakelt bij het opgeven van een starter kit de bestemming van create-project om en voert de initialisatiecommando’s achter elkaar uit. Interessante plekken in NewCommand.php:

Een frontendframework kiezen

De officiële starter kits van Laravel 13 bieden React / Vue / Svelte / Livewire, maar een eigen starter kit hoeft zich niet aan die opzet te houden. Je mag CSS, component libraries en de authenticatiemethode vrij kiezen op basis van je doel.
Community-starterkits kiezen vaak een andere CSS-basis dan de officiële kits. Ga ook bij authenticatie niet standaard uit van Fortify, maar ontwerp op basis van je vereisten.

Onderhoud bij versie-upgrades

Een starter kit is niet “klaar na het maken”. Je beweegt continu mee met updates van Laravel en PHP.

Omgaan met Laravel- en PHP-upgrades

Werk eerst de vereisten in composer.json bij en controleer de compatibiliteit in CI.
Bij een Laravel-major herzie je laravel/framework en de omliggende dependencies tegelijk.

Regelmatige updates van dependencies

Frontenddependencies veranderen snel, dus het is veilig om maandelijks een updatetaak te draaien.
  • Tailwind
  • Component libraries (shadcn/ui, shadcn-vue, shadcn-svelte, Flux UI)
  • Inertia- / Livewire-gerelateerde packages

Compatibiliteitstests

Neem minimaal de volgende controles op in je CI:
  • composer install slaagt
  • php artisan test slaagt
  • npm install && npm run build slaagt

Best practices

  • Leg name vroeg vast: wijzigen na publicatie op Packagist is kostbaar.
  • Baseer scripts op de officiële voorbeelden: als je de initialisatieflow breekt, nemen installatiefouten toe.
  • Richt .gitattributes meteen in: dat vermindert ruis bij het distribueren van de template.
  • Maak upgrades een routine: richt je proces zo in dat je direct na een Laravel-release kunt volgen.
  • Lees de gerelateerde gidsen erbij: De basis van packageontwikkeling en Versiecompatibiliteit van packages beheren samen lezen maakt je ontwerp stabieler.
Laatst gewijzigd op 6 september 2026