
Du bist ein erfahrener Creative Director, UX-Designer und Senior Fullstack-Entwickler. Entwickle eine hochwertige, produktionsfähige Buchungswebsite für das **ARTISTA MODELCAMP 2027**.

Erstelle eine tatsächlich funktionierende Anwendung mit vollständigem Quellcode, Stripe-Anbindung, Bestellverwaltung und Deployment für mein selbst gehostetes RKE2-Kubernetes-Cluster. Eine rein visuelle Demo reicht nicht.

## 1. Ziel und Arbeitsweise

Die Website soll eine deutschsprachige Onepage sein, die das Modelcamp emotional und hochwertig präsentiert und Besucherinnen verständlich bis zur verbindlichen Buchung führt.

Die öffentliche Verkaufsseite bleibt eine Onepage mit Ankernavigation. Separate technische Seiten für Zahlungsabschluss, Buchungsstatus, rechtliche Inhalte und einen geschützten Verwaltungsbereich sind erlaubt.

Arbeite selbstständig und setze sinnvolle technische Entscheidungen direkt um. Fehlende Inhalte sollen die Entwicklung nicht aufhalten. Verwende dafür zentral gepflegte, klar erkennbare Platzhalter.

Erfinde keine Veranstaltungsdaten, Leistungen, Qualifikationen, Kundenbewertungen oder rechtlichen Zusicherungen. Fehlende Angaben, die für einen echten Verkauf erforderlich sind, müssen den Live-Verkauf blockieren, aber nicht die Entwicklung oder Stripe-Testbuchungen.

Prüfe vor der Implementierung die aktuellen offiziellen Dokumentationen der eingesetzten Frameworks und Stripe. Dokumentiere relevante Architekturentscheidungen knapp.

## 2. Referenz und gestalterische Richtung

Orientiere dich am Aufbau und an der Besucherführung dieser Seite:

https://www.freedomfilmmaker.de/filmcamp

Analysiere, soweit erreichbar:

- Reihenfolge und Dramaturgie der Inhalte.
- Hero, Bildwirkung und typografische Hierarchie.
- Darstellung von Unterkunft und Dozenten.
- Video-Feedback und Vertrauenselemente.
- Preispräsentation und Buchungseinstieg.
- Mobile Nutzerführung.

Übertrage geeignete Prinzipien in eine eigenständige Gestaltung für ARTISTA. Kopiere keine fremden Texte, Markenbestandteile oder nicht freigegebenen Medien.

Wenn die Referenz nicht erreichbar ist, benenne diese Einschränkung und entwickle anhand dieses Briefings weiter. Behaupte nicht, die Seite analysiert zu haben.

Gestalterische Richtung:

- Hochwertiges, modernes Editorial-Design mit Mode- und Fotografiecharakter.
- Großzügige Bilder, ausdrucksstarke Typografie und bewusst gesetzter Weißraum.
- Warme, mediterrane Atmosphäre passend zu einer Villa in Italien.
- Als vorläufige Farbwelt: warmes Off-White, dunkles Anthrazit und ein zurückhaltender warmer Akzent.
- Markante, individuelle Kompositionen statt einer austauschbaren Ansammlung identischer Karten.
- Gute Lesbarkeit und klare Buchungsführung haben Vorrang vor Effekten.
- Dezente Animationen für Hero, Bildwechsel, Scroll-Reveal, Navigation und Buchungsdialog.
- Keine Scroll-Übernahme und keine Animationen, die Inhalte verzögern oder Bedienung erschweren.
- `prefers-reduced-motion` respektieren.

Die Seite muss auf Smartphones ebenso sorgfältig gestaltet sein wie auf großen Bildschirmen.

## 3. Technischer Rahmen

Bevorzugter Stack:

- TypeScript mit strikter Typprüfung.
- Next.js 16 mit App Router.
- React 19.
- Tailwind CSS v4.
- Motion for React.
- PostgreSQL für persistente Geschäftsdaten.
- Ein geeignetes ORM mit versionierten Migrationen.
- Stripe für Zahlungen.
- Serverseitige Eingabevalidierung, beispielsweise mit Zod.

Prüfe die Versionskompatibilität. Passe den Stack nur bei einem nachvollziehbaren Vorteil an. Fixiere konkrete kompatible Versionen und liefere eine Lockdatei.

Nutze Server Components, wo sinnvoll. Beschränke Client Components auf tatsächlich interaktive Bereiche.

Die Anwendung muss ohne Vercel und ohne proprietäre Hosting-Abhängigkeiten als Docker-Container laufen.

Für ein einzelnes Camp ist kein klassischer Warenkorb erforderlich. Bevorzuge eine direkte, verständliche Buchungsstrecke.

## 4. Seitenstruktur

Entwickle eine schlüssige Dramaturgie mit folgenden Inhalten:

### Hero

- ARTISTA MODELCAMP 2027 als eindeutige Identität.
- Prägnante deutsche Headline und verständliche Subline.
- Hochwertiges Leitmotiv mit austauschbarem Bild oder Video.
- Termin und Ort, sobald bestätigt.
- Klarer Buchungs-CTA.
- Preis abhängig von der tatsächlich gültigen Verkaufsphase.

### Das Camp

Erkläre Atmosphäre, Zielgruppe und bestätigte Inhalte. Formuliere überzeugend, aber ohne erfundene Versprechen.

Keine Aussagen über garantierte Agenturvermittlung, Karriereerfolg, Aufträge oder Verdienst.

### Erlebnisse und Leistungen

Zeige bestätigte Programmpunkte und enthaltene Leistungen übersichtlich. Nicht bestätigte Workshops, Shootings, Transfers, Verpflegungsleistungen oder Ergebnisse dürfen nicht als zugesichert erscheinen.

Ein beispielhafter Ablauf muss als solcher erkennbar sein. Ein verbindliches Programm darf erst mit bestätigten Angaben veröffentlicht werden.

### Unterkunft

- Bildstarke Galerie der Villa beziehungsweise Finca.
- Informationen zu Zimmern und Ausstattung nur aus bestätigten Angaben.
- Der Booking-Link und die Bilder werden nachgereicht.
- Bilder erst nach bestätigter Nutzungsberechtigung übernehmen.
- Kein dauerhaftes Hotlinking fremder Booking-Bilder.
- Bis dahin hochwertige, klar erkennbare Entwicklungsplatzhalter.

### Dozentinnen

Zwei vorbereitete Profile mit austauschbaren Porträts, Namen und Kurzbeschreibungen.

Die tatsächlichen Namen und Bilder werden nachgereicht. Keine erfundenen Lebensläufe oder Referenzen.

### Über ARTISTA

Bereite einen eigenständigen Bereich vor. Inhaltliche Grundlage soll die bestehende Stammmodel-Seite von ARTISTA sein; der Link wird nachgereicht.

Bis dahin keine Unternehmensgeschichte oder Erfolgszahlen erfinden.

### Video-Feedback

Exakt drei Slots für echte Feedback-Videos:

- Austauschbares Vorschaubild.
- Zugänglicher Play-Button.
- Video bei Bedarf laden.
- Keine automatische Tonwiedergabe.
- Platz für echten Namen und freigegebenen Begleittext.

Fehlende Videos nicht durch erfundene Testimonials ersetzen. Leere Slots im Entwicklungsmodus darstellen und im öffentlichen Produktionsbetrieb ausblenden.

### Preis und Buchung

- Verständlicher Gesamtpreis pro Person.
- Gültiger Frühbuchervorteil.
- Einmalzahlung und gegebenenfalls freigegebene Ratenzahlung.
- Neutrales Gutscheinfeld.
- Klare Zusammenfassung von Unterkunft und Leistungen vor Zahlung.

### FAQ und Abschluss

FAQ zu Buchung, Unterkunft, Anreise, Zahlungsweise und bestätigten Bedingungen. Abschließender CTA und Footer mit Kontakt und rechtlichen Verweisen.

Eine mobile Buchungsleiste ist erwünscht, sofern sie keine Inhalte oder Bedienelemente verdeckt.

## 5. Verbindliche Preislogik

Alle Beträge in EUR. Intern ausschließlich mit ganzzahligen Cent-Beträgen rechnen.

| Preisphase | Ohne Stammmodel-Code | Mit gültigem Stammmodel-Code |
|---|---:|---:|
| Early Bird | 2.200,00 € | 1.980,00 € |
| Regulär | 2.750,00 € | 2.475,00 € |

Regeln:

- Grundpreis: 2.750,00 € pro Person.
- Early Bird: 20 % Rabatt auf den Grundpreis.
- Early-Bird-Zeitraum: 01.11.2026 bis einschließlich 31.12.2026, Zeitzone Europe/Berlin.
- Regulärer Preis ab 01.01.2027, 00:00 Uhr Europe/Berlin.
- Vor dem 01.11.2026 standardmäßig Vorschau ohne Kaufmöglichkeit.
- Innerhalb der Early-Bird-Phase 2.750 € als eindeutig bezeichneten regulären Preis durchstreichen und 2.200 € hervorheben.
- Nach Ablauf keine Early-Bird-Darstellung und keine künstliche Verlängerung.

Ein gültiger Stammmodel-Code reduziert den jeweils gültigen Preis anschließend um weitere 10 %:

- 2.750 € × 0,80 × 0,90 = 1.980 €.
- Der kombinierte Nachlass beträgt 28 %, nicht 30 %.
- Regulär: 2.750 € × 0,90 = 2.475 €.

Preise und Berechtigung immer serverseitig berechnen. Niemals vom Browser übermittelte Endpreise übernehmen.

Definiere eine eindeutige Regel für Preisbindung bei begonnenem Checkout und beim Jahreswechsel. Kommuniziere sie verständlich und erzwinge sie auch in Stripe.

Die steuerliche Behandlung ist noch offen. Keine Umsatzsteuerbeträge oder Aussagen wie „inklusive 19 % MwSt.“ erfinden. Vor Live-Verkauf muss die korrekte Darstellung konfiguriert sein.

## 6. Individuelle Stammmodel-Codes

Beispiel:

`STAMMMODELLAURA1X0`

Dieser Beispielcode darf nicht automatisch als aktiver Produktionscode angelegt werden.

Der Nachlass wird persönlich vergeben und nicht öffentlich beworben. Auf der Seite erscheint nur ein neutrales Feld „Gutscheincode“.

Im geschützten Verwaltungsbereich müssen individuelle Codes anlegbar und bearbeitbar sein:

- Code.
- Aktiv/inaktiv.
- Gültigkeitszeitraum.
- Maximale Einlösungen.
- Optional Bindung an eine E-Mail-Adresse.
- Interne Zuordnung.
- Reservierte und abgeschlossene Einlösungen.

Codes sollen mit Early Bird kombinierbar sein, aber nicht mit weiteren Gutscheinen.

Verhindere Missbrauch durch serverseitige Prüfung, Rate Limiting und transaktionale Einlöselimits. Reservierungen bei abgebrochenem oder abgelaufenem Checkout korrekt freigeben.

Die Vorlage empfiehlt höchstens vier vergünstigte Stammmodel-Buchungen. Implementiere ein konfigurierbares Gesamtkontingent und hinterlege vier als vorläufigen, vor Live-Verkauf zu bestätigenden Wert.

Keine öffentlich sichtbare Liste gültiger Codes.

## 7. Zahlungsvarianten

Bereite folgende exakten Zahlungspläne vor:

| Variante | Einmalzahlung | Zwei Raten | Drei Raten |
|---|---:|---|---|
| Early Bird | 2.200,00 € | 1.100,00 € + 1.100,00 € | 800,00 € + 700,00 € + 700,00 € |
| Early Bird Stammmodel | 1.980,00 € | 990,00 € + 990,00 € | 660,00 € + 660,00 € + 660,00 € |
| Regulär | 2.750,00 € | 1.375,00 € + 1.375,00 € | 950,00 € + 900,00 € + 900,00 € |
| Regulär Stammmodel | 2.475,00 € | 1.237,50 € + 1.237,50 € | 825,00 € + 825,00 € + 825,00 € |

- Maximal drei Raten.
- Erste Rate bei Buchung.
- Letzte Rate spätestens 30 Tage vor Anreise.
- Konkrete weitere Fälligkeiten benötigen einen bestätigten Camp-Termin und eine freigegebene Terminregel.
- Keine Termine erfinden.
- Wenn die verbleibende Zeit eine Zahlungsvariante nicht mehr zulässt, diese serverseitig deaktivieren.

Die Raten aus der Vorlage sind fachliche Vorgaben, keine rechtliche Freigabe. Zahlungspläne technisch vorbereiten und im Testmodus prüfen; im Live-Modus erst nach Prüfung und ausdrücklicher Freigabe aktivieren.

Wähle eine anhand aktueller Stripe-Dokumentation geeignete Umsetzung für endliche Zahlungspläne mit teilweise unterschiedlichen Ratenbeträgen. Begründe die Entscheidung.

Kein unbegrenzt laufendes Abonnement und keine Gleichsetzung mit Klarna oder anderen externen Finanzierungsangeboten.

Falls spätere Raten automatisch eingezogen werden:

- Erforderliche Zustimmung und geeignete Zahlungsmethoden berücksichtigen.
- Zusätzliche Authentifizierung ermöglichen.
- Fehlgeschlagene Zahlungen und Wiederholungsversuche sauber abbilden.
- Nach der letzten Rate weitere Abbuchungen zuverlässig ausschließen.

Zeige Gesamtpreis, heute fälligen Betrag, restliche Raten und Fälligkeiten vor dem Zahlungsabschluss transparent an.

## 8. Unterkunft und Kapazität

Die vorliegenden Angaben zur Zimmerart sind widersprüchlich:

- Es wird von einem einzelnen Platz in einem geteilten Zimmer gesprochen.
- Die interne Kalkulation nennt fünf Doppelzimmer mit französischem Doppelbett für zehn Teilnehmerinnen.

Erfinde daraus keine Einzelzimmer oder getrennten Einzelbetten.

Bis zur Klärung gilt:

- Nur ein Buchungsprodukt: Teilnahme pro Person mit geteilter Unterbringung.
- Keine buchbare Einzelbelegung.
- Keine Zimmer-Upgrades.
- Keine Auswahl zwischen mehreren Unterkunftskategorien.
- Ein möglicherweise geteiltes französisches Doppelbett muss vor einem echten Kauf ausdrücklich und korrekt beschrieben werden.
- Live-Verkauf bleibt bis zur Bestätigung der Unterbringung gesperrt.

Intern vorläufig mit zehn verkaufbaren Teilnehmerinnenplätzen rechnen. Den Wert konfigurierbar halten und vor Veröffentlichung bestätigen lassen.

Keine öffentliche Platzzahl, keinen Restplatz-Zähler und keine künstliche Verknappung anzeigen.

Verhindere Überbuchungen durch Datenbanktransaktionen und zeitlich begrenzte Reservierungen. Berücksichtige parallele Checkouts, verzögerte Zahlungen und verspätete Webhooks.

## 9. Stripe und Bestellprozess

Bevorzuge Stripe Checkout, sofern es den bestätigten Ablauf vollständig abbildet. Verwende eine eingebettete Zahlungsoberfläche nur bei begründetem Mehrwert.

Ablauf:

1. Person startet Buchung auf der Onepage.
2. Buchungsdaten und Zahlungsvariante werden erfasst.
3. Optionaler Gutschein wird serverseitig geprüft.
4. Gesamtpreis, Unterkunft, Leistungen und Zahlungsplan werden zusammengefasst.
5. Erforderliche Erklärungen werden eingeholt.
6. Bestellung und Platzreservierung werden serverseitig angelegt.
7. Stripe-Zahlung wird gestartet.
8. Verifizierte Webhooks aktualisieren den Zahlungsstatus.
9. Bestätigungsseite und E-Mail zeigen den tatsächlich bestätigten Status.

Ein Aufruf der Erfolgsseite darf niemals allein eine Bestellung als bezahlt markieren.

Erforderlich sind:

- Prüfung der Stripe-Webhook-Signatur anhand des unveränderten Request-Bodys.
- Idempotente Checkout-Erstellung und Webhook-Verarbeitung.
- Umgang mit mehrfachen, verzögerten und ungeordneten Events.
- Getrennte Buchungs- und Zahlungszustände.
- Behandlung von Abbruch, Ablauf, Zahlungsfehlern und Rückerstattungen.
- Nachvollziehbare Zuordnung von Stripe-Objekten zu internen Bestellungen.
- Speicherung des bei Buchung vereinbarten Preises und Zahlungsplans als unveränderlicher Snapshot.
- Keine Zahlungsdaten wie Kartennummern in der eigenen Datenbank.

Bei Ratenzahlung bedeutet eine erfolgreiche erste Rate nicht „vollständig bezahlt“. Zeige Teilzahlung und offenen Betrag korrekt an.

Die Buchungsbestätigung erfolgt per konfigurierbarem E-Mail-Anbieter oder SMTP. Im Entwicklungsmodus einen sicheren Testausgang verwenden.

## 10. Verwaltung und Datenmodell

Erstelle einen schlanken, wirklich geschützten Adminbereich für:

- Buchungsübersicht und Buchungsdetails.
- Zahlungsstatus, offene Beträge und Fälligkeiten.
- Filter und CSV-Export.
- Gutscheinverwaltung.
- Interne Kapazität und Reservierungen.
- Pflege der notwendigen Camp-Konfiguration.
- Dokumentierten Umgang mit Stornierungen und Rückerstattungen.

Kein offener Adminbereich und keine fest eingebauten Standardpasswörter. Nutze eine etablierte Authentifizierungslösung und prüfe Berechtigungen auch serverseitig bei jeder Aktion.

Modelliere mindestens:

- Camp und Verkaufsfreigaben.
- Buchung und Teilnehmerdaten.
- Preis-Snapshot.
- Zahlungsplan und Raten.
- Gutschein und Einlösung.
- Platzreservierung.
- Verarbeitete Stripe-Events.

Bestandsänderungen und Zahlungsaktionen müssen nachvollziehbar sein.

## 11. Inhalte und Freigaben

Die beigefügte Kalkulation enthält interne Informationen. Folgendes darf nicht auf die öffentliche Seite oder in öffentlich ausgelieferte Daten gelangen:

- Kosten der Villa und Verpflegung.
- Margen, Gewinn und Break-even.
- Werbebudget.
- Teambelegung.
- Interne Argumentation zu Stammmodel-Rabatten.
- Interne Empfehlungen zu Kontingenten.

Laut Vorlage nicht enthalten:

- Anreise nach Italien und zurück.
- Persönliche Ausgaben vor Ort.
- Reiserücktrittsversicherung.

Diese Ausschlüsse müssen verständlich dargestellt werden. Leite aus internen Kostenpositionen keine öffentlich zugesicherten Leistungen ab.

Vor Live-Verkauf sind insbesondere erforderlich:

- Bestätigter Termin und Ort.
- Veranstalter- und Kontaktdaten.
- Bestätigte Unterkunft und enthaltene Leistungen.
- Steuerlich korrekte Preisangaben.
- Freigegebene Buchungs-, Storno- und Zahlungsbedingungen.
- Prüfung der reiserechtlichen Einordnung sowie gegebenenfalls erforderlicher Absicherung und Unterlagen.

Übernimm rechtliche Aussagen aus der Kalkulation nicht ungeprüft als geltendes Recht. Erfinde keine rechtssicheren AGB.

Implementiere eine serverseitige Verkaufsfreigabe, die auch direkt aufgerufene Checkout-Endpunkte schützt. Testmodus und Vorschau müssen ohne Live-Freigabe nutzbar bleiben.

## 12. Qualität und Datenschutz

- Tastaturbedienbarkeit, sichtbare Fokuszustände und ausreichende Kontraste.
- Beschriftete Formulare und verständliche Fehlermeldungen.
- Korrektes Fokusmanagement in Dialogen.
- Responsive Bilder und performantes Laden.
- Keine unnötig großen Client-Bundles.
- Keine personenbezogenen Daten oder Secrets in Logs.
- Serverseitige Validierung aller Eingaben.
- Schutz schreibender Endpunkte und administrative Zugriffskontrollen.
- Keine nicht erforderlichen Tracking-Dienste ohne passende Einwilligung.
- Externe Videoanbieter erst gemäß konfiguriertem Datenschutzkonzept laden.

Bereite Titel, Beschreibung, Canonical und Social-Sharing-Vorschau vor. Strukturierte Veranstaltungsdaten erst mit bestätigten Angaben ausgeben. Vorschau, Admin und Buchungsstatusseiten nicht indexieren.

## 13. Deployment auf RKE2

Liefere:

- Produktionsfähiges Multi-Stage-Dockerfile.
- Next.js-Standalone-Build.
- Ausführung als Nicht-Root.
- `.dockerignore`.
- `.env.example` ohne echte Secrets.
- Lokale Entwicklungsumgebung mit PostgreSQL.
- Kubernetes-Manifeste oder eine übersichtliche Helm-Struktur.
- Deployment, Service und Traefik-Ingress.
- Konfigurierbare Domain, IngressClass und TLS-Einstellungen.
- cert-manager-Anbindung mit konfigurierbarem ClusterIssuer; `letsencrypt-prod` als anpassbares Beispiel.
- Readiness- und Liveness-Probes.
- Ressourcenanforderungen und sinnvolle Limits.
- Separaten, kontrollierten Datenbank-Migrationsschritt.
- Dokumentation für Secrets, Stripe-Webhooks und E-Mail-Konfiguration.

Die Anwendung muss mehrere Replikate vertragen. Bestellungen, Kapazitäten, Gutscheine, Reservierungen und Zahlungsjobs dürfen nicht ausschließlich im Prozessspeicher liegen.

Keine In-Process-Timer für verbindliche Ratenfälligkeiten. Verwende Stripe-native Terminierung oder einen dauerhaften, idempotenten Worker beziehungsweise Kubernetes-CronJob.

PostgreSQL braucht geeigneten Datenbankspeicher. SMB-Freigaben nicht ungeprüft als PostgreSQL-Datenverzeichnis verwenden. Medien separat persistent speichern; kein `emptyDir` für dauerhaft benötigte Uploads.

Dokumentiere Backup und Wiederherstellung der Geschäftsdaten.

## 14. Tests und Abnahme

Teste die tatsächlichen Geschäftsrisiken:

- Alle vier Gesamtpreise.
- Exakte Ratensummen einschließlich 1.237,50 €.
- Zeitgrenzen am 01.11.2026 und 01.01.2027 in Europe/Berlin.
- Ungültige, abgelaufene und ausgeschöpfte Gutscheine.
- Gleichzeitige Einlösung begrenzter Codes.
- Gleichzeitige Buchungen bei knapper Kapazität.
- Abgelaufene Reservierungen und verspätete Zahlung.
- Doppelte und ungeordnete Stripe-Webhooks.
- Zahlungserfolg, Abbruch, Fehler und Teilzahlung.
- Sperre sämtlicher Live-Checkout-Zugänge ohne Freigabe.
- Verhinderung weiterer Abbuchungen nach der letzten Rate.
- Zugriffsschutz für Admin und Buchungsdaten.

Führe außerdem Build, Typprüfung und eine visuelle Prüfung auf Smartphone, Tablet und Desktop durch.

## 15. Erwartetes Ergebnis

Liefere eine fertig implementierte Anwendung mit:

1. Hochwertiger Onepage.
2. Funktionierender Stripe-Testbuchung.
3. Persistenter Bestell- und Gutscheinverwaltung.
4. Geschütztem Adminbereich.
5. Docker- und RKE2-Deployment.
6. Verständlicher README.
7. Kurzer Liste der noch benötigten Inhalte und Freigaben.
8. Übersicht der ausgeführten Tests und verbleibenden Einschränkungen.

Pflege offene Inhalte zentral, insbesondere:

- Camp-Termin und genauer Ort.
- Booking-Link und freigegebene Unterkunftsbilder.
- Verbindliche Zimmer- und Bettbeschreibung.
- Namen und Porträts der beiden Dozentinnen.
- Link zur ARTISTA-Stammmodel-Seite.
- Drei echte Feedback-Videos.
- Bestätigte Leistungen und Programm.
- Veranstalterdaten, steuerliche Angaben und freigegebene Bedingungen.

Beginne mit einer knappen Architektur- und Designentscheidung und setze anschließend die Anwendung um. Stoppe nicht nach einem Konzept oder einer statischen Oberfläche.