Files

23 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 002 – Frontend: serverseitig + htmx (kein React)
**Status:** accepted
**Kontext.** Die App ist eine CRUD-Liste mit Formularen, Drag-&-Drop-Reihenfolge
und einem kurzen „Inspiration"-Panel. Kein Multiplayer, kein Offline-First, keine
komplexe Client-State. Der Betrieb soll so wenig bewegliche Teile wie möglich
haben (kein `npm install` im Runtime, keine Build-Pipeline).
**Entscheidung.** Serverseitiges Rendern via Symfony (Twig) + **htmx** (~15 kB)
für fragmentbasierte Updates + **SortableJS** (~20 kB) für Drag-&-Drop.
Kein Node-Toolchain im Deployment, keine Client-State-Verwaltung.
**Konsequenzen.**
- + Sehr kleine Client-Oberfläche, kein Build-Step, keine Versionsschlachten.
- + Business-Logik bleibt in Symfony/PHP – eine einzige Quelle der Wahrheit.
- + Deploy = ein PHP-Container + statische Dateien (htmx, SortableJS).
- + Fragmentbasierte Updates sind für Listen/CHECKBOXen fast unsichtbar.
- − Keine echte Offline-First / kein Optimistic-Update über mehrere Entities –
reicht hier (nur Drag-&-Drop-Reihenfolge + Checkbox; beide sind schnell genug).
- − Bei starkem Wachstum an interaktiver UI kann später ein SPA-Client nötig werden
(API ist JSON, bleibt kompatibel).