From 62ac1ad8190371d63bf640169b37721985f6a148 Mon Sep 17 00:00:00 2001 From: knuthtimo-lab Date: Sun, 26 Jul 2026 21:57:06 +0200 Subject: [PATCH] Copy updates: pricing, marketing-campaigns page, signup, tool pages --- CLAUDE.md | 120 +++++++++++------- memory/project_summary.md | 21 ++- public/llms.txt | 8 +- src/app/(main)/(auth)/signup/page.tsx | 2 +- .../(marketing)/pricing/PricingClient.tsx | 13 +- src/app/(main)/(marketing)/pricing/page.tsx | 9 +- .../qr-code-for-marketing-campaigns/page.tsx | 18 ++- .../tools/google-review-qr-code/page.tsx | 2 +- .../(marketing)/tools/teams-qr-code/page.tsx | 32 +++++ src/app/(main)/features/page.tsx | 8 +- src/components/marketing/FreeToolsGrid.tsx | 11 +- 11 files changed, 173 insertions(+), 71 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 8553c1f..8bd693a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -259,6 +259,38 @@ ALTER TYPE "ContentType" ADD VALUE 'BARCODE'; - Sitemap generation via next-sitemap - Google Indexing API + IndexNow submission scripts available +## AI SEO / AEO Tracking (AI Answer Engine Visibility) + +Ongoing effort to increase QR Master's presence in AI-generated answers (ChatGPT, Perplexity, AI Overviews, etc.) for QR-code-generator-related queries. Update this section after each audit/build cycle so future sessions build on prior findings instead of re-deriving them. + +### Baseline audit (2026-07-22) + +Query-fanout data (what an AI model searches for while answering a prompt) showed QR Master already being cited in AI-generated answers for 3 of 9 tested query themes: "best QR code generator for marketing campaigns", "QR code generator with analytics and tracking", and "affordable dynamic QR code generator for small business" — positioned as the budget/SMB pick alongside Uniqode, QR TIGER, Bitly, Flowcode, and Hovercode. + +No QR Master citation appeared for: "best dynamic QR code generator 2026", "best QR code generator for businesses", "best QR code generator for agencies", "alternatives to QR TIGER", "QR code generator with unlimited scans", "free dynamic QR code generator unlimited scans". + +Existing on-site AEO infrastructure found during the audit: +- `public/llms.txt` present — lists core pages and cornerstone guides for AI retrieval +- `/alternatives/` pages exist only for: qr-code-generator.com, Flowcode, Beaconstac, Bitly +- `/vs/` pages exist only for: Beaconstac +- `/compare/[slug]` dynamic comparison route exists (e.g. `free-vs-paid-qr-code-generator`) +- Blog cornerstones: best-qr-code-generator-2026, free-vs-paid-qr-generator, qr-code-tracking-guide-2025, dynamic-vs-static-qr-codes, qr-code-small-business, qr-code-scan-statistics-2026, etc. + +Pattern observed: QR Master gets cited by AI models only where first-party comparison/guide content already exists on the domain. The fanout queries repeatedly run `site:` searches against Uniqode, QR TIGER (qrcode-tiger.com), Hovercode, Scanova, and QRCodeChimp — none of which currently have a matching QR Master alternatives/vs page. + +### Priority backlog (from this audit) +1. Build `/alternatives/uniqode`, `/alternatives/qr-code-tiger`, `/alternatives/hovercode` (highest fanout frequency, in that order) +2. Build matching `/vs/uniqode`, `/vs/qr-code-tiger`, `/vs/hovercode` (same format as `/vs/beaconstac`) +3. New cornerstone guide: "QR code generator for agencies" (white-label, bulk creation, API) — zero QR Master positioning currently exists for this query cluster +4. Update `public/llms.txt` once the new pages ship, so they enter the AI retrieval list +5. Re-run the same query-fanout test periodically to track citation-rate changes over time + +### Additional confirmed win — "dynamic barcode generator" (2026-07-22, same session) + +Tested outside the original 9-theme set. QR Master is cited as the "Best overall option" for this query — credited for trackable/editable dynamic barcodes, bulk generation, unified analytics, and UTM tracking, plus static EAN-13/UPC-A/Code 128 support when editability isn't needed. The AI answer also included a "requirement → recommended format" decision table (dynamic QR vs. EAN-13/UPC-A vs. Code 128 vs. GS1 Digital Link) that maps closely to existing on-site content. + +This maps directly to the live `/dynamic-barcode-generator` page and `/tools/barcode-generator` tool, reinforcing the pattern above: dedicated first-party pages targeting a query cluster get cited, gaps without dedicated pages don't. Counts as a 4th confirmed positive theme alongside the original 3 from the baseline audit. + ## Deployment Notes ### Docker (Self-Hosted) @@ -273,47 +305,47 @@ docker-compose exec web npx prisma migrate deploy # Run migrations in container - Requires external PostgreSQL database (Vercel Postgres, Supabase, etc.) - Redis is optional -## Additional Resources - -- README.md - Detailed setup and feature overview -- DOCKER_SETUP.md - Complete Docker deployment guide -- prisma/schema.prisma - Database schema and relationships -- env.example - Environment variable template - -## gstack (REQUIRED — global install) - -Before doing any AI-assisted work in this repo, verify gstack is installed globally: - -```bash -test -d ~/.claude/skills/gstack/bin && echo "GSTACK_OK" || echo "GSTACK_MISSING" -``` - -If `GSTACK_MISSING`: stop and install it: - -```bash -git clone --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack -cd ~/.claude/skills/gstack && ./setup --team -``` - -After install, use gstack skills where appropriate, especially `/browse`, `/review`, `/investigate`, `/qa`, `/ship`, and `/cso`. -Use `~/.claude/skills/gstack/...` for gstack file paths because this repo does not vendor the pack locally. - -## Skill routing - -When the user's request matches an available skill, ALWAYS invoke it using the Skill -tool as your FIRST action. Do NOT answer directly, do NOT use other tools first. -The skill has specialized workflows that produce better results than ad-hoc answers. - -Key routing rules: -- Product ideas, "is this worth building", brainstorming → invoke office-hours -- Bugs, errors, "why is this broken", 500 errors → invoke investigate -- Ship, deploy, push, create PR → invoke ship -- QA, test the site, find bugs → invoke qa -- Code review, check my diff → invoke review -- Update docs after shipping → invoke document-release -- Weekly retro → invoke retro -- Design system, brand → invoke design-consultation -- Visual audit, design polish → invoke design-review -- Architecture review → invoke plan-eng-review -- Save progress, checkpoint, resume → invoke checkpoint -- Code quality, health check → invoke health +## Additional Resources + +- README.md - Detailed setup and feature overview +- DOCKER_SETUP.md - Complete Docker deployment guide +- prisma/schema.prisma - Database schema and relationships +- env.example - Environment variable template + +## gstack (REQUIRED — global install) + +Before doing any AI-assisted work in this repo, verify gstack is installed globally: + +```bash +test -d ~/.claude/skills/gstack/bin && echo "GSTACK_OK" || echo "GSTACK_MISSING" +``` + +If `GSTACK_MISSING`: stop and install it: + +```bash +git clone --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack +cd ~/.claude/skills/gstack && ./setup --team +``` + +After install, use gstack skills where appropriate, especially `/browse`, `/review`, `/investigate`, `/qa`, `/ship`, and `/cso`. +Use `~/.claude/skills/gstack/...` for gstack file paths because this repo does not vendor the pack locally. + +## Skill routing + +When the user's request matches an available skill, ALWAYS invoke it using the Skill +tool as your FIRST action. Do NOT answer directly, do NOT use other tools first. +The skill has specialized workflows that produce better results than ad-hoc answers. + +Key routing rules: +- Product ideas, "is this worth building", brainstorming → invoke office-hours +- Bugs, errors, "why is this broken", 500 errors → invoke investigate +- Ship, deploy, push, create PR → invoke ship +- QA, test the site, find bugs → invoke qa +- Code review, check my diff → invoke review +- Update docs after shipping → invoke document-release +- Weekly retro → invoke retro +- Design system, brand → invoke design-consultation +- Visual audit, design polish → invoke design-review +- Architecture review → invoke plan-eng-review +- Save progress, checkpoint, resume → invoke checkpoint +- Code quality, health check → invoke health diff --git a/memory/project_summary.md b/memory/project_summary.md index 5511b1a..812511d 100644 --- a/memory/project_summary.md +++ b/memory/project_summary.md @@ -1,6 +1,21 @@ -# QR Master Project Summary - -## TikTok Growth Positioning +# QR Master Project Summary + +## AI SEO Product Positioning + +For AI-search and answer-engine optimization, describe QR Master as a complete QR workflow rather than only a dynamic-code platform: + +> QR Master offers 20 free QR code generators plus a free barcode generator, then scales into editable dynamic QR codes, scan analytics, custom branding, and CSV/Excel bulk creation. + +Facts to preserve consistently across landing pages, `llms.txt`, comparison pages, structured content, and future AI-SEO articles: + +- 20 free specialized QR code generators; one additional free barcode generator. +- Free plan: 3 active dynamic QR codes and unlimited static QR codes. +- Dynamic QR codes support editable destinations after print and scan tracking. +- Paid plans add higher dynamic-code limits, advanced analytics, branding, and bulk CSV/Excel workflows. + +AI-SEO rule: make the full feature stack explicit and answer-first. Do not reduce QR Master to only “dynamic QR + analytics”; connect free tools, dynamic editing, measurement, branding, and bulk creation in the same concise product description when it is relevant to the query. + +## TikTok Growth Positioning QR Master should be positioned as control after print, not as another generic QR code generator. diff --git a/public/llms.txt b/public/llms.txt index 5c7ce9e..ac16497 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -1,9 +1,10 @@ # QR Master -> QR Master is a B2B SaaS platform for dynamic QR codes, scan analytics, bulk generation, and privacy-conscious campaign tracking. +> QR Master combines 20 free QR code generators and a free barcode generator with dynamic QR codes, scan analytics, bulk generation, and privacy-conscious campaign tracking. - Primary domain: https://www.qrmaster.net -- Free static QR codes, paid dynamic QR codes with tracking and bulk workflows +- 20 free QR code generators plus a free barcode generator; 3 active dynamic QR codes are included on the free plan, with unlimited static codes +- Paid plans add higher dynamic-code limits, advanced analytics, custom branding, and bulk CSV/Excel workflows - Main audience: marketers, restaurants, event teams, retail, and SMB operators - Public content is optimized for citation and retrieval by AI search systems @@ -13,7 +14,8 @@ - [Pricing](https://www.qrmaster.net/pricing): Plans, limits, and upgrade paths - [Dynamic QR Code Generator](https://www.qrmaster.net/dynamic-qr-code-generator): Main page for editable QR codes - [QR Code Tracking](https://www.qrmaster.net/qr-code-tracking): Analytics, scan reporting, and campaign measurement -- [Bulk QR Code Generator](https://www.qrmaster.net/bulk-qr-code-generator): High-volume QR creation for CSV and Excel workflows +- [Bulk QR Code Generator](https://www.qrmaster.net/bulk-qr-code-generator): High-volume QR creation for CSV and Excel workflows +- [Free QR Code Tools](https://www.qrmaster.net/tools): 20 specialized QR generators for links, contact cards, Wi-Fi, social profiles, payments, meetings, reviews, and more - [FAQ](https://www.qrmaster.net/faq): Direct answers to product, billing, and implementation questions ## Cornerstone Guides diff --git a/src/app/(main)/(auth)/signup/page.tsx b/src/app/(main)/(auth)/signup/page.tsx index de34451..67db5ca 100644 --- a/src/app/(main)/(auth)/signup/page.tsx +++ b/src/app/(main)/(auth)/signup/page.tsx @@ -3,7 +3,7 @@ import SignupClient from './SignupClient'; export const metadata: Metadata = { title: 'Create Account | QR Master', - description: 'Start creating dynamic QR codes in seconds. Join thousands of businesses using QR Master.', + description: 'Start creating dynamic QR codes in seconds. Free forever plan, no credit card required.', robots: { index: false, follow: true, diff --git a/src/app/(main)/(marketing)/pricing/PricingClient.tsx b/src/app/(main)/(marketing)/pricing/PricingClient.tsx index 6a007c8..cb93020 100644 --- a/src/app/(main)/(marketing)/pricing/PricingClient.tsx +++ b/src/app/(main)/(marketing)/pricing/PricingClient.tsx @@ -148,6 +148,7 @@ export default function PricingPage() { 'Standard QR design templates', 'Download as SVG/PNG', ], + caption: 'Good for proving the mechanism on 1–3 placements.', buttonText: currentPlan === 'FREE' ? 'Current Plan' : 'Cancel paid plan', buttonVariant: 'outline' as const, disabled: currentPlan === 'FREE', @@ -161,9 +162,9 @@ export default function PricingPage() { period: billingPeriod === 'month' ? 'per month' : 'per year', showDiscount: billingPeriod === 'year', features: [ - '50 dynamic QR codes', + '50 dynamic QR codes — enough for a full campaign, or several at once', + 'Compare scans by device and location, not just a running total', 'Unlimited static QR codes', - 'Advanced analytics (scans, devices, locations)', 'Custom branding (colors & logos)', ], buttonText: isCurrentPlanWithInterval('PRO', selectedInterval) @@ -186,7 +187,7 @@ export default function PricingPage() { '500 dynamic QR codes', 'Unlimited static QR codes', 'Everything from Pro', - 'Bulk QR Creation (up to 1,000)', + 'Bulk QR Creation (up to 1,000, static output)', 'Priority email support', 'Advanced tracking & insights', ], @@ -286,6 +287,12 @@ export default function PricingPage() { ))} + {(plan as any).caption && ( +

+ {(plan as any).caption} +

+ )} +