feat: add marketing landing pages and tools for dynamic QR codes and analytics
This commit is contained in:
@@ -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"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user