diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 671c9fe..e65d867 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -4,7 +4,8 @@ "Bash(cp:*)", "Bash(python -m http.server 8000)", "PowerShell(Test-Path *)", - "PowerShell(Copy-Item *)" + "PowerShell(Copy-Item *)", + "Bash(findstr /i \"package json html\")" ] } } diff --git a/website/_devserver.py b/website/_devserver.py new file mode 100644 index 0000000..5b03b9a --- /dev/null +++ b/website/_devserver.py @@ -0,0 +1,35 @@ +"""Local dev server that mimics the production nginx try_files fallback. +Serves real files when they exist; otherwise falls back to index.html so +clean URLs like /kontakt and /ki-agenten work on reload. Dev-only helper. +""" +import os +from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer + +PORT = 8002 + + +class FallbackHandler(SimpleHTTPRequestHandler): + def do_GET(self): + raw = self.path.split("?")[0] + fs = self.translate_path(self.path) + # 1) real file → serve it + if os.path.isfile(fs): + return super().do_GET() + # 2) try $uri.html (clean URLs like /ki-agenten-systeme → ki-agenten-systeme.html) + html_rel = raw.rstrip("/") + ".html" + if os.path.isfile(self.translate_path(html_rel)): + self.path = html_rel + return super().do_GET() + # 3) directory with index.html → serve it + if os.path.isdir(fs) and os.path.isfile(os.path.join(fs, "index.html")): + return super().do_GET() + # 4) extensionless route → SPA fallback to index.html + if "." not in os.path.basename(raw): + self.path = "/index.html" + return super().do_GET() + + +if __name__ == "__main__": + os.chdir(os.path.dirname(os.path.abspath(__file__))) + print(f"Dev server with SPA fallback running on http://localhost:{PORT}") + ThreadingHTTPServer(("", PORT), FallbackHandler).serve_forever() diff --git a/website/index.html b/website/index.html index bd6e974..1c8f0f6 100644 --- a/website/index.html +++ b/website/index.html @@ -21,14 +21,14 @@ - + - - + + @@ -104,7 +104,7 @@ { "@type": "Question", "name": "Wie kann ich E-Commerce Werbung profitabler machen ohne eine Agentur?", - "acceptedAnswer": { "@type": "Answer", "text": "Profice baut proprietäre KI-Systeme, die deine Warenwirtschaftsdaten direkt mit Werbekanälen verbinden — ohne Agentur-Retainer, ohne Dashboard-Theater. Das System steuert Werbebudgets automatisch auf Basis echter Produktmargen." } + "acceptedAnswer": { "@type": "Answer", "text": "Profice baut proprietäre KI-Systeme, die Ihre Warenwirtschaftsdaten direkt mit Werbekanälen verbinden — ohne Agentur-Retainer, ohne Dashboard-Theater. Das System steuert Werbebudgets automatisch auf Basis echter Produktmargen." } }, { "@type": "Question", @@ -114,12 +114,12 @@ { "@type": "Question", "name": "Wie erkenne ich ob meine Google Ads Kampagnen wirklich profitabel sind?", - "acceptedAnswer": { "@type": "Answer", "text": "ROAS allein reicht nicht — er zeigt Umsatz, nicht Gewinn. Profice integriert deine Margendaten aus der Warenwirtschaft direkt in die Kampagnensteuerung. So siehst du und optimierst auf POAS (Profit on Ad Spend) — den echten Gewinn nach Produktkosten." } + "acceptedAnswer": { "@type": "Answer", "text": "ROAS allein reicht nicht — er zeigt Umsatz, nicht Gewinn. Profice integriert Ihre Margendaten aus der Warenwirtschaft direkt in die Kampagnensteuerung. So sehen Sie und optimieren auf POAS (Profit on Ad Spend) — den echten Gewinn nach Produktkosten." } }, { "@type": "Question", "name": "Was ist besser als eine Performance-Marketing-Agentur für E-Commerce?", - "acceptedAnswer": { "@type": "Answer", "text": "Agenturen optimieren auf Klicks und ROAS — weil sie keinen Zugriff auf deine Margen haben. Profice baut ein System, das deine eigenen EK-Daten mit Google Ads verbindet. Das System läuft autonom, wird besser mit der Zeit und gehört dir — kein Retainer, kein Reporting." } + "acceptedAnswer": { "@type": "Answer", "text": "Agenturen optimieren auf Klicks und ROAS — weil sie keinen Zugriff auf Ihre Margen haben. Profice baut ein System, das Ihre eigenen EK-Daten mit Google Ads verbindet. Das System läuft autonom, wird besser mit der Zeit und gehört Ihnen — kein Retainer, kein Reporting." } }, { "@type": "Question", @@ -250,6 +250,42 @@ nav a:hover{color:var(--amber)} .stack-item p{font-size:.85rem;color:var(--text-dim);line-height:1.8;font-weight:300} .stack-tag{display:inline-block;margin-top:1rem;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--teal);border:1px solid rgba(38,166,154,.2);padding:.3rem .7rem} +/* ─── Größere Karten (Feedgine + KI-Agenten) ─── */ +#feedgine .stack-item,#visigine .stack-item,#ki-agenten .stack-item{padding:3.75rem 3rem} +#feedgine .stack-num,#visigine .stack-num,#ki-agenten .stack-num{font-size:3.75rem;top:1.8rem;right:1.8rem} +#feedgine .stack-item h3,#visigine .stack-item h3,#ki-agenten .stack-item h3{font-size:1.4rem;margin-bottom:1.1rem} +#feedgine .stack-item p,#visigine .stack-item p,#ki-agenten .stack-item p{font-size:1.05rem;line-height:1.85} +#feedgine .stack-tag,#visigine .stack-tag,#ki-agenten .stack-tag{font-size:.72rem;margin-top:1.5rem;padding:.42rem .9rem} + +/* ─── UNSERE SERVICES ─── */ +.services-wrap{padding:8rem 3rem;max-width:1200px;margin:0 auto} +.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border-strong);margin-top:3rem} +.service-card{background:var(--bg);padding:3rem 2.75rem;transition:background .3s} +.service-card:hover{background:var(--bg2)} +.svc-kicker{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin-bottom:1rem} +.svc-kicker.teal{color:var(--teal)} +.service-card h3{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:800;font-size:1.6rem;color:var(--text-bright);margin-bottom:1rem;letter-spacing:.01em} +.svc-desc{font-size:.95rem;color:var(--text-dim);line-height:1.7;margin-bottom:1.5rem;font-weight:300} +.svc-list{list-style:none;display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.75rem} +.svc-list li{padding-left:1.5rem;position:relative;font-size:.95rem;line-height:1.6;color:var(--text);font-weight:300} +.svc-list li::before{content:'';position:absolute;left:0;top:.55em;width:.6rem;height:1px;background:var(--amber)} +.service-card.ki .svc-list li::before{background:var(--teal)} +.svc-list a{color:var(--amber);text-decoration:none;font-weight:600} +.svc-list a:hover{text-decoration:underline} +.svc-more{display:inline-block;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-bright);text-decoration:none;border-bottom:1px solid var(--amber);padding-bottom:.25rem;transition:color .3s} +.service-card.ki .svc-more{border-color:var(--teal)} +.svc-more:hover{color:var(--amber)} +@media(max-width:900px){.services-grid{grid-template-columns:1fr}.services-wrap{padding:5rem 1.5rem}} + +/* ─── KI-AGENTEN — fertige Agenten ─── */ +.ki-roles-label{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin:4rem 0 1.75rem;display:flex;align-items:center;gap:1rem} +.ki-roles-label::before{content:'';width:3rem;height:1px;background:var(--teal)} +.ki-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem} +.ki-role{border:1px solid var(--border-strong);background:var(--card-bg);padding:1.6rem 1.5rem;transition:border-color .3s,background .3s} +.ki-role:hover{border-color:var(--teal);background:var(--bg2)} +.ki-role .r-name{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-weight:700;font-size:1rem;color:var(--text-bright);margin-bottom:.5rem} +.ki-role .r-desc{font-size:.82rem;color:var(--text-dim);line-height:1.6;font-weight:300} + /* ─── CTA ─── */ .cta-section{padding:8rem 3rem;text-align:center;position:relative} .cta-section::before{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:60vw;height:60vw; @@ -306,9 +342,9 @@ footer a:hover{color:var(--amber)}

Wir verkaufen keine Software-Lizenzen. Wir betreiben zwei Services für Sie — und bringen die passenden Systeme gleich mit. Sie buchen das Ergebnis, nicht das Werkzeug.
+Wir steuern Ihr Marketing auf Gewinn statt Umsatz — von der sauberen Datenbasis bis zur Kampagne. Enthaltene Komponenten:
+Wir bauen KI als Service in Ihre Prozesse — modular, DSGVO-konform, für Team und Kunden. Enthaltene Komponenten:
+Google Ads zeigt dir ROAS. Dein Steuerberater zeigt dir die Wahrheit. Dazwischen liegt ein System-Problem — und genau da setzen wir an. Profice verbindet deine Warenwirtschaft mit deinen Werbekanälen. Nicht als Dashboard. Als Infrastruktur.
+Google Ads zeigt Ihnen ROAS. Ihr Steuerberater zeigt Ihnen die Wahrheit. Dazwischen liegt ein System-Problem — und genau da setzen wir an. Profice verbindet Ihre Warenwirtschaft mit Ihren Werbekanälen. Nicht als Dashboard. Als Infrastruktur.
Agenturen optimieren auf Klicks und Conversions. Ob die profitabel sind, sehen sie nicht — weil sie keinen Zugriff auf deine Marge haben.
+Agenturen optimieren auf Klicks und Conversions. Ob die profitabel sind, sehen sie nicht — weil sie keinen Zugriff auf Ihre Marge haben.
Tools lösen Teilprobleme. Feed hier, Tracking da, Bidding dort. Keines davon kennt deinen Einkaufspreis.
+Tools lösen Teilprobleme. Feed hier, Tracking da, Bidding dort. Keines davon kennt Ihren Einkaufspreis.
Wir bauen die Brücke zwischen deiner Warenwirtschaft und Google Ads. Dein EK steuert dein Bidding. Dein Gewinn steuert dein Budget.
+Wir bauen die Brücke zwischen Ihrer Warenwirtschaft und Google Ads. Ihr EK steuert Ihr Bidding. Ihr Gewinn steuert Ihr Budget.
Feedgine verbindet deine Margendaten aus der Warenwirtschaft mit Google Shopping, PMax und Microsoft Ads. Kein Tool-Abo. Kein Dashboard-Theater. Ein System, das dein Werbebudget an echten Gewinn koppelt.
+Feedgine verbindet Ihre Margendaten aus der Warenwirtschaft mit Google Shopping, PMax und Microsoft Ads. Kein Tool-Abo. Kein Dashboard-Theater. Ein System, das Ihr Werbebudget an echten Gewinn koppelt.
Mehr über FeedgineDirekter MSSQL-Zugriff auf deine Warenwirtschaft. EK-Preise, Lagerbestände, Lieferzeiten — alles in Echtzeit im Feed.
+Direkter MSSQL-Zugriff auf Ihre Warenwirtschaft. EK-Preise, Lagerbestände, Lieferzeiten — alles in Echtzeit im Feed.
DuckDB · Polars · Content APIVISIGINE analysiert Ihre Website auf GEO- und SEO-Sichtbarkeit und zeigt, ob ChatGPT, Perplexity und Gemini Sie verstehen und empfehlen. Score, Schwachstellen und konkrete Maßnahmen — automatisiert, nicht geraten.
+ Mehr über VISIGINE +llms.txt, AI-Bot-Regeln, JSON-LD-Schema und og-Tags — wir prüfen, ob KI-Systeme Ihre Inhalte lesen, verstehen und in Antworten zitieren.
+ ChatGPT · Perplexity · Gemini +Technisches SEO, Struktur und Indexierbarkeit — die Basis, damit klassische Suche und KI-Suche dieselbe starke Grundlage nutzen.
+ Core Web · Schema · Index +Ein klarer Sichtbarkeits-Score von 1–10 plus priorisierte, umsetzbare Maßnahmen. Sie sehen genau, was zu tun ist — und was es bringt.
+ Score 1–10 · Action-Plan +30 Minuten. Keine Slides. Wir schauen uns deine Zahlen an und sagen dir, ob Feedgine für dich funktioniert.
+30 Minuten. Keine Slides. Wir schauen uns Ihre Prozesse an und zeigen Ihnen, wo Automatisierung und KI den größten Hebel haben.
Gespräch vereinbaren