From c4cb12b26ec5a46dcd2bece45dc369197e7493ea Mon Sep 17 00:00:00 2001 From: Clemens Creutzburg Date: Mon, 20 Jul 2026 19:46:08 +0200 Subject: [PATCH] Landing-Marketing / SEO-Infrastruktur / a11y-Viewport) --- .htaccess | 3 + agb.php | 2 +- assets/css/public.css | 89 +++++++++++++++++- datenschutz.php | 2 +- email-verifizieren.php | 2 +- header.php | 2 +- impressum.php | 2 +- landing.php | 184 ++++++++++++++++++++++++++----------- login.php | 2 +- passwort-vergessen.php | 2 +- passwort-zuruecksetzen.php | 2 +- preise.php | 2 +- register.php | 2 +- robots.txt | 17 ++++ sitemap.php | 20 ++++ 15 files changed, 270 insertions(+), 63 deletions(-) create mode 100644 robots.txt create mode 100644 sitemap.php diff --git a/.htaccess b/.htaccess index 797ede9..edbf1bc 100644 --- a/.htaccess +++ b/.htaccess @@ -7,6 +7,9 @@ RewriteEngine On RewriteCond %{REQUEST_URI} ^/(var|database|scripts|docs|app|lib)/ [NC] RewriteRule ^ - [F] + + # Konventionelle /sitemap.xml auf die dynamische, host-korrekte Sitemap. + RewriteRule ^sitemap\.xml$ sitemap.php [L] diff --git a/agb.php b/agb.php index 78a5970..f25da56 100644 --- a/agb.php +++ b/agb.php @@ -4,7 +4,7 @@ AGB – Kaffeeliste - + diff --git a/assets/css/public.css b/assets/css/public.css index 5293522..0ac0761 100644 --- a/assets/css/public.css +++ b/assets/css/public.css @@ -63,10 +63,25 @@ body.public-page { .public-hero p { color: #3d4449; - font-size: 1.15em; max-width: 34rem; } +.public-hero-lead { + font-size: 1.15em; +} + +.public-hero-sub { + font-size: 1.05em; + color: #38761d; + margin-top: -0.4rem; +} + +.public-hero-reassure { + font-size: 0.85em; + color: #7f888f; + margin-top: 0.85rem; +} + .public-section { padding: 4rem 6vw; } @@ -117,6 +132,78 @@ body.public-page { background: #eef4ea; } +/* Trust-Band direkt unter dem Hero: faktische Vertrauensanker, kein Fließtext. */ +.public-trust { + background: #38761d; + padding: 1rem 6vw; +} + +.public-trust ul { + list-style: none; + margin: 0 auto; + padding: 0; + max-width: 72rem; + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 0.5rem 1.75rem; +} + +.public-trust li { + color: #ffffff; + font-size: 0.9em; + padding-left: 1.4rem; + position: relative; +} + +.public-trust li:before { + content: "\2713"; + position: absolute; + left: 0; + font-weight: 700; +} + +/* Zielgruppen-Chips zur Selbst-Identifikation des Besuchers. */ +.public-audience-list { + list-style: none; + margin: 0 auto; + padding: 0; + max-width: 60rem; + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 0.75rem; +} + +.public-audience-list li { + border: solid 1px rgba(210, 215, 217, 0.9); + border-radius: 999px; + padding: 0.5rem 1.1rem; + color: #3d4449; + background: #ffffff; + font-size: 0.95em; +} + +.public-price { + font-family: "Roboto Slab", serif; + font-size: 1.5em; + color: #38761d; + font-weight: 700; +} + +.public-price span { + font-family: inherit; + font-size: 0.55em; + color: #7f888f; + font-weight: 400; +} + +.public-cta-reassure { + font-size: 0.85em; + color: #7f888f; + margin-top: 1rem; +} + .public-fineprint { max-width: 72rem; margin-left: auto; diff --git a/datenschutz.php b/datenschutz.php index e468090..a86fb60 100644 --- a/datenschutz.php +++ b/datenschutz.php @@ -4,7 +4,7 @@ Datenschutzerklärung – Kaffeeliste - + diff --git a/email-verifizieren.php b/email-verifizieren.php index 3294c28..bfbc38e 100644 --- a/email-verifizieren.php +++ b/email-verifizieren.php @@ -15,7 +15,7 @@ $result = $token !== '' Kaffeeliste E-Mail verifizieren - + diff --git a/header.php b/header.php index ca276ec..30448bc 100644 --- a/header.php +++ b/header.php @@ -8,7 +8,7 @@ Kaffeeliste - + diff --git a/impressum.php b/impressum.php index 644a313..82a208c 100644 --- a/impressum.php +++ b/impressum.php @@ -4,7 +4,7 @@ Impressum – Kaffeeliste - + diff --git a/landing.php b/landing.php index e8d58c2..b61c48f 100644 --- a/landing.php +++ b/landing.php @@ -1,13 +1,83 @@ - + 'https://schema.org', + '@type' => 'FAQPage', + 'mainEntity' => array_map(static function (array $item): array { + return [ + '@type' => 'Question', + 'name' => $item[0], + 'acceptedAnswer' => ['@type' => 'Answer', 'text' => $item[1]], + ]; + }, $faqItems), +]; + +$productLd = [ + '@context' => 'https://schema.org', + '@type' => 'SoftwareApplication', + 'name' => 'Kaffeeliste', + 'applicationCategory' => 'BusinessApplication', + 'operatingSystem' => 'Web', + 'description' => $metaDescription, + 'offers' => [ + ['@type' => 'Offer', 'price' => '0', 'priceCurrency' => 'EUR', 'description' => 'Bis 10 Teilnehmer'], + ['@type' => 'Offer', 'price' => '3.99', 'priceCurrency' => 'EUR', 'description' => 'Bis 25 Teilnehmer / Monat'], + ['@type' => 'Offer', 'price' => '7.99', 'priceCurrency' => 'EUR', 'description' => 'Bis 50 Teilnehmer / Monat'], + ['@type' => 'Offer', 'price' => '12.99', 'priceCurrency' => 'EUR', 'description' => 'Bis 150 Teilnehmer / Monat'], + ], +]; +$jsonFlags = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE; +?> - Kaffeeliste – die digitale Kaffeekasse für Teams + Kaffeeliste – die digitale Kaffeekasse, die von allein mitrechnet - - + + + + + + + + + + + + + + + + + + + + + + + +
@@ -21,14 +91,41 @@

Die Kaffeekasse, die von allein mitrechnet

-

Die Striche macht ihr weiterhin ganz klassisch an der Maschine – auf der ausgedruckten Liste, wie eh und je. Den Rest übernimmt Kaffeeliste: Guthaben, Zahlungen und offene Beträge sind für alle jederzeit auf einen Blick sichtbar. Schluss mit Kopfrechnen, Excel-Tabellen und dem lästigen Kassensturz am Monatsende.

+

Schluss mit Kopfrechnen, Zettelwirtschaft und dem lästigen Kassensturz am Monatsende. Wer wie viel offen hat, sieht jeder auf einen Blick – ihr macht nur noch die Striche, den Rest erledigt Kaffeeliste.

+

In 5 Minuten startklar. Kostenlos für Teams bis 10 Personen.

+

Keine Kreditkarte nötig · in wenigen Minuten startklar · jederzeit kündbar

+
+
    +
  • Bis 10 Personen kostenlos
  • +
  • Ohne Kreditkarte starten
  • +
  • DSGVO-konform: Daten jederzeit export- & löschbar
  • +
  • § 19 UStG – keine Mehrwertsteuer
  • +
  • Bestehende Abläufe bleiben
  • +
+
+ +
+
+

Für jede Teeküche gemacht

+

Überall dort, wo mehrere Leute an einer Maschine trinken – und am Ende niemand nachrechnen will.

+
+
    +
  • Büros & Agenturen
  • +
  • Arzt- & Zahnarztpraxen
  • +
  • Vereine
  • +
  • Werkstätten & Betriebe
  • +
  • Kanzleien
  • +
  • Gemeinschaftsküchen
  • +
+
+

So funktioniert's

@@ -55,68 +152,68 @@
-

Alles rund um die Kaffeekasse

-

Kein Feature-Wildwuchs – nur, was ein Team wirklich braucht.

+

Was dein Team davon hat

+

Für alle, die einfach nur Kaffee trinken wollen – ohne Diskussionen über die Kasse.

-

Immer der richtige Zugriff

-

Neue Kolleg:innen sind in einer Minute angelegt, wer geht, ist genauso schnell wieder draußen. Rollen wie Admin oder Kassenwart vergebt ihr gezielt – zum Beispiel für die Praktikantin, die nur Striche einträgt, aber nichts an den Einstellungen ändern kann.

+

Jeder sieht seinen Stand

+

Kein Nachfragen, kein böses Erwachen: Guthaben oder offener Betrag stehen jederzeit im eigenen Dashboard – am Handy in der Teeküche oder am Rechner.

-

Nie wieder „Wer hat schon bezahlt?"

-

Jede Einzahlung, jeder Strich, jede Korrektur landet automatisch im gemeinsamen Kontobuch – nachvollziehbar bis zum ersten Tag. Praktisch beim Jahresabschluss: ein Klick, fertig.

+

Strich in zwei Sekunden

+

Ein Tipp auf „Ein Strich" oder „Zwei Striche" im eigenen Konto – der Verbrauch wird automatisch richtig zugeordnet. Nichts eintragen, nichts nachtragen.

-

Bezahlen in 10 Sekunden

-

Wer offen ist, bekommt einen fertigen PayPal-Link mit passendem Betrag. Kein Bargeld, kein Wechselgeld-Chaos in der Teeküche.

+

Bezahlen ohne Kleingeld

+

Offener Betrag? Ein fertiger PayPal-Link mit dem passenden Betrag wartet schon. Kein Bargeld, kein „Ich hab's gleich".

Die Liste an der Wand bleibt

-

Ausdrucken, aufhängen, fertig – mit eigenem Hinweistext als Wasserzeichen und automatisch passender Zeilengröße, egal ob 5 oder 150 Kolleg:innen mitmachen.

+

Der vertraute Ausdruck neben der Maschine bleibt – jetzt mit eurem eigenen Hinweistext als Wasserzeichen und automatisch passender Zeilengröße.

-

Alle informiert, ohne Rundmail-Chaos

-

Ein Hinweisbanner für „Die Maschine ist kaputt" oder eine Erinnerungsmail an alle mit offenem Betrag – in einer Minute verschickt statt einzeln nachgefragt.

+

Ein Hinweis für alle

+

„Maschine ist kaputt" oder „Neue Sorte da"? Ein Banner erscheint für alle sichtbar in der App – ohne Rundmail und Zettel am Kühlschrank.

-

6 Gründe, warum Verwalter Kaffeeliste lieben

-

Für Admin und Kassenwart macht das den größten Unterschied im Alltag.

+

6 Gründe, warum Kassenwarte Kaffeeliste lieben

+

Der Papierkram der Kaffeekasse – ab jetzt erledigt sich der größtenteils selbst.

1

Kein Taschenrechner mehr

-

Salden berechnen sich automatisch. Keine manuelle Addition von Strichen und Zahlungen am Monatsende.

+

Salden berechnen sich automatisch. Nie wieder Striche und Zahlungen am Monatsende von Hand zusammenzählen.

2 -

Ein Klick statt Excel-Akrobatik

-

Jahresabschluss, Mitgliederliste, Export – direkt aus der App statt mühsamer Tabellenpflege nebenbei.

+

Jahresabschluss auf Knopfdruck

+

Auswertung fürs ganze Jahr direkt aus der App – statt Excel-Formeln zu pflegen, die keiner mehr versteht.

3

Erinnerungen laufen von allein

-

Eine Info-Mail an alle mit offenem Betrag, statt jede Person einzeln anzuschreiben oder anzusprechen.

+

Eine Info-Mail an alle mit offenem Betrag statt jede Person einzeln anzuschreiben oder in der Küche anzusprechen.

4 -

Mitgliederverwaltung in Sekunden

+

Mitglieder in Sekunden verwaltet

Neue Kolleg:innen anlegen, alte deaktivieren, Rollen vergeben – ohne Rückfragen, wer worauf Zugriff hat.

5

PayPal-Abgleich ohne Nachrechnen

-

Eingehende Zahlungen ordnen sich automatisch dem richtigen Mitglied zu – kein Abgleich von Hand mehr.

+

Eingehende Zahlungen lassen sich per Export einlesen und dem richtigen Mitglied zuordnen – inklusive Dublettenprüfung.

6 -

Der Stand ist immer griffbereit

-

Ob am Handy in der Teeküche oder am Rechner im Büro: Der Kassenstand ist nie veraltet oder in der falschen Datei.

+

Kein Feilschen mehr

+

Jede Buchung ist nachvollziehbar bis zum ersten Tag. Diskussionen über „Ich hab aber weniger getrunken" erledigen sich von selbst.

@@ -129,19 +226,19 @@

Bis 10 Teilnehmer

-

Kostenlos

+

Kostenlos

Bis 25 Teilnehmer

-

3,99 € / Monat

+

3,99 € / Monat

Bis 50 Teilnehmer

-

7,99 € / Monat

+

7,99 € / Monat

Bis 150 Teilnehmer

-

12,99 € / Monat

+

12,99 € / Monat

Mehr als 150 Teilnehmer? Preis auf Anfrage. Gemäß § 19 UStG wird keine Umsatzsteuer berechnet – die genannten Beträge sind die tatsächlich zu zahlenden Endpreise. Details unter Preise.

@@ -162,30 +259,12 @@

Häufige Fragen

+
-

Wie schnell ist meine Kaffeeliste startklar?

-

Kundenkonto anlegen, Mitglieder eintragen, loslegen. Es ist keine Einrichtung durch uns nötig, und die bestehenden Abläufe rund um Striche und Einzahlungen bleiben dieselben.

-
-
-

Was kostet die Kaffeeliste?

-

Bis 10 Teilnehmer kostenlos, danach gestaffelt nach Teamgröße ab 3,99 € im Monat – ohne Kosten pro Kopf. Details unter Preise.

-
-
-

Sind unsere Daten von denen anderer Kunden getrennt?

-

Ja. Jeder Kunde hat einen eigenen, isolierten Bereich für Mitglieder, Buchungen und Einstellungen. Diese Trennung ist fester Bestandteil der App und wird automatisiert geprüft.

-
-
-

Wer darf in unserem Team was ändern?

-

Ihr vergebt Rollen wie Administrator, Kassenwart oder Mitglied gezielt pro Person – und könnt den Zugang jederzeit wieder entziehen, ohne den Mitgliedseintrag selbst zu löschen.

-
-
-

Können wir unsere Daten exportieren oder löschen lassen?

-

Ja. Ihr könnt alle gespeicherten Daten jederzeit als Export herunterladen und einzelne Mitglieder oder euren gesamten Kundenbereich selbstständig wieder entfernen lassen.

-
-
-

Müssen wir PayPal nutzen?

-

Nein, PayPal ist optional und lässt sich in den Mandant-Einstellungen aktivieren. Einzahlungen können weiterhin auch manuell erfasst werden.

+

+

+
@@ -198,6 +277,7 @@
  • Kundenkonto anlegen
  • Zur App
  • +

    Bis 10 Personen kostenlos · keine Kreditkarte nötig · jederzeit kündbar

    diff --git a/login.php b/login.php index f887214..d40bfaa 100644 --- a/login.php +++ b/login.php @@ -47,7 +47,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { Kaffeeliste Login - + diff --git a/passwort-vergessen.php b/passwort-vergessen.php index 4d4ba65..f393a71 100644 --- a/passwort-vergessen.php +++ b/passwort-vergessen.php @@ -45,7 +45,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { Kaffeeliste Passwort vergessen - + diff --git a/passwort-zuruecksetzen.php b/passwort-zuruecksetzen.php index 8cfe2ec..b30f357 100644 --- a/passwort-zuruecksetzen.php +++ b/passwort-zuruecksetzen.php @@ -33,7 +33,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { Kaffeeliste Passwort zurücksetzen - + diff --git a/preise.php b/preise.php index 2be9258..be6811c 100644 --- a/preise.php +++ b/preise.php @@ -4,7 +4,7 @@ Preise – Kaffeeliste - + diff --git a/register.php b/register.php index 52ee073..98178c7 100644 --- a/register.php +++ b/register.php @@ -51,7 +51,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { Kaffeeliste Registrierung - + diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..f258867 --- /dev/null +++ b/robots.txt @@ -0,0 +1,17 @@ +User-agent: * +Allow: /$ +Allow: /landing.php +Allow: /preise.php +Allow: /impressum.php +Allow: /agb.php +Allow: /datenschutz.php +Disallow: /index.php +Disallow: /login.php +Disallow: /register.php +Disallow: /konto.php +Disallow: /backoffice.php +Disallow: /var/ +Disallow: /app/ +Disallow: /scripts/ + +Sitemap: /sitemap.xml diff --git a/sitemap.php b/sitemap.php new file mode 100644 index 0000000..8c16adc --- /dev/null +++ b/sitemap.php @@ -0,0 +1,20 @@ +' . "\n"; +echo '' . "\n"; +foreach ($pages as $page) { + $loc = $base . '/' . $page; + echo ' ' . htmlspecialchars($loc, ENT_QUOTES, 'UTF-8') . '' . "\n"; +} +echo '' . "\n";