feat: implement marketing comparison and alternatives hub with dedicated competitor landing pages

This commit is contained in:
Timo Knuth
2026-04-08 15:38:02 +02:00
parent a6fd2ed61f
commit 14c3cde7e6
10 changed files with 3569 additions and 4 deletions

View File

@@ -2,7 +2,7 @@ import Link from 'next/link';
import en from '@/i18n/en.json';
import { Instagram, Twitter, Linkedin, Facebook } from 'lucide-react';
import { allUseCases } from '@/lib/growth-pages';
import { industryPages } from '@/lib/industry-pages';
import { industryPages } from '@/lib/industry-pages';
interface FooterProps {
variant?: 'marketing' | 'dashboard';
@@ -17,7 +17,7 @@ export function Footer({ variant = 'marketing', t }: FooterProps) {
return (
<footer className={`${isDashboard ? 'bg-gray-50 text-gray-600 border-t border-gray-200 mt-12' : 'bg-gray-900 text-white mt-20'} py-12`}>
<div className="container mx-auto px-4 sm:px-6 lg:px-8 max-w-7xl">
<div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-8">
<div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-8">
<div>
<Link href="/" className="flex items-center space-x-2 mb-4 hover:opacity-80 transition-opacity">
<img src="/logo.svg" alt="QR Master Logo" className="w-10 h-10" />
@@ -44,7 +44,7 @@ export function Footer({ variant = 'marketing', t }: FooterProps) {
<div>
<h3 className={`font-semibold mb-4 ${isDashboard ? 'text-gray-900' : ''}`}>{translations.product}</h3>
<ul className={`space-y-2 ${isDashboard ? 'text-gray-500' : 'text-gray-400'}`}>
<li><Link href="/features" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>{translations.features}</Link></li>
<li><Link href="/features" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>{translations.features}</Link></li>
<li><Link href="/about" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>About</Link></li>
<li><Link href="/press" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>Press</Link></li>
<li><Link href="/testimonials" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>Testimonials</Link></li>
@@ -70,7 +70,7 @@ export function Footer({ variant = 'marketing', t }: FooterProps) {
{translations.industries}
</Link>
</li>
{industryPages.slice(0, 6).map((ind) => (
{industryPages.slice(0, 6).map((ind) => (
<li key={ind.slug} className="pl-3">
<Link href={`/qr-code-for/${ind.slug}`} className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white text-sm'}>
{ind.title}
@@ -100,6 +100,19 @@ export function Footer({ variant = 'marketing', t }: FooterProps) {
</ul>
</div>
<div>
<h3 className={`font-semibold mb-4 ${isDashboard ? 'text-gray-900' : ''}`}>Compare</h3>
<ul className={`space-y-2 ${isDashboard ? 'text-gray-500' : 'text-gray-400'}`}>
<li><Link href="/alternatives" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>All Alternatives</Link></li>
<li><Link href="/vs" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>All Comparisons</Link></li>
<li><Link href="/alternatives/qr-code-generator" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>QR-Code-Generator Alt.</Link></li>
<li><Link href="/alternatives/flowcode" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>Flowcode Alternative</Link></li>
<li><Link href="/alternatives/beaconstac" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>Beaconstac Alternative</Link></li>
<li><Link href="/alternatives/bitly" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>Bitly Alternative</Link></li>
<li><Link href="/vs/beaconstac" className={isDashboard ? 'hover:text-primary-600' : 'hover:text-white'}>QR Master vs Uniqode</Link></li>
</ul>
</div>
<div>
<h3 className={`font-semibold mb-4 ${isDashboard ? 'text-gray-900' : ''}`}>{translations.legal}</h3>
<ul className={`space-y-2 ${isDashboard ? 'text-gray-500' : 'text-gray-400'}`}>