diff --git a/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx b/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx index bc52054a..2a57ad94 100644 --- a/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx +++ b/vibn-frontend/_onboarding/onboarding-entrepreneur.tsx @@ -18,7 +18,7 @@ import { // Entrepreneur path — 4 steps. Each step is a focused question. const ENTREP_TOTAL = 4; -const ENTREP_STEP_NAMES = ["Idea", "Audience", "Goal", "Look"]; +const ENTREP_STEP_NAMES = ["Idea", "Type", "Goal", "Look"]; const IDEA_PROMPTS = [ "A community for indie game devs to swap playtesters, with weekly demo nights", @@ -110,36 +110,63 @@ export function EntrepIdea({ value, onChange }) { ); } -const AUDIENCE_PRESETS = [ - "Me and people like me", - "A small community I'm part of", - "Local people in my city", - "Anyone searching for this", - "Other small businesses", - "Hobbyists in a niche I love", +const ARCHETYPES = [ + { + id: "saas", + icon: "💻", + label: "Web App / SaaS", + desc: "Dashboards, tools, interactive portals", + }, + { + id: "marketplace", + icon: "🤝", + label: "Marketplace", + desc: "Directories, bookings, listings", + }, + { + id: "marketing", + icon: "✨", + label: "Marketing Site", + desc: "Portfolios, lead capture, landing pages", + }, + { + id: "ecommerce", + icon: "🛒", + label: "Online Store", + desc: "Carts, checkouts, selling physical/digital goods", + }, + { + id: "mobile", + icon: "📱", + label: "Mobile App", + desc: "iOS and Android mobile applications", + }, + { + id: "blog", + icon: "✍️", + label: "Blog / Publication", + desc: "Newsletters, articles, content hubs", + }, ]; -function EntrepAudience({ value, onChange }) { - const isPreset = AUDIENCE_PRESETS.includes(value); +function EntrepType({ value, onChange }) { return ( <> - onChange(arr[arr.length - 1] || "")} + ({ + id: a.id, + label: a.label, + desc: a.desc, + icon: {a.icon}, + }))} + value={value} + onChange={onChange} + columns={2} /> - - onChange(e.target.value)} - /> - ); } @@ -351,12 +378,12 @@ export function EntrepreneurPath({ canNext = (data.idea || "").trim().length >= 8; } else if (step === 1) { body = ( - onUpdate({ audience: v })} + onUpdate({ productType: v })} /> ); - canNext = (data.audience || "").trim().length >= 3; + canNext = !!data.productType; } else if (step === 2) { body = ( onUpdate({ goal: v })} />