Archived
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:
1 parent
f337102c7a
commit
c75befe8e5
8 files changed
+63
-131
No files matched your search
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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.",
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
@@ -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",
|
||||
},
|
||||
];
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user