Stufe 1: Minimales CMS
Ueberblick
Abschnitt betitelt „Ueberblick“Stufe 1 liefert ein verkaufbares Produkt fuer Visitenkarten-Websites. Zielgruppe: kleine Betriebe, Handwerker, Restaurants, Freelancer.
Entscheidungen
Abschnitt betitelt „Entscheidungen“| Datum | Entscheidung | Begruendung |
|---|---|---|
| 2026-04-09 | Backend-Rewrite von Java auf Go | Go als primaerer Stack, schnelle Builds, kleine Binary |
| 2026-04-09 | Frontend-Neustart (gleicher Stack) | Sauberer Start, alte Implementierung verwerfen |
| 2026-04-09 | Team-Zugang in Stufe 1 | Mehrere User pro Kunde von Anfang an |
| 2026-04-09 | 2FA per Email statt TOTP | Einfacher fuer Kunden, kein Authenticator-App noetig |
| 2026-04-09 | Kontaktanfragen + Analytics in Stufe 1 | Essentiell fuer Kundennutzen, Daten ab Tag 1 sammeln |
| 2026-04-09 | Analytics-Dashboard NICHT in Stufe 1 | Daten sammeln reicht, Darstellung in Stufe 2 |
| 2026-04-09 | Blog/News NICHT in Stufe 1 | Visitenkarten-Kunden brauchen das nicht |
| 2026-04-09 | AWS-Schicht (SQS/Lambda/API Gateway) bleibt | Minimiert Risiko bei CMS-Downtime |
| 2026-04-09 | Stufenweise Erweiterung statt grosser MVP | Erst verkaufen, Features bei Bedarf nachlegen |
| 2026-04-09 | Jet (Code-Gen) statt raw SQL | Typensichere Queries, konsistent mit Go-Skill |
| 2026-04-09 | Jet-generierter Code wird committed | Nicht in .gitignore, damit CI ohne DB bauen kann |
| 2026-04-09 | MaxMind GeoLite2 fuer IP-Geolocation | Lokal, kein API-Call, DE+EN |
| 2026-04-09 | E-Mail-Templates in DB statt Dateisystem | 3-Ebenen-Hierarchie (System/Tenant/Site), spaeter editierbar |
| 2026-04-09 | Asynchroner E-Mail-Versand (BIS-Pattern) | Entkoppelt, Idempotenz, Audit-Trail |
| 2026-04-09 | email_relation statt account.email | Flexibel, mehrere Adressen, DOI-Support |
| 2026-04-09 | Known-Device-Cookie fuer 2FA-Skip | UX-Verbesserung, Remote-Logout-Mechanismus |
| 2026-04-09 | Session 30 Tage | Bessere UX fuer Visitenkarten-Kunden |
| 2026-04-09 | Singular-Tabellennamen | PostgreSQL-Konvention |
| 2026-04-13 | Account-Verwaltung als naechstes Feature | Grundlage fuer Team-Zugang und Admin-Workflows |
| 2026-04-13 | Password-Reset Code-basiert (6-stellig) statt Link | Einfacher, kein URL-Handling noetig |
| 2026-04-13 | account.locale fuer CMS-Sprache | DE/EN Umschaltung im Frontend |
Fortschritt
Abschnitt betitelt „Fortschritt“| Feature | Status | Datum |
|---|---|---|
| Go-Backend Projekt-Setup | Fertig | 2026-04-09 |
| DB-Migrationen (Audit + Accounts) | Fertig | 2026-04-09 |
| Jet Code-Gen | Fertig | 2026-04-09 |
| Auth (Login, 2FA, Session, Middleware) | Fertig | 2026-04-09 |
| GitHub Actions CI (Backend + Frontend) | Fertig | 2026-04-09 |
| Frontend Neustart (Login, 2FA, Dashboard-Shell) | Fertig | 2026-04-09 |
| Geolocation (MaxMind) | Fertig | 2026-04-09 |
| E-Mail-System (Templates, Rendering, Queue) | Fertig | 2026-04-09 |
| E-Mail-Adressen-Modell (email_relation) | Fertig | 2026-04-09 |
| 2FA Device-Erkennung | Fertig | 2026-04-09 |
| DB-Tabellen Singular-Rename | Fertig | 2026-04-09 |
| Account-Verwaltung (Profil, Passwort, Sessions) | Fertig | 2026-04-13 |
| Team-Verwaltung (Accounts, Deaktivierung, Password-Reset) | Fertig | 2026-04-13 |
| Migration 000004 (password_reset, account.locale, E-Mail-Templates) | Fertig | 2026-04-13 |
| Frontend Account + Team (Routen, Komponenten, i18n, Navigation) | Fertig | 2026-04-13 |
| E-Mail-Handler (password_reset_code, password_changed, account_deactivated, new_device_login) | Fertig | 2026-04-14 |
| Placeholder-System | Offen | — |
| DeepL-Uebersetzung | Offen | — |
| Media-Upload | Offen | — |
| Kontaktanfragen (SQS) | Offen | — |
| Analytics (SQS) | Offen | — |
| Impressum/Datenschutz-Generator | Offen | — |
| Build-Trigger | Offen | — |
| Service-API fuer Astro | Offen | — |
Scope Backend (Go)
Abschnitt betitelt „Scope Backend (Go)“- Auth (Session-Cookie, Login/Logout, Password-Reset via SES)
- 2FA per Email (Login-Code via SES)
- Multi-Tenancy (tenant_id)
- Team-Zugang (mehrere User pro Tenant, Rollen: Operator/Kunde)
- Placeholder-System (Texte + Bilder pro Seite)
- Automatische Uebersetzung via DeepL (Ergebnisse in DB)
- Impressum/Datenschutz-Generator
- Media-Upload (R2 + S3 Dual-Write)
- Kontaktanfragen (SQS-Polling → DB, Email-Notification)
- Analytics-Datensammlung (SQS-Polling → DB)
- Build-Trigger (Cloudflare Deploy Hook)
- Service-API fuer Astro
Scope Frontend (React)
Abschnitt betitelt „Scope Frontend (React)“- Login + 2FA-Code-Eingabe
- Dashboard
- Seiten-Editor (Placeholders)
- Impressum/Datenschutz-Formular
- Kontaktanfragen-Liste
- Media Library
- Team-Verwaltung
- Build ausloesen
Nicht in Stufe 1
Abschnitt betitelt „Nicht in Stufe 1“- Blog/News
- Listings
- Versioning/Rollback
- Analytics-Dashboard (nur Datensammlung)
- Kontaktformular-Konfigurator (feste Felder)
- Stripe/Billing
- SEO-Metadaten-Editor
- Oeffnungszeiten-Editor