| Frontend App-Framework | Next.js 16 (App Router) + React 19 Server Components, Server Actions, eine einzige Client-Grenze | Der Storefront ist eine Server Component, die das Menü lädt und alle 30 Sekunden neu validiert; eine einzige Client-Grenze hält Filter- und Warenkorbzustand. Mutationen sind Server Actions, und Route Handler decken den Stripe-Webhook, den Cron-Job und die Auth-Callbacks ab. |
| Persistenz Datenbank & Logik | Supabase Postgres Geschäftsregeln als Security-Definer-RPCs, RLS auf Kundendaten | Preisberechnung, Bestand, Bonnummern, Berechtigungen, Erstattungen und Berichte liegen in SQL-Funktionen, die als versionierte Migrationen verwaltet werden, sodass Storefront, Board und Cron-Job alle durch dieselben Regeln gehen. |
| Auth Identität | Supabase Auth + staff-Tabelle E-Mail/Google für Kunden; Stationssitzung plus PIN für das Team | Kunden melden sich mit Supabase Auth an. Das Team arbeitet über eine Station, die lesen darf, während eine PIN pro Person Schreibzugriffe freischaltet, sodass jede Änderung jemandem zugeordnet ist. |
| Commerce Zahlungen | Stripe Checkout + Webhooks Erst bezahlen, dann existiert die Bestellung | Die Checkout-Sitzung wird anhand eines Datenbankangebots bepreist. Die Bestellung wird erst nach der Zahlung angelegt, aus dem Webhook oder der Rückkehrseite, und erstattet, falls sie nicht aufgegeben werden kann. |
| Echtzeit Live-Updates | Supabase Realtime Schlank abonnieren, umfassend abrufen | Das Küchenboard lauscht auf Änderungen an der Bestelltabelle und lädt über eine einzige RPC neu, mit einem 30-Sekunden-Poll als Rückfallebene. Die Bestellseiten der Kunden pollen alle 15 Sekunden. |
| Betrieb Geplante Jobs | Vercel Cron Eine authentifizierte tägliche Route um 03:00 UTC | Der Job gibt abgelaufene Online-Bestellungen frei, öffnet den Servicetag über dieselbe RPC, die auch eine Barista nutzt, und löscht veraltete Push-Abonnements. |
| Messaging Benachrichtigungen | Web Push (VAPID) + Resend Zuerst Push, E-Mail als Rückfallebene | Fertig-Benachrichtigungen gehen über einen minimalen Service Worker als Web Push raus; wird kein Push zugestellt, wird eine E-Mail gesendet, sofern eine Adresse existiert. Belege werden per Resend verschickt. |
| Design Oberfläche | Tailwind CSS v4 + Framer Motion + WebGL Haarlinien, Mono-Beschriftungen, Rückfälle für reduzierte Bewegung | Struktur entsteht durch Ein-Pixel-Linien statt durch Karten oder Schatten. Motion-Tokens sind gemeinsam genutzt, und jede Ambient-Animation fällt bei reduzierter Bewegung auf einen ruhigen, nutzbaren Zustand zurück. |