Die öffentliche Website unter cluhu.ch (gepflegt von der Session «landingpage»): Startseite /, /funktionen/ und /sicherheit/. Sie wirbt für die Plattform; die Vereins-Webseiten der Mandanten entstehen dagegen im Webseiten-Builder. Django-Templates unter templates/marketing/ mit Rahmen base_marketing.html; die Inhalte der Funktionen-Seite liegen in apps/core/landing_features.py.
Was der Besucher sieht. Die Startseite ist kurz: Intro, vier Hauptfunktionen, «Warum CluHu?», drei Teaser-Kacheln, Aufruf zum Alpha-Test. Wer Details will, geht auf /funktionen/ (alle Kapitel mit Screenshots) oder /sicherheit/ (Schweiz, Datenschutz). Das Menü hat vier Einträge: Übersicht · Funktionen · Sicherheit · Alpha Testen. Ein gemeinsamer CTA-Block (_cta.html) schliesst jede Seite ab (v0.26.34). Mobil zeigt jedes Kapitel erst Titel, dann Karten, dann Slider, als abgesetzte graue Fläche (v0.26.30).
Warum mehrseitig. Bis v0.26.28 war alles ein Onepager mit sieben Slider-Kapiteln. Aus drei Optionen wurde «Startseite + eine Funktionen-Seite» gewählt (v0.26.30). Verworfen: je Kapitel eine Seite und Produktseiten nach den vier Hauptfunktionen. Ein erster Versuch, die Kapitel auf der Startseite anzuteasern, riss «Was CluHu alles kann» auseinander und wurde zurückgenommen (v0.26.31). «Warum CluHu?» ist keine eigene Seite und darum nicht im Menü, nur im Footer, der bewusst eine Sitemap ist (v0.26.37).
Technik. Auf einer Vereins-Domain gehört /funktionen/ der Vereinswebseite, darum delegiert _marketing_page() dort an den Website-Builder (v0.26.30). /addons/ leitet auf /funktionen/ um.
Was kann CluHu? Vier Karten mit Mockup: CluCore, Vereinswebseite (Website-Builder), Mitgliederportal, Addon-System. Die Karten sind bewusst schlank: Titel, Untertitel, Bild, Lead, ein Absatz (v0.24.11). Bullet-Listen wurden gestrichen, weil die Detail-Aufzählung auf /funktionen/ liegt. Die Kartentitel sind funktional («Vereinswebseite» statt «CluWeb»), der Produktname wanderte in den Untertitel (v0.24.8). Die vierte Karte «Addon-System» kam in v0.24.6 dazu; das Grid ist 2×2, weil vier Spalten mit diesen Karten zu schmal wären. Überschrift und Menüeintrag heissen seit v0.26.52 «Was kann CluHu?» bzw. «Übersicht».
Mockups statt Screenshots. Die vier Bilder sind gekippte Produkt-Mockups mit Demodaten, von Yves geliefert und in vielen Runden verfeinert (V2–V15, v0.24.7–v0.26.53). Echte, rechteckige Screenshots gibt es auf /funktionen/; die Startseite zeigt das Produkt als Bild. Weil die V14-Dateien 7500 px breit waren (15,7 MB pro Seitenaufruf), werden alle Mockups auf 1200×718 verkleinert (1,5 MB total, v0.26.23); das Resize läuft mit Pillow im web-Container, der Host hat keine Bildtools.
Warum CluHu? Sechs Punkte, beidseitig von Wellen gerahmt (v0.26.38, v0.26.41). Die Aufzählungszeichen sind das gedrehte «b» aus dem Logo statt Häkchen (v0.26.49–.51).
Teaser-Trio «Mehr erfahren». Drei Kacheln führen auf /funktionen/, /sicherheit/#datenschutz und /sicherheit/#schweiz. Sie ersetzen den Sicherheits-Kurzblock, der die Sicherheits-Seite doppelte (v0.26.33). Der Weg zur heutigen Form (v0.26.33–.47, v0.28.19–.20): zuerst geformte SVG-Silhouetten (Schild, Wellenkante), dann alle drei in derselben schlichten Rechteckform, weil die Silhouetten mobil schwer wirkten (v0.26.36); Blauverlauf durch helle Karten ersetzt (v0.26.40); Icons zuerst entfernt, dann als farbige Kacheln im Stil der Sicherheits-Seite zurück (v0.26.42). Statt eines Deko-Kreises liegt das «b» als Wasserzeichen in der Kachel, seit v0.28.19 diagonal. Der erste Teaser heisst «Details zu den CluHu Funktionen», damit er sich nicht mit «Was kann CluHu?» doppelt.
Was sie zeigt. Acht Kapitel, je links Titel, Claim und Screenshot-Slider, rechts Karten mit Funktionsname und Kurznutzen: Mitgliederverwaltung · Rechnungen & Beiträge · Buchhaltung & Abschluss · Gruppen & Organisation · Kalender, Trainings & Events · Kommunikation & Mitgliederinteraktion · Webseite · Mitgliederportal, zusammen 59 Karten (Stand v0.28.51). Zwischen den Kapiteln laufen Wellen-Trennlinien über die volle Fensterbreite.
Herkunft. Die Seite ersetzte den Addon-Schauraum (v0.24.1). Problem damals: handgepflegte HTML-Karten und Addon-Katalog drifteten auseinander, die Gliederung folgte der technischen Addon-Taxonomie, und Kernfunktionen ohne Addon-Status fehlten. Lösung: eigene Marketing-Struktur FEATURE_GROUPS, bewusst entkoppelt vom Katalog der adons-Session; der Zähler wird berechnet und kann nicht mehr driften. Die Kapitel wurden in v0.24.2–.4 zugeschnitten («Auswerten & Entscheiden» gestrichen, «Webseite» eigenes Kapitel). In v0.28.51 wurde «Finanzen» in zwei Kapitel geteilt, weil neun Karten zwei Zielgruppen mischten (Beiträge stellen vs. Buchhaltung führen); beide stehen direkt hinter der Mitgliederverwaltung. Material kommt absichtlich dreimal vor: Bestand und Wert (Buchhaltung), Verleih (Kommunikation), ganzer Prozess (Gruppen; v0.24.3, v0.28.10).
Screenshot-Slider mit Lightbox (v0.26.27): Scroll-Snap, Auto-Wechsel alle 4 s, pausiert bei Interaktion, läuft nur im sichtbaren Bereich und nie bei prefers-reduced-motion; die Lightbox ist per Tastatur bedienbar. Entscheid: rechteckige Screenshots, keine gekippten Mockups. Die Bilder stammen aus zwei Quellen. Erstens die Screens der Addon-Detailseiten (addon_details.py, layout-Session) samt deren Bildtexten; _slide() liest sie, fehlende Screens fallen still weg (v0.26.28). Zweitens eigene Aufnahmen unter static/img/slides/<kapitel>/, 1600×850, mit einem Browserless-Container im Testverein «Musikgesellschaft Rietbach» (v0.28.12). So kamen Material, Zahlungsabgleich, Anlagen, Datei-Browser, das neu aufgenommene Webseiten-Kapitel mit Wizard-Schritt 4 und Block-Assistent sowie drei Portal-Bilder dazu (v0.28.12–.22, v0.28.51). Das Slider-Verhältnis 32:17 entspricht dem Bildformat, die Caption-Höhe wird per Skript ausgemessen, damit nichts springt (v0.26.48).
Texte. Die Kartentexte schreibt Yves direkt in landing_features.py; die Session übernimmt sie und korrigiert nur Schreibfehler (Politik seit v0.26.2, Runden v0.26.2–.5). Neue Karten für umgesetzte Funktionen entwirft die Session aus dem Code (v0.24.2, v0.28.51). Das «&» in Kapiteltiteln wird im System-Font gerendert, weil die Righteous-Glyphe unleserlich ist; «und» ausschreiben machte die Titel zu lang (v0.24.3, .4, .9).
static/img/cluhu_b.svg extrahiert (v0.26.46). Es ersetzt generische Zier-Elemente: Wasserzeichen in den Teasern (7 % Deckkraft), Bullets in «Warum CluHu?»./funktionen/ ersetzt sie die Trennlinie zwischen Kapiteln (v0.26.48) und läuft ohne 100vw-Trick randlos, weil der Container aufgeteilt wurde (v0.28.15).lp-*-Klassen in <style>-Blöcken der Templates, weil output.css auf dem Host nicht neu gebaut werden kann; neue Tailwind-Klassen vorab gegen das gebaute CSS prüfen (v0.24.1). Sie wirken nicht in CluCore.apps/core/landing_features.py. Startseiten-Texte: templates/marketing/landing.html. Navigation: templates/base_marketing.html. Meta-Beschreibungen in den Seiten-Templates.static/img/mockup_*.png, immer auf 1200×718 verkleinern. Eigene Slides: 1600×850, bei Fotos auf 256 Farben reduzieren (v0.28.14).{# #} nur einzeilig, sonst erscheinen sie im Browser (v0.26.32).git rebase main, Versionsnummer und Produktfakten gegen /srv/cluhu/code prüfen./funktionen/: keine Subline mit Zähler, keine Kapitel-Chips, kein «Kapitel n von 7» (v0.26.32); auch der Live-Zähler im Teaser ist weg (v0.26.44)./funktionen/ (Stand v0.28.51): Termin-Assistent, Anwesenheitsliste im Portal, Abmelden mit Grund, Anwesenheits-Matrix, Kopfbereich mit Profil-Chip. Blockiert durch verunreinigte Testdaten im Verein musiktest (Personen-Verweise auf andere Mandanten).