Skip to content

User Journey

Version 2.3 Β· Last updated July 17 2026 For the live access model and gate rules, use access-control.md. This guide keeps the user-flow narrative; the canonical permissions live elsewhere.


User Types at a Glance

Type How they get it Platform access Notes
Free user Self-register Discovery + full Report (read-only) PDF/print/AI chat locked; action tools locked
Explorer Pays RM 59 via Stripe Personal Explore/Design/Master 1-year access; planExpiresAt set by Stripe webhook
Explorer (complimentary) Admin grants it Personal Explore/Design/Master (permanent) plan: 'explorer' with no planExpiresAt
Coach Full application + Stripe payment + admin activation Personal features + Coach Portal plan: 'coach' β€” never expires; managed via Stripe Subscription Schedule
Organisation member Org invitation or assignment Organisation tools StartupOS is separate and controlled by the workspace/add-on model
Institution member Institution workspace membership StartupOS / founder workspace Access depends on startup/institution assignment and the live gate model
Platform Admin Set in MongoDB (role: 'admin') Every feature, no gates Can manage users, orgs, coaches, workshops, promo codes

1. Individual User Journey

1a. Free User

Register
  └─ Complete profile
       └─ Take assessment (`DiscoveryPage.tsx`)
            └─ View basic Report
                 └─ [Gate] Life Design, Growth Loop, Coach/Workshop CTAs
                       └─ Upgrade prompt β†’ /pricing

What a free user can do:

  • Register and complete their profile
  • Take the 47-question personality assessment
  • View the full report β€” all three layer sections (Layer 1 Β· Your Archetype, Layer 2 Β· Your Force, Layer 3 Β· Secondary Voice), Blueprint Decoded, Know Before You Start summary, and Insight panels
  • See "Find a Coach" and "Workshops" CTAs β€” locked with an "Upgrade" prompt
  • Cannot export to PDF, print, or use the AI Report Chat
  • Cannot access Life Design, Growth Loop, Financial Plan, Wellness Profile, or Compatibility Compare
  • Sees an upgrade banner at the bottom of the report listing the paid action tools

1b. Explorer (Paid)

/pricing page
     └─ Enter promo code (optional) or pay RM 59 via Stripe
       └─ Stripe webhook sets plan: 'explorer' + planExpiresAt (1 year)
            └─ Full platform unlocked:
                 β”œβ”€ Stage 2 β€” Life Design (requires Discovery first)
                 β”œβ”€ Stage 3 β€” Growth Loop (requires Discovery + Life Design first)
                 β”œβ”€ Financial Plan, Wellness Profile, Life Design
                 β”œβ”€ Self Mastery (`SelfMasteryPage.tsx`) β€” 5-phase AI-guided self-coaching (requires Discovery + paid)
                 β”œβ”€ Chemistry (`ChemistryPage.tsx`) β€” Work tab: workplace relationship guides + AI team coach; Personal tab: compatibility engine (requires Discovery + Life Design + paid)
                 β”œβ”€ Find a Coach (direct request to coaches in our network)
                 └─ Workshops

Access expiry: planExpiresAt is checked on every gate. When expired, the user is downgraded to free-tier experience until they renew.

Promo code paths:

  • free_access type β€” skips Stripe entirely; admin grants plan directly
  • percent_off / fixed_off β€” Stripe coupon applied at checkout; payment still processed

1c. Explorer (Complimentary β€” Admin Granted)

Admin Dashboard β†’ Users tab
  └─ Grant Full Access button (sets plan: 'explorer', no planExpiresAt)
       └─ User gets permanent Explorer access β€” never expires

This is the correct path for beta testers, partners, or staff. Do not use Stripe coupons for this.


1d. Coach User

The coach onboarding flow has five distinct stages. The portal is not automatically activated on payment β€” it requires admin review and activation after payment is confirmed.

Note: Coach onboarding requires a paid Explorer/Coach state and completed assessment. Historical entry route /coach-apply is currently not mounted in App.tsx.

User submits coach application flow (historically via /coach-apply)
  └─ coachApplications doc created (status: 'pending')
       └─ Admin reviews in AdminDashboard β†’ Coaches tab β†’ Applications
            └─ Admin clicks "Pre-Approve"
                 └─ coachApplications β†’ status: 'approved_pending_payment'
                      user doc: coachAppStatus = 'approved_pending_payment'
                           └─ "Coach Portal" nav link appears for this user
                                └─ CoachPortal shows Payment Gate (RM 599 Stripe button + promo option)
                                     └─ Coach pays via Stripe Checkout
                                          └─ Stripe Webhook (checkout.session.completed):
                                               coachApplications β†’ status: 'payment_received'
                                               user doc: coachAppStatus = 'payment_received'
                                               Subscription Schedule created (RM 599 β†’ RM 199/year)
                                                    └─ CoachPortal shows "Payment Confirmed!" screen
                                                         └─ Admin sees "Activate Coach" button (only on payment_received)
                                                              └─ Admin activates:
                                                                   coaches doc created/reactivated
                                                                   user: plan = 'coach', coachAppStatus cleared
                                                                        └─ Full Coach Portal unlocked

CoachPortal state machine when no coaches doc exists:

coachAppStatus Screen shown
'approved_pending_payment' Payment gate (RM 599 + promo code option)
'payment_received' "Payment Confirmed!" β€” waiting for admin activation
(none, but plan === 'coach') "Activating portal…" fallback
(none) "Not a registered coach" + Apply link

Coach pricing: RM 599 first year, RM 199/year from year 2 onwards (auto-managed via Stripe Subscription Schedule).

Annual renewal reminder: CoachPortal shows an amber banner within 30 days of the annual anniversary, red if overdue. Based on coach.createdAt in MongoDB.

Referral system: Every coach gets a unique referralCode. New users who register via /register?ref=CODE are linked to the coach. 20% referral commission tracked in Admin.


2. The 4-Stage Growth Journey (Explorer + Coach users)

The journey follows the same four nav groups shown in the sidebar: Discover β†’ Explore β†’ Design β†’ Master.

─────────────────────────────────────────────────────────────────────
Stage 1 β€” DISCOVER  (free: report read-only | paid: full report + PDF + AI Chat)
─────────────────────────────────────────────────────────────────────
  /questionnaire   StartHerePage     β€” 47-question psychometric assessment
  /archetype-reveal  ArchetypeReveal  β€” Animated archetype reveal screen
  /report            MyReportPage    β€” 13-phase personalised report (full report free)
                                       PDF export + AI Report Chat = Explorer only

  XP: +500 (assessment complete) β†’ πŸ”“ Blueprint Unlocked badge β†’ β˜„οΈ Comet level

─────────────────────────────────────────────────────────────────────
Stage 2 β€” EXPLORE  (requires Stage 1 + paid plan)
─────────────────────────────────────────────────────────────────────
  /wellness-profile  MindBodyPage      β€” Health: 2 steps
                                         Step 1: Prakriti Quiz (21 questions)
                                         Step 2: Dosha Profile (Vata/Pitta/Kapha)
  XP: +200 β†’ 🧘 Self Aware badge

  /financial-plan    MoneyPlanPage     β€” Financial Stability: 3 steps
                                         Step 1: My Money Style (personality + budget rule)
                                         Step 2: My Money Picture (Quick Mode or full itemised
                                                 cashflow β€” income, investments, expenses,
                                                 liabilities, financed assets)
                                         Step 3: Score & Path (Health Score 0–100,
                                                 mastery level Foundation→Legacy,
                                                 Path-to-Next-Level card, TL;DR badge,
                                                 wealth timeline, archetype habits)
  XP: +300

  /life-simulator    LifeSimulatorPage β€” Career Path: 3 trajectories
                                         Acceleration / Mastery / Contribution
                                         Committed path anchors Foundation in Life Design

  GATE: Health + Financial Stability both completed β†’ Life Design unlocks

─────────────────────────────────────────────────────────────────────
Stage 3 β€” DESIGN  (requires Stage 1 + Health + Financial Stability + paid plan)
─────────────────────────────────────────────────────────────────────
  /life-design       DesignMyLifePage  β€” Life Design: 3-step wizard
    Step 1 β€” Foundation (7 sub-sections + What Drives You motivational quiz)
              1. Self Snapshot (read-only archetype/wellness/financial recap)
              2. Life Path (path badge from Career Path Simulator)
              3. Joy Audit (time disappears / people come to you / free energy)
              4. Ideal Day (long-form, min 80 chars)
              5. Origin Signal (inner child + productive anger)
              6. Ambition (career goal + hobbies)
              7. Synthesized Identity ("I am…" statement + AI synthesis, 3 calls/day)
              + What Drives You quiz (Stability / Variety / Recognition /
                Connection / Mastery / Impact) β€” gates the Foundation step

    Step 2 β€” Guided Ikigai (4 quadrant cards: passion / profession / mission / vocation)
              AI Draft button (sequential: scope=ikigai then scope=vision-mission)
              Per-field tune menu + Ikigai alignment check

    Step 3 β€” Life Wheel & Blueprint
              Phase 1: Score 6 pillars 1–10 + 12-month area statements
              Phase 2: SMART goals per pillar (max 3), Vision, Mission, Capability Gap
              Health goals bridged from wellness profile (read-only)
              Financial goals bridged from financial plan (read-only)
              6-dot alignment system + AI per-pillar alignment check
  XP: +400 β†’ πŸ—οΈ Life Designer badge β†’ πŸ’« Nova level

  /growth-loop       DailyGrowthPage  β€” Growth Loop: 2 tabs (requires Life Design complete)
    Tab 1 β€” Today
              Daily Archetype Insight (rotates by day-of-year, i18n)
              Weekly Intention summary (focus + 3 actions for current ISO week)
              Weekly Challenge card (archetype-tailored, ISO week rotation)
              Alignment trend chart (last 10 reflections)
    Tab 2 β€” Goals (GoalsKanbanTab)
              Goal cards from Life Design pillars (Not Started / In Progress / Completed)
              Per-goal weekly focus block ("What am I creating this week?")
              Per-goal weekly reflection (3 questions + alignment score 0–100)
  XP per reflection: +100 β†’ βš”οΈ Week 1 Warrior badge (first)

─────────────────────────────────────────────────────────────────────
Stage 4 β€” MASTER  (each has own gate β€” all require paid plan)
─────────────────────────────────────────────────────────────────────
  /self-mastery      SelfMasteryPage      β€” 5-phase AI self-coaching
                                             (requires Discovery + paid)
  XP: +250 β†’ πŸͺž Inner Mirror badge (first session)

     /chemistry         ChemistryPage        β€” Chemistry Check (personal compatibility)
                                                                                                               β€” Requires Discovery + paid
                                                                                                               β€” Renders `RelationshipLensPage` inside ChemistryPage
                                                                                                          Work Chemistry now lives under Team Intelligence (organisation surfaces)

  /team              TeamReport           β€” Team archetype distribution
                                             (requires Discovery + paid)

All 4 stages complete β†’ 🌈 Full Spectrum badge + potential 🌟 Supernova level (2,150+ XP total)

Gates enforced in ProtectedRoute.tsx via src/utils/journeyGates.ts:

Gate function What it checks Controls access to
hasPaidAccess(profile) role === 'admin', orgRole === 'coach', or plan === 'explorer' with valid/no expiry. Organisation/institution plans alone do not unlock personal paid modules. All paid modules
canAccessWellnessProfile(profile) discoveryCompleted && hasPaidAccess Health
canAccessFinancialPlan(profile) discoveryCompleted && hasPaidAccess Financial Stability
canAccessFutureStudio(profile) discoveryCompleted && wellnessProfile && financialPlan Life Design, Career Path
canAccessGrowthLoop(profile) discoveryCompleted && wellnessProfile && financialPlan && lifeDesignCompleted Growth Loop
canAccessSelfInquiry(profile) discoveryCompleted && hasPaidAccess Self Mastery
canAccessCorporate(profile) Non-org: discoveryCompleted && lifeDesignCompleted && hasPaidAccess. Org plan: discoveryCompleted only. PeopleBlueprint component usage (not currently mounted as a route in App.tsx)
canAccessCompare(profile) discoveryCompleted && hasPaidAccess Chemistry β€” Personal tab
canAccessOrganisation(profile) discoveryCompleted && (plan === 'organisation' \| !!orgRole \| admin) Org Dashboard, Team Intelligence
canAccessCoachPortal(profile) orgRole === 'coach' \| institutionRole === 'coach' \| admin Coach Portal nav visibility helper

3. Organisation (Corporate) Journey

3a. Platform Admin sets up the org

AdminDashboard β†’ Organisations tab
  └─ Create organisation (name)
       └─ Unique inviteCode generated (e.g. "ACME2026")
            └─ Invite link: https://yourapp.com/register?org=ACME2026
                 └─ Assign coaches to the org (updateOrgCoaches)
                      └─ Activate org plan (activateOrgPlan)
                           β”œβ”€ Sets plan: 'explorer' on the org doc
                           └─ Batch-updates ALL members to plan: 'explorer'

3b. Org Admin journey

An Org Admin is a regular user with orgRole: 'admin' (not a platform-wide admin). They are designated manually or via a future invite-admin flow.

What an Org Admin can do:

  • View all members in their organisation
  • Assign members to coaches (from the org's whitelisted coach list)
  • Monitor member progress (report summaries, growth loop activity)
  • Cannot access platform-wide admin features (user management, promo codes, etc.)

3c. Org Member journey

Employee receives invite link from Org Admin or HR
  └─ /register?org=ACME2026
       └─ Registers normally β€” orgId and orgRole: 'member' auto-assigned
            └─ If org has an active plan β†’ plan: 'explorer' auto-set on their account
                 └─ Full platform access immediately
                      └─ Org Admin can assign them to a specific coach

Key rule: When the org's plan is deactivated, all members are automatically reverted to plan: 'free'. Their data is preserved.


4. Platform Admin Journey

The Platform Admin has role: 'admin' set directly in MongoDB. This bypasses all gates.

Admin capabilities (via /admin):

Tab What they can do
Overview Platform-wide stats (users, assessments, revenue, coaching)
Analytics Archetype distribution charts
Engagement Active user tracking
Research Per-sub-scale Cronbach alpha, item-level stats, research consent tracking
Users Search users, reset cooldown, grant/change plan, view any user's report
Profiles Browse completed profiles
Coaches Manage full coach lifecycle: Pre-Approve / Reject applications; view Payment Received status; Activate Coach; Delete Coach; Grant / Revoke portal access per active coach
Workshops Create, edit, delete workshop events
Promo Codes Create free-access / percent-off / fixed-off codes; toggle; delete
Feedback View all post-report ratings and written notes
Organisations Create orgs, manage invite codes, activate/deactivate org plans

5. How Access Gates Work (Summary)

hasPaidAccess(profile) returns true if ANY of:
     β”œβ”€ profile.role === 'admin'
     β”œβ”€ profile.orgRole === 'coach'
     └─ profile.plan === 'explorer'
                β”œβ”€ AND no planExpiresAt (admin-granted permanent access)
                └─ AND planExpiresAt is in the future (active subscription)

The gate logic lives entirely in src/utils/journeyGates.ts. Both ProtectedRoute.tsx (page-level blocking) and Layout.tsx (nav lock icons) import from this single source of truth.


6. Coaching Request Flow (Client β†’ Coach)

Status note: historical flow reference. /coaching is currently not mounted in App.tsx.

Client (Explorer/Coach plan) browses /coaching
  └─ Finds a coach β†’ clicks "Request to Work Together"
       └─ Sends message β†’ CoachRequest created (status: 'pending')
            └─ Coach sees request in Coach Portal β†’ Requests tab
                 └─ Coach sends a Proposal (price, format, payment details)
                      └─ Client reviews proposal β†’ Accepts (agrees to T&Cs)
                           └─ Client sends payment (outside platform) β†’ uploads receipt
                                └─ Coach confirms payment received
                                     └─ Coaching relationship begins
                                          └─ Shared conversation thread opened (conv ID embedded in notification link as `?conv=<uuid>`)

Request statuses: pending β†’ proposed β†’ accepted β†’ awaiting_payment β†’ payment_submitted β†’ active


7. Retake Cooldown

Users are locked from retaking the assessment for 6 months after their first submission. This prevents mood-based score drift β€” meaningful archetype shifts take at least 6 months of new life experience.

  • Locked screen shows last assessment date + next unlock date
  • Admin can override: set responses/{uid}.createdAt to a date 6+ months ago in MongoDB (e.g. via mongosh or the AdminDashboard user panel)

8. XP System & Progression

The XP system rewards completion across all four stages:

Action XP Earned Badge
Assessment complete +500 πŸ”“ Blueprint Unlocked
Wellness Profile complete +200 🧘 Self Aware
Financial Plan complete +300 β€”
Life Design complete +400 πŸ—οΈ Life Designer
Per-goal weekly reflection saved +100 βš”οΈ Week 1 Warrior (first)
Self Mastery session complete +250 πŸͺž Inner Mirror (first)

Note: Streak milestone XP (+150) and weekly challenge XP (+75) were removed in May 2026. These constants no longer exist in utils/gamification.ts. Per-goal weekly reflection (+100) replaces the old global reflection tab.

Levels (based on cumulative XP): - β˜„οΈ Comet β€” ~500 XP (after assessment) - πŸ’« Nova β€” ~900 XP (after Life Design) - 🌟 Supernova β€” ~2,150+ XP (all stages complete)


9. Platform Access Summary

Feature Free Explorer Coach
Personality Assessment βœ… βœ… βœ…
Core Identity Report βœ… βœ… βœ…
Phases 02–13 Locked βœ… βœ…
Life Design Locked βœ… βœ…
Growth Loop Locked βœ… βœ…
Self Mastery Locked βœ… βœ…
Chemistry (Work + Personal) Locked βœ… βœ…
Find a Coach Locked βœ… βœ…
Workshops Locked βœ… βœ…
Coach Portal ❌ ❌ βœ…

10. Glossary

| Term | Definition | |---|---|---| | Explorer | Paid plan (RM 59/year) β€” unlocks all platform features | | Plan expires | When planExpiresAt is in the past β€” user reverts to free-tier experience | | Discovery complete | discoveryCompleted = true β€” required gate for all Stage 2+ modules | | Life Design complete | lifeDesignCompleted = true β€” required gate for Growth Loop | | Cooldown period | 6-month lockout preventing assessment retake | | Org Member | User who joined via org invite β€” access covered by org plan | | Org Admin | User with orgRole: 'admin' β€” manages their org, not platform-wide | | Platform Admin | User with role: 'admin' in MongoDB β€” full system access |


πŸ“ Content Backlog (documentation edits only)

  • [ ] Add visual flow diagram for the 5-stage journey
  • [ ] Document the full coach portal activation state machine
  • [ ] Translate to Bahasa Malaysia

πŸ› οΈ Product Roadmap (features to build)

  • [ ] Push notifications for weekly reflection reminders
  • [ ] Mobile app with offline-capable journey tracking
  • [ ] Coach dashboard with client progress analytics