Kenso Grimm 9725e0229d Messeseite: Hinweiszeile unter dem Absenden-Knopf entfällt dort
Auf der Messeseite stehen unter dem Knopf kein Hinweis und kein
Datenschutz-Link mehr (Kundenwunsch). Beides folgt jetzt dem Inhalt: leere
Texte in src/content/her-career.ts, keine Zeile – die Startseite bleibt
unverändert.

Rückmeldung und Rückfall-Link hängen NICHT daran. Antwortet /api/contact
nicht, erscheint auch auf der Messeseite „Das hat gerade nicht geklappt“
samt Mail-Link; dessen Betreff ist „herCAREER Expo 2026“. Das <p> bleibt
immer im Dokument, weil ein aria-live-Bereich, den es beim Absenden noch
nicht gab, von Screenreadern nicht zuverlässig vorgelesen wird.

Offen und vor dem Livegang zu entscheiden (docs/OFFENE-DATEN.md 3.17): Seit
dem Formular-Umbau überträgt das Formular an den Server, die
Datenschutzerklärung beschreibt das in Ziffer 5. Die entfernte Zeile war
damit die Information nach Art. 13 DSGVO am Ort der Erhebung; erreichbar
bleibt die Erklärung nur noch über den Fuß.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 22:41:54 +02:00
2026-09-06 17:21:52 +02:00
2026-09-06 17:21:52 +02:00
2026-09-06 17:21:52 +02:00
2026-09-06 17:21:52 +02:00
2026-09-06 17:21:52 +02:00
2026-09-06 17:21:52 +02:00
2026-09-06 17:21:52 +02:00
2026-09-06 17:21:52 +02:00
2026-09-06 17:21:52 +02:00
2026-09-06 17:21:52 +02:00
2026-09-06 17:21:52 +02:00

Anelia Wolf Website

Statische Website für Anelia Wolf (Keynote Speakerin, Trainerin, Coach). Vierzehn Routen in zwei Sprachen: Startseite, drei Leistungsseiten, die Messeseite zur herCAREER Expo, Impressum und Datenschutz deutsch auf /, englisch unter /en/ plus die 404.

Next.js 16 (App Router) im Static Export, Tailwind v4, GSAP + Lenis, TypeScript. Kein Backend, keine Datenbank, keine Formulare.

Entwickeln und bauen

npm install
npm run dev     # http://localhost:3000
npm run build   # erzeugt out/
npm run lint
npx tsc --noEmit

next.config.ts setzt output: "export" und trailingSlash: true. Der Build schreibt den fertigen Ordner out/ das ist das komplette Deployment: rein statische Dateien für einen beliebigen Webhoster (Apache, nginx, Uberspace, Netlify, …). Kein Node-Prozess auf dem Server, kein next start.

Was diese Seite bewusst nicht tut

Diese Regeln sind nicht kosmetisch die Datenschutzerklärung sagt sie zu:

  • keine externen Requests: keine Google Fonts, keine CDNs, keine Videos, keine Karten, keine Social-Plugins, keine Analytics. Schriften werden über next/font zur Build-Zeit selbst gehostet.
  • kein Storage: kein localStorage, kein sessionStorage, keine Cookies deshalb auch kein Cookie-Banner.
  • Kontaktformular mit Serverversand, kein Newsletter. Abschnitt 06 sendet an /api/contact beim Hoster; die Anfrage landet im Postfach info@anelia-wolf.com im Ordner web-anfragen (kein Formulardienst eines Dritten). Alle übrigen Kontaktwege laufen weiter über mailto: und Telefon.

Wer eine dieser Zusagen ändert, muss src/content/legal.ts (Ziffer 2, 3 und 6) mit ändern.

Wo was liegt

Pfad Inhalt
src/app/(de)/ deutsche Routen (page.tsx je Seite) und ihr Wurzel-Layout mit <html lang="de">
src/app/en/ englische Routen und ihr Wurzel-Layout mit <html lang="en">
src/app/global-not-found.tsx 404 für unbekannte Adressen wird zu out/404.html
src/components/pages/ Der Aufbau jeder Seite, einmal für beide Sprachen
src/content/en/ die englischen Texte, Datei für Datei dieselbe Struktur
src/lib/i18n.ts Pfade beider Sprachen, Sprachumschalter, hreflang
src/content/*.ts Sämtliche Texte. Wer Copy ändert, ändert nur hier nie im JSX.
src/lib/site.ts Stammdaten (Name, E-Mail, Telefon, LinkedIn), Navigation, Routen, Flags
src/lib/legal.ts Platzhalter-Logik, Build-Guard, LEGAL_TODO / CONTENT_TODO
src/lib/assets.ts Build-Zeit-Prüfung der Drop-in-Dateien (fehlt eine, rendert die dokumentierte Variante B)
src/components/ layout/, motion/ (GSAP-Primitiven), ui/, brand/, home/, services/
public/brand/, public/photos/ Drop-in-Slots für Logo und Fotos (je eigene README)
docs/superpowers/ Spec und Build-Plan
docs/SUBDOMAIN-HERCAREER.md her-career.anelia-wolf.com Ziel des QR-Codes auf der Rückwandgrafik: DNS, Zertifikat, Vhost

Drop-in-Assets

Fehlt eine Datei, bricht nichts die Seite rendert die dokumentierte Alternative:

Datei Fehlt sie, dann …
public/brand/logo-mark.svg typografisches <WolfMark/>-Monogramm statt des echten Logos
public/brand/logo-full.png kein Social-Preview-Bild in den OpenGraph-Daten
public/photos/anelia-hero.jpg Hero ohne Foto (Monogramm trägt die Fläche)
public/photos/anelia-portrait.jpg „Über Anelia“ ohne Foto
public/photos/anelia-stage.jpg Keynotes-Seite ohne Bühnenfoto
public/speaker-profil.pdf Speaker-Profil-Zeile entfällt (zusätzlich flags.showSpeakerPdf)

Das gelieferte Logo-SVG wird inline eingebettet. Enthält es ein <script>, bricht der Build ab dann eine Export-Variante ohne Interaktivität liefern.

Flags (src/lib/site.ts)

Flag Bedeutung
showPlaceholders true bis zum Launch: offene Angaben stehen sichtbar als „[…]“ in Gold
hostOutsideEu nur true, wenn Hoster/Office-Anbieter außerhalb EU/EWR sitzen (Drittland-Absatz)
showFaq, showStimmen, showSpeakerPdf, showSecondTalk, show24hPromise, showIndustry, showTwins schalten einzelne Blöcke frei, sobald die Inhalte freigegeben sind
showHerCareer true, solange die herCAREER Expo bevorsteht: nur dann trägt /her-career/ die Termin-Angaben und steht in der Sitemap. Ab 24.10.2026 auf false.

Vor dem Livegang

  1. LEGAL_TODO und CONTENT_TODO in src/lib/legal.ts abarbeiten Anschrift, USt-IdNr., Hoster, Aufsichtsbehörde, Bildnachweise, Dauer-/Paketangaben.
  2. Erst dann flags.showPlaceholders auf false setzen. Steht danach irgendwo noch ein „[…]“ in einer Pflichtangabe, bricht der Build mit einer Fundstelle ab der Flip geht nicht ungelesen live.
  3. npm run build und den Inhalt von out/ hochladen.
Description
Anelia Wolf
Readme 554 KiB
Languages
TypeScript 97.5%
CSS 2.4%
JavaScript 0.1%