0003: Laravel 13 with Livewire for the panel
Why Wake is a Laravel application and the panel is server-rendered.
- Status: accepted
- Date: 2026-10-17
Context
Wake needs routing, validation, localisation, mail, a template engine and an
ecosystem of maintained packages, including the official laravel/mcp.
Decision
Wake is a Laravel 13 application on PHP 8.4 or newer. The panel is built with Livewire 3, Alpine.js and Blade components. JavaScript is only used where it pays off: the editor (Tiptap) and interactive charts.
Consequences
- Contributors only need PHP to work on almost every part of Wake.
- Built assets are shipped, so a server never needs Node.
- We follow Laravel's release cycle.
- PHP 8.4 is the minimum, because Laravel 13's current dependencies (Symfony 8, Pest 5) require it. Common shared hosts offer 8.4.
Alternatives considered
- A framework-free core like Kirby. Lighter, but we would rebuild what Laravel already does well.
- An SPA panel (Vue or React). More JavaScript to build, ship and maintain, and a second language for contributors.
source: docs/decisions/0003-laravel-and-livewire.md