403 lines
17 KiB
TypeScript
403 lines
17 KiB
TypeScript
import type { FAQItem } from "@/lib/types";
|
|
|
|
export type CommercialPageLink = {
|
|
href: string;
|
|
title: string;
|
|
description: string;
|
|
accent: string;
|
|
};
|
|
|
|
export type UseCaseLink = {
|
|
slug: string;
|
|
href: string;
|
|
title: string;
|
|
cluster: string;
|
|
summary: string;
|
|
parentHref: string;
|
|
parentTitle: string;
|
|
ctaLabel: string;
|
|
};
|
|
|
|
export type SupportResourceLink = {
|
|
href: string;
|
|
title: string;
|
|
description: string;
|
|
};
|
|
|
|
export type UseCasePageContent = UseCaseLink & {
|
|
eyebrow: string;
|
|
titleSuffix: string;
|
|
metaDescription: string;
|
|
intro: string;
|
|
answer: string;
|
|
whenToUse: string[];
|
|
comparisonItems: {
|
|
label: string;
|
|
value: boolean;
|
|
text?: string;
|
|
}[];
|
|
howToSteps: string[];
|
|
workflowTitle: string;
|
|
workflowIntro: string;
|
|
workflowCards: {
|
|
title: string;
|
|
description: string;
|
|
}[];
|
|
checklistTitle: string;
|
|
checklist: string[];
|
|
supportLinks: SupportResourceLink[];
|
|
faq: FAQItem[];
|
|
};
|
|
|
|
export const commercialPages: CommercialPageLink[] = [
|
|
{
|
|
href: "/dynamic-qr-code-generator",
|
|
title: "Dynamic QR Code Generator",
|
|
description: "Edit the destination after print and keep one QR live across changing campaigns.",
|
|
accent: "from-blue-600 to-cyan-500",
|
|
},
|
|
{
|
|
href: "/qr-code-tracking",
|
|
title: "QR Code Tracking",
|
|
description: "Measure scans by placement, device, and timing when you need proof instead of guesswork.",
|
|
accent: "from-indigo-600 to-blue-500",
|
|
},
|
|
{
|
|
href: "/custom-qr-code-generator",
|
|
title: "Custom QR Code Generator",
|
|
description: "Match printed QR codes to your brand system without losing scannability.",
|
|
accent: "from-sky-600 to-indigo-500",
|
|
},
|
|
{
|
|
href: "/bulk-qr-code-generator",
|
|
title: "Bulk QR Code Generator",
|
|
description: "Create large sets for labels, event materials, and repeatable offline workflows.",
|
|
accent: "from-cyan-600 to-sky-500",
|
|
},
|
|
{
|
|
href: "/qr-code-for-marketing-campaigns",
|
|
title: "QR Codes for Marketing Campaigns",
|
|
description: "Plan campaign QR workflows around attribution, creative testing, and print distribution.",
|
|
accent: "from-slate-800 to-blue-600",
|
|
},
|
|
];
|
|
|
|
export const featuredUseCases: UseCaseLink[] = [
|
|
{
|
|
slug: "restaurant-menu-qr-codes",
|
|
href: "/use-cases/restaurant-menu-qr-codes",
|
|
title: "Restaurant Menu QR Codes",
|
|
cluster: "restaurants",
|
|
summary: "Keep printed table cards useful when menu links, prices, specials, or hours change.",
|
|
parentHref: "/dynamic-qr-code-generator",
|
|
parentTitle: "Dynamic QR Code Generator",
|
|
ctaLabel: "Create your restaurant menu QR",
|
|
},
|
|
{
|
|
slug: "business-card-qr-codes",
|
|
href: "/use-cases/business-card-qr-codes",
|
|
title: "Business Card QR Codes",
|
|
cluster: "business-cards",
|
|
summary: "Send contacts to a current profile, booking page, or vCard without reprinting cards.",
|
|
parentHref: "/dynamic-qr-code-generator",
|
|
parentTitle: "Dynamic QR Code Generator",
|
|
ctaLabel: "Create your business card QR",
|
|
},
|
|
{
|
|
slug: "event-qr-codes",
|
|
href: "/use-cases/event-qr-codes",
|
|
title: "Event QR Codes",
|
|
cluster: "events",
|
|
summary: "Split operational and campaign QR flows so schedules and tracking stay manageable on event day.",
|
|
parentHref: "/qr-code-tracking",
|
|
parentTitle: "QR Code Tracking",
|
|
ctaLabel: "Create your event QR code",
|
|
},
|
|
];
|
|
|
|
export const upcomingUseCaseIdeas: SupportResourceLink[] = [
|
|
{
|
|
href: "/bulk-qr-code-generator",
|
|
title: "Packaging and label workflows",
|
|
description: "Best next cluster for bulk creation, manuals, inserts, and recurring product updates.",
|
|
},
|
|
{
|
|
href: "/qr-code-for-marketing-campaigns",
|
|
title: "Flyer and brochure campaigns",
|
|
description: "Strong print-intent cluster once the marketing-campaign commercial parent is live.",
|
|
},
|
|
{
|
|
href: "/qr-code-tracking",
|
|
title: "Feedback and coupon journeys",
|
|
description: "Good second-wave pages once tracking and CTA attribution are stable.",
|
|
},
|
|
];
|
|
|
|
export const supportResources: SupportResourceLink[] = [
|
|
{
|
|
href: "/learn/use-cases",
|
|
title: "Learn: Use Cases",
|
|
description: "Editorial pillar page for educational browsing and broader QR workflow discovery.",
|
|
},
|
|
{
|
|
href: "/blog/dynamic-vs-static-qr-codes",
|
|
title: "Dynamic vs Static QR Codes",
|
|
description: "Explainer for the operational difference between fixed and editable QR destinations.",
|
|
},
|
|
{
|
|
href: "/blog/utm-parameter-qr-codes",
|
|
title: "UTM Parameters with QR Codes",
|
|
description: "Reference guide for campaign naming, placement attribution, and offline measurement.",
|
|
},
|
|
];
|
|
|
|
export const useCasePageContent: Record<string, UseCasePageContent> = {
|
|
"restaurant-menu-qr-codes": {
|
|
...featuredUseCases[0],
|
|
eyebrow: "Restaurants",
|
|
titleSuffix: "for Restaurants, Cafes, and Changing Menus",
|
|
metaDescription:
|
|
"Use restaurant menu QR codes to keep printed table cards useful when menu links, pricing, or specials change.",
|
|
intro:
|
|
"Restaurant menu QR codes work best when the printed code stays the same but the menu destination can change as your service changes.",
|
|
answer:
|
|
"A restaurant menu QR code should point to a mobile-friendly menu that you can update without replacing every printed card, flyer, or table tent.",
|
|
whenToUse: [
|
|
"Your menu link changes seasonally, weekly, or during service.",
|
|
"You want one printed QR on tables, windows, takeaway inserts, or flyers.",
|
|
"You need to route customers to the right menu, order flow, or special page without reprinting.",
|
|
],
|
|
comparisonItems: [
|
|
{ label: "Menu destination", text: "Fixed once printed", value: true },
|
|
{ label: "Last-minute updates", text: "Reprint required", value: true },
|
|
{ label: "Campaign tracking", text: "Limited", value: true },
|
|
],
|
|
howToSteps: [
|
|
"Create one dynamic menu QR and place it on your printed surfaces.",
|
|
"Send scanners to your current menu, order page, or daily specials page.",
|
|
"Update the destination when the menu or campaign changes instead of replacing the code.",
|
|
],
|
|
workflowTitle: "What a good restaurant QR setup should handle",
|
|
workflowIntro:
|
|
"The QR code is not the product. The workflow behind it is. A good restaurant setup keeps print stable while operations stay flexible.",
|
|
workflowCards: [
|
|
{
|
|
title: "Stable table cards",
|
|
description: "Keep one printed QR on tables and point it to the current menu, lunch card, or ordering page.",
|
|
},
|
|
{
|
|
title: "Seasonal offers",
|
|
description: "Swap specials, tasting menus, or holiday landing pages without touching the printed material.",
|
|
},
|
|
{
|
|
title: "Placement tracking",
|
|
description: "Use different menu or campaign destinations by location so you can compare tables, windows, and takeaway inserts.",
|
|
},
|
|
],
|
|
checklistTitle: "Restaurant QR checklist",
|
|
checklist: [
|
|
"Use a mobile-first landing page instead of a hard-to-read PDF where possible.",
|
|
"Keep the same printed QR on every stable surface you do not want to replace often.",
|
|
"Use CTA copy like 'Scan for menu' or 'Scan for today's specials' so the scan intent is obvious.",
|
|
"Pair campaign placements with trackable destinations when you test takeaway or window traffic.",
|
|
],
|
|
supportLinks: [
|
|
{
|
|
href: "/dynamic-qr-code-generator",
|
|
title: "Commercial parent: Dynamic QR Code Generator",
|
|
description: "Best fit when the real need is editing the destination after print.",
|
|
},
|
|
{
|
|
href: "/blog/qr-code-restaurant-menu",
|
|
title: "Restaurant menu guide",
|
|
description: "Existing editorial asset with menu placement and implementation basics.",
|
|
},
|
|
{
|
|
href: "/use-cases/business-card-qr-codes",
|
|
title: "Sibling page: Business Card QR Codes",
|
|
description: "Useful example of another print-first workflow where the destination changes over time.",
|
|
},
|
|
],
|
|
faq: [
|
|
{
|
|
question: "Should a restaurant menu QR code be static or dynamic?",
|
|
answer: "Use a dynamic QR code when the menu destination may change. That lets you update the landing page without replacing your printed materials.",
|
|
},
|
|
{
|
|
question: "What should a restaurant menu QR code link to?",
|
|
answer: "Link to a mobile-friendly menu page, ordering page, or a short service hub that helps customers reach the right menu fast.",
|
|
},
|
|
{
|
|
question: "Can I use one restaurant QR code in multiple places?",
|
|
answer: "Yes. One stable code can be reused across table cards, flyers, and takeaway materials, especially when the destination is managed dynamically.",
|
|
},
|
|
],
|
|
},
|
|
"business-card-qr-codes": {
|
|
...featuredUseCases[1],
|
|
eyebrow: "Business Cards",
|
|
titleSuffix: "for Contact Sharing, Bookings, and Portfolio Links",
|
|
metaDescription:
|
|
"Use business card QR codes to share a current contact page, vCard, booking link, or portfolio without reprinting cards.",
|
|
intro:
|
|
"Business card QR codes are most useful when your contact destination changes faster than your print inventory.",
|
|
answer:
|
|
"A business card QR code should send people to the best next action today, whether that is saving your contact, opening a booking link, or visiting a current profile page.",
|
|
whenToUse: [
|
|
"Your role, booking link, or portfolio changes more often than your printed cards.",
|
|
"You want one card to work for networking, sales follow-up, and contact saving.",
|
|
"You need a cleaner handoff than asking people to type a URL from a small card.",
|
|
],
|
|
comparisonItems: [
|
|
{ label: "Destination flexibility", text: "Fixed once printed", value: true },
|
|
{ label: "Contact updates", text: "New cards needed", value: true },
|
|
{ label: "Action routing", text: "Single fixed page", value: true },
|
|
],
|
|
howToSteps: [
|
|
"Choose the real action you want after the scan: save contact, book time, or view work.",
|
|
"Generate a QR code that sends people to that destination or to a vCard-capable landing page.",
|
|
"Keep the print the same and update the linked destination when your details evolve.",
|
|
],
|
|
workflowTitle: "Where business card QR codes pay off",
|
|
workflowIntro:
|
|
"Printed cards still work. The problem is that the destination behind them often gets stale first.",
|
|
workflowCards: [
|
|
{
|
|
title: "Current contact flow",
|
|
description: "Send scanners to a vCard or current contact page so the next step is saving your details, not typing them.",
|
|
},
|
|
{
|
|
title: "Role or profile updates",
|
|
description: "Update the destination if you change company, title, offer, or booking link while old cards are still in circulation.",
|
|
},
|
|
{
|
|
title: "Context-aware follow-up",
|
|
description: "Point event-specific cards or team variants to the most relevant landing page instead of one generic homepage.",
|
|
},
|
|
],
|
|
checklistTitle: "Business card QR checklist",
|
|
checklist: [
|
|
"Pick one primary post-scan action instead of trying to send every scanner to everything at once.",
|
|
"Make the landing page useful on mobile because most business-card scans happen on phones.",
|
|
"Use CTA text such as 'Scan to save my contact' or 'Scan to book a call'.",
|
|
"Test the print size and contrast before ordering a large run.",
|
|
],
|
|
supportLinks: [
|
|
{
|
|
href: "/dynamic-qr-code-generator",
|
|
title: "Commercial parent: Dynamic QR Code Generator",
|
|
description: "Use when the printed card stays constant but the best destination changes.",
|
|
},
|
|
{
|
|
href: "/tools/vcard-qr-code",
|
|
title: "vCard QR Code tool",
|
|
description: "Free tool for contact-saving workflows when a vCard is the best immediate action.",
|
|
},
|
|
{
|
|
href: "/use-cases/event-qr-codes",
|
|
title: "Sibling page: Event QR Codes",
|
|
description: "Another workflow where temporary destinations and scan context matter.",
|
|
},
|
|
],
|
|
faq: [
|
|
{
|
|
question: "What should a business card QR code link to?",
|
|
answer: "The best destination is the one next step you want most: a vCard, booking page, contact hub, or current portfolio page.",
|
|
},
|
|
{
|
|
question: "Do business card QR codes need to be dynamic?",
|
|
answer: "They should be dynamic if your destination may change over the life of the printed card. That keeps old cards useful longer.",
|
|
},
|
|
{
|
|
question: "Can a business card QR code send people straight to contact saving?",
|
|
answer: "Yes. A vCard QR or a landing page with clear save-contact options is often the simplest and most practical post-scan action.",
|
|
},
|
|
],
|
|
},
|
|
"event-qr-codes": {
|
|
...featuredUseCases[2],
|
|
eyebrow: "Events",
|
|
titleSuffix: "for Check-In, Schedules, Booths, and Campaign Tracking",
|
|
metaDescription:
|
|
"Use event QR codes for schedules, check-in flows, and trackable campaign placements across signs, flyers, and booths.",
|
|
intro:
|
|
"Event QR codes work best when you separate operational QR flows from promotional ones and keep your printed placements easy to manage.",
|
|
answer:
|
|
"A good event QR setup uses different QR destinations for different jobs: operations, attendee utility, and campaign measurement should not all depend on one code.",
|
|
whenToUse: [
|
|
"Your event schedule, map, or resources may change close to event day.",
|
|
"You want to compare booth, banner, flyer, or badge placements instead of treating every scan as one bucket.",
|
|
"You need one event QR system that supports both attendee utility and marketing follow-up.",
|
|
],
|
|
comparisonItems: [
|
|
{ label: "Schedule changes", text: "New print may be needed", value: true },
|
|
{ label: "Placement reporting", text: "Weak by default", value: true },
|
|
{ label: "Operational vs campaign flows", text: "Often mixed", value: true },
|
|
],
|
|
howToSteps: [
|
|
"Split event QR codes by purpose: check-in, attendee info, and campaign placements.",
|
|
"Use trackable destinations for banners, booth assets, and flyers where placement performance matters.",
|
|
"Keep fast-changing resources on destinations you can update without replacing the printed code.",
|
|
],
|
|
workflowTitle: "Event workflows worth designing on purpose",
|
|
workflowIntro:
|
|
"Events generate scans in very different contexts. Treating them as one generic QR use case leaves both operations and measurement weaker.",
|
|
workflowCards: [
|
|
{
|
|
title: "Operational QR flows",
|
|
description: "Use dedicated QR paths for check-in, schedules, maps, and attendee resources that may shift before or during the event.",
|
|
},
|
|
{
|
|
title: "Booth and banner tracking",
|
|
description: "Track scans from distinct placements so you can compare booth creatives, sponsor zones, or call-to-action angles.",
|
|
},
|
|
{
|
|
title: "Post-event follow-up",
|
|
description: "Route scanners to the most relevant recap, booking, or lead capture page after the event without changing the printed assets.",
|
|
},
|
|
],
|
|
checklistTitle: "Event QR checklist",
|
|
checklist: [
|
|
"Do not force one QR code to handle operations, schedule updates, and lead-gen at the same time.",
|
|
"Use descriptive CTA copy like 'Scan for agenda' or 'Scan for booth resources'.",
|
|
"Track campaign placements separately so booth banners and flyers are comparable.",
|
|
"Test glare, print size, and placement distance on the real event materials before the event starts.",
|
|
],
|
|
supportLinks: [
|
|
{
|
|
href: "/qr-code-tracking",
|
|
title: "Commercial parent: QR Code Tracking",
|
|
description: "Best fit when the priority is measuring placement and scan context across the event.",
|
|
},
|
|
{
|
|
href: "/tools/event-qr-code",
|
|
title: "Event QR Code tool",
|
|
description: "Useful for save-the-date and calendar workflows that sit alongside broader event QR strategy.",
|
|
},
|
|
{
|
|
href: "/use-cases/restaurant-menu-qr-codes",
|
|
title: "Sibling page: Restaurant Menu QR Codes",
|
|
description: "Another example of a printed workflow where the content behind the QR changes often.",
|
|
},
|
|
],
|
|
faq: [
|
|
{
|
|
question: "Should an event use one QR code or several?",
|
|
answer: "Several is usually better. Separate operational QR codes from campaign QR codes so schedules, check-in, and attribution do not compete for one destination.",
|
|
},
|
|
{
|
|
question: "Can event QR codes be updated after print?",
|
|
answer: "Yes, if the destination is managed dynamically. That is useful for schedules, resource hubs, and post-event follow-up pages.",
|
|
},
|
|
{
|
|
question: "How do I measure which event placement performs best?",
|
|
answer: "Use distinct destinations or tagged URLs for each placement so banner, booth, badge, and flyer traffic can be compared cleanly.",
|
|
},
|
|
],
|
|
},
|
|
};
|
|
|
|
export function getUseCasePage(slug: string): UseCasePageContent | undefined {
|
|
return useCasePageContent[slug];
|
|
}
|