feat: add marketing landing pages and tools for dynamic QR codes and analytics

This commit is contained in:
Timo Knuth
2026-04-07 14:50:16 +02:00
parent 8408159a96
commit a6fd2ed61f
14 changed files with 1360 additions and 92 deletions

View File

@@ -2,6 +2,9 @@ import React from 'react';
import type { Metadata } from 'next';
import ReprintSavingsCalculator from '@/components/marketing/ReprintSavingsCalculator';
import { ArrowDown, Check, ShieldCheck, Zap } from 'lucide-react';
import SeoJsonLd from '@/components/SeoJsonLd';
import { GrowthLinksSection } from '@/components/marketing/GrowthLinksSection';
import { breadcrumbSchema } from '@/lib/schema';
export const metadata: Metadata = {
title: 'Reprint Cost Calculator | QR Master',
@@ -30,9 +33,58 @@ export const metadata: Metadata = {
},
};
const softwareSchema = {
'@context': 'https://schema.org',
'@type': 'WebApplication',
'@id': 'https://www.qrmaster.net/reprint-calculator#app',
name: 'QR Code Reprint Cost Calculator',
applicationCategory: 'BusinessApplication',
operatingSystem: 'Web Browser',
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
description: 'Calculate the cost of reprinting static QR codes vs switching to dynamic QR codes that never need reprinting.',
};
const howToSchema = {
'@context': 'https://schema.org',
'@type': 'HowTo',
name: 'How to calculate QR code reprint costs',
step: [
{ '@type': 'HowToStep', position: 1, name: 'Enter print run size', text: 'Enter how many QR codes you print per campaign.' },
{ '@type': 'HowToStep', position: 2, name: 'Enter reprint cost', text: 'Enter your cost per reprint campaign.' },
{ '@type': 'HowToStep', position: 3, name: 'See annual savings', text: 'The calculator shows how much dynamic QR codes save annually.' },
],
};
const breadcrumbs = [
{ name: 'Home', url: '/' },
{ name: 'Reprint Calculator', url: '/reprint-calculator' },
];
const growthLinks = [
{
href: '/dynamic-qr-code-generator',
title: 'Dynamic QR Code Generator',
description: 'Create QR codes you can update after printing. Change the destination without reprinting a single flyer.',
ctaLabel: 'Create dynamic QR code',
},
{
href: '/qr-code-tracking',
title: 'QR Code Tracking',
description: 'See device, time, and location context for every scan. Know which placements drive real activity.',
ctaLabel: 'Track your QR scans',
},
{
href: '/pricing',
title: 'Compare Plans',
description: 'One dynamic QR subscription costs less than a single batch of reprints. See the plan that fits your volume.',
ctaLabel: 'Compare plans',
},
];
export default function ReprintCalculatorPage() {
return (
<>
<SeoJsonLd data={[softwareSchema, howToSchema, breadcrumbSchema(breadcrumbs)]} />
{/* Hero Section */}
<section className="pt-24 pb-12 bg-white relative overflow-hidden">
<div className="container mx-auto px-4 text-center max-w-3xl relative z-10">
@@ -112,6 +164,15 @@ export default function ReprintCalculatorPage() {
</div>
</div>
</section>
<GrowthLinksSection
eyebrow="Next steps"
title="Stop reprinting. Start updating."
description="Dynamic QR codes let you change the destination after printing. One code, unlimited campaigns."
links={growthLinks}
pageType="commercial"
cluster="reprint-calculator"
/>
</>
);
}