Documentation

Component library and technical documentation for building premium content networks.

Quick Start

Get your content network up and running in under 15 minutes.

API Reference

Complete REST API documentation for developers.

Content Management

Learn how to organize, tag, and deliver your content.

Security & Access

Configure access controls and protect your content.

CDN & Delivery

Global content delivery with 280+ edge locations.

Component Library

15 production-ready Svelte 5 components for building premium content experiences.

Landing Page Components

HeroSection

Landing Page

Full-width hero with gradient mesh background, animated ping badge, browser mockup preview, and stats row. Uses clamp() for responsive typography.

Features
  • Gradient mesh background with radial overlays
  • Animated ping badge with pulsing dot
  • Browser chrome mockup with frosted nav
  • Responsive stats row (3 key metrics)
  • CTA buttons with hover transforms
Usage
<!-- Self-contained, no props required -->
<HeroSection />

PlatformPreview

Landing Page

Interactive tabbed preview showing User Portal and Admin Dashboard experiences. Uses Svelte 5 $state() for tab switching with frame chrome browser UI.

Features
  • Tab switching with $state() rune
  • User portal: nav, hero, content rails
  • Admin dashboard: sidebar, stats grid, chart
  • Frosted glass frame chrome effect
  • Responsive layout with scroll areas
Usage
<PlatformPreview />

<!-- Uses Svelte 5 $state() internally for tab switching -->

FeatureComparison

Landing Page

Side-by-side comparison table showing OUTERFIELDS advantages over Uscreen. Uses check/x icons for boolean values and highlighted text for strings.

Features
  • 8 feature comparison rows
  • Boolean values with Check/X icons
  • String values with highlight styling
  • Sticky headers on scroll
  • Mobile-responsive table layout
Usage
<!-- Comparison data is internal -->
<FeatureComparison />

Pricing

Landing Page

Three-tier pricing grid with Creator ($49), Professional ($149), and Business ($399) plans. Professional tier is highlighted with border emphasis.

Features
  • Three pricing tiers with feature lists
  • Highlighted "Most Popular" tier
  • Transaction fee disclosure (2.9% + 30¢)
  • CTA buttons per tier
  • Responsive grid (3→1 column)
Usage
<Pricing />

DemoCTA

Landing Page

Call-to-action section with rocket badge, animated concentric rings, and dual CTA buttons. Used to drive demo signups.

Features
  • Rocket emoji badge with animation
  • Animated visual rings (3 concentric)
  • Primary/secondary CTA buttons
  • Glass card background effect
  • Centered layout with max-width
Usage
<DemoCTA />

Testimonials

Landing Page

Creator success stories with quotes, avatar images, and revenue/subscriber stats. Two-column grid layout with glass card styling.

Features
  • Quote cards with creator attribution
  • Avatar images (64px circles)
  • Revenue and subscriber metrics
  • Star ratings display
  • Two-column responsive grid
Usage
<Testimonials />

EcosystemFeatures

Landing Page

Isometric 3D card layout showing Admin features (left tilt) and User features (right tilt). Uses CSS transforms for perspective effect.

Features
  • Isometric 3D card transforms
  • Admin features: Analytics, Content, Revenue, Community
  • User features: Library, Progress, Community, Mobile
  • Hover animations with scale
  • Icon badges with gradient backgrounds
Usage
<!-- CSS transforms: rotateY(8deg) rotateX(2deg) -->
<EcosystemFeatures />

Video Components

MiniPlayer

Video

Persistent picture-in-picture style player that stays in bottom-right corner. Syncs with videoPlayer store for seamless playback continuity.

Features
  • Fixed position bottom-right
  • Play/pause toggle overlay
  • Progress bar with fill animation
  • Expand to modal action
  • Close button to dismiss
  • Store synchronization with $effect()
Usage
<!-- Rendered conditionally via store state -->
{#if $videoPlayer.mode === 'mini'}
  <MiniPlayer />
{/if}

Architecture Components

PlatformComponents

Architecture

Rams-style breakdown of 6 essential platform systems with expandable feature lists. Includes system overview diagram showing Creator → OUTERFIELDS → Viewers flow.

Features
  • 6 component cards with icons
  • Expandable feature lists on click
  • $state() for active component tracking
  • System overview diagram
  • Arrow flow visualization
  • Dynamic icon rendering via iconMap
Usage
<PlatformComponents />

<!-- Uses $state() internally for accordion behavior -->

BuildProgress

Architecture

Visual timeline showing 90-day build journey with milestone markers. Displays Concept → Core UI → Beta → Launch progression.

Features
  • Progress bar with percentage fill
  • 4 milestone markers (Day 1, 30, 60, 90)
  • Current milestone ping animation
  • Complete/current/upcoming states
  • Responsive milestone labels
Usage
<!-- Milestones are internal data -->
<BuildProgress />

ComponentLab

Architecture

Live previews of 3 design system components (Cinematic Player, Engagement Heatmap, Metric Card) with hover overlay linking to docs.

Features
  • 3 component preview cards
  • Gradient placeholder visuals
  • Hover overlay with "View Docs" button
  • Badge labels for component names
  • Links to component anchor IDs
Usage
<ComponentLab />

Layout Components

Detailed Component Documentation

Deep dive into our most powerful components with live examples and implementation details.

Cinematic Player

Our video player tracks when viewers replay parts of your videos. You see exactly which moments resonate. No guessing.

What It Does

  • Full-screen video playback
  • Custom play/pause controls that match your brand
  • Tracks every second watched (stored in Cloudflare KV)
  • Shows "Most Replayed" heatmap overlay
  • Picture-in-picture mode (keeps playing while browsing)

How Engagement Tracking Works

The player divides your video into 20 equal segments. Every time someone watches a segment, we record it. When they seek backwards to rewatch something, we weight that twice as much. This data becomes your engagement heatmap.

Integration

import { videoPlayer } from '$lib/stores/videoPlayer';

const video = {
  id: 'v1',
  title: 'Your Video Title',
  src: 'https://cdn.example.com/video.mp4',
  thumbnail: 'https://cdn.example.com/thumb.jpg'
};

// Open the player
videoPlayer.play(video);

Data Storage

Engagement data lives in Cloudflare KV with the key engagement:{videoId}. Each bucket stores watch counts. Replay events count double.

Engagement Heatmap

See which parts of your video people replay. The heatmap shows engagement intensity as vertical bars. Taller bars = more replays.

What It Shows

  • 20 bars representing video segments (each is 5% of total duration)
  • Bar height = engagement level (0-100%)
  • Animated reveal when the player opens
  • Real-time updates as viewers interact

How to Read It

Tall bars mean viewers rewound and rewatched that part. Short bars mean people watched once and moved on. Use this to find:

  • Hooks that work (tall bars early on)
  • Confusing parts (tall bars in the middle = people rewatching to understand)
  • Drop-off points (sudden decrease in bar height)

Technical Implementation

// Data structure from KV
{
  "videoId": "v1",
  "buckets": [0.3, 0.5, 0.9, 0.7, ...], // 20 values
  "live": true
}

// Normalized to 0-1 range for visualization
const maxValue = Math.max(...buckets);
const heights = buckets.map(v => (v / maxValue) * 100);

Performance

Heatmap data fetches once when the player opens. Updates happen via POST when viewers interact (debounced to every 2 seconds to reduce API calls).

Metric Card

Clean, animated number displays for your key metrics. Shows total views, watch time, or any other stat that matters.

Features

  • Animated count-up on first load
  • Icon + label + large number layout
  • Trend indicator (up/down arrow with percentage)
  • Glassmorphism background effect

Example Usage

<div class="metric-card">
  <div class="metric-icon">
    <Eye size={20} />
  </div>
  <div class="metric-label">Total Views</div>
  <div class="metric-value">847,293</div>
  <div class="metric-trend positive">
    ↑ 12.3%
  </div>
</div>

Animation Details

The count-up animation uses JavaScript's requestAnimationFrame for smooth 60fps rendering. It increments from 0 to the target value over 1.2 seconds with easing.

When to Use

Use metric cards for your dashboard overview. They work best when showing 3-4 key numbers side-by-side. Keep labels short (1-2 words).

Design Tokens

CSS custom properties used throughout the component library.

Colors

--color-primary #ffffff
--color-bg-pure #000000
--color-bg-surface rgba(255,255,255,0.05)
--color-fg-muted rgba(255,255,255,0.6)

Animation

--duration-micro 200ms
--duration-standard 300ms
--duration-complex 500ms
--ease-standard cubic-bezier(0.4, 0, 0.2, 1)

Typography

--text-display clamp(2.5rem, 4vw + 1.5rem, 5rem)
--text-h1 clamp(2rem, 3vw + 1rem, 3.5rem)
--text-body 1rem
--text-body-sm 0.875rem

Need Help?

Our team is here to support your integration journey.