Public Visitor Journeys

This document maps all user journeys for unauthenticated visitors to the SCORM API website.

Overview

User Type: Public Visitors (Unauthenticated) Entry Point: Landing page (/) Primary Goals: Learn about the service, understand features, compare pricing, sign up


Journey 1: First-Time Visitor Exploring Service

Persona: New visitor, discovering SCORM API Task: Understand what the service offers Entry Point: / (landing page)

Path

graph TD
    A[Landing Page /] --> B[Read hero section]
    B --> C[View feature highlights]
    C --> D{Want more details?}
    D -->|Yes| E[Click 'Features' link]
    D -->|No| F[Scroll to code example]
    E --> G[Features Page /features]
    F --> H[View code example]
    H --> I{Ready to try?}
    I -->|Yes| J[Click 'Start Free Trial']
    I -->|No| K[Click 'View API Docs']
    G --> L[Explore all features]
    L --> M[Click 'Start Free Trial' or 'View API Docs']
    J --> N[Onboarding /onboarding/checkout]
    K --> O[API Docs /api/docs]

Detailed Steps

  1. Start: User lands on / (landing page)
  2. Hero Section:
    • Reads headline: "SCORM API That Just Works"
    • Reads description: "Production-ready SCORM 1.2 & 2004 hosting..."
    • Sees badges: "Same engine powering Allure LMS", "xAPI 1.0.3 Support"
    • Views stats: 99.9% Uptime, <100ms API Response, 416 Passing Tests
  3. Action: Scrolls down to view features
  4. Features Section: Views three feature cards:
    • Lightning Fast (CDN, edge caching)
    • Enterprise Security (multi-tenant, API keys, RLS)
    • xAPI Analytics (LRS, statement querying)
  5. Code Example: Views code example showing upload process
  6. Pricing Teaser: Sees pricing tiers (Starter, Professional, Enterprise)
  7. Decision Point:
    • Option A: Click "Start Free Trial" button → /onboarding/checkout
    • Option B: Click "View API Docs" button → /api/docs
    • Option C: Click "Features" in navigation → /features
    • Option D: Click "Pricing" in navigation → /pricing

Buttons/Actions

  • "Start Free Trial" button (hero section, green CTA)
  • "View API Docs" button (hero section, secondary)
  • "Features" link (navigation)
  • "Pricing" link (navigation)
  • "View All Plans" link (pricing teaser section)

Exit Point

  • /onboarding/checkout (if starting trial)
  • /api/docs (if viewing docs)
  • /features (if exploring features)
  • /pricing (if comparing pricing)

Journey 2: Developer Researching API Capabilities

Persona: Developer evaluating SCORM API for integration Task: Understand technical capabilities and API structure Entry Point: / or direct link to /api/docs

Path

graph TD
    A[Landing Page /] --> B[Click 'View API Docs']
    B --> C[API Docs /api/docs]
    C --> D[Explore OpenAPI spec]
    D --> E[Review endpoints]
    E --> F[Test API calls]
    F --> G{Need more info?}
    G -->|Yes| H[Click 'Docs' in nav]
    G -->|No| I[Ready to integrate]
    H --> J[Documentation /docs]
    J --> K[Read guides]
    K --> I
    I --> L[Click 'Start Free Trial']
    L --> M[Onboarding /onboarding/checkout]

Detailed Steps

  1. Start: User on landing page or navigates directly to /api/docs
  2. Action: Click "View API Docs" button or "API Reference" in navigation
  3. Page: /api/docs - Interactive OpenAPI documentation loads
  4. Exploration:
    • Reviews API endpoints (GET, POST, PUT, DELETE)
    • Examines request/response schemas
    • Tests API calls in interactive console
    • Reviews authentication methods (API key)
  5. Action: Click "Docs" dropdown in navigation
  6. Documentation: /docs - Full documentation page
    • Reads getting started guides
    • Reviews integration examples
    • Checks error handling docs
  7. Decision: Ready to try → Click "Start Free Trial"
  8. Onboarding: Redirected to /onboarding/checkout

Buttons/Actions

  • "View API Docs" button (landing page)
  • "API Reference" link (Docs dropdown in navigation)
  • "Docs" dropdown (navigation)
  • Interactive API console (in /api/docs)
  • "Start Free Trial" button (after research)

Exit Point

/onboarding/checkout (ready to sign up)


Journey 3: Decision-Maker Comparing Pricing

Persona: Business decision-maker evaluating costs Task: Compare pricing plans and understand value Entry Point: / or direct to /pricing

Path

graph TD
    A[Landing Page /] --> B[Click 'Pricing' in nav]
    B --> C[Pricing Page /pricing]
    C --> D[View three tiers]
    D --> E[Compare features]
    E --> F[Read FAQ section]
    F --> G{Decision made?}
    G -->|Yes| H[Click plan CTA]
    G -->|No| I[Click 'Explore Docs']
    H --> J[Onboarding /onboarding/checkout]
    I --> K[Documentation /docs]

Detailed Steps

  1. Start: User on landing page or navigates to /pricing
  2. Action: Click "Pricing" link in navigation
  3. Page: /pricing - Pricing page loads
  4. Pricing Tiers: Views three plans:
    • Starter: $49/mo - 50 packages, 25 GB storage
    • Professional: $199/mo (Most Popular) - 200 packages, 100 GB storage
    • Enterprise: Custom pricing - Up to 10,000 packages, 5 TB storage
  5. Comparison: Reviews features for each tier
  6. All Plans Include: Views included features section
  7. Support Section: Reads about support offerings
  8. FAQ: Reviews frequently asked questions
  9. Decision: Selects a plan
  10. Action: Click plan's "Start Free Trial" or "Choose Professional" button
  11. Onboarding: Redirected to /onboarding/checkout?plan=[tier]

Buttons/Actions

  • "Pricing" link (navigation)
  • "Start Starter Plan" button (Starter tier)
  • "Choose Professional" button (Professional tier)
  • "Book Enterprise Call" button (Enterprise tier)
  • "Start Free Trial" button (CTA section)
  • "Explore Docs" link (CTA section)

Exit Point

/onboarding/checkout?plan=[tier] (selected plan)


Journey 4: User Signing Up for Trial

Persona: Visitor ready to try the service Task: Create account and start free trial Entry Point: Any page with "Start Free Trial" button

Path

graph TD
    A[Any Page] --> B[Click 'Start Free Trial']
    B --> C{Authenticated?}
    C -->|No| D[Sign In /sign-in]
    C -->|Yes| E[Onboarding /onboarding/checkout]
    D --> F[Enter credentials]
    F --> G[Click 'Sign In']
    G --> H{Account exists?}
    H -->|No| I[Click 'Sign Up']
    I --> J[Sign Up /sign-up]
    J --> K[Fill registration form]
    K --> L[Click 'Create Account']
    L --> M[Account created]
    M --> E
    H -->|Yes| N[Authentication successful]
    N --> E
    E --> O[Select plan]
    O --> P[Click 'Start Free Trial']
    P --> Q[Stripe Checkout]
    Q --> R[Complete payment]
    R --> S[Onboarding Success /onboarding/success]
    S --> T[Redirect to /dashboard]

Detailed Steps

  1. Start: User clicks "Start Free Trial" from any page
  2. Check Authentication:
    • If not authenticated → Redirected to /sign-in?redirect_url=/onboarding/checkout
    • If authenticated → Proceed to /onboarding/checkout
  3. If Not Authenticated:
    • Sign In Page: /sign-in
    • Action: Enter email and password, click "Sign In"
    • If no account: Click "Sign Up" link
    • Sign Up Page: /sign-up
    • Action: Fill registration form (email, password, name)
    • Action: Click "Create Account"
    • Result: Account created, redirected to onboarding
  4. Onboarding Page: /onboarding/checkout
    • Views three subscription tiers
    • Compares features
    • Selects a plan
  5. Action: Click "Start Free Trial" button on selected plan
  6. Stripe Checkout: Form submits to /api/onboarding/create-checkout
    • Redirected to Stripe-hosted checkout
    • Enters payment information (if required)
    • Completes checkout
  7. Success: Redirected to /onboarding/success
  8. Dashboard: Automatically redirected to /dashboard

Buttons/Actions

  • "Start Free Trial" button (multiple locations)
  • "Sign In" button (/sign-in)
  • "Sign Up" link (/sign-in page)
  • "Create Account" button (/sign-up)
  • "Start Free Trial" button (plan card on /onboarding/checkout)

Exit Point

/dashboard (authenticated, subscribed, ready to use)


Journey 5: User Completing Onboarding

Persona: New user after sign-up Task: Complete onboarding and access dashboard Entry Point: /onboarding/success

Path

graph TD
    A[Stripe Checkout Complete] --> B[Onboarding Success /onboarding/success]
    B --> C{Workspace ready and checkout complete?}
    C -->|Yes| E[Server redirect to /dashboard]
    C -->|No| D[View status and next steps]
    D --> E2[Refresh or open dashboard when ready]
    E2 --> F[Dashboard loads]
    E --> F
    F --> G[User type detected]
    G --> H{User type?}
    H -->|Unknown| I[See getting started guide]
    H -->|SCORM API| J[See SCORM packages widget]
    H -->|xAPI| K[See xAPI statements widget]
    H -->|Dispatch| L[See dispatch widget]
    I --> M[Click 'Get Started' widget]
    J --> N[Click 'SCORM Packages']
    K --> O[Click 'xAPI Statements']
    L --> P[Click 'Dispatch Packages']

Detailed Steps

  1. Start: User completes Stripe checkout (Stripe redirects to /onboarding/success with optional session_id).
  2. Success Page: /onboarding/success runs on the server.
    • If the account already has a primary workspace (primaryTenantId) and checkout is finished (no session_id, or Stripe session status is complete), the app immediately redirects to /dashboard — users do not need to click “Open dashboard”.
    • If the workspace is still provisioning (no tenant yet) or Stripe status is not yet complete, the page shows status cards, CheckoutConfirmationCard (confirm-payment handoff), and manual links (“Open dashboard”, “Review billing”) until webhooks and membership catch up.
  3. Dashboard: /dashboard loads
    • Welcome message displayed
    • User type badge shown (if detected)
    • Quick stats displayed (storage, packages, user type)
  4. User Type Detection:
    • Unknown: Shows "Get Started" widget with steps
    • SCORM API: Shows "SCORM Packages" widget
    • xAPI: Shows "xAPI Statements" widget
    • Dispatch: Shows "Dispatch Packages" widget
  5. Action: Click on relevant widget to start using the service

Buttons/Actions

  • "Open dashboard" link (/onboarding/success, when the server did not auto-redirect — e.g. still provisioning)
  • Widget cards (/dashboard - click to navigate to feature)

Exit Point

/dashboard (onboarded, ready to use service)


Journey 6: Visitor Exploring Features Page

Persona: Visitor wanting detailed feature information Task: Understand all capabilities of the service Entry Point: / or navigation

Path

graph TD
    A[Landing Page /] --> B[Click 'Features' in nav]
    B --> C[Features Page /features]
    C --> D[Read hero section]
    D --> E[View core features grid]
    E --> F[Read technical specs]
    F --> G[View use cases]
    G --> H{Ready to sign up?}
    H -->|Yes| I[Click 'Start Free Trial']
    H -->|No| J[Click 'View API Docs']
    I --> K[Onboarding /onboarding/checkout]
    J --> L[API Docs /api/docs]

Detailed Steps

  1. Start: User on landing page
  2. Action: Click "Features" link in navigation
  3. Page: /features - Features page loads
  4. Hero Section: Reads "Everything You Need Built Right In"
  5. Core Features Grid: Views 6 feature cards:
    • SCORM 1.2 & 2004
    • xAPI 1.0.3 LRS
    • Cloud Storage
    • Multi-Tenant Security
    • Session Management
    • RESTful API
  6. Technical Specs: Reviews four specification sections:
    • Performance (<100ms response, CDN, optimistic locking)
    • Reliability (99.9% uptime, backups, monitoring)
    • Security (SHA-256, RLS, rate limiting, HTTPS)
    • Testing (416 tests, TypeScript strict mode)
  7. Use Cases: Reads about target users:
    • Learning Platforms
    • Content Publishers
    • Enterprise
  8. CTA Section: Views call-to-action
  9. Decision:
    • Click "Start Free Trial" → /onboarding/checkout
    • Click "View API Docs" → /api/docs

Buttons/Actions

  • "Features" link (navigation)
  • "Start Free Trial" button (CTA section)
  • "View API Docs" button (CTA section)

Exit Point

/onboarding/checkout or /api/docs


Journey 7: Visitor Accessing Documentation

Persona: Developer or technical user Task: Access comprehensive documentation Entry Point: Navigation or direct link

Path

graph TD
    A[Any Page] --> B[Click 'Docs' dropdown]
    B --> C[Select 'Documentation']
    C --> D[Documentation /docs]
    D --> E[Browse documentation]
    E --> F{Need API reference?}
    F -->|Yes| G[Click 'API Reference']
    F -->|No| H[Continue reading]
    G --> I[API Docs /api/docs]
    H --> J[Read guides]
    J --> K{Ready to try?}
    K -->|Yes| L[Click 'Start Free Trial']
    K -->|No| M[Continue exploring]
    L --> N[Onboarding /onboarding/checkout]

Detailed Steps

  1. Start: User on any page
  2. Action: Click "Docs" dropdown in navigation
  3. Dropdown Options:
    • Documentation (/docs)
    • API Reference (/api/docs)
  4. Action: Click "Documentation"
  5. Page: /docs - Documentation page loads
  6. Navigation:
    • Browse documentation sections
    • Read getting started guides
    • Review integration examples
    • Check troubleshooting guides
  7. API Reference: Can navigate to /api/docs for interactive API docs
  8. Action: When ready, click "Start Free Trial" to sign up

Buttons/Actions

  • "Docs" dropdown (navigation)
  • "Documentation" option (Docs dropdown)
  • "API Reference" option (Docs dropdown)
  • "Start Free Trial" button (documentation page)

Exit Point

/onboarding/checkout (if signing up) or continues reading docs


Common Public Visitor Patterns

Pattern 1: Quick Evaluation

  1. Landing page → View features → Check pricing → Sign up
  2. Time: 5-10 minutes
  3. Path: //features/pricing/onboarding/checkout

Pattern 2: Technical Deep Dive

  1. Landing page → API docs → Documentation → Sign up
  2. Time: 15-30 minutes
  3. Path: //api/docs/docs/onboarding/checkout

Pattern 3: Price-First Decision

  1. Landing page → Pricing → Compare → Sign up
  2. Time: 3-5 minutes
  3. Path: //pricing/onboarding/checkout

Navigation Elements Available

Public Navigation (Unauthenticated)

  • Logo: Links to /
  • Features: Links to /features
  • Pricing: Links to /pricing
  • Docs Dropdown:
    • Documentation → /docs
    • API Reference → /api/docs
  • Sign In: Links to /sign-in?redirect_url=/dashboard
  • Get Started: Links to /sign-up?redirect_url=/onboarding/checkout

Footer Links

  • API Docs → /api/docs
  • Status → /api/health
  • GitHub → External link
  • Support → Email link

Entry Points Summary

Primary Entry Points

  1. Landing Page (/) - Main entry point
  2. Features Page (/features) - Feature details
  3. Pricing Page (/pricing) - Pricing comparison
  4. Documentation (/docs) - Guides and tutorials
  5. API Reference (/api/docs) - Interactive API docs

Conversion Points

  • "Start Free Trial" buttons (multiple locations)
  • Plan selection on /onboarding/checkout
  • Sign up from /sign-in

Technical Notes

  • All public pages use UnifiedNav with context="public"
  • Authentication handled by Clerk
  • Onboarding flow uses Stripe for subscription management
  • User type detection happens after first login
  • Documentation is static markdown (if applicable) or dynamic