Erfolgsversprechen entschärft, tote Sektionen gelöscht

"Planbare Neukunden" wird zur Karte "Kundenportal", das Umsatzversprechen
in der Lösungs-Überschrift entfällt, Punkt 04 heißt "Hosting & Betreuung"
statt "SEO & Betreuung" (Sichtbar bei Google), Schritt 4 im Ablauf und die
Über-uns-Karte verweisen auf das Wartungs-Abo statt auf offene Optimierung.
AgitationSection und DifferentiationSection waren nirgends eingebunden und
sind gelöscht.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
rootandClaude Sonnet 5.5 committed 2026-10-01 10:41:15 +00:00
1 parent f337102c7a
commit c75befe8e5
8 files changed
+63 -131

No files matched your search

-45
View File
@@ -1,45 +0,0 @@
const AgitationSection = () => {
return (
<section className="py-24 md:py-32 bg-secondary/30 relative overflow-hidden">
{/* Decorative element */}
<div className="absolute inset-0 opacity-5">
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] rounded-full border border-foreground" />
</div>
<div className="container mx-auto px-6 relative z-10">
<div className="max-w-4xl mx-auto text-center">
<div className="label-tag mb-4">Die Realität</div>
<h2 className="text-4xl md:text-5xl lg:text-6xl font-display font-medium text-foreground tracking-tight uppercase mb-12">
Mehr Arbeit darf nicht die einzige Antwort auf Wachstum sein.
</h2>
<div className="space-y-8 text-lg md:text-xl text-muted-foreground leading-relaxed">
<p>
Neue Kunden sollten Ihr Unternehmen nicht ins Chaos stürzen.
</p>
<p>
Wenn mehr Umsatz automatisch mehr Stress bedeutet, liegt das Problem nicht an Ihrem Markt – <span className="text-foreground font-medium">sondern an fehlenden Systemen.</span>
</p>
<div className="pt-8 border-t border-border">
<p className="text-2xl md:text-3xl text-foreground font-display font-medium uppercase tracking-tight">
Erfolgreiche Unternehmen skalieren Prozesse.
</p>
<p className="text-2xl md:text-3xl text-muted-foreground font-display font-medium uppercase tracking-tight mt-2">
Nicht Arbeitsstunden.
</p>
</div>
<p className="text-foreground font-medium pt-4">
Genau dort setzen wir an.
</p>
</div>
</div>
</div>
</section>
);
};
export default AgitationSection;
-74
View File
@@ -1,74 +0,0 @@
import { Link } from "react-router-dom";
import { Button } from "@/components/ui/button";
import { ArrowRight } from "lucide-react";
import CountUp from "@/components/CountUp";
const DifferentiationSection = () => {
return (
<section className="py-24 md:py-32 bg-secondary/20 relative">
<div className="container mx-auto px-6">
<div className="max-w-4xl mx-auto text-center">
<div className="label-tag mb-4">Der Unterschied</div>
<h2 className="text-4xl md:text-5xl lg:text-6xl font-display font-medium text-foreground tracking-tight uppercase mb-12">
Warum Unternehmen zu uns wechseln.
</h2>
<div className="grid md:grid-cols-3 gap-8 mb-12">
<div className="p-6 border border-border rounded-lg bg-background">
<div className="text-4xl font-display font-medium text-foreground mb-2">
<CountUp from={0} to={1} duration={1} padMinLength={2} startWhen={true} />
</div>
<h3 className="text-lg font-display font-medium text-foreground uppercase tracking-tight mb-2">
Alles aus einer Hand
</h3>
<p className="text-muted-foreground text-sm">
Website, Automation und Schnittstellen aus einer Hand – ein Ansprechpartner statt fünf Agenturen.
</p>
</div>
<div className="p-6 border border-border rounded-lg bg-background">
<div className="text-4xl font-display font-medium text-foreground mb-2">
<CountUp from={0} to={2} duration={1} padMinLength={2} startWhen={true} />
</div>
<h3 className="text-lg font-display font-medium text-foreground uppercase tracking-tight mb-2">
Systeme statt Inseln
</h3>
<p className="text-muted-foreground text-sm">
CRM, Formulare und Website tauschen Daten – ohne manuelles Nachpflegen.
</p>
</div>
<div className="p-6 border border-border rounded-lg bg-background">
<div className="text-4xl font-display font-medium text-foreground mb-2">
<CountUp from={0} to={3} duration={1} padMinLength={2} startWhen={true} />
</div>
<h3 className="text-lg font-display font-medium text-foreground uppercase tracking-tight mb-2">
Langfristige Partnerschaft
</h3>
<p className="text-muted-foreground text-sm">
Nach dem Go-live bleiben wir dran: Optimierung, wenn Ihr Team und Umsatz wachsen.
</p>
</div>
</div>
<Link
to="/kontakt"
data-analytics-cta="Potenzialanalyse starten"
data-analytics-location="differentiation_section"
>
<Button
size="lg"
className="btn-minimal rounded-full px-8 py-6 text-base font-medium group"
>
Potenzialanalyse starten
<ArrowRight className="w-4 h-4 ml-2 group-hover:translate-x-1 transition-transform" />
</Button>
</Link>
</div>
</div>
</section>
);
};
export default DifferentiationSection;
+1 -1
View File
@@ -25,7 +25,7 @@ const Process = () => {
{
number: 4,
title: "Launch & Betreuung",
description: "Go-live mit Tests und Übergabe. Danach Updates, wenn sich Ihr Unternehmen weiterentwickelt.",
description: "Go-live mit Tests und Übergabe. Pflege und Updates danach im Wartungs-Abo.",
},
];
+4 -4
View File
@@ -1,4 +1,4 @@
import { Lightbulb, Palette, Code, Search } from "lucide-react";
import { Lightbulb, Palette, Code, Server } from "lucide-react";
const Services = () => {
const services = [
@@ -21,9 +21,9 @@ const Services = () => {
number: "03",
},
{
icon: Search,
title: "SEO & Betreuung",
description: "Sichtbar bei Google, stabil im Betrieb – mit Updates, wenn Ihr Unternehmen wächst.",
icon: Server,
title: "Hosting & Betreuung",
description: "Hosting auf unserem Server in Deutschland, Pflege und Updates im Wartungs-Abo.",
number: "04",
},
];
+1 -1
View File
@@ -121,7 +121,7 @@ const SolutionSection = () => {
<div className="space-y-6">
<div className="text-sm uppercase tracking-wider text-muted-foreground">Das Ergebnis</div>
<h3 className="text-2xl md:text-3xl font-display font-medium text-foreground uppercase tracking-tight">
Sie sehen, was läuft – und was Umsatz bringt. Mehr Zeit für Kunden statt für Tool-Pflege:
Sie sehen, was läuft. Mehr Zeit für Kunden statt für Tool-Pflege:
</h3>
<div className="text-4xl md:text-5xl font-display font-medium text-primary uppercase tracking-tight">
Kontrolle.
+4 -4
View File
@@ -1,4 +1,4 @@
import { Users, Cog, MessageSquare, Target, BarChart3, Layers } from "lucide-react";
import { Users, Cog, MessageSquare, MonitorSmartphone, BarChart3, Layers } from "lucide-react";
import BorderGlow from "@/components/BorderGlow";
import { TextHoverEffect } from "@/components/ui/text-hover-effect";
@@ -20,9 +20,9 @@ const Values = () => {
description: "Jeder Kanal landet im System – mit Status, Zuständigkeit und Historie.",
},
{
icon: Target,
title: "Planbare Neukunden",
description: "Website und Prozesse ziehen an einer Schnur – Sie sehen, was funktioniert.",
icon: MonitorSmartphone,
title: "Kundenportal",
description: "Fortschritt, Chat und Rechnungen an einem Ort, im Browser oder als App.",
},
{
icon: BarChart3,
+2 -2
View File
@@ -162,10 +162,10 @@ const About = () => {
<CountUp from={0} to={3} duration={1} padMinLength={2} startWhen={true} />
</div>
<h3 className="text-lg font-display font-medium text-foreground uppercase tracking-tight mb-2">
Langfristige Partnerschaft
Betreuung im Abo
</h3>
<p className="text-muted-foreground text-sm">
Nach dem Go-live bleiben wir dran: Optimierung, wenn Ihr Team und Umsatz wachsen.
Nach dem Go-live kümmern wir uns im Wartungs-Abo um Updates und kleine Änderungen.
</p>
</div>
</BorderGlow>
+51
View File
@@ -208,3 +208,54 @@ describe("B4 Antwortzeit: spätestens am nächsten Werktag", () => {
expect(await screen.findByText("Wir melden uns spätestens am nächsten Werktag bei Ihnen.")).toBeInTheDocument();
});
});
describe("B5 Erfolgsversprechen entschärft", () => {
it("die alten Versprechen kommen nirgends mehr vor", () => {
expect(vorkommen(/Planbare Neukunden|Sichtbar bei Google|Umsatz bringt/)).toEqual([]);
});
it("die toten Dateien AgitationSection und DifferentiationSection sind gelöscht", () => {
expect(gibtEs("src/components/AgitationSection.tsx")).toBe(false);
expect(gibtEs("src/components/DifferentiationSection.tsx")).toBe(false);
});
it("Values: Karte »Kundenportal« statt »Planbare Neukunden«", () => {
zeige(<Values />);
expect(screen.getByRole("heading", { level: 3, name: "Kundenportal" })).toBeInTheDocument();
expect(screen.getByText("Fortschritt, Chat und Rechnungen an einem Ort, im Browser oder als App.")).toBeInTheDocument();
expect(screen.getAllByRole("heading", { level: 3 })).toHaveLength(6);
});
it("SolutionSection: Ergebnis-Überschrift ohne Umsatzversprechen", () => {
zeige(<SolutionSection />);
expect(
screen.getByRole("heading", { level: 3, name: "Sie sehen, was läuft. Mehr Zeit für Kunden statt für Tool-Pflege:" }),
).toBeInTheDocument();
});
it("Services: Punkt 04 heißt »Hosting & Betreuung«", () => {
zeige(<Services />);
expect(screen.getByRole("heading", { level: 3, name: "Hosting & Betreuung" })).toBeInTheDocument();
expect(
screen.getByText("Hosting auf unserem Server in Deutschland, Pflege und Updates im Wartungs-Abo."),
).toBeInTheDocument();
expect(screen.queryByText(/SEO/)).toBeNull();
});
it("Process: Schritt 4 verweist auf das Wartungs-Abo", () => {
zeige(<Process />);
expect(screen.getByRole("heading", { level: 3, name: "Launch & Betreuung" })).toBeInTheDocument();
expect(
screen.getByText("Go-live mit Tests und Übergabe. Pflege und Updates danach im Wartungs-Abo."),
).toBeInTheDocument();
});
it("Über uns: Karte »Betreuung im Abo« statt »Langfristige Partnerschaft«", () => {
zeige(<About />);
expect(screen.getByRole("heading", { level: 3, name: "Betreuung im Abo" })).toBeInTheDocument();
expect(
screen.getByText("Nach dem Go-live kümmern wir uns im Wartungs-Abo um Updates und kleine Änderungen."),
).toBeInTheDocument();
expect(screen.queryByText("Langfristige Partnerschaft")).toBeNull();
});
});