> ## 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 — de orchestrator voor starter kit-ontwikkeling

> Een onderzoek naar de nieuwe officiële Laravel-repository 'Maestro'. We leggen uit hoe deze orchestrator meerdere starter kit-varianten in één monorepo beheert en bijdragen efficiënter maakt.

<Info>
  Dit artikel is gebaseerd op onderzoek van de broncode. Officiële documentatie bestaat nog niet en de repository is nog niet officieel uitgebracht (stand: april 2026).
</Info>

## Wat is Maestro?

[Laravel Maestro](https://github.com/laravel/maestro) is een monorepo-orchestrator voor het centraal beheren van de [starter kits](https://laravel.com/starter-kits) van Laravel.

De starter kits van Laravel omvatten meerdere stacks — React, Vue, Svelte (Inertia) en Livewire — en daarbovenop bestaan er meer dan 15 varianten door combinaties van authenticatiemethoden (Fortify, WorkOS) en opties (Teams, Blank). Maestro beheert al deze varianten in één repository en biedt een mechanisme om wijzigingen automatisch door te voeren naar de afzonderlijke starter kit-repositories.

```mermaid theme={null}
graph TD
    A["laravel/maestro<br>(monorepo)"] --> B["orchestrator/<br>buildtool"]
    A --> C["kits/<br>bronbestanden"]
    A --> D["browser_tests/<br>browsertests"]
    B --> E["Varianten samenstellen<br>met het build-commando"]
    E --> F["build/<br>gebouwde kits"]
    F --> G["Starten en watchen<br>met composer kit:run"]
    G --> H["Wijzigingen automatisch<br>terugzetten naar kits/"]
```

## Welk probleem lost het op?

Wanneer starter kits over veel varianten verspreid zijn, wordt het omslachtig om één fix in alle varianten door te voeren. Het is bijvoorbeeld inefficiënt om voor een validatiefix in een authenticatieformulier aparte PR's te maken voor React, Vue, Svelte en Livewire.

Maestro lost dit op met een "hiërarchische structuur van gedeelde lagen en variantlagen". De orchestrator bepaalt in welke laag een wijziging thuishoort en past die automatisch toe op de meest geschikte plek.

## Varianten van de starter kits

De starter kits die Maestro beheert, bestaan uit twee stacks.

### Livewire-stack (6 varianten)

| Variant                         | Beschrijving                                                            |
| ------------------------------- | ----------------------------------------------------------------------- |
| Blank                           | Minimale configuratie zonder authenticatie                              |
| Fortify                         | Authenticatie via Laravel Fortify                                       |
| Fortify (Multi-file Components) | Configuratie waarbij Blade-views zijn opgesplitst in componentbestanden |
| Fortify (Teams)                 | Fortify-authenticatie + Teams-ondersteuning                             |
| WorkOS                          | Authenticatie via WorkOS                                                |
| WorkOS (Teams)                  | WorkOS-authenticatie + Teams-ondersteuning                              |

### Inertia-stack (15 varianten)

Met de combinatie van 3 frameworks (React, Vue, Svelte) × Blank, Fortify en WorkOS × wel of geen Teams bestaan er in totaal 15 varianten.

## Structuur van de repository

```
laravel/maestro/
├── orchestrator/    # Laravel-app die de builds beheert
│   ├── app/Console/Commands/BuildCommand.php
│   ├── app/Enums/StarterKit.php
│   └── scripts/
├── kits/            # Bronbestanden van de starter kits
│   ├── Shared/      # Bestanden gedeeld door alle varianten
│   ├── Livewire/    # Livewire-specifieke bestanden
│   └── Inertia/     # Inertia-specifieke bestanden (React/Vue/Svelte)
└── browser_tests/   # Browsertests
    ├── bootstrap/
    ├── common/
    └── teams/
```

De map `orchestrator` is zelf een Laravel-applicatie die het bouwen en uitvoeren van de starter kits beheert.

## Het bestandslagen-systeem

De kern van Maestro is het mechanisme waarbij starter kits worden samengesteld door lagen te stapelen. Bij Livewire (Fortify) worden bestanden in de volgende volgorde gekopieerd, waarbij latere lagen eerdere lagen overschrijven.

```mermaid theme={null}
graph LR
    A["Shared/Blank<br>gedeelde blank"] --> B["Livewire/Blank<br>minimale Livewire-config"]
    B --> C["Shared/Base<br>gedeelde basis"]
    C --> D["Livewire/Base<br>Livewire-basis"]
    D --> E["Shared/Fortify<br>gedeelde Fortify"]
    E --> F["Livewire/Fortify<br>Livewire Fortify"]
    F --> G["build/<br>voltooide kit"]
```

Dankzij deze lagenstructuur geldt er een duidelijke regel: fixes die voor alle kits gelden gaan in `Shared/`, Livewire-specifieke fixes in `Livewire/`.

## De bijdrage-workflow

Bijdragen aan de starter kits doe je niet in de afzonderlijke starter kit-repositories, maar in deze Maestro-repository.

<Steps>
  <Step title="Ga naar de orchestrator-map en bouw een kit">
    ```bash theme={null}
    cd orchestrator
    php artisan build
    ```

    Via een interactieve prompt kies je de doelkit en de authenticatievariant. Je kunt ze ook direct opgeven met flags.

    ```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="Start de gebouwde kit">
    ```bash theme={null}
    composer kit:run
    ```

    De ontwikkelserver van Laravel en een file watcher starten tegelijk. Wijzigingen die je in de map `build/` maakt, worden automatisch naar de juiste plek in `kits/` gekopieerd.
  </Step>

  <Step title="Breng wijzigingen aan en test">
    Bewerk de bestanden in de map `build/`. De watcher detecteert de wijzigingen en zet ze automatisch door naar de map `kits/`.
  </Step>

  <Step title="Maak een PR">
    Commit de wijzigingen in de map `kits/` en maak een PR. Na het mergen pusht Maestro de wijzigingen automatisch naar de afzonderlijke starter kit-repositories.
  </Step>
</Steps>

<Warning>
  De map `build/` staat in de gitignore. Voer al je wijzigingen door in `build/`, laat de watcher ze synchroniseren naar `kits/` en commit daarna.
</Warning>

## Overige ontwikkelcommando's

### Linten

```bash theme={null}
# Pint uitvoeren op kits en browser_tests (alleen PHP)
composer kits:pint

# PHP-lint + frontend-lint van elke Inertia-variant
composer kits:lint

# Alleen een specifiek framework als doel nemen
composer kits:lint -- --vue
composer kits:lint -- --react --svelte
```

### Browsertests

```bash theme={null}
# Browsertests uitvoeren voor alle varianten
composer kits:browser-tests

# Beperken tot een specifiek framework of specifieke variant
composer kits:browser-tests -- --vue
composer kits:browser-tests -- --livewire --fortify
```

De browsertests draaien op Pest + Playwright. In de map `browser_tests/` zijn de tests georganiseerd in drie lagen: `bootstrap/` (gedeelde configuratie), `common/` (voor Fortify) en `teams/` (voor Teams).

### Filteren met flags

Bij elk commando kun je het doel beperken door de flags `--livewire`, `--react`, `--svelte` en `--vue` te combineren met de flags `--blank`, `--fortify`, `--workos` en `--teams`.

```bash theme={null}
# Alleen de Fortify-varianten van Vue en Svelte checken
composer kits:check -- --vue --svelte --fortify

# Alleen de WorkOS-varianten van alle frameworks
composer kits:check -- --workos
```

## WorkOS-omgevingsvariabelen instellen

Als je een WorkOS-variant wilt bouwen en uitvoeren, stel je in `orchestrator/.env` de client-ID en API-sleutel van WorkOS in. Tijdens de build worden deze waarden gekopieerd naar het `.env`-bestand in de map `build/`.

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

## Huidige ontwikkelstatus

* **GitHub-repository**: [laravel/maestro](https://github.com/laravel/maestro)
* **Officiële release**: geen (versietags en releases nog niet gepubliceerd)
* **Laatste commit**: april 2026 (actief in ontwikkeling)
* **Vereiste PHP-versie**: ^8.2
* **Laravel-versie**: ^13.0

Maestro is geen pakket voor eindgebruikers, maar functioneert als **ontwikkelinfrastructuur** voor het Laravel-team en contributors. De starter kits zelf (zoals `laravel/starter-kit-react`) worden door Maestro vanuit deze monorepo gegenereerd en beheerd.

<Card title="laravel/maestro repository" icon="github" href="https://github.com/laravel/maestro">
  Heb je interesse in bijdragen aan de starter kits, lees dan eerst de README van Maestro.
</Card>

<Card title="Officiële documentatie van de Laravel starter kits" icon="book-open" href="https://laravel.com/docs/starter-kits">
  Raadpleeg de officiële documentatie voor het gebruik van de starter kits zelf.
</Card>


## Related topics

- [Starter kits](/nl/starter-kits.md)
- [Een Laravel starter kit maken](/nl/advanced/starter-kit-creation.md)
- [Laravel Chisel — een bibliotheek voor post-installatiescripts van starter kits](/nl/blog/chisel-introduction.md)
- [Laravel Console Starter](/nl/packages/laravel-console-starter/index.md)
- [Laravel Fortify en de starter kits](/nl/advanced/fortify.md)
