/* global React, Reveal, ArrowGlyph */
const { useState: useS2, useEffect: useE2, useRef: useR2 } = React;
// =========================================================
// BEFORE / AFTER drag-to-compare slider
// =========================================================
function PackCompare({ before, after, beforeAlt, afterAlt, stamp }) {
return (
Before
After
{stamp && (
)}
);
}
// =========================================================
// CASE STUDIES — hover-reveal cards
// =========================================================
function Cases() {
const cases = [
{
cat: "First-time sellers",
big: ["90% ", "in 90 days"],
name: "Private students · first sale",
viz: "milestone",
milestones: ["enrolled", "picked", "launched", "first sale"],
start: "Today",
toast: "$39.99",
sparkFrom: "day 0",
sparkTo: "first 90 days",
headline: "9 in 10 of my private students make their first sale within 90 days.",
body: "Most people never clear the starting line — the research loops, the second-guessing, the fear of placing that first order. Working with me one-on-one, nine in ten private students push through and make a real first sale inside 90 days. The first sale is the hardest one; everything after it is just repeating what already worked.",
stats: [["90%", "make a first sale"], ["≤ 90 days", "to get there"]],
},
{
cat: "Client results",
big: ["", "90-day results"],
name: "8 clients · coaching + consulting",
viz: "leaderboard",
board: [
{ amt: "$73K", pct: 100, tag: "Consulting" },
{ amt: "$32K", pct: 44, tag: "Consulting" },
{ amt: "$16K", pct: 22 },
{ amt: "$15K", pct: 21 },
{ amt: "$14K", pct: 19 },
{ amt: "$14K", pct: 19 },
{ amt: "$13K", pct: 18 },
{ amt: "$12K", pct: 16 },
],
sparkFrom: "Top wins",
sparkTo: "top $73K",
headline: "Eight client wins on the board — coaching launches and consulting clients, top cleared $73K in 90 days.",
body: "Same operating system across both sides of the house: a product that survives the research filter, a listing built around one sharp angle, and ad spend that doesn't bleed. The names change — the playbook doesn't.",
stats: [["$73K", "top client win"], ["8 clients", "on the board"]],
},
{
cat: "Who I've helped",
big: ["", "20 countries"],
name: "From moms to pilots to doctors",
viz: "reach",
flags: [
{ code: "nz", name: "New Zealand" }, { code: "au", name: "Australia" },
{ code: "us", name: "United States" }, { code: "ca", name: "Canada" },
{ code: "gb", name: "United Kingdom" }, { code: "es", name: "Spain" },
{ code: "de", name: "Germany" }, { code: "fr", name: "France" },
{ code: "lv", name: "Latvia" }, { code: "in", name: "India" },
{ code: "cn", name: "China" }, { code: "lk", name: "Sri Lanka" },
{ code: "be", name: "Belgium" }, { code: "ae", name: "United Arab Emirates" },
{ code: "pl", name: "Poland" }, { code: "cz", name: "Czechia" },
{ code: "ua", name: "Ukraine" }, { code: "hr", name: "Croatia" },
{ code: "sg", name: "Singapore" }, { code: "za", name: "South Africa" },
],
roles: ["Moms", "Pilots", "Doctors", "Nurses", "Teachers", "Police", "Students", "Salespeople", "Service staff", "Scientists", "Photographers", "Architects", "Software engineers", "Retirees"],
sparkFrom: "20 countries",
sparkTo: "3,000+ students",
headline: "Students in 20 countries — moms, pilots, doctors, teachers, retirees.",
body: "This was never built for a special type of person. The people who get it working come from every walk of life and every timezone — full-time parents, airline pilots, ER doctors, tradies, retirees. The common thread isn't background. It's following the steps in order and not quitting early.",
stats: [["20", "countries"], ["3,000+", "students taught"]],
},
];
return (
Case studies
Wins that are actually mine to claim.
Three numbers from real 1:1 clients, group students, and consulting clients —
first sales, top wins, and the range of people behind them.
Hover any card for the story behind the number.
¶
Names shortened where requested. Numbers reported by clients,
cross-checked against their seller dashboards — happy to walk
through the originals on a call.
);
}
// =========================================================
// QUIZ — "Which path is right for me?"
// =========================================================
function Quiz({ onBook }) {
const Q = [
{
q: "Where are you on Amazon right now?",
opts: [
{ label: "Haven't launched yet — still researching products", w: { p: 2, c: 1 } },
{ label: "Launched, but doing under $5K/mo", w: { p: 2, c: 2 } },
{ label: "Between $5K and $50K/mo, want to scale", w: { p: 1, c: 3 } },
{ label: "Doing $50K+/mo, hitting a specific wall", w: { p: 0, c: 3 } },
],
},
{
q: "How much time can you put in each week?",
opts: [
{ label: "10–15 hrs · this is a side bet for now", w: { p: 3, c: 1 } },
{ label: "20–30 hrs · serious side project", w: { p: 2, c: 2 } },
{ label: "Full time · this is my main thing", w: { p: 1, c: 3 } },
],
},
{
q: "What kind of help moves the needle most for you?",
opts: [
{ label: "Structured curriculum + a cohort to learn alongside", w: { p: 3, c: 0 } },
{ label: "Direct feedback on my specific listings, ads, numbers", w: { p: 0, c: 3 } },
{ label: "A bit of both — structure plus 1:1 unsticks", w: { p: 2, c: 2 } },
],
},
];
const [step, setStep] = useS2(0);
const [score, setScore] = useS2({ p: 0, c: 0 });
const [done, setDone] = useS2(false);
const pick = (opt) => {
const ns = { p: score.p + opt.w.p, c: score.c + opt.w.c };
setScore(ns);
if (step + 1 >= Q.length) setDone(true);
else setStep(step + 1);
};
const restart = () => {
setStep(0);
setScore({ p: 0, c: 0 });
setDone(false);
};
let resultTitle, resultBody, primaryCta;
if (done) {
if (score.c > score.p + 1) {
resultTitle = ["Best fit: ", "1:1 Coaching"];
resultBody = "You've got specifics that need specific answers. We'd work weekly, screen-share through your actual catalog, ads and numbers. Best ROI for sellers with traction.";
primaryCta = "Book a 1:1 discovery call";
} else if (score.p > score.c + 1) {
resultTitle = ["Best fit: ", "The Foundation Cohort"];
resultBody = "12 weeks, small group, every week a deliverable. We compress the first 18 months of selling into a structured build, with me on calls twice a week.";
primaryCta = "See cohort dates · book a chat";
} else {
resultTitle = ["Best fit: ", "Hybrid track"];
resultBody = "You'd get the most from cohort structure plus 4 private 1:1s along the way. Lets you learn alongside others without losing the personal feedback.";
primaryCta = "Talk through the hybrid";
}
}
return (
2-min fit check
Which path is right for you?
Three honest questions. You'll get a recommendation — and the option to book a call to talk it through. No email gate.