diff --git a/app/coach/page.tsx b/app/coach/page.tsx
new file mode 100644
index 0000000..f2775ae
--- /dev/null
+++ b/app/coach/page.tsx
@@ -0,0 +1,44 @@
+import type { Metadata } from "next";
+import Link from "next/link";
+
+export const metadata: Metadata = {
+ title: "PPC Coach",
+ description:
+ "Amazon PPC teaching companion — 12 modules, glossary, search-term trainer, campaign builder, report builder, quiz arena, AI coach, and a teacher cohort view.",
+};
+
+export default function CoachPage() {
+ return (
+
+
+
+ ← Back to home
+
+
+ PPC Coach
+
+ Amazon PPC Teaching Companion
+
+ Open in new tab ↗
+
+
+
+
+ );
+}
diff --git a/app/learn/_components/PrintButton.tsx b/app/learn/_components/PrintButton.tsx
new file mode 100644
index 0000000..2a3e21b
--- /dev/null
+++ b/app/learn/_components/PrintButton.tsx
@@ -0,0 +1,30 @@
+"use client";
+
+import { useState } from "react";
+
+type Props = {
+ /** Optional label override. Defaults to "Print this page". */
+ label?: string;
+};
+
+export function PrintButton({ label = "Print this page" }: Props) {
+ const [busy, setBusy] = useState(false);
+ return (
+
+ );
+}
diff --git a/app/learn/_components/Sidebar.tsx b/app/learn/_components/Sidebar.tsx
new file mode 100644
index 0000000..a996e03
--- /dev/null
+++ b/app/learn/_components/Sidebar.tsx
@@ -0,0 +1,44 @@
+import Link from "next/link";
+
+const NAV = [
+ { href: "/learn", label: "Overview", icon: "📖" },
+ { href: "/learn/features", label: "Features", icon: "🧩" },
+ { href: "/learn/guide", label: "Student Guide", icon: "🎓" },
+ { href: "/learn/handouts", label: "Handouts", icon: "📝" },
+ { href: "/learn/downloads", label: "Downloads", icon: "📦" },
+];
+
+export function Sidebar() {
+ return (
+
+ );
+}
diff --git a/app/learn/downloads/page.tsx b/app/learn/downloads/page.tsx
new file mode 100644
index 0000000..c264557
--- /dev/null
+++ b/app/learn/downloads/page.tsx
@@ -0,0 +1,158 @@
+import type { Metadata } from "next";
+import Link from "next/link";
+
+export const metadata: Metadata = { title: "Downloads" };
+
+type Download = {
+ filename: string;
+ href: string;
+ size: string;
+ kind: "html" | "markdown" | "zip";
+ what: string;
+};
+
+const DOWNLOADS: Download[] = [
+ {
+ filename: "PPC Coach — full app (offline HTML)",
+ href: "/downloads/ppc-coach-offline.html",
+ size: "~113 KB",
+ kind: "html",
+ what: "The entire teaching companion in one self-contained HTML file. Open it directly in any browser — works offline once CDN fonts and chart.js have loaded once.",
+ },
+ {
+ filename: "PPC Coach — source archive (.zip)",
+ href: "/downloads/ppc-coach-source.zip",
+ size: "~35 KB",
+ kind: "zip",
+ what: "The same offline HTML, zipped. Useful for emailing to a student or uploading to a classroom drive.",
+ },
+ {
+ filename: "AdConsole Pro — legacy simulator (offline HTML)",
+ href: "/adconsole.html",
+ size: "~161 KB",
+ kind: "html",
+ what: "The original teaching simulator. The page that started this whole product line.",
+ },
+ {
+ filename: "VA Starter Kit",
+ href: "/downloads/va-starter-kit.md",
+ size: "~3 KB",
+ kind: "markdown",
+ what: "A copy-paste onboarding checklist: what to ask your manager on day one, what to read in week one, what to have ready by week four.",
+ },
+ {
+ filename: "4-Week New Product Launch Plan",
+ href: "/downloads/4-week-launch-plan.md",
+ size: "~3 KB",
+ kind: "markdown",
+ what: "The week-by-week launch plan from Module 6, in printable markdown. Hand this to a client as a one-pager.",
+ },
+ {
+ filename: "Printable Handouts (all 8 in one page)",
+ href: "/learn/handouts",
+ size: "—",
+ kind: "html",
+ what: "All eight cheat sheets on one route. Print to PDF (Ctrl+P → Save as PDF) for a single multi-page handout pack.",
+ },
+];
+
+const KIND_ICON: Record = {
+ html: "🌐",
+ markdown: "📄",
+ zip: "📦",
+};
+
+const KIND_LABEL: Record = {
+ html: "HTML",
+ markdown: "Markdown",
+ zip: "Zip",
+};
+
+export default function DownloadsPage() {
+ return (
+
+
+
+ Downloads
+
+
+ Take it with you
+
+
+ Everything you need to operate offline — the full app, the launch
+ plan, the starter kit, and a printable handout pack. Click any file
+ to download or open it in a new tab.
+
Open the page you want (a handout, the guide, the report preview).
+
+ Press Ctrl+P (or ⌘+P on Mac).
+
+
In the print dialog, change the destination to “Save as PDF”.
+
Click Save. The file lands wherever your browser saves downloads.
+
+
+
+
+
+ Going fully offline
+
+
+ The full app is a single HTML file that uses CDN fonts and
+ Chart.js. To use it without internet:
+
+
+
Open /ppc-coach.html once while online — your browser will cache the CDN assets.
+
Bookmark the file or save it locally.
+
Use it on the plane, in a cafe with bad wifi, or in a client's office where the network is locked down.
+
+
+ All progress is stored in localStorage{" "}
+ under the key ppcCoachState_v2{" "}
+ — it travels with the browser, not the file.
+
+
+
+ );
+}
diff --git a/app/learn/features/page.tsx b/app/learn/features/page.tsx
new file mode 100644
index 0000000..c550445
--- /dev/null
+++ b/app/learn/features/page.tsx
@@ -0,0 +1,446 @@
+import { PrintButton } from "../_components/PrintButton";
+
+export const metadata = { title: "Feature documentation" };
+
+type Feature = {
+ id: string;
+ icon: string;
+ name: string;
+ tagline: string;
+ what: string;
+ when: string[];
+ steps: string[];
+ proTips: string[];
+ mistakes: string[];
+ related: { label: string; module: string }[];
+};
+
+const FEATURES: Feature[] = [
+ {
+ id: "dashboard",
+ icon: "🏠",
+ name: "Dashboard",
+ tagline: "Your progress at a glance.",
+ what: "The landing screen. Shows your level, XP, course progress, quiz pass rate, practice bests, module-by-module progress, badges, and a donut chart of overall completion.",
+ when: [
+ "Start of every session to see where you left off",
+ "End of every session to log how you moved",
+ "When you want a quick proof of progress for a teacher or client",
+ ],
+ steps: [
+ "Open the app — Dashboard loads by default",
+ "Skim the four stat cards: Course progress, Total XP, Quizzes, Practice bests",
+ "Tap “Continue learning” if you have an unfinished lesson",
+ "Check the donut — it’s the same number as Course progress, just visual",
+ ],
+ proTips: [
+ "XP rolls up from lessons, quizzes, and practice. One finished lesson = 20 XP.",
+ "Badges turn from grey to color when earned — six in total.",
+ "Click “Open lessons” on the module grid to jump straight into a module.",
+ ],
+ mistakes: [
+ "Reading the dashboard as a grade — it’s a tracker, not a test.",
+ "Ignoring the donut — it’s a great sanity check that progress is moving.",
+ ],
+ related: [
+ { label: "Levels and XP", module: "M0 (intro) + M11 (capstone)" },
+ { label: "Module 0", module: "Amazon Basics" },
+ ],
+ },
+ {
+ id: "lessons",
+ icon: "📚",
+ name: "Lessons",
+ tagline: "12 modules, 40 plain-language lessons.",
+ what: "The core course. Each module is a theme (Marketplace, PPC, Money Math, etc.); each lesson is a 5–12 minute reading with goals, examples, formulas, and a quiz. Mark complete to earn 20 XP.",
+ when: [
+ "First 1–2 weeks of training",
+ "When you hit a concept you don’t recognize from a quiz",
+ "When a teacher assigns a module",
+ ],
+ steps: [
+ "Open Lessons",
+ "Pick a module — color-coded by topic",
+ "Pick a lesson — green check = done, grey number = todo",
+ "Read blocks: 🎯 goal, body text, 📊 diagrams, 💡 tips, 🧪 examples, ✏️ formulas, ⚠️ mistakes, ✅/🚫 do/don’t splits",
+ "Tap “Mark complete · +20 XP” at the bottom",
+ "On the last lesson of a module, take the module quiz",
+ ],
+ proTips: [
+ "Read the “In this lesson” box first — it tells you what you should be able to do at the end.",
+ "Skim tables and examples first; come back to prose for depth.",
+ "The “Coach tip” at the end of each lesson is the single thing to remember.",
+ ],
+ mistakes: [
+ "Skipping lessons and going straight to the quiz — quizzes recycle lesson language.",
+ "Marking complete without reading — XP is worthless if you didn’t learn the rule.",
+ ],
+ related: [
+ { label: "All 12 modules", module: "M0 → M11" },
+ { label: "Final exam", module: "Quiz Arena" },
+ ],
+ },
+ {
+ id: "glossary",
+ icon: "📖",
+ name: "Glossary",
+ tagline: "25 terms, explained like a human.",
+ what: "Searchable one-liner definitions for every PPC term you’ll meet: CPC, CTR, ACOS, ROAS, TACoS, break-even, match types, Buy Box, harvesting, long-tail, and more. Click a card to copy it.",
+ when: [
+ "Any time you read or hear a term you don’t recognize",
+ "Before a quiz or a client call",
+ "When a colleague uses a word and you nod but don’t quite get it",
+ ],
+ steps: [
+ "Open Glossary",
+ "Type a term in the search box (e.g. “ACOS”)",
+ "Read the card — it’s deliberately one sentence",
+ "Click the card to copy the definition to your clipboard",
+ ],
+ proTips: [
+ "The glossary is a reference, not a course. Don’t try to memorize it — use it.",
+ "Every term in the glossary appears in at least one lesson. If a term is unclear, jump to the related module.",
+ "Copy-to-clipboard is great for pasting into Slack replies to clients.",
+ ],
+ mistakes: [
+ "Memorizing jargon without understanding — “ACOS is the cost of sales” is not enough; you need the formula and the margin comparison.",
+ ],
+ related: [
+ { label: "Money Math", module: "M2" },
+ { label: "Keywords & Match Types", module: "M4" },
+ ],
+ },
+ {
+ id: "trainer",
+ icon: "🕵️",
+ name: "Search Term Trainer",
+ tagline: "Grade your weekly harvest.",
+ what: "A 10-row simulator that mimics a real search term report. You pick an action for each term — promote to Exact, add as negative, lower the bid, or watch. The app grades you out of 100%.",
+ when: [
+ "After every weekly search term review (every Tuesday-ish)",
+ "Before your first real harvest on a client account",
+ "When a quiz question about match types or negatives trips you up",
+ ],
+ steps: [
+ "Open Search Term Trainer",
+ "Read the practice product: Bamboo Cutting Board, 30% margin",
+ "For each of the 10 search terms, pick the right action",
+ "Click “Grade my decisions”",
+ "Read the per-row explanation — even on the rows you got right",
+ ],
+ proTips: [
+ "Margin is 30%, so break-even ACOS is 30%. Anything under 30% is profitable; anything over 30% needs a bid cut or a negative.",
+ "“Watch” is a valid choice when clicks are below 10. Small samples make loud lies.",
+ "First attempts earn 5 XP per correct decision — re-takes don’t double-dip.",
+ ],
+ mistakes: [
+ "Negate after 2 clicks — irrelevant terms get negated, but only when you’re sure.",
+ "Pause a campaign for one bad term — fix the term, not the whole structure.",
+ "Forget the search term report exists in real life — the trainer is a rehearsal, not a substitute.",
+ ],
+ related: [
+ { label: "Search Terms & Negatives", module: "M8" },
+ { label: "Money Math", module: "M2" },
+ ],
+ },
+ {
+ id: "builder",
+ icon: "🏗️",
+ name: "Campaign Builder",
+ tagline: "Build a starter campaign, get a score out of 100.",
+ what: "Pick a product, name your campaign, set a daily budget, add Exact/Phrase/Broad keywords with bids, add negatives. The app scores your structure against six beginner-safe rules.",
+ when: [
+ "Before launching a new product",
+ "Before restructuring an old account",
+ "When you’re not sure if your naming/bid/negatives setup is sane",
+ ],
+ steps: [
+ "Open Campaign Builder",
+ "Pick a product (Bamboo Board, Garlic Press, or Yoga Mat)",
+ "Name your campaign: SP | Exact | Product | Purpose",
+ "Set a daily budget (start small: $10–$50)",
+ "Add at least 2 Exact keywords, bids between $0.50–$1.50",
+ "Add at least 2 negative keywords (wrong material, wrong use, etc.)",
+ "Click “Score my campaign”",
+ "Read the failures, fix, and re-score",
+ ],
+ proTips: [
+ "Naming follows a pattern: ad-type | match | product | purpose. Future-you will read this in 3 months.",
+ "Avoid “broad” on day one — start tight, loosen once data tells you where to spend.",
+ "Read the Grading Rules card before you start — it’s the rubric.",
+ ],
+ mistakes: [
+ "Naming like “test1” or “final_final” — names should explain themselves.",
+ "Budgeting huge on a brand new product — start small, learn, scale.",
+ "Skipping negatives — they are the single fastest profit lever.",
+ ],
+ related: [
+ { label: "Campaign Structure", module: "M3" },
+ { label: "Bids & Budgets", module: "M7" },
+ { label: "Campaign Setup", module: "M6" },
+ ],
+ },
+ {
+ id: "report",
+ icon: "📊",
+ name: "Report Builder",
+ tagline: "Numbers in, client-ready report out.",
+ what: "Enter the week’s spend, sales, clicks, impressions, orders, and your margin. The app calculates ACOS, ROAS, CPC, CTR, conversion rate, and writes a plain-words report you can paste into Slack or email.",
+ when: [
+ "End of every week (Friday, per the weekly routine)",
+ "Before a client call",
+ "When a manager asks “how did the account do this week?”",
+ ],
+ steps: [
+ "Open Report Builder",
+ "Enter the six numbers from the week",
+ "Watch the metric cards light up green or red",
+ "Edit the “What worked”, “Problems”, and “Next steps” boxes",
+ "Click “Generate report”",
+ "Click “Copy to clipboard”",
+ "Paste into your client’s preferred channel",
+ ],
+ proTips: [
+ "ACOS green means below your margin; red means above. Always compare to margin, never to a generic target.",
+ "TACoS drops when ads are building the brand; ACOS dropping is not always the win — look at TACoS too.",
+ "End every report with next steps. Numbers inform; steps reassure.",
+ ],
+ mistakes: [
+ "Hiding bad numbers — they always get found. Own them with a proposed fix.",
+ "Reporting ACOS without context — always pair with margin and the trend.",
+ "Forgetting impressions — without them you can’t compute CTR, and CTR is the hook signal.",
+ ],
+ related: [
+ { label: "Reporting & Troubleshooting", module: "M10" },
+ { label: "Money Math", module: "M2" },
+ ],
+ },
+ {
+ id: "quiz",
+ icon: "🧠",
+ name: "Quiz Arena",
+ tagline: "13 quizzes. Pass at 70% to earn the badge.",
+ what: "A 12-module quiz (4–5 questions each) plus a 15-question Final Exam. Multiple choice, immediate feedback, XP rewards. Your best score is saved.",
+ when: [
+ "After each module (the last lesson of every module links straight to its quiz)",
+ "Before a client interview",
+ "The week before you take on real client work — run the Final Exam",
+ ],
+ steps: [
+ "Open Quiz Arena",
+ "Pick a module or the Final Exam",
+ "Tap an answer; the right answer lights green, the wrong one lights red",
+ "Read the explanation — even on correct answers",
+ "Tap “Next”",
+ "At the end, see your score and either Retry or Back to Arena",
+ ],
+ proTips: [
+ "Retake as often as you want — only your best score counts.",
+ "If you score under 70% on a module, re-read that module’s lessons, then retry.",
+ "The Final Exam is the closest thing to a real interview — take it cold once, then again after a week of study.",
+ ],
+ mistakes: [
+ "Skimming the explanation — the “why” matters more than the “what”.",
+ "Treating 70% as a pass and moving on — 85%+ is the capstone target for supervised work.",
+ ],
+ related: [
+ { label: "All modules", module: "M0 → M11" },
+ { label: "Final Exam", module: "Quiz Arena (top-right card)" },
+ ],
+ },
+ {
+ id: "coach",
+ icon: "💬",
+ name: "AI Coach",
+ tagline: "Plain-words answers, no jargon.",
+ what: "A rule-based chat that answers the most common PPC questions in plain English. Canned replies — fast, consistent, and easy to verify. Not a real AI; don’t expect it to invent answers to novel questions.",
+ when: [
+ "Any time you have a quick question and don’t want to scroll the glossary",
+ "When you want a one-paragraph explanation with an example",
+ "When you’re stuck and just need someone to point you at the right next step",
+ ],
+ steps: [
+ "Open AI Coach",
+ "Tap a suggested question, or type your own in plain words",
+ "Read the answer — usually one paragraph with an example",
+ "If the answer doesn’t match, try different keywords (e.g. “clicks no sales” vs “conversion low”)",
+ ],
+ proTips: [
+ "The Coach matches keywords. If you ask “ROAS” you’ll get the ROAS rule. If you ask “ROI” you’ll get the fallback.",
+ "Use the suggested-question chips — they’re curated to hit the most useful answers.",
+ ],
+ mistakes: [
+ "Asking for account-specific decisions (“should I pause this campaign?”) — the Coach doesn’t know your account.",
+ "Treating the Coach as a substitute for a real mentor — it’s a faster glossary, not a strategist.",
+ ],
+ related: [
+ { label: "Money Math", module: "M2" },
+ { label: "Reporting & Troubleshooting", module: "M10" },
+ ],
+ },
+ {
+ id: "cohort",
+ icon: "👥",
+ name: "Cohort (Teacher View)",
+ tagline: "For teachers running a live class.",
+ what: "A read-only table of 8 mock students, with progress, XP, weak area, last-active date, and status (STAR, ON TRACK, AT RISK). Top-of-page cards show cohort average, at-risk count, and top performer.",
+ when: [
+ "Before a class to see who needs a check-in",
+ "After a class to identify the next week’s focus area",
+ "When you’re deciding which students to fast-track or pair up",
+ ],
+ steps: [
+ "Open Cohort (Teacher)",
+ "Skim the three summary cards at the top",
+ "Scan the Students table",
+ "Use the search box to filter by name",
+ "Click into a student’s weak area to plan a 1-on-1",
+ ],
+ proTips: [
+ "AT RISK = inactive 3+ days or under 30% progress — those are the ones to message first.",
+ "Run the Search Term Trainer live in class — let students defend their decisions out loud. Judgment grows faster than button-clicking.",
+ "Pair STAR students with AT RISK students — peer teaching is the highest-ROI move in a small cohort.",
+ ],
+ mistakes: [
+ "Reading the table as a leaderboard — it’s a teaching tool, not a ranking.",
+ "Pushing the top student harder while ignoring the at-risk ones — the at-risk ones are where the leverage is.",
+ ],
+ related: [
+ { label: "VA Workflow & Capstone", module: "M11" },
+ ],
+ },
+];
+
+export default function FeaturesPage() {
+ return (
+
+
+
+ Documentation
+
+
+
+ Every feature, documented
+
+
+
+
+ Nine views, nine docs. Each one tells you what the screen does, when
+ to open it, the exact steps to use it, the pro tips behind it, the
+ common mistakes to avoid, and where it lives in the course.
+
+
+
+
+
+ {FEATURES.map((f) => (
+
+
+
+ {f.icon}
+
+ {f.name}
+
+
+
+ {f.tagline}
+
+
+
+
+
+ What it is
+
+
{f.what}
+
+
+
+
+ When to use it
+
+
+ {f.when.map((w, i) => (
+
+ •
+ {w}
+
+ ))}
+
+
+
+
+
+ Step-by-step
+
+
+ {f.steps.map((s, i) => (
+
{s}
+ ))}
+
+
+
+
+
+
+ Pro tips
+
+
+ {f.proTips.map((t, i) => (
+
+ ✓
+ {t}
+
+ ))}
+
+
+
+
+
+ Common mistakes
+
+
+ {f.mistakes.map((m, i) => (
+
+ ✕
+ {m}
+
+ ))}
+
+
+
+
+
+ Related in the course:{" "}
+ {f.related.map((r, i) => (
+
+ {i > 0 ? " · " : ""}
+ {r.label}
+
+ ))}
+
+
+ ))}
+
+ );
+}
diff --git a/app/learn/guide/page.tsx b/app/learn/guide/page.tsx
new file mode 100644
index 0000000..a1f3988
--- /dev/null
+++ b/app/learn/guide/page.tsx
@@ -0,0 +1,228 @@
+import { PrintButton } from "../_components/PrintButton";
+
+export const metadata = { title: "Student guide" };
+
+const PHASES = [
+ {
+ week: "Week 0",
+ title: "Set up",
+ color: "bg-zinc-100 text-zinc-800",
+ hours: "~2 hours",
+ goal: "Get oriented and pass the first two module quizzes.",
+ do: [
+ "Open the app. Read the Dashboard. Skim the Glossary.",
+ "Take the Module 0 quiz (Amazon Basics) cold — see where you stand.",
+ "Read every Module 0 lesson. Mark each complete. Retake the quiz.",
+ "Read every Module 1 lesson (What is PPC?). Take the quiz.",
+ ],
+ exit: "You can explain organic vs paid, the Buy Box, and ACOS in one sentence each.",
+ },
+ {
+ week: "Week 1",
+ title: "Learn the money",
+ color: "bg-emerald-100 text-emerald-800",
+ hours: "~6 hours",
+ goal: "Own ACOS, ROAS, TACoS, and break-even.",
+ do: [
+ "Read Modules 2 (Money Math) and 3 (Campaign Structure).",
+ "Pass both quizzes at 70%+.",
+ "Open the Report Builder, plug in fake numbers, generate a sample report.",
+ "Skim the Glossary cards for ACOS, ROAS, TACoS, break-even — copy them to a personal note.",
+ ],
+ exit: "You can compute ACOS from spend and sales, and explain why break-even ACOS equals your margin.",
+ },
+ {
+ week: "Week 2",
+ title: "Practice the core loop",
+ color: "bg-sky-100 text-sky-800",
+ hours: "~6 hours",
+ goal: "Confidently run the weekly search term harvest.",
+ do: [
+ "Read Modules 4 (Keywords & Match Types) and 8 (Search Terms & Negatives).",
+ "Open the Search Term Trainer. Run it 3 times. Aim for 80%+ on the third.",
+ "Open the Campaign Builder. Build a starter campaign for each of the 3 practice products. Score 70+ on each.",
+ "Pass both module quizzes at 70%+.",
+ ],
+ exit: "You can look at a search term row and pick the right action in under 30 seconds.",
+ },
+ {
+ week: "Week 3",
+ title: "Set up and budget",
+ color: "bg-amber-100 text-amber-800",
+ hours: "~6 hours",
+ goal: "Build a four-week launch plan with safe bids and budgets.",
+ do: [
+ "Read Modules 6 (Campaign Setup) and 7 (Bids & Budgets).",
+ "Walk through the New Product Launch Plan from Module 6.",
+ "Use the Campaign Builder to mock a Week-1 → Week-4 budget split.",
+ "Pass both module quizzes at 70%+.",
+ ],
+ exit: "You can explain why a profitable campaign running out of budget by noon is leaving money on the table.",
+ },
+ {
+ week: "Week 4",
+ title: "Operate and report",
+ color: "bg-violet-100 text-violet-800",
+ hours: "~8 hours",
+ goal: "Run a full weekly cycle and pass the Final Exam.",
+ do: [
+ "Read Modules 9 (Weekly Optimization) and 10 (Reporting & Troubleshooting).",
+ "Open the Report Builder. Write a fake but realistic weekly report. Copy it. Critique your own writing.",
+ "Open the Search Term Trainer and the Campaign Builder one more time. Beat your previous bests.",
+ "Take the Final Exam. Aim for 85%+.",
+ "Read Module 11 (VA Workflow & Capstone) for the day-one-on-the-job routine.",
+ ],
+ exit: "You can run a complete weekly cycle (review → harvest → report) and explain each step to a manager.",
+ },
+ {
+ week: "After",
+ title: "On the job",
+ color: "bg-rose-100 text-rose-800",
+ hours: "Ongoing",
+ goal: "Operate, don’t panic.",
+ do: [
+ "Follow the daily / weekly / monthly cadence from the VA Cadence handout.",
+ "Use the Permissions Ladder from Module 11 — small safe changes alone, big levers with approval.",
+ "Write every bid change in a change log. Memory lies; logs don’t.",
+ "When in doubt: stock, price, reviews, competitors — in that order.",
+ ],
+ exit: "You are operating under supervision. After 30 days of clean change logs, you earn unsupervised work.",
+ },
+];
+
+export default function StudentGuidePage() {
+ return (
+
+
+
+ Student guide
+
+
+
+ From zero to operating VA
+
+
+
+
+ A six-phase path from opening the app for the first time to running
+ a real account under supervision. About 30 hours total. Take it at
+ your own pace — but finish each phase before moving to the next.
+
+
+
+
+
+ The two rules that matter most
+
+
+
+ One change at a time. Science beats vibes. Change one
+ variable, wait a week, compare before-and-after, log it.
+
+
+ Stock, price, reviews, competitors — in that order. When
+ something breaks, check the boring four before touching any
+ campaign setting.
+
+ Re-read the relevant lesson. Most answers are in there.
+
+
+ Search the glossary for the unfamiliar word.
+
+
+ Ask the AI Coach in plain words. Try the suggested questions first.
+
+
+ Run the relevant practice tool (Trainer, Builder, Report) — the act of doing it surfaces the gap.
+
+
+ Take the module quiz. The wrong answers tell you exactly which lessons to revisit.
+
+
+ Only then: ask a teacher or mentor. Bring your notes and your best guess.
+
+
+
+
+
+
+ Graduation checklist
+
+
+ You are ready to operate under supervision when all of these are
+ true. Circle the date you pass each one.
+
+
+ {[
+ "12 module quizzes passed at 70%+",
+ "Final Exam passed at 85%+",
+ "Search Term Trainer best score 70%+",
+ "Campaign Builder best score 70+",
+ "Generated at least 1 weekly report",
+ "Asked the AI Coach at least 1 question",
+ "Read every lesson in the course",
+ "Earned at least 4 of the 6 badges",
+ ].map((c, i) => (
+
+ Break-even ACOS = your profit margin. A 30% margin means
+ 30% ACOS is the break-even line. Anything below 30% likely makes
+ money; anything above likely loses money. This is the single most
+ important fact about ACOS.
+
+ >
+ ),
+ },
+ {
+ id: "match-types",
+ title: "Match Types Cheat Sheet",
+ oneLiner: "Broad, phrase, exact — and when to use each.",
+ body: (
+ <>
+
+
+ Rule of thumb: Start tight (Exact). Use Broad and Auto only
+ as scouts. Promote research winners into Exact. Never run a new
+ account on Broad only.
+
+
+ Negative keywords block irrelevant searches. They are the
+ fastest profit lever in PPC. Add wasters from the search term
+ report weekly.
+
+ Every cheat sheet is one page, one topic, one printable artifact.
+ Click any title to jump to it. Press Ctrl+P on a single handout page to save as PDF.
+
+
+
+
+
+ {HANDOUTS.map((h) => (
+
+
+
+ {h.title}
+
+
{h.oneLiner}
+
+
{h.body}
+
+ ))}
+
+
+ End of handouts. Press Ctrl+P now to print this whole page.
+
+ );
+}
diff --git a/app/learn/layout.tsx b/app/learn/layout.tsx
new file mode 100644
index 0000000..4ebb4f9
--- /dev/null
+++ b/app/learn/layout.tsx
@@ -0,0 +1,49 @@
+import type { Metadata } from "next";
+import Link from "next/link";
+import { Sidebar } from "./_components/Sidebar";
+
+export const metadata: Metadata = {
+ title: {
+ default: "Learn",
+ template: "%s · Learn · AdConsole",
+ },
+ description:
+ "Documentation, student guide, printable handouts, and downloadable resources for the PPC Coach teaching companion.",
+};
+
+export default function LearnLayout({
+ children,
+}: {
+ children: React.ReactNode;
+}) {
+ return (
+
+
+
+ ← Home
+
+
+
+ PPC Coach
+
+ Documentation
+
+
+ Launch app ↗
+
+
+
+
+
+
{children}
+
+
+
+ );
+}
diff --git a/app/learn/page.tsx b/app/learn/page.tsx
new file mode 100644
index 0000000..e55204d
--- /dev/null
+++ b/app/learn/page.tsx
@@ -0,0 +1,121 @@
+import Link from "next/link";
+
+export default function LearnHubPage() {
+ return (
+
+
+
+ PPC Coach · Documentation
+
+
+ Learn, practice, ship.
+
+
+ Everything you need to go from a complete beginner to a competent
+ Amazon PPC VA manager. Pick a starting point — every page is
+ printable, every handout is a one-page cheat sheet, every
+ downloadable is yours to keep.
+
+
+
+
+
+
+
+
+
+
+
+
+ How to use this site
+
+
+
+ New here? Start with the Student Guide — it lays out the four-week path.
+
+
+ Mid-task? Skim the Feature docs for the screen you're stuck on.
+
+
+ Need a refresher? Open the Handouts and print the relevant cheat sheet.
+
+
+ Going offline? Grab the Downloads — the whole app, the launch plan, and the starter kit.
+
+
+
+
+
+
+ What is PPC Coach?
+
+
+ A teaching companion for Amazon PPC. Twelve plain-language modules,
+ a 25-term glossary, a search-term grader, a campaign builder that
+ scores your work, a one-page report generator, a quiz arena with
+ 13 quizzes, an AI coach, and a teacher cohort view. Progress,
+ levels, and badges are stored in your browser.
+
+
+ Built for Filipino VAs and junior strategists moving into Amazon
+ advertising roles. No fluff, no jargon, no theory without an
+ example.
+
- Amazon PPC teaching simulator. The legacy static page is preserved
- at /adconsole.html{" "}
- while we port it into React components. Pick a path below to keep
- moving.
+ Amazon PPC teaching simulator + companion apps. Two legacy static
+ pages live in public/{" "}
+ while we port everything into React components. Pick a path below to
+ keep moving.
diff --git a/public/downloads/4-week-launch-plan.md b/public/downloads/4-week-launch-plan.md
new file mode 100644
index 0000000..0b8c2af
--- /dev/null
+++ b/public/downloads/4-week-launch-plan.md
@@ -0,0 +1,61 @@
+# 4-Week New Product Launch Plan
+
+A one-page plan you can hand to a client or pin above your monitor.
+
+## Week 1 — Learn
+
+- [ ] One Auto campaign only.
+- [ ] Small daily budget (start $10–$20/day for a new product).
+- [ ] Modest bids (start at Amazon’s suggested bid).
+- [ ] Goal: **collect data, not profit.**
+- [ ] Read the search term report daily. Don’t act yet.
+
+## Week 2 — Control
+
+- [ ] Launch a manual **Exact** campaign with 3–5 long-tail keywords.
+- [ ] Pull the top 3 search terms from Week 1's Auto report. Use them as seeds.
+- [ ] Keep Auto running but reduce its budget share.
+- [ ] Bids: start at the Auto average CPC, give or take 10%.
+- [ ] Goal: **get the first sales from intentional keywords.**
+
+## Week 3 — Clean
+
+- [ ] First negatives pass.
+ - Search terms with 5+ clicks and 0 sales, clearly irrelevant.
+ - Wrong material, wrong use, wholesale, free, used, etc.
+- [ ] Tighten Exact match: add phrase-match variants of proven winners.
+- [ ] Audit the listing. Are image, title, bullets, and reviews good enough to convert the traffic you're paying for?
+- [ ] Goal: **stop the bleed, sharpen the focus.**
+
+## Week 4 — Scale (carefully)
+
+- [ ] Bump the budget on the Exact campaign by 10–20%.
+- [ ] Raise bids on proven winners by 10–15%, one at a time.
+- [ ] Add a Product Targeting campaign against close competitors.
+- [ ] Generate a weekly report. Compare against the launch forecast.
+- [ ] Goal: **scale only what has earned the right to be scaled.**
+
+## Daily / weekly review
+
+| When | What |
+| --- | --- |
+| Daily (5 min) | Spend, stock, paused campaigns, alerts |
+| Weekly (1 hr) | Search term harvest, negatives, bid review, report |
+| Monthly (2 hr) | Structure, top keywords, listing audit, cleanup |
+
+## Stop-loss rules
+
+- If ACOS is **2× margin** for 7 days, pause the campaign and review.
+- If CTR is **under 0.3%** for 7 days, fix the hook (image, price, title).
+- If conversion is **under 5%** for 14 days, fix the listing before spending more.
+- If the listing loses the **Buy Box**, pause ads until it's back.
+
+## Done-when checklist
+
+By the end of week 4, you should be able to:
+
+- [ ] Show a week-1-to-week-4 trend chart with rising sales and falling ACOS.
+- [ ] List your top 5 keywords and the bid for each.
+- [ ] List your top 5 negative keywords and why each was added.
+- [ ] State the campaign's current break-even ACOS and whether it's profitable.
+- [ ] Propose the next 2 changes you would make in week 5.
diff --git a/public/downloads/ppc-coach-offline.html b/public/downloads/ppc-coach-offline.html
new file mode 100644
index 0000000..88a9e94
--- /dev/null
+++ b/public/downloads/ppc-coach-offline.html
@@ -0,0 +1,828 @@
+
+
+
+
+
+PPC Coach — Amazon PPC Teaching Companion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Dashboard
+
+ ⚡ 0 XP
+ 🎓 Trainee
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/downloads/ppc-coach-source.zip b/public/downloads/ppc-coach-source.zip
new file mode 100644
index 0000000..ca7f2a4
Binary files /dev/null and b/public/downloads/ppc-coach-source.zip differ
diff --git a/public/downloads/va-starter-kit.md b/public/downloads/va-starter-kit.md
new file mode 100644
index 0000000..6bf0ab7
--- /dev/null
+++ b/public/downloads/va-starter-kit.md
@@ -0,0 +1,80 @@
+# VA Starter Kit — Amazon PPC
+
+A copy-paste checklist for your first 30 days on a real Amazon PPC account.
+
+## Day 1: ask your manager these questions
+
+- [ ] What is our account-level profit margin? (This is your break-even ACOS.)
+- [ ] Which products am I responsible for, and which are off-limits?
+- [ ] Who approves budget changes? Who approves new campaign structure?
+- [ ] What is the daily / weekly / monthly reporting cadence?
+- [ ] Where is the change log? (If there isn't one, start one today.)
+- [ ] Which account-level tools am I allowed to use? (Search-term reports, bulk sheets, etc.)
+- [ ] Is there a Slack channel or email thread for PPC questions?
+- [ ] What does “success” look like 30, 60, 90 days from now?
+
+## Week 1: read and shadow
+
+- [ ] Read every lesson in the **PPC Coach** course.
+- [ ] Pass all 12 module quizzes at 70%+.
+- [ ] Take the Final Exam at least once (aim for 85%+ by month-end).
+- [ ] Run the **Search Term Trainer** three times. Beat your own best.
+- [ ] Run the **Campaign Builder** for the three practice products. Score 70+ on each.
+- [ ] Generate at least one practice weekly report in the **Report Builder**.
+- [ ] Ask the AI Coach at least 3 questions.
+- [ ] Shadow a senior VA on a real account for 2 hours.
+
+## Week 2–3: small safe moves
+
+- [ ] On a sandbox or a low-budget test product, add 5 negative keywords.
+- [ ] Make 1 bid change. Log it. Wait a week. Compare.
+- [ ] Download a real search term report. Mark 3 winners, 3 wasters. Propose actions.
+- [ ] Run a full weekly report on a real account. Send it to your manager for review.
+
+## Week 4: solo with supervision
+
+- [ ] You can explain ACOS, ROAS, TACoS, and break-even in your own words.
+- [ ] You can run a weekly search-term harvest without help.
+- [ ] You have a change log with at least 10 entries, all dated and explained.
+- [ ] You have asked at least 5 questions (and remember the answers).
+- [ ] You can spot a low-CTR, high-ACOS, or no-impression problem and propose a fix.
+
+## Daily 5-minute check
+
+```
+[ ] Spend on track vs forecast
+[ ] No new paused campaigns
+[ ] No stock alerts
+[ ] No budget left at 0
+[ ] No review of "did something just change?"
+```
+
+## Weekly 1-hour routine
+
+| Day | Task |
+| --- | --- |
+| Monday | Spend, budgets, urgent alerts |
+| Tuesday | Search term review |
+| Wednesday | Negatives + promote winners |
+| Thursday | Bid and ACOS review |
+| Friday | Simple report |
+
+## Permission ladder (from Module 11)
+
+| Task | You alone | Needs approval |
+| --- | --- | --- |
+| Download and clean reports | ✅ | |
+| Add negatives from rules | ✅ | |
+| Small bid moves (±20%) | ✅ | |
+| Promote winners to Exact | ✅ | |
+| Budget changes | | ✅ |
+| New campaign structure | | ✅ |
+| Pausing a whole campaign | | ✅ |
+| Strategy shifts | | ✅ |
+
+## When in doubt
+
+1. **Stock, price, reviews, competitors** — in that order.
+2. **One change at a time.** Then wait a week.
+3. **Log everything.** Memory lies.
+4. **Ask early, ask often.** A question costs a minute; a mistake costs a client.
diff --git a/public/ppc-coach.html b/public/ppc-coach.html
new file mode 100644
index 0000000..88a9e94
--- /dev/null
+++ b/public/ppc-coach.html
@@ -0,0 +1,828 @@
+
+
+
+
+
+PPC Coach — Amazon PPC Teaching Companion
+
+
+
+
+
+
+
+
+
+
+
+
+
+