diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..b1e5e59 --- /dev/null +++ b/TODO.md @@ -0,0 +1,29 @@ +# TODO / Backlog + +## Rethink the tier model — decouple tier from business type +**Goal:** tiers should NOT be tied to a kind of business. Which "tier" (and whether a +client's site is self-hosted or runs on Google's free services) is a decision made +**between me and the client**, case by case — not something baked into a demo. + +Implications to work through: +- **Demos are stack-agnostic starters.** Each demo page is just an example business with + *no committed stack* — it shows what the client could get (website + booking / orders / + lead capture), not "Tier A = Google" vs "Tier B = self-hosted". Drop tier/stack labels and + jargon (self-hosted, Cal.com, Google-Stack, "≈ 0 €") from the public-facing demos & + chooser. (Chooser already reworded 2026-06-25; the demo *pages* still carry stack framing — + tier-a is Google-Kalender-themed, tier-b is self-hosted/Datenschutz-themed. Neutralise later.) +- After a client signs, **I decide hosting**: self-host the page on the homelab, or stand it + up on the client's free Google account. The CRM already has `tier` + `stack_notes` columns + to record that decision per client. +- Revisit the `Clients.tier` field semantics: keep A/B as an internal effort/price band, or + replace with something hosting-agnostic (e.g. `hosting = google | selfhosted`, `plan = …`). +- Onboarding form + workflow currently ask for Tier A/B — realign once the model is settled. + +## Other +- Harden n8n auth: compose still has deprecated `N8N_BASIC_AUTH_*` with password `password` + (legacy/ignored by modern n8n owner-login). Confirm the owner account is strong; remove the + dead env. +- Orders: the pizzeria demo posts orders into the `Leads` tab via the lead-intake webhook as a + stop-gap. Build a proper **Orders** flow + sheet tab (items, total, mode, status) when the + order-management product is real. +- Booking-sync workflow (Tier-B Cal.com webhook + Tier-A Google Calendar poll) — next up. diff --git a/templates/landing/demo-pizzeria/index.html b/templates/landing/demo-pizzeria/index.html new file mode 100644 index 0000000..4e85dea --- /dev/null +++ b/templates/landing/demo-pizzeria/index.html @@ -0,0 +1,497 @@ + + + + + + Bella Napoli — Pizzeria | Online bestellen + + + + + + + +
Demo · Pizzeria mit Online-Bestellung — Beispielseite für Gäste
+ + + +
+ +
+
+
+ Pizzeria · Holzofen · Nürnberg +

Echte Pizza.
Online bestellt.

+

Neapolitanischer Teig, 48 Stunden gereift, aus dem Holzofen. Stell dir deine Bestellung zusammen — Abholung oder Lieferung, ganz ohne Telefon-Warteschleife.

+ +
+ 🔥 Aus dem Holzofen + 🚴 Lieferung in 30–40 Min + ⭐ 4,8 / 5 +
+
+ +
+
+ + +
+
+
+ Speisekarte +

Unsere Pizzen

+

Alle Pizzen 30 cm, auf hausgemachtem Sauerteig. Tippe auf „Hinzufügen“ — dein Warenkorb füllt sich unten.

+
+ +
+
+ + +
+
+
+ Bestellen +

Deine Bestellung

+

Prüf deinen Warenkorb, wähl Abholung oder Lieferung — wir bestätigen direkt.

+
+
+ +
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+
+ + +
+ +

Demo-Vorschau. In der Live-Version läuft die Bestellung direkt ins Bestell-Management der Pizzeria + sofortige Benachrichtigung.

+
+
+ + +
+
+
+ + +
+
+
+ Kontakt & Öffnungszeiten +

Bella Napoli

+

Frisch gebacken, Di–So. Montags Ruhetag.

+
+
+

Adresse

Weinmarkt 7 · 90403 Nürnberg

+

Öffnungszeiten

Di–So 11:30–22:00 · Mo Ruhetag

+

Telefon

0911 000000 · ciao@bellanapoli-nbg.de

+
+
+
+
+ + + + + + + + + + + +
+ +
+ + + + + + diff --git a/templates/landing/demo-tier-a/index.html b/templates/landing/demo-tier-a/index.html index c6c29ee..e9695d8 100644 --- a/templates/landing/demo-tier-a/index.html +++ b/templates/landing/demo-tier-a/index.html @@ -90,7 +90,7 @@ .booking-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; align-items: center; } .booking-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px; box-shadow: var(--shadow); } .gcal-head { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: .82rem; border-bottom: 1px solid var(--line); padding-bottom: 14px; margin-bottom: 18px; } - .gcal-dot { width: 12px; height: 12px; border-radius: 50%; background: #4285F4; box-shadow: 18px 0 0 #34A853, 36px 0 0 #FBBC05; } + .gcal-dot { flex: 0 0 auto; width: 12px; height: 12px; border-radius: 50%; background: #4285F4; box-shadow: 18px 0 0 #34A853, 36px 0 0 #FBBC05; margin-right: 40px; } .slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; } .slot { text-align: center; padding: 11px 6px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); font-size: .9rem; cursor: pointer; transition: .15s; background: #1b1611; } .slot:hover { border-color: var(--gold); color: var(--gold-2); } diff --git a/templates/landing/index.html b/templates/landing/index.html index a8ec169..eda47d4 100644 --- a/templates/landing/index.html +++ b/templates/landing/index.html @@ -5,18 +5,21 @@ smb-online — Demo-Auswahl