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
- Start: User lands on
/(landing page) - 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
- Action: Scrolls down to view features
- Features Section: Views three feature cards:
- Lightning Fast (CDN, edge caching)
- Enterprise Security (multi-tenant, API keys, RLS)
- xAPI Analytics (LRS, statement querying)
- Code Example: Views code example showing upload process
- Pricing Teaser: Sees pricing tiers (Starter, Professional, Enterprise)
- 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
- Option A: Click "Start Free Trial" button →
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
- Start: User on landing page or navigates directly to
/api/docs - Action: Click "View API Docs" button or "API Reference" in navigation
- Page:
/api/docs- Interactive OpenAPI documentation loads - Exploration:
- Reviews API endpoints (GET, POST, PUT, DELETE)
- Examines request/response schemas
- Tests API calls in interactive console
- Reviews authentication methods (API key)
- Action: Click "Docs" dropdown in navigation
- Documentation:
/docs- Full documentation page- Reads getting started guides
- Reviews integration examples
- Checks error handling docs
- Decision: Ready to try → Click "Start Free Trial"
- 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
- Start: User on landing page or navigates to
/pricing - Action: Click "Pricing" link in navigation
- Page:
/pricing- Pricing page loads - 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
- Comparison: Reviews features for each tier
- All Plans Include: Views included features section
- Support Section: Reads about support offerings
- FAQ: Reviews frequently asked questions
- Decision: Selects a plan
- Action: Click plan's "Start Free Trial" or "Choose Professional" button
- 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
- Start: User clicks "Start Free Trial" from any page
- Check Authentication:
- If not authenticated → Redirected to
/sign-in?redirect_url=/onboarding/checkout - If authenticated → Proceed to
/onboarding/checkout
- If not authenticated → Redirected to
- 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
- Sign In Page:
- Onboarding Page:
/onboarding/checkout- Views three subscription tiers
- Compares features
- Selects a plan
- Action: Click "Start Free Trial" button on selected plan
- Stripe Checkout: Form submits to
/api/onboarding/create-checkout- Redirected to Stripe-hosted checkout
- Enters payment information (if required)
- Completes checkout
- Success: Redirected to
/onboarding/success - Dashboard: Automatically redirected to
/dashboard
Buttons/Actions
- "Start Free Trial" button (multiple locations)
- "Sign In" button (
/sign-in) - "Sign Up" link (
/sign-inpage) - "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
- Start: User completes Stripe checkout (Stripe redirects to
/onboarding/successwith optionalsession_id). - Success Page:
/onboarding/successruns on the server.- If the account already has a primary workspace (
primaryTenantId) and checkout is finished (nosession_id, or Stripe session status iscomplete), 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.
- If the account already has a primary workspace (
- Dashboard:
/dashboardloads- Welcome message displayed
- User type badge shown (if detected)
- Quick stats displayed (storage, packages, user type)
- 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
- 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
- Start: User on landing page
- Action: Click "Features" link in navigation
- Page:
/features- Features page loads - Hero Section: Reads "Everything You Need Built Right In"
- 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
- 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)
- Use Cases: Reads about target users:
- Learning Platforms
- Content Publishers
- Enterprise
- CTA Section: Views call-to-action
- Decision:
- Click "Start Free Trial" →
/onboarding/checkout - Click "View API Docs" →
/api/docs
- Click "Start Free Trial" →
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
- Start: User on any page
- Action: Click "Docs" dropdown in navigation
- Dropdown Options:
- Documentation (
/docs) - API Reference (
/api/docs)
- Documentation (
- Action: Click "Documentation"
- Page:
/docs- Documentation page loads - Navigation:
- Browse documentation sections
- Read getting started guides
- Review integration examples
- Check troubleshooting guides
- API Reference: Can navigate to
/api/docsfor interactive API docs - 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
- Landing page → View features → Check pricing → Sign up
- Time: 5-10 minutes
- Path:
/→/features→/pricing→/onboarding/checkout
Pattern 2: Technical Deep Dive
- Landing page → API docs → Documentation → Sign up
- Time: 15-30 minutes
- Path:
/→/api/docs→/docs→/onboarding/checkout
Pattern 3: Price-First Decision
- Landing page → Pricing → Compare → Sign up
- Time: 3-5 minutes
- 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
- Documentation →
- 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
- Landing Page (
/) - Main entry point - Features Page (
/features) - Feature details - Pricing Page (
/pricing) - Pricing comparison - Documentation (
/docs) - Guides and tutorials - 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
UnifiedNavwithcontext="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