This commit is contained in:
2026-07-10 21:52:36 +02:00
parent bb528d6ef9
commit 671c1a1559
28 changed files with 6396 additions and 5561 deletions

View File

@@ -5,6 +5,7 @@ import {
UseCasePageTemplate,
} from '@/components/marketing/UseCasePageTemplate';
import { allUseCases, getUseCasePage } from '@/lib/growth-pages';
import { getGermanTwinByEnSlug } from '@/lib/growth-pages-de';
export function generateStaticParams() {
return allUseCases.map((item) => ({
@@ -23,6 +24,7 @@ export function generateMetadata({ params }: { params: { slug: string } }) {
title: page.title,
description: page.metaDescription,
canonicalPath: page.href,
dePath: getGermanTwinByEnSlug(page.slug)?.href,
});
}

View File

@@ -19,9 +19,9 @@ import {
import { Button } from "@/components/ui/Button";
import { Card } from "@/components/ui/Card";
import {
allUseCases,
commercialPages,
featuredUseCases,
publishedUseCases,
supportResources,
upcomingUseCaseIdeas,
} from "@/lib/growth-pages";
@@ -184,7 +184,7 @@ export default function UseCasesHubPage() {
</div>
<div className="grid gap-6 md:grid-cols-2 xl:grid-cols-3">
{allUseCases.map((page) => (
{publishedUseCases.map((page) => (
<Link key={page.slug} href={page.href} className="group block">
<Card className="flex h-full flex-col rounded-3xl border-slate-200 bg-white p-7 shadow-sm transition-all hover:-translate-y-1 hover:shadow-lg">
<div className="text-sm font-semibold uppercase tracking-[0.18em] text-blue-700">
@@ -205,66 +205,66 @@ export default function UseCasesHubPage() {
))}
</div>
</div>
</section>
<section className="bg-white py-16">
<div className="container mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div className="mb-8 max-w-3xl">
<div className="text-sm font-semibold uppercase tracking-[0.22em] text-blue-700">
Industry pages with early traction
</div>
<h2 className="mt-3 text-3xl font-bold text-slate-900">
Service business QR workflows
</h2>
<p className="mt-4 text-lg leading-8 text-slate-600">
These industry routes connect practical use cases with the QR
tools local businesses usually need first.
</p>
</div>
<div className="grid gap-4 md:grid-cols-3">
{[
{
href: "/qr-code-for/barbershops",
title: "QR Codes for Barbershops",
description:
"Booking links, review prompts, WiFi access, and social profiles for barbershop visits.",
},
{
href: "/tools/wifi-qr-code",
title: "WiFi QR Code Generator",
description:
"A practical guest-facing QR tool for service businesses and venues.",
},
{
href: "/qr-code-erstellen",
title: "QR Code Erstellen",
description:
"German QR creation page for local business owners who search in German.",
},
].map((item) => (
<Link
key={item.href}
href={item.href}
className="rounded-2xl border border-slate-200 bg-slate-50 p-6 transition-colors hover:border-blue-200 hover:bg-blue-50/70"
>
<h3 className="text-xl font-bold text-slate-900">
{item.title}
</h3>
<p className="mt-3 text-sm leading-6 text-slate-600">
{item.description}
</p>
<div className="mt-5 inline-flex items-center text-sm font-semibold text-blue-700">
Open page <ArrowRight className="ml-2 h-4 w-4" />
</div>
</Link>
))}
</div>
</div>
</section>
<section className="bg-slate-50 py-16">
<div className="container mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
</section>
<section className="bg-white py-16">
<div className="container mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div className="mb-8 max-w-3xl">
<div className="text-sm font-semibold uppercase tracking-[0.22em] text-blue-700">
Industry pages with early traction
</div>
<h2 className="mt-3 text-3xl font-bold text-slate-900">
Service business QR workflows
</h2>
<p className="mt-4 text-lg leading-8 text-slate-600">
These industry routes connect practical use cases with the QR
tools local businesses usually need first.
</p>
</div>
<div className="grid gap-4 md:grid-cols-3">
{[
{
href: "/qr-code-for/barbershops",
title: "QR Codes for Barbershops",
description:
"Booking links, review prompts, WiFi access, and social profiles for barbershop visits.",
},
{
href: "/tools/wifi-qr-code",
title: "WiFi QR Code Generator",
description:
"A practical guest-facing QR tool for service businesses and venues.",
},
{
href: "/qr-code-erstellen",
title: "QR Code Erstellen",
description:
"German QR creation page for local business owners who search in German.",
},
].map((item) => (
<Link
key={item.href}
href={item.href}
className="rounded-2xl border border-slate-200 bg-slate-50 p-6 transition-colors hover:border-blue-200 hover:bg-blue-50/70"
>
<h3 className="text-xl font-bold text-slate-900">
{item.title}
</h3>
<p className="mt-3 text-sm leading-6 text-slate-600">
{item.description}
</p>
<div className="mt-5 inline-flex items-center text-sm font-semibold text-blue-700">
Open page <ArrowRight className="ml-2 h-4 w-4" />
</div>
</Link>
))}
</div>
</div>
</section>
<section className="bg-slate-50 py-16">
<div className="container mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div className="grid gap-8 lg:grid-cols-[minmax(0,1fr)_minmax(0,0.95fr)]">
<Card className="rounded-3xl border-slate-200 bg-white p-8 shadow-sm">
<div className="flex items-center gap-3">