> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Laravel Maestro – Orchestrator für die Entwicklung von Starterkits

> Analyse von "Maestro", dem neuen offiziellen Laravel-Repository. Erläutert wird der Mechanismus des Orchestrators, der mehrere Starterkit-Varianten in einem einzigen Monorepo verwaltet und Beiträge effizienter macht.

<Info>
  Dieser Artikel basiert auf einer Quellcode-Analyse. Es existiert noch keine offizielle Dokumentation; das Repository befindet sich vor dem offiziellen Release (Stand: April 2026).
</Info>

## Was ist Maestro?

[Laravel Maestro](https://github.com/laravel/maestro) ist ein monorepo-basierter Orchestrator, der die [Starterkits](https://laravel.com/starter-kits) von Laravel zentral verwaltet.

Bei den Laravel-Starterkits gibt es mehrere Stacks – React, Vue, Svelte (Inertia) und Livewire – und je nach Kombination mit Authentifizierungsmethoden (Fortify, WorkOS) sowie Optionen (Teams, Blank) über 15 Varianten. Maestro verwaltet all diese Varianten in einem einzigen Repository und stellt einen Mechanismus bereit, mit dem Änderungen automatisch in die jeweiligen Starterkit-Repositories übertragen werden.

```mermaid theme={null}
graph TD
    A["laravel/maestro<br>(Monorepo)"] --> B["orchestrator/<br>Build-Tools"]
    A --> C["kits/<br>Quelldateien"]
    A --> D["browser_tests/<br>Browser-Tests"]
    B --> E["build-Kommando setzt<br>die Variante zusammen"]
    E --> F["build/<br>fertig gebautes Kit"]
    F --> G["composer kit:run<br>startet und beobachtet"]
    G --> H["Änderungen werden<br>automatisch in kits/ übernommen"]
```

## Welche Probleme werden gelöst?

Sind die Starterkits über viele Varianten verteilt, wird das Übertragen einer einzigen Änderung auf alle Varianten mühsam. Etwa PRs für Validierungsanpassungen im Auth-Formular separat für React, Vue, Svelte und Livewire zu eröffnen, ist ineffizient.

Maestro löst dies mit einer „Hierarchie aus gemeinsamen und varianten-spezifischen Ebenen". Der Orchestrator entscheidet, auf welcher Ebene eine Änderung erfolgt, und wendet sie automatisch an der am besten geeigneten Stelle an.

## Varianten der Starterkits

Die von Maestro verwalteten Starterkits verteilen sich auf zwei Stacks.

### Livewire-Stack (6 Varianten)

| Variante                        | Beschreibung                                  |
| ------------------------------- | --------------------------------------------- |
| Blank                           | Minimalkonfiguration ohne Authentifizierung   |
| Fortify                         | Authentifizierung per Laravel Fortify         |
| Fortify (Multi-file Components) | Blade-Views in Komponenten-Dateien aufgeteilt |
| Fortify (Teams)                 | Fortify-Auth mit Teams-Unterstützung          |
| WorkOS                          | Authentifizierung per WorkOS                  |
| WorkOS (Teams)                  | WorkOS-Auth mit Teams-Unterstützung           |

### Inertia-Stack (15 Varianten)

Insgesamt 15 Varianten aus der Kombination der drei Frameworks React, Vue, Svelte × Blank, Fortify, WorkOS × mit/ohne Teams.

## Struktur des Repositories

```
laravel/maestro/
├── orchestrator/    # Laravel-App, die den Build steuert
│   ├── app/Console/Commands/BuildCommand.php
│   ├── app/Enums/StarterKit.php
│   └── scripts/
├── kits/            # Quelldateien der Starterkits
│   ├── Shared/      # Für alle Varianten gemeinsame Dateien
│   ├── Livewire/    # Livewire-spezifische Dateien
│   └── Inertia/     # Inertia-spezifische Dateien (React/Vue/Svelte)
└── browser_tests/   # Browser-Tests
    ├── bootstrap/
    ├── common/
    └── teams/
```

Das Verzeichnis `orchestrator` ist selbst eine Laravel-Anwendung, die Build und Ausführung der Starterkits steuert.

## Datei-Hierarchie-System

Der Kern von Maestro ist der Mechanismus „Starterkits durch Übereinanderlegen von Ebenen zusammenbauen". Für Livewire (Fortify) werden die Dateien in folgender Reihenfolge kopiert; jede spätere Ebene überschreibt die vorherige.

```mermaid theme={null}
graph LR
    A["Shared/Blank<br>gemeinsame Blank-Basis"] --> B["Livewire/Blank<br>Livewire-Minimalvariante"]
    B --> C["Shared/Base<br>gemeinsame Basis"]
    C --> D["Livewire/Base<br>Livewire-Basis"]
    D --> E["Shared/Fortify<br>gemeinsames Fortify"]
    E --> F["Livewire/Fortify<br>Livewire Fortify"]
    F --> G["build/<br>fertiges Kit"]
```

Dank dieser Hierarchie ergibt sich eine klare Regel: „Änderungen, die für alle Kits gelten, gehören in `Shared/`, Livewire-spezifische Änderungen in `Livewire/`."

## Ablauf einer Contribution

Beiträge zu den Starterkits erfolgen nicht direkt in den einzelnen Starterkit-Repositories, sondern in diesem Maestro-Repository.

<Steps>
  <Step title="In das orchestrator-Verzeichnis wechseln und Kit bauen">
    ```bash theme={null}
    cd orchestrator
    php artisan build
    ```

    Über einen interaktiven Prompt wählen Sie das Ziel-Kit und die Auth-Variante. Alternativ lässt sich beides per Flag direkt angeben.

    ```bash theme={null}
    php artisan build --kit=vue
    php artisan build --kit=react --workos
    php artisan build --kit=livewire --teams
    php artisan build --kit=vue --workos --teams
    ```
  </Step>

  <Step title="Das gebaute Kit starten">
    ```bash theme={null}
    composer kit:run
    ```

    Laravels Entwicklungsserver und ein File Watcher starten gleichzeitig. Änderungen im Verzeichnis `build/` werden automatisch an die passende Stelle in `kits/` kopiert.
  </Step>

  <Step title="Änderungen vornehmen und testen">
    Bearbeiten Sie Dateien im Verzeichnis `build/`. Der Watcher erkennt die Änderungen und überträgt sie automatisch in das Verzeichnis `kits/`.
  </Step>

  <Step title="PR erstellen">
    Committen Sie die Änderungen im Verzeichnis `kits/` und erstellen Sie einen PR. Nach dem Merge pusht Maestro die Änderungen automatisch in die einzelnen Starterkit-Repositories.
  </Step>
</Steps>

<Warning>
  Das Verzeichnis `build/` ist gitignored. Nehmen Sie alle Änderungen in `build/` vor und lassen Sie sie vom Watcher nach `kits/` synchronisieren, bevor Sie committen.
</Warning>

## Weitere Entwicklungs-Kommandos

### Linting

```bash theme={null}
# Pint auf kits und browser_tests ausführen (nur PHP)
composer kits:pint

# PHP-Lint + Frontend-Lint der einzelnen Inertia-Varianten
composer kits:lint

# Auf bestimmte Frameworks eingrenzen
composer kits:lint -- --vue
composer kits:lint -- --react --svelte
```

### Browser-Tests

```bash theme={null}
# Browser-Tests aller Varianten ausführen
composer kits:browser-tests

# Auf bestimmte Frameworks/Varianten eingrenzen
composer kits:browser-tests -- --vue
composer kits:browser-tests -- --livewire --fortify
```

Die Browser-Tests laufen mit Pest + Playwright. Im Verzeichnis `browser_tests/` sind die Tests dreistufig strukturiert: `bootstrap/` (gemeinsame Konfiguration), `common/` (für Fortify) und `teams/` (für Teams).

### Eingrenzung per Flags

Jedes Kommando lässt sich mit Flags wie `--livewire`, `--react`, `--svelte`, `--vue` sowie `--blank`, `--fortify`, `--workos`, `--teams` kombinieren, um das Ziel einzugrenzen.

```bash theme={null}
# Nur die Fortify-Varianten von Vue und Svelte prüfen
composer kits:check -- --vue --svelte --fortify

# Nur die WorkOS-Varianten aller Frameworks
composer kits:check -- --workos
```

## WorkOS-Umgebungsvariablen einrichten

Wenn Sie eine WorkOS-Variante bauen und ausführen, tragen Sie Client-ID und API-Key von WorkOS in `orchestrator/.env` ein. Diese Werte werden beim Build in die `.env`-Datei des Verzeichnisses `build/` kopiert.

```bash theme={null}
# orchestrator/.env
WORKOS_CLIENT_ID=your_client_id
WORKOS_API_KEY=your_api_key
```

## Aktueller Entwicklungsstand

* **GitHub-Repository**: [laravel/maestro](https://github.com/laravel/maestro)
* **Offizielles Release**: nicht vorhanden (keine Versions-Tags oder Releases veröffentlicht)
* **Letzter Commit**: April 2026 (aktive Entwicklung)
* **Benötigtes PHP**: ^8.2
* **Laravel-Version**: ^13.0

Maestro ist kein Paket für Endnutzer, sondern eine **Entwicklungs-Infrastruktur** für das Laravel-Team und Contributor. Die Starterkits selbst (z. B. `laravel/starter-kit-react`) werden von Maestro aus diesem Monorepo generiert und gepflegt.

<Card title="Repository laravel/maestro" icon="github" href="https://github.com/laravel/maestro">
  Wer zu den Starterkits beitragen möchte, sollte zuerst die README von Maestro lesen.
</Card>

<Card title="Offizielle Dokumentation der Laravel-Starterkits" icon="book-open" href="https://laravel.com/docs/starter-kits">
  Zur Nutzung der Starterkits selbst konsultieren Sie bitte die offizielle Dokumentation.
</Card>


## Related topics

- [Laravel Chisel – Post-Install-Skript-Bibliothek für Starterkits](/de/blog/chisel-introduction.md)
- [Laravel PAO – Output-Optimierungstool für KI-Agenten](/de/blog/pao-introduction.md)
- [Upgrade-Anleitung von Laravel 11 auf 12](/de/blog/upgrade-11-to-12.md)
- [Entwicklungsleitfaden für Engine-API-Integrationsanwendungen - VOICEVOX für Laravel](/de/packages/laravel-voicevox/app-guide.md)
- [Laravel und KI-Entwicklung](/de/ai.md)
