evoyo.la
Diese Website: kompletter Neubau 2026 mit Laravel 13, Filament 4, Anfragen-Pipeline, Paddle-Zahlungen und Kundenportal.
evoyo.la ist die eigene Portfolio- und Akquise-Website, phasenweise von null neu gebaut: öffentliche Case Studies, ein Filament-4-Admin, eine Anfragen-Pipeline als Kanban-Board, Zahlungsabwicklung über Paddle und ein signiertes Kundenportal — auf einer einzigen Codebasis. Das interne Büro-Cockpit derselben Anwendung deckt zusätzlich Kassenbuch samt EÜR-Auswertung, Zeiterfassung, Terminbuchung und Kundenverwaltung ab.
Galerie
Case Study
Ausgangslage
Das Altprojekt lief technisch, hatte aber gewachsene Altlasten: einen Desktop/Mobile-Layout-Split über eine Device-Detection-Middleware, Google Analytics samt Consent-Banner, PWA-Reste und mehrere ungenutzte, aber mitgeschleppte JavaScript-Bibliotheken. Statt Flickschusterei entstand ein kompletter Neubau nach einem phasenweisen Workflow, mit dem Altprojekt ausschließlich als lesende Referenz für Inhalte und bewährte Muster.
Herausforderung
Die Site muss vier Rollen gleichzeitig bedienen — öffentliche Case-Study-Präsentation, Admin, Kunden-Self-Service-Portal und echte Zahlungsabwicklung — auf einer einzigen Codebasis. Für das Anfragen-Pipeline-Kanban-Board gab es zum Zeitpunkt des Baus kein aktiv gepflegtes Filament-4-Plugin, es musste als Eigenbau auf dem in Filament bereits gebündelten SortableJS entstehen. Während der Design-QA fand sich außerdem ein struktureller Bug: Response-Caching lieferte bei einem Cache-Hit einen HTML-Body mit einem veralteten CSP-Nonce gegenüber einem frisch generierten Header aus — der Theme-Umschalter funktionierte dadurch praktisch nie, sobald Caching aktiv war.
Vorgehen
Laravel 13 mit PHP 8.4, Filament 4 als Office-Panel unter /office, Blade mit Tailwind CSS 4 und Alpine.js über Vite, MySQL und Redis, Pest als Testframework. Zahlungen über Paddle Billing via Cashier Paddle, selbst gehostetes Plausible als einzige Analytics-Lösung, GlitchTip für Monitoring.
Entscheidungen
Kein für Filament 4 aktiv gepflegtes Board-Plugin verfügbar — stattdessen auf dem in Filament bereits gebündelten SortableJS aufgebaut.
Ein Hash über statischen Inhalt kann zwischen Cache-Miss und -Hit nicht auseinanderlaufen — behebt den Theme-Toggle-Bug strukturell statt symptomatisch.
Jede Statusänderung — per Drag & Drop, Auswahlfeld, Aktion oder Zahlungs-Webhook — läuft durch einen einzigen Protokollierungspunkt statt mehrerer Call-Sites.
Eine signierte Route plus ein zusätzlicher Token-Vergleich, weil eine Signatur allein eine bereits ausgestellte URL nicht widerrufen kann.
Eine echte Datei im Public-Verzeichnis hätte die Route dauerhaft verdeckt — keine zwei Definitionen derselben Sache.
Eigenanteil
Vollständige Solo-Entwicklung, phasenweise selbst gesteuert und nach jeder Phase gegen Tests, Lint und Build verifiziert; Architekturentscheidungen und bewusste Lücken selbst dokumentiert.
Ergebnisse