Zum Hauptinhalt springen

Einleitung

Ein Starter-Kit ist ein Projekt-Template, das beim Erstellen einer Anwendung mit laravel new per create-project ausgerollt wird. Die offiziellen Starter-Kits von Laravel 13 gibt es in den vier Varianten React, Vue, Svelte und Livewire und enthalten Authentifizierung sowie ein initiales UI. Wenn Sie ein eigenes Starter-Kit erstellen, funktioniert es genauso: Sie richten eine Laravel-Anwendung als Basis ein und veröffentlichen sie als Composer-Paket.

Ein Starter-Kit erstellen

Ein Laravel-Projekt initialisieren

Erstellen Sie zunächst das Laravel-Projekt, das als Template dienen soll, und räumen Sie überflüssigen Beispielcode auf. Vergeben Sie anschließend in der composer.json unter name einen eindeutigen Paketnamen.
{
    "name": "example/starter-kit",
    "type": "project",
    "require": {
        "php": "^8.3",
        "laravel/framework": "^13.0"
    }
}
Dieser name ist der Bezeichner, den Sie später bei laravel new my-app --using=example/starter-kit verwenden.

Die scripts in composer.json konfigurieren

Nach der Ausführung von laravel new werden die Composer-Scripts des Starter-Kits für die Initialisierung verwendet. Bereiten Sie mindestens post-root-package-install und post-create-project-cmd vor.
"scripts": {
    "post-root-package-install": [
        "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "@php artisan key:generate --ansi",
        "@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
        "@php artisan migrate --graceful --ansi"
    ]
}
Dieses Beispiel basiert auf der composer.json von laravel/react-starter-kit. Wenn Sie eine Datenbank verwenden, können Sie es unverändert übernehmen.

Verteilung über .gitattributes steuern

Dateien, die zwar im Starter-Kit-Repository liegen sollen, aber nicht in das generierte Projekt der Nutzer gehören, schließen Sie mit export-ignore aus.
LICENSE export-ignore
composer.lock export-ignore
README.md export-ignore
Details finden Sie im offiziellen .gitattributes-Beispiel.

Auf Packagist veröffentlichen

Damit Nutzer Ihr Kit über --using verwenden können, muss es auf Packagist registriert sein.
1

Öffentliches GitHub-Repository vorbereiten

Stellen Sie sicher, dass der name in composer.json und die Repository-URL zueinander passen, und veröffentlichen Sie das Repository.
2

Auf Packagist registrieren

Registrieren Sie das Repository auf Packagist. Danach ist example/starter-kit auflösbar.
3

Nutzungsbefehl in der README dokumentieren

Führen Sie folgenden Einführungs-Befehl für Nutzer auf.
laravel new my-app --using=example/starter-kit

Ablauf des Befehls laravel new

Der NewCommand in laravel/installer wechselt bei Angabe eines Starter-Kits das Ziel von create-project und führt die Initialisierungsbefehle der Reihe nach aus. Interessante Stellen in NewCommand.php:

Wahl des Frontend-Frameworks

Die offiziellen Starter-Kits von Laravel 13 bieten React, Vue, Svelte und Livewire. Ihr eigenes Starter-Kit muss sich aber nicht daran orientieren. Sie können CSS, Component Library und Authentifizierungsverfahren frei nach Ziel wählen.
OptionWesentliche BausteineGeeignet für
Offizielles React / Vue / Svelte / LivewireOffizieller Aufbau mit Inertia 3 oder Livewire 4Sie wollen eine offiziellsnahe Entwicklererfahrung anbieten
Eigenes FrontendBeliebige CSS- oder Component-LibrarySie wollen ein bestehendes Design-System oder eine andere CSS-Basis nutzen
Schlankes Blade-KitBlade-zentriert mit minimalen Frontend-AbhängigkeitenSie wollen einen leichtgewichtigen Aufbau schnell bereitstellen
Eigenes Auth-KitNicht auf Fortify beschränkt (z. B. Socialite-zentriert)Sie wollen auf ein bestimmtes Authentifizierungsverfahren fokussieren
Community-Starter-Kits setzen üblicherweise andere CSS-Grundlagen als die offiziellen ein. Machen Sie auch bei der Authentifizierung Fortify nicht zur Pflichtannahme, sondern entwerfen Sie sie passend zu Ihren Anforderungen.

Wartung bei Versionsaktualisierungen

Ein Starter-Kit ist nicht mit dem Erstellen erledigt. Es muss den Aktualisierungen von Laravel und PHP fortlaufend folgen.

Umgang mit Laravel- und PHP-Upgrades

Aktualisieren Sie zunächst die Anforderungen in composer.json und prüfen Sie die Kompatibilität in der CI.
"require": {
    "php": "^8.3",
    "laravel/framework": "^13.0"
}
Prüfen Sie bei Laravel-Major-Upgrades gleichzeitig laravel/framework und die umliegenden Abhängigkeiten.

Regelmäßige Aktualisierung der Abhängigkeiten

Frontend-Abhängigkeiten ändern sich schnell — es ist sicherer, monatlich einen Update-Task einzuplanen.
  • Tailwind
  • Component Libraries (shadcn/ui, shadcn-vue, shadcn-svelte, Flux UI)
  • Inertia- / Livewire-bezogene Pakete

Kompatibilitätstests

Mindestens diese Prüfungen sollten Teil Ihrer CI sein:
  • composer install läuft erfolgreich durch.
  • php artisan test besteht.
  • npm install && npm run build läuft erfolgreich durch.

Best Practices

  • Legen Sie den name früh fest: Änderungen nach der Packagist-Veröffentlichung sind teuer.
  • Orientieren Sie die scripts an den offiziellen Beispielen: Ein zerbrochener Initialisierungsfluss führt häufig zu fehlgeschlagenen Installationen.
  • Bereiten Sie .gitattributes gleich zu Beginn auf: So reduzieren Sie Störmüll bei der Template-Verteilung.
  • Institutionalisieren Sie Upgrades: Etablieren Sie einen Betriebsablauf, der Laravel-Releases zeitnah nachzieht.
  • Lesen Sie ergänzende Guides: Grundlagen der Paketentwicklung und Versionskompatibilität von Paketen verwalten machen Ihr Design stabiler.
Zuletzt geändert am 13. Juli 2026