- Flashalpha
Flashalpha
<meta charset="utf-8">
<title>FlashAlpha | Options Analytics API - Greeks, Exposure & Vol Surfaces</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Real-time options analytics API. Greeks, gamma exposure (GEX), SVI volatility surfaces, and market data for 6,000+ underlyings. Free tier available - get your API key in minutes.">
<meta name="keywords" content="options analytics API, gamma exposure API, GEX data, SVI volatility surface API, options Greeks API, real-time options data, quant developer tools, delta exposure, vanna exposure, options market data, low latency options analytics, algorithmic backtesting options">
<meta name="robots" content="index,follow">
<meta name="ai-description" content="FlashAlpha: real-time options analytics REST API. Computed GEX, DEX, VEX, CHEX exposure, SVI volatility surfaces, 15 BSM Greeks, max pain, dealer positioning for 6,000+ US equities/ETFs. MCP server: lab.flashalpha.com/mcp. Docs: flashalpha.com/llms.txt. Free tier: 5 req/day, no credit card. SDKs: Python, JS, C#, Go, Java.">
<meta name="author" content="Tomasz Dobrowolski, Chief Technology Officer">
<meta property="og:title" content="FlashAlpha | Options Analytics API">
<meta property="og:description" content="Real-time options analytics API - Greeks, gamma exposure, SVI vol surfaces for 6,000+ underlyings. Free tier available.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://flashalpha.com/">
<meta property="og:image" content="https://flashalpha.com/images/hero-image-2.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:locale" content="en_US">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@FlashAlphaLab">
<meta name="twitter:creator" content="@FlashAlphaLab">
<meta name="twitter:title" content="FlashAlpha | Options Analytics API">
<meta name="twitter:description" content="Real-time options analytics API - Greeks, gamma exposure, SVI vol surfaces for 6,000+ underlyings. Free tier available.">
<meta name="twitter:image" content="https://flashalpha.com/images/hero-image-2.jpg">
<link rel="canonical" href="https://flashalpha.com/" />
<link rel="icon" type="image/png" href="/images/logo.png" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500&family=Inter+Tight:ital,wght@0,500;0,600;0,700;1,700&display=optional" rel="stylesheet">
<link href="/css/styles2.css?v=202512221700" rel="stylesheet">
<!-- Structured Data: Organization Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "FlashAlpha",
"alternateName": "FlashAlpha Labs",
"url": "https://flashalpha.com",
"logo": "https://flashalpha.com/images/logo.png",
"description": "Options analytics API platform. Real-time Greeks, gamma exposure (GEX), SVI volatility surfaces, and market data for 6,000+ underlyings via REST API.",
"foundingDate": "2023",
"founder": {
"@type": "Person",
"name": "Tomasz Dobrowolski",
"jobTitle": "Chief Technology Officer",
"sameAs": ["https://www.linkedin.com/in/tomasz-dobrowolski-8b229836/", "https://x.com/FlashAlphaLab"]
},
"address": {
"@type": "PostalAddress",
"addressCountry": "CY"
},
"sameAs": [
"https://x.com/FlashAlphaLab",
"https://www.linkedin.com/in/tomasz-dobrowolski-8b229836/"
],
"knowsAbout": ["Options Analytics", "Quantitative Trading", "Volatility Surface Modeling", "Portfolio Margin Analytics", "Algorithmic Trading", "Second-Order Greeks", "Market Microstructure", "Options Analytics API", "Low Latency Infrastructure"]
}
</script>
<!-- Structured Data: SoftwareApplication Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "FlashAlpha Options Analytics API",
"applicationCategory": "FinanceApplication",
"operatingSystem": "Web",
"description": "Options analytics API with real-time Greeks, gamma exposure (GEX), SVI volatility surfaces, and market data for 6,000+ underlyings. REST API with tier-based data freshness: 15-minute (Free), 15-second (Basic/Growth), no cache (Alpha).",
"url": "https://flashalpha.com",
"image": "https://flashalpha.com/images/hero-image-2.jpg",
"author": {
"@type": "Organization",
"name": "FlashAlpha",
"url": "https://flashalpha.com"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"ratingCount": "47",
"bestRating": "5",
"worstRating": "1"
},
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"description": "Free tier with 5 API requests per day. Paid plans from $79/month.",
"url": "https://flashalpha.com/pricing"
}
}
</script>
<!-- Structured Data: WebSite Schema for Sitelinks -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "FlashAlpha",
"url": "https://flashalpha.com",
"potentialAction": {
"@type": "SearchAction",
"target": "https://flashalpha.com/stock/{search_term_string}",
"query-input": "required name=search_term_string"
}
}
</script>
Two API hosts with identical response shapes:
- Live: https://lab.flashalpha.com
- Historical: https://historical.flashalpha.com (add ?at=YYYY-MM-DDTHH:mm:ss, Alpha tier) Every live analytics endpoint is mirrored on the historical host; the same SDK code targets both with a base-URL swap. SPY fully backfilled from 2018-04-16.
API Documentation (Markdown for LLMs): https://flashalpha.com/llms.txt
Full API reference for LLMs: https://flashalpha.com/llms-full.txt
API Docs (HTML): https://flashalpha.com/docs/lab-api-overview
Historical API docs: https://flashalpha.com/docs/historical-api https://flashalpha.com/docs/historical.md (Markdown spec)
OpenAPI/Swagger specification: https://lab.flashalpha.com/swagger
MCP Server (Model Context Protocol for AI assistants):
URL: https://lab.flashalpha.com/mcp
Protocol: Streamable HTTP (MCP 2025-06-18)
Setup: claude mcp add flashalpha --transport http https://lab.flashalpha.com/mcp
Tools: 73 total (56 live + 17 historical replay), snake_case names, including get_gex, get_dex, get_vex, get_chex, get_levels, get_exposure_summary, get_narrative, get_max_pain, get_zero_dte, get_volatility, get_advanced_volatility, get_vrp, get_vrp_history, get_stock_summary, get_stock_quote, get_option_quote, get_option_chain, get_tickers, get_account, get_surface, get_flow_summary, get_flow_signals, post_screener, post_structure_pnl, post_structure_greeks, calculate_greeks, solve_iv, calculate_kelly + 17 get_historical_* variants
in one MCP server. Historical tools require an at timestamp parameter.
Persona-scoped connectors (same full toolset, tuned per trading style): apiKey at https://lab.flashalpha.com/mcp/{slug}, OAuth at https://lab.flashalpha.com/mcp-oauth/{slug}, where slug = gex | directional | premium | spreads | 0dte | swing | volarb | quant | earnings (e.g. https://lab.flashalpha.com/mcp-oauth/0dte). Use a persona connector for a specific trading style or the generic server above for everything.
Docs: https://flashalpha.com/docs/mcp
AI skills file: https://flashalpha.com/skill.md
AI agent integration guide: https://flashalpha.com/for-ai-agents
SDKs: Python (pip install flashalpha), JavaScript (npm install flashalpha), C# (dotnet add package FlashAlpha), Go, Java
Pricing & free API key (no credit card): https://flashalpha.com/pricing
Monthly billing: Basic $79/mo, Growth $299/mo, Alpha $1,499/mo. Annual billing saves 20% versus monthly and locks the price for 12 months: Basic $63/mo billed yearly ($756/yr), Growth $239/mo billed yearly ($2,868/yr), Alpha $1,199/mo billed yearly ($14,388/yr).
Options analytics concepts glossary (57 concepts): https://flashalpha.com/concepts
GitHub (SDKs, MCP server, examples): https://github.com/FlashAlpha-lab -->
<div class="shrink-0 mr-4">
<a class="flex items-center justify-center bg-white w-10 h-10 rounded-sm shadow-xs shadow-zinc-950/20" href="/">
<img src="/images/logo.png" width="60" height="34" alt="FlashAlpha Logo">
</a>
</div>
<nav class="hidden md:flex grow">
<ul class="flex grow justify-end flex-wrap items-center" style="gap: 0.25rem;">
<li>
<a class="text-sm font-medium text-zinc-500 hover:text-zinc-900 py-2 flex items-center transition" style="padding-left: 0.5rem; padding-right: 0.5rem;" href="/docs/lab-api-overview">Docs</a>
</li>
<li>
<a class="text-sm font-medium text-zinc-500 hover:text-zinc-900 py-2 flex items-center transition" style="padding-left: 0.5rem; padding-right: 0.5rem;" href="/docs/playground">Playground</a>
</li>
<li>
<a class="text-sm font-medium text-zinc-500 hover:text-zinc-900 py-2 flex items-center transition" style="padding-left: 0.5rem; padding-right: 0.5rem;" href="/concepts">Concepts</a>
</li>
<li class="relative">
<button @click="toolsOpen = !toolsOpen" @click.away="toolsOpen = false" class="text-sm font-medium text-zinc-500 hover:text-zinc-900 py-2 flex items-center transition" style="padding-left: 0.5rem; padding-right: 0.5rem;">
Tools
</button>
<div x-show="toolsOpen" x-cloak x-transition:enter="transition ease-out duration-150" x-transition:enter-start="opacity-0 -translate-y-1" x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-in duration-100" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"
style="position:absolute; right:0; top:100%; margin-top:8px; width:280px; background:#fff; border-radius:12px; box-shadow:0 8px 30px rgba(0,0,0,0.12),0 2px 8px rgba(0,0,0,0.06); border:1px solid #e4e4e7; padding:6px 0; z-index:50;">
<a href="/gex" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#f0f9ff; color:#0369a1;">
<svg style="width:14px;height:14px;" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/></svg>
</span>
<span><span class="fa-dd-label">GEX Dashboard</span><div class="fa-dd-desc">Real-time gamma exposure overview</div></span>
</a>
<a href="/iv-rank" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#fdf2f8; color:#be185d;">
<svg style="width:14px;height:14px;" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"/></svg>
</span>
<span><span class="fa-dd-label">IV Rank</span><div class="fa-dd-desc">Implied volatility scanner</div></span>
</a>
<a href="/tools/zero-dte-live" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#eef2ff; color:#4f46e5; font-weight:700;">0D</span>
<span><span class="fa-dd-label">0DTE Live <span style="display:inline-block;margin-left:6px;font-size:9px;font-weight:700;color:#fff;background:#4f46e5;padding:1px 5px;border-radius:999px;letter-spacing:0.02em;">NEW</span></span><div class="fa-dd-desc">Pin risk, regime, expected move</div></span>
</a>
<div style="border-top:1px solid #f4f4f5; margin:4px 12px;"></div>
<a href="/tools" class="fa-dd-head">
<span style="display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:#f4f4f5;">
<svg style="width:14px;height:14px;" fill="none" stroke="#3f3f46" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"/></svg>
</span>
All Tools
</a>
<div style="border-top:1px solid #f4f4f5; margin:4px 12px;"></div>
<a href="/tools/gamma-exposure" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#e0f2fe; color:#0284c7;">Γ</span>
<span><span class="fa-dd-label">GEX</span><div class="fa-dd-desc">Gamma exposure by strike</div></span>
</a>
<a href="/tools/delta-exposure" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#ede9fe; color:#7c3aed;">Δ</span>
<span><span class="fa-dd-label">DEX</span><div class="fa-dd-desc">Delta exposure by strike</div></span>
</a>
<a href="/tools/vanna-exposure" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#fef3c7; color:#d97706;">ν</span>
<span><span class="fa-dd-label">VEX</span><div class="fa-dd-desc">Vanna exposure by strike</div></span>
</a>
<a href="/tools/charm-exposure" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#d1fae5; color:#059669;">Χ</span>
<span><span class="fa-dd-label">CHEX</span><div class="fa-dd-desc">Charm exposure by strike</div></span>
</a>
<a href="/tools/vol-surface" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#ffe4e6; color:#e11d48;">σ</span>
<span><span class="fa-dd-label">Vol Surface</span><div class="fa-dd-desc">3D implied volatility</div></span>
</a>
<div style="border-top:1px solid #f4f4f5; margin:4px 12px;"></div>
<a href="/tools/gex-calculator" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#e0f2fe; color:#0284c7;">Σ</span>
<span><span class="fa-dd-label">GEX Calculator</span><div class="fa-dd-desc">Gamma exposure calculator</div></span>
</a>
<a href="/tools/options-greeks-calculator" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#fef9c3; color:#a16207;">Δ</span>
<span><span class="fa-dd-label">Greeks Calculator</span><div class="fa-dd-desc">Black-Scholes Greeks</div></span>
</a>
<a href="/tools/implied-volatility-calculator" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#fce7f3; color:#be185d;">IV</span>
<span><span class="fa-dd-label">IV Calculator</span><div class="fa-dd-desc">Implied volatility solver</div></span>
</a>
<a href="/tools/kelly-criterion-calculator" class="fa-dd-item">
<span class="fa-dd-icon" style="background:#dcfce7; color:#16a34a;">K</span>
<span><span class="fa-dd-label">Options Kelly Calculator</span><div class="fa-dd-desc">Optimal position sizing</div></span>
</a>
</div>
</li>
<li id="fa-auth-nav" style="margin-left: 0.25rem;">
<a class="btn-sm text-zinc-100 bg-zinc-900 hover:bg-zinc-800 w-full shadow-sm" href="/pricing" data-analytics="cta-header">Pricing</a>
</li>
</ul>
</nav>
<button @click="mobileMenuOpen = !mobileMenuOpen" class="fa-mobile-toggle" aria-label="Toggle menu">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" style="fill:#52525b;flex-shrink:0;" x-show="!mobileMenuOpen">
<rect x="2" y="4" width="16" height="2" rx="1" />
<rect x="2" y="9" width="16" height="2" rx="1" />
<rect x="2" y="14" width="16" height="2" rx="1" />
</svg>
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" style="fill:#52525b;flex-shrink:0;display:none;" x-show="mobileMenuOpen">
<path d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" />
</svg>
</button>
<div x-show="mobileMenuOpen" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 -translate-y-2" x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 -translate-y-2" @click.away="mobileMenuOpen = false" class="fa-mobile-toggle-panel" style="display:none; position:absolute; top:100%; left:0; right:0; background:#fff; border-radius:12px; box-shadow:0 8px 30px rgba(0,0,0,0.12); padding:8px; margin-top:6px; z-index:50;">
<a href="/docs/lab-api-overview" style="display:block; padding:0.625rem 0.75rem; font-size:0.875rem; font-weight:500; color:#52525b; border-radius:8px; text-decoration:none;">Docs</a>
<a href="/docs/playground" style="display:block; padding:0.625rem 0.75rem; font-size:0.875rem; font-weight:500; color:#52525b; border-radius:8px; text-decoration:none;">Playground</a>
<a href="/concepts" style="display:block; padding:0.625rem 0.75rem; font-size:0.875rem; font-weight:500; color:#52525b; border-radius:8px; text-decoration:none;">Concepts</a>
<button @click="mobileToolsOpen = !mobileToolsOpen" style="display:flex; align-items:center; justify-content:space-between; width:100%; padding:0.625rem 0.75rem; font-size:0.875rem; font-weight:500; color:#52525b; border-radius:8px; text-decoration:none; background:none; border:none; cursor:pointer; font-family:inherit;">
Tools
</button>
<div x-show="mobileToolsOpen" x-cloak style="padding-left:0.5rem;">
<a href="/gex" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:500; color:#3f3f46; border-radius:6px; text-decoration:none;">GEX Dashboard</a>
<a href="/iv-rank" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:500; color:#3f3f46; border-radius:6px; text-decoration:none;">IV Rank</a>
<a href="/tools/zero-dte-live" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:500; color:#3f3f46; border-radius:6px; text-decoration:none;"><span style="width:22px;height:22px;border-radius:5px;background:#eef2ff;color:#4f46e5;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;">0D</span> 0DTE Live <span style="display:inline-block;font-size:9px;font-weight:700;color:#fff;background:#4f46e5;padding:1px 5px;border-radius:999px;letter-spacing:0.02em;">NEW</span></a>
<div style="border-top:1px solid #f4f4f5; margin:4px 0;"></div>
<a href="/tools" style="display:flex; align-items:center; gap:8px; padding:0.5rem 0.75rem; font-size:0.8125rem; font-weight:500; color:#3f3f46; border-radius:6px; text-decoration:none;">All Tools</a>
<a href="/tools/gamma-exposure" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:400; color:#71717a; border-radius:6px; text-decoration:none;"><span style="width:22px;height:22px;border-radius:5px;background:#e0f2fe;color:#0284c7;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;">Γ</span> GEX</a>
<a href="/tools/delta-exposure" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:400; color:#71717a; border-radius:6px; text-decoration:none;"><span style="width:22px;height:22px;border-radius:5px;background:#ede9fe;color:#7c3aed;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;">Δ</span> DEX</a>
<a href="/tools/vanna-exposure" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:400; color:#71717a; border-radius:6px; text-decoration:none;"><span style="width:22px;height:22px;border-radius:5px;background:#fef3c7;color:#d97706;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;">ν</span> VEX</a>
<a href="/tools/charm-exposure" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:400; color:#71717a; border-radius:6px; text-decoration:none;"><span style="width:22px;height:22px;border-radius:5px;background:#d1fae5;color:#059669;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;">Χ</span> CHEX</a>
<a href="/tools/vol-surface" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:400; color:#71717a; border-radius:6px; text-decoration:none;"><span style="width:22px;height:22px;border-radius:5px;background:#ffe4e6;color:#e11d48;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;">σ</span> Vol Surface</a>
<a href="/tools/options-greeks-calculator" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:400; color:#71717a; border-radius:6px; text-decoration:none;"><span style="width:22px;height:22px;border-radius:5px;background:#fef9c3;color:#a16207;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;">Δ</span> Greeks Calc</a>
<a href="/tools/implied-volatility-calculator" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:400; color:#71717a; border-radius:6px; text-decoration:none;"><span style="width:22px;height:22px;border-radius:5px;background:#fce7f3;color:#be185d;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;">IV</span> IV Calc</a>
<a href="/tools/kelly-criterion-calculator" style="display:flex; align-items:center; gap:8px; padding:0.4rem 0.75rem; font-size:0.8125rem; font-weight:400; color:#71717a; border-radius:6px; text-decoration:none;"><span style="width:22px;height:22px;border-radius:5px;background:#dcfce7;color:#16a34a;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;">K</span> Options Kelly Calc</a>
</div>
<div id="fa-auth-mobile" style="padding-top:0.5rem;">
<a href="/pricing" style="display:block; text-align:center; padding:0.625rem 0.75rem; font-size:0.875rem; font-weight:600; color:#fff; background:#18181b; border-radius:8px; text-decoration:none;" data-analytics="cta-mobile-menu">Pricing</a>
</div>
</div>
</div>
</div>
</div>
<div style="display:flex;gap:0.75rem;">
<a href="/docs/lab-api-overview" style="flex:1;display:block;text-align:center;padding:0.625rem;background:#f4f4f5;color:#3f3f46;border-radius:0.5rem;font-size:0.8125rem;font-weight:600;text-decoration:none;">View Docs</a>
<button onclick="dismissWelcome()" style="flex:1;padding:0.625rem;background:#059669;color:#fff;border:none;border-radius:0.5rem;font-size:0.8125rem;font-weight:600;cursor:pointer;">Got it, let's go!</button>
</div>
</div>
})();
<!-- 1st item -->
<div class="relative text-center md:px-5 after:hidden md:after:block after:absolute after:right-0 after:top-1/2 after:-translate-y-1/2 after:w-px after:h-8 after:border-l after:border-zinc-300 after:border-dashed last:after:hidden">
<h3 class="font-inter-tight text-2xl md:text-3xl font-bold tabular-nums mb-2"><span x-data="counter(1.5)" x-text="counterValue">1.5</span>M+</h3>
<p class="text-sm text-zinc-600">Options structures scanned per second.</p>
</div>
<!-- 2nd item -->
<div class="relative text-center md:px-5 after:hidden md:after:block after:absolute after:right-0 after:top-1/2 after:-translate-y-1/2 after:w-px after:h-8 after:border-l after:border-zinc-300 after:border-dashed last:after:hidden">
<h3 class="font-inter-tight text-2xl md:text-3xl font-bold tabular-nums mb-2"><span x-data="counter(15)" x-text="counterValue">15</span>s</h3>
<p class="text-sm text-zinc-600">Cache-fresh analytics updates.</p>
</div>
<!-- 3rd item -->
<div class="relative text-center md:px-5 after:hidden md:after:block after:absolute after:right-0 after:top-1/2 after:-translate-y-1/2 after:w-px after:h-8 after:border-l after:border-zinc-300 after:border-dashed last:after:hidden">
<h3 class="font-inter-tight text-2xl md:text-3xl font-bold tabular-nums mb-2"><span x-data="counter(6000)" x-text="counterValue">6000</span>+</h3>
<p class="text-sm text-zinc-600">Underlyings with live vol surfaces.</p>
</div>
</div>
<!-- Animate counter functionality: https://github.com/alpinejs/alpine -->
<script>
document.addEventListener('alpine:init', () => {
Alpine.data('counter', (target = 0, duration = 3000) => ({
startTimestamp: null,
step: null,
rawValue: 0,
counterValue: 0,
target: target,
precision: (target % 1 === 0) ? 0 : (target.toString().split('.')[1] || []).length,
animationRequestId: null,
animationCompleted: false,
observer: null,
init() {
// Intersection observer to watch visibility
this.observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
// Check if element is in view
if (entry.isIntersecting && !this.animationCompleted) {
this.startAnimation()
}
})
})
this.observer.observe(this.$el)
},
startAnimation() {
this.step = (timestamp) => {
if (!this.startTimestamp) this.startTimestamp = timestamp
const progress = Math.min((timestamp - this.startTimestamp) / duration, 1)
const easedProgress = this.easeOut(progress)
this.rawValue = parseFloat((easedProgress * this.target).toFixed(this.precision))
this.counterValue = this.rawValue.toFixed(this.precision)
if (progress < 1) {
this.animationRequestId = window.requestAnimationFrame(this.step)
} else {
this.animationCompleted = true
}
}
this.animationRequestId = window.requestAnimationFrame(this.step);
},
easeOut(t) {
return 1 - Math.pow(1 - t, 5)
},
destroy() {
// Detach the handler, avoiding memory and side-effect leakage
this.animationRequestId && window.cancelAnimationFrame(this.step)
this.observer && this.observer.disconnect()
},
}))
})
</script>
</div>
</div>
</section>
<!-- Trader-type finder / onboarding -->
<section class="border-b border-zinc-200" style="background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);">
<div class="max-w-6xl mx-auto px-4 sm:px-6 py-14 md:py-16">
<style>
.ff-stage { position:relative; display:flex; flex-direction:column; justify-content:center; scroll-margin-top:0.75rem; }
.ff-enter { transition: opacity .4s ease .12s, transform .45s cubic-bezier(.2,.7,.3,1) .12s; }
.ff-enter-start { opacity: 0; transform: translateY(18px); }
.ff-enter-end { opacity: 1; transform: translateY(0); }
.ff-leave { position:absolute; left:0; right:0; top:0; transition: opacity .22s ease, transform .22s ease; }
.ff-leave-start { opacity: 1; transform: translateY(0); }
.ff-leave-end { opacity: 0; transform: translateY(-12px); }
/* Clickable archetype card */
.ff-card { --accent:#7c3aed; --tint:#ede9fe; position:relative; display:flex; align-items:center; gap:1rem;
width:100%; text-align:left; cursor:pointer; background:#fff; border:1px solid #e7e7ea; border-radius:1rem;
padding:1.15rem 1.2rem; box-shadow:0 1px 2px rgba(16,24,40,.05), 0 2px 5px rgba(16,24,40,.05);
transition:transform .2s cubic-bezier(.2,.7,.3,1), box-shadow .2s ease, border-color .2s ease; -webkit-appearance:none; }
.ff-card::before { content:""; position:absolute; left:-1px; top:15px; bottom:15px; width:3px; border-radius:0 4px 4px 0;
background:var(--accent); transform:scaleY(0); transform-origin:center; transition:transform .2s ease; }
.ff-card:hover { transform:translateY(-4px); border-color:var(--accent);
box-shadow:0 24px 48px -22px color-mix(in srgb, var(--accent) 60%, transparent), 0 6px 14px -8px rgba(16,24,40,.10); }
.ff-card:hover::before { transform:scaleY(1); }
.ff-card:active { transform:translateY(-1px); transition-duration:.08s; }
.ff-card:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.ff-ico { flex:none; width:3rem; height:3rem; border-radius:.85rem; display:flex; align-items:center; justify-content:center;
font-size:1.5rem; background:var(--tint); box-shadow:inset 0 0 0 1px rgba(0,0,0,.05); transition:transform .25s cubic-bezier(.2,.7,.3,1); }
.ff-card:hover .ff-ico { transform:scale(1.08) rotate(-4deg); }
.ff-body { min-width:0; flex:1; }
.ff-title { display:block; font-weight:600; color:#18181b; letter-spacing:-.011em; transition:color .2s ease; }
.ff-card:hover .ff-title { color:var(--accent); }
.ff-sub { display:block; font-size:.8125rem; color:#71717a; margin-top:.22rem; line-height:1.35; }
.ff-chev { flex:none; width:2rem; height:2rem; border-radius:9999px; display:flex; align-items:center; justify-content:center;
background:#f4f4f5; color:#a1a1aa; transition:background .2s ease, color .2s ease, transform .2s ease; }
.ff-card:hover .ff-chev { background:var(--accent); color:#fff; transform:translateX(3px); }
.ff-dashed { background:#fafafa; border-style:dashed; box-shadow:none; }
.ff-dashed:hover { background:#fff; }
/* Back / nav button */
.ff-back { display:inline-flex; align-items:center; gap:.35rem; font-size:.8125rem; font-weight:500; color:#52525b;
background:#fff; border:1px solid #e4e4e7; border-radius:9999px; padding:.4rem .85rem; cursor:pointer;
box-shadow:0 1px 2px rgba(16,24,40,.05); transition:color .15s, border-color .15s, box-shadow .15s, transform .15s; }
.ff-back:hover { color:#18181b; border-color:#d4d4d8; box-shadow:0 3px 8px rgba(16,24,40,.09); transform:translateX(-2px); }
/* "Not sure / skip", a clear (muted) clickable pill, not bare text */
.ff-skip { display:inline-flex; align-items:center; gap:.35rem; font-size:.8125rem; font-weight:500; color:#71717a;
background:#fff; border:1px solid #e4e4e7; border-radius:9999px; padding:.45rem 1rem; cursor:pointer;
box-shadow:0 1px 2px rgba(16,24,40,.05); transition:color .15s, border-color .15s, box-shadow .15s, transform .15s; }
.ff-skip:hover { color:#3f3f46; border-color:#d4d4d8; box-shadow:0 3px 8px rgba(16,24,40,.08); transform:translateY(-1px); }
.ff-skip svg { color:#a1a1aa; }
/* Refine option button (capability/endpoint chooser) */
.ff-opt { --accent:#7c3aed; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.35rem; text-align:center; min-height:4.75rem;
background:#fff; border:1px solid #e4e4e7; border-radius:.85rem; padding:.85rem 1rem; color:#27272a; cursor:pointer;
box-shadow:0 1px 2px rgba(16,24,40,.05); transition:transform .18s cubic-bezier(.2,.7,.3,1), box-shadow .18s ease, border-color .18s ease, color .18s ease; }
.ff-opt:hover { transform:translateY(-3px); border-color:var(--accent); color:var(--accent);
box-shadow:0 18px 34px -20px color-mix(in srgb, var(--accent) 60%, transparent); }
.ff-opt:active { transform:translateY(-1px); transition-duration:.08s; }
.ff-opt-ico { font-size:1.5rem; line-height:1; }
.ff-opt-label { font-weight:600; font-size:.9375rem; line-height:1.2; }
.ff-opt-desc { font-size:.78rem; font-weight:400; line-height:1.3; color:#71717a; max-width:18rem; }
.ff-opt-tier { font-size:.65rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#a1a1aa; }
.ff-opt:hover .ff-opt-tier { color:var(--accent); }
.ff-opt-limit { font-size:.7rem; line-height:1.3; color:#b45309; background:#fffbeb; border:1px solid #fde68a; border-radius:.4rem; padding:.3rem .45rem; margin-top:.25rem; max-width:18rem; }
/* Payoff: data pills */
.ff-pill { display:flex; flex-direction:column; gap:.2rem; align-items:flex-start; background:#fff; border:1px solid #e7e7ea; border-radius:.75rem;
padding:.6rem .75rem; text-decoration:none;
box-shadow:0 1px 2px rgba(16,24,40,.04); transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.ff-pill:hover { transform:translateY(-2px); border-color:var(--accent);
box-shadow:0 14px 26px -16px color-mix(in srgb, var(--accent) 55%, transparent); }
.ff-pill-label { font-size:.8125rem; font-weight:600; color:#27272a; }
.ff-pill-path { font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, monospace; font-size:.7rem; font-weight:600; color:var(--accent); word-break:break-all; }
.ff-pill-top { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.ff-pill-badge { font-size:.6rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#fff; background:var(--accent); border-radius:9999px; padding:.08rem .4rem; }
.ff-pill-on { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent), 0 10px 22px -12px color-mix(in srgb, var(--accent) 50%, transparent); }
/* Payoff: article rows */
.ff-read { display:flex; align-items:center; gap:.7rem; background:#fff; border:1px solid #e7e7ea; border-radius:.75rem;
padding:.8rem 1rem; font-size:.875rem; color:#27272a; text-decoration:none; box-shadow:0 1px 2px rgba(16,24,40,.04);
transition:transform .16s ease, border-color .16s ease, color .16s ease; }
.ff-read:hover { transform:translateX(3px); border-color:var(--accent); color:var(--accent); }
.ff-readicon { flex:none; color:#a1a1aa; transition:color .16s ease; }
.ff-read:hover .ff-readicon { color:var(--accent); }
.ff-readchev { margin-left:auto; color:#d4d4d8; transition:color .16s ease; }
.ff-read:hover .ff-readchev { color:var(--accent); }
/* Payoff: recommended plan */
.ff-plan { position:relative; overflow:hidden; border-radius:1rem; padding:1.25rem 1.35rem; color:#fff;
background:linear-gradient(150deg,#1e293b 0%,#3730a3 58%,#4338ca 100%); box-shadow:0 22px 48px -20px rgba(67,56,202,.55); }
.ff-plan::after { content:""; position:absolute; inset:0; pointer-events:none;
background:radial-gradient(120% 80% at 100% 0%, rgba(255,255,255,.16), transparent 60%); }
.ff-plan > * { position:relative; z-index:1; }
.ff-plan-eyebrow { font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#c7d2fe; }
.ff-plan-cta { margin-top:1.25rem; display:flex; align-items:center; justify-content:center; width:100%; background:#fff; color:#18181b;
font-family:inherit; font-weight:600; font-size:.875rem; border:0; border-radius:.65rem; padding:.7rem 1rem; text-decoration:none; cursor:pointer; box-shadow:0 6px 16px -6px rgba(0,0,0,.35);
transition:transform .15s ease, box-shadow .15s ease; }
.ff-plan-cta:hover { transform:translateY(-2px); box-shadow:0 14px 26px -8px rgba(0,0,0,.42); }
.ff-plan-cta:disabled { opacity:.7; cursor:default; transform:none; box-shadow:none; }
.ff-plan-sec { margin-top:.7rem; display:block; text-align:center; color:#c7d2fe; font-size:.875rem; text-decoration:none; transition:color .15s ease; }
.ff-plan-sec:hover { color:#fff; }
.ff-upsell { margin-top:.9rem; padding-top:.8rem; border-top:1px solid rgba(255,255,255,.15); font-size:.75rem; line-height:1.5; color:#c7d2fe; }
.ff-upsell strong { color:#fff; font-weight:700; }
/* Billing toggle (inside the plan card) */
.ff-bill { display:inline-flex; gap:2px; padding:3px; background:rgba(255,255,255,.12); border-radius:9999px; margin-top:.7rem; }
.ff-bill button { border:0; background:transparent; color:#c7d2fe; font:inherit; font-size:.75rem; font-weight:600; padding:.3rem .8rem; border-radius:9999px; cursor:pointer; transition:background .15s, color .15s; }
.ff-bill .ff-bill-on { background:#fff; color:#1e293b; }
/* Payoff segmented toggle (Dashboards | API) */
.ff-seg { display:inline-flex; gap:2px; padding:3px; background:#f1f1f3; border-radius:9999px; }
.ff-seg button { border:0; background:transparent; color:#71717a; font:inherit; font-size:.72rem; font-weight:600; padding:.28rem .7rem; border-radius:9999px; cursor:pointer; transition:background .15s, color .15s; }
.ff-seg .ff-seg-on { background:#fff; color:#18181b; box-shadow:0 1px 2px rgba(0,0,0,.08); }
/* Focus-ticker pill (first action, accent-outlined) */
.ff-focus { display:inline-flex; align-items:center; font-size:.78rem; font-weight:600; text-decoration:none; color:var(--accent); background:#fff; border:1px solid var(--accent); border-radius:9999px; padding:.25rem .75rem; transition:background .15s, color .15s; }
.ff-focus:hover { background:var(--accent); color:#fff; }
/* Auth/checkout modal backdrop (matches /pricing) */
.auth-overlay { background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); }
</style>
<div x-data="traderFinder()" x-cloak class="ff-stage" :style="step === 'payoff' ? '' : 'min-height:480px'">
<!-- STEP: type -->
<div x-show="step==='type'" x-transition:enter="ff-enter" x-transition:enter-start="ff-enter-start" x-transition:enter-end="ff-enter-end" x-transition:leave="ff-leave" x-transition:leave-start="ff-leave-start" x-transition:leave-end="ff-leave-end">
<div class="text-center mb-9">
<div class="inline-flex items-center gap-1.5 text-[11px] font-semibold text-violet-700 bg-violet-50 border border-violet-100 px-3 py-1 rounded-full mb-4 uppercase tracking-[0.12em]">
<svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20"><path d="M11 3a1 1 0 10-2 0v1a1 1 0 102 0V3zM15.657 5.757a1 1 0 00-1.414-1.414l-.707.707a1 1 0 001.414 1.414l.707-.707zM18 10a1 1 0 01-1 1h-1a1 1 0 110-2h1a1 1 0 011 1zM5.05 6.464A1 1 0 106.464 5.05l-.707-.707a1 1 0 00-1.414 1.414l.707.707zM5 10a1 1 0 01-1 1H3a1 1 0 110-2h1a1 1 0 011 1zM8 16v-1h4v1a2 2 0 11-4 0zM12 14c.015-.34.208-.646.477-.859a4 4 0 10-4.954 0c.27.213.462.519.476.859h4.002z"/></svg>
Personalized in 10 seconds
</div>
<h2 class="font-inter-tight text-2xl sm:text-3xl font-bold text-zinc-900 tracking-tight">What type of trader are you?</h2>
<p class="text-zinc-500 mt-3 max-w-xl mx-auto">Pick your style and see exactly what FlashAlpha gives you, plus the plan that fits.</p>
</div>
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
<template x-for="c in cards" :key="c.id">
<button type="button" @click="pickType(c.id)" data-analytics="onboarding-type"
class="ff-card" :style="'--accent:' + c.accent + ';--tint:' + c.tint">
<span class="ff-ico" x-text="c.emoji"></span>
<span class="ff-body">
<span class="ff-title font-inter-tight" x-text="c.name"></span>
<span class="ff-sub" x-text="c.hook"></span>
</span>
<span class="ff-chev"><svg width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/></svg></span>
</button>
</template>
<button type="button" @click="pickType('general')" data-analytics="onboarding-type-other"
class="ff-card ff-dashed" style="--accent:#64748b;--tint:#f1f5f9;">
<span class="ff-ico">🧭</span>
<span class="ff-body">
<span class="ff-title font-inter-tight">Not listed / just exploring</span>
<span class="ff-sub">Show me the basics to get started</span>
</span>
<span class="ff-chev"><svg width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/></svg></span>
</button>
</div>
</div>
<!-- STEP: refine -->
<div x-show="step==='refine'" x-transition:enter="ff-enter" x-transition:enter-start="ff-enter-start" x-transition:enter-end="ff-enter-end" x-transition:leave="ff-leave" x-transition:leave-start="ff-leave-start" x-transition:leave-end="ff-leave-end" style="display:none;">
<div class="max-w-xl mx-auto text-center">
<div class="flex items-center justify-center gap-2">
<button type="button" @click="back()" class="ff-back">
<svg width="14" height="14" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/></svg>
Back
</button>
<span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-full text-sm font-semibold text-zinc-800" :style="'background:' + current.tint">
<span x-text="current.emoji"></span>
<span x-text="current.name"></span>
</span>
</div>
<div class="text-[11px] font-semibold text-zinc-400 uppercase tracking-[0.12em]" style="margin-top:1.75rem;">Step 2 of 2</div>
<h3 class="font-inter-tight text-2xl sm:text-3xl font-bold text-zinc-900 mt-2 tracking-tight">Which capability do you want first?</h3>
<p class="text-zinc-500 mt-2">We point you at the exact endpoint and the plan it needs.</p>
<div class="grid grid-cols-1 sm:grid-cols-3 gap-4 mt-8">
<template x-for="e in current.endpoints" :key="e.name">
<button type="button" @click="pickRefine(e.name)" data-analytics="onboarding-refine" class="ff-opt" :style="'--accent:' + current.accent">
<span class="ff-opt-ico" x-text="epIcon(e.name)"></span>
<span class="ff-opt-label" x-text="e.label"></span>
<span class="ff-opt-desc" x-text="epBlurb(e.name)"></span>
<span class="ff-opt-tier" x-text="tierLabel(e.tier)"></span>
<span class="ff-opt-limit" x-show="epLimit(e.name)" x-text="epLimit(e.name)"></span>
</button>
</template>
</div>
<button type="button" @click="pickRefine('Not sure')" data-analytics="onboarding-refine-skip" class="ff-skip" style="margin-top:1.5rem;">
Not sure / skip
<svg width="13" height="13" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/></svg>
</button>
</div>
</div>
<!-- STEP: payoff -->
<div x-show="step==='payoff'" x-transition:enter="ff-enter" x-transition:enter-start="ff-enter-start" x-transition:enter-end="ff-enter-end" x-transition:leave="ff-leave" x-transition:leave-start="ff-leave-start" x-transition:leave-end="ff-leave-end" style="display:none;">
<template x-if="result">
<div class="max-w-4xl mx-auto" :style="'--accent:' + result.archetype.accent">
<button type="button" @click="back()" class="ff-back mb-5">
<svg width="14" height="14" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/></svg>
Back
</button>
<h3 class="font-inter-tight text-2xl sm:text-3xl font-bold text-zinc-900 tracking-tight">Here's what FlashAlpha gives a <span x-text="result.archetype.name" :style="'color:' + result.archetype.accent"></span></h3>
<div class="flex flex-wrap items-center gap-2 mt-3">
<span class="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-semibold text-zinc-700" :style="'background:' + result.archetype.tint" x-show="result.refine && result.refine !== 'Not sure'">
<span x-text="result.archetype.emoji"></span><span x-text="result.refine"></span>
</span>
<a :href="result.focus.href" data-analytics="onboarding-focus" class="ff-focus" :style="'--accent:' + result.archetype.accent">
Try it live on <strong x-text="result.focus.ticker"></strong> →
</a>
</div>
<p class="text-zinc-600 mt-3 max-w-2xl leading-relaxed" x-text="result.archetype.pitch"></p>
<div class="grid lg:grid-cols-3 gap-6 items-start" style="margin-top:1.5rem;">
<div class="lg:col-span-2" style="display:flex;flex-direction:column;gap:1.4rem;">
<div class="flex items-center gap-2.5" style="order:0;">
<span class="text-[11px] font-semibold text-zinc-400 uppercase tracking-[0.12em]">Tailor for</span>
<div class="ff-seg">
<button type="button" :class="result.access==='dashboard' ? 'ff-seg-on' : ''" @click="setAccess('dashboard')" data-analytics="onboarding-access">Dashboards</button>
<button type="button" :class="result.access==='api' ? 'ff-seg-on' : ''" @click="setAccess('api')" data-analytics="onboarding-access">The API</button>
</div>
</div>
<div :style="'order:' + (result.access === 'api' ? 1 : 2)">
<div class="text-[11px] font-semibold text-zinc-400 uppercase tracking-[0.12em]" style="margin-bottom:0.85rem;">Data you get</div>
<div class="grid sm:grid-cols-3 gap-3">
<template x-for="e in result.endpoints" :key="e.name">
<a :href="'/docs/' + e.name" class="ff-pill" :class="e.chosen ? 'ff-pill-on' : ''">
<span class="ff-pill-top">
<span class="ff-pill-label" x-text="e.label"></span>
<span class="ff-pill-badge" x-show="e.chosen" style="display:none;">Start here</span>
</span>
<span class="ff-pill-path" x-show="e.path" x-text="e.path ? ((e.path.charAt(0) === '/' ? 'GET ' : '') + e.path.replace('{t}', result.focus.ticker)) : ''"></span>
</a>
</template>
</div>
</div>
<div :style="'order:' + (result.access === 'api' ? 2 : 1)">
<div class="text-[11px] font-semibold text-zinc-400 uppercase tracking-[0.12em]" style="margin-bottom:0.7rem;">Start here</div>
<div class="space-y-2.5">
<template x-for="ar in result.articles" :key="ar.slug">
<a :href="'/articles/' + ar.slug" class="ff-read">
<svg class="ff-readicon" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M12 6.5C10.5 5.5 8 5 4.5 5.2v12C8 17 10.5 17.5 12 18.5m0-12c1.5-1 4-1.5 7.5-1.3v12C16 17 13.5 17.5 12 18.5m0-12v12"/></svg>
<span x-text="ar.title"></span>
<span class="ff-readchev">→</span>
</a>
</template>
</div>
</div>
</div>
<!-- Recommended plan -->
<div class="ff-plan">
<div class="ff-plan-eyebrow">Recommended plan</div>
<div class="ff-bill" x-show="result.tier.key !== 'free'">
<button type="button" :class="!yearly ? 'ff-bill-on' : ''" @click="yearly = false">Monthly</button>
<button type="button" :class="yearly ? 'ff-bill-on' : ''" @click="yearly = true">Yearly · -20%</button>
</div>
<div class="flex items-baseline gap-2 mt-3">
<span class="font-inter-tight text-2xl font-bold" x-text="result.tier.label"></span>
<span class="text-indigo-200 text-sm" x-text="result.tier.key === 'free' ? result.tier.priceMonthly : (yearly ? result.tier.priceYearly : result.tier.priceMonthly)"></span>
</div>
<p class="text-[11px] text-indigo-200 mt-1" x-show="yearly && result.tier.key !== 'free'" x-text="result.tier.yearlyNote"></p>
<p class="text-sm text-indigo-100/90 mt-3 leading-relaxed" x-text="result.tier.why"></p>
<div x-show="result.upgrade" class="ff-upsell" style="display:none;">
Want more? <strong x-text="result.upgrade ? result.upgrade.label : ''"></strong>: <span x-text="result.upgrade ? result.upgrade.why : ''"></span>
</div>
<button type="button" @click="startConversion()" data-analytics="onboarding-cta-primary" class="ff-plan-cta" :disabled="checkoutLoading">
<span x-text="checkoutLoading ? 'Redirecting…' : result.primaryCta.label"></span>
<span x-show="!checkoutLoading"> →</span>
</button>
<a :href="result.secondaryCta.href" data-analytics="onboarding-cta-secondary" class="ff-plan-sec" x-text="result.secondaryCta.label"></a>
</div>
</div>
<button type="button" @click="restart()" class="mt-5 inline-flex items-center gap-1.5 text-sm text-zinc-400 hover:text-zinc-600 transition-colors">
<svg width="14" height="14" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M4 4v5h5M20 20v-5h-5M5 9a7 7 0 0111-3l3 3M19 15a7 7 0 01-11 3l-3-3"/></svg>
Start over
</button>
</div>
</template>
</div>
</div>
</div>
</section>
<!-- Explore tickers (relocated below onboarding) -->
<section class="border-b border-zinc-200 bg-white">
<div class="max-w-3xl mx-auto px-4 sm:px-6 py-14 md:py-16 text-center">
<h2 class="font-inter-tight text-2xl sm:text-3xl font-bold text-zinc-900 tracking-tight mb-2">Explore any ticker</h2>
<p class="text-zinc-500 mb-8">Search 6,000+ names, or jump straight into the most active.</p>
<!-- Ticker search with autocomplete -->
<div x-data="tickerSearch()" style="margin-top: 2rem; max-width: 28rem; margin-left: auto; margin-right: auto;">
<!-- Input + dropdown wrapper (relative anchor for dropdown) -->
<div style="position: relative;">
<svg style="position: absolute; left: 0.875rem; top: 50%; transform: translateY(-50%); width: 1.125rem; height: 1.125rem; color: #a1a1aa; pointer-events: none; z-index: 1;" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"/></svg>
<input type="text" x-model="query" x-ref="searchInput"
@input="filter()" @focus="open = query.length > 0 && filtered.length > 0" @keydown.escape="open = false"
@keydown.arrow-down.prevent="moveDown()" @keydown.arrow-up.prevent="moveUp()"
@keydown.enter.prevent="go()"
placeholder="Search any ticker - e.g. TSLA, SPY, NVDA"
autocomplete="off"
style="width: 100%; padding: 0.875rem 1rem 0.875rem 2.75rem; font-size: 1rem; border-radius: 1rem; border: 2px solid #e4e4e7; background: #fff; color: #18181b; outline: none; box-shadow: 0 4px 12px rgba(0,0,0,0.08); transition: border-color 0.15s, box-shadow 0.15s;"
onfocus="this.style.borderColor='#18181b';this.style.boxShadow='0 4px 20px rgba(0,0,0,0.12)'" onblur="setTimeout(()=>{this.style.borderColor='#e4e4e7';this.style.boxShadow='0 4px 12px rgba(0,0,0,0.08)'},150)" />
<!-- Dropdown results (positioned directly below input) -->
<div x-show="open && filtered.length > 0" @click.outside="open = false" x-cloak
style="position: absolute; top: calc(100% + 4px); left: 0; right: 0; background: #fff; border: 1px solid #e4e4e7; border-radius: 0.75rem; box-shadow: 0 12px 32px rgba(0,0,0,0.12); max-height: 20rem; overflow-y: auto; z-index: 50;">
<template x-for="(item, i) in filtered" :key="item.symbol">
<a :href="'/stock/' + item.symbol.toLowerCase()"
@mouseenter="selectedIdx = i"
:class="i === selectedIdx ? 'ticker-result active' : 'ticker-result'"
style="display: flex; align-items: center; gap: 0.75rem; padding: 0.625rem 1rem; text-decoration: none; cursor: pointer; transition: background 0.1s; border-bottom: 1px solid #f4f4f5;">
<span style="font-size: 0.9375rem; font-weight: 700; color: #18181b; min-width: 3.5rem;" x-text="item.symbol"></span>
<span style="font-size: 0.8125rem; color: #71717a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;" x-text="item.name"></span>
</a>
</template>
</div>
</div>
<!-- Slim Market Overview callout above watchlist grid -->
<div style="margin-top:1.5rem;max-width:42rem;margin-left:auto;margin-right:auto;">
<a href="/market-overview" data-analytics="cta-hero-market-overview"
style="display:flex;align-items:center;gap:0.625rem;padding:0.55rem 0.9rem;text-decoration:none;border-radius:0.5rem;background:#faf5ff;border:1px solid #e9d5ff;font-size:0.8125rem;transition:border-color 0.15s, background 0.15s;"
onmouseover="this.style.background='#f5f0ff';this.style.borderColor='#c4b5fd'"
onmouseout="this.style.background='#faf5ff';this.style.borderColor='#e9d5ff'">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#7c3aed" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;">
<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/>
</svg>
<span style="font-weight:600;color:#18181b;">Market Overview</span>
<span style="color:#71717a;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">Data-driven analysis via lab.flashalpha.com, refreshed 3×/day</span>
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#7c3aed" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;margin-left:auto;">
<polyline points="9 18 15 12 9 6"/>
</svg>
</a>
</div>
<!-- Slim Historical API Replay callout -->
<div style="margin-top:0.5rem;max-width:42rem;margin-left:auto;margin-right:auto;">
<a href="/docs/historical-api" data-analytics="cta-hero-historical-api"
style="display:flex;align-items:center;gap:0.625rem;padding:0.55rem 0.9rem;text-decoration:none;border-radius:0.5rem;background:#eef2ff;border:1px solid #c7d2fe;font-size:0.8125rem;transition:border-color 0.15s, background 0.15s;"
onmouseover="this.style.background='#e0e7ff';this.style.borderColor='#a5b4fc'"
onmouseout="this.style.background='#eef2ff';this.style.borderColor='#c7d2fe'">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4f46e5" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;">
<circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 14"/>
</svg>
<span style="font-weight:600;color:#18181b;">Historical API Replay</span>
<span style="color:#71717a;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">Every endpoint, any minute since 2018 - same response shape as live</span>
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#4f46e5" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;margin-left:auto;">
<polyline points="9 18 15 12 9 6"/>
</svg>
</a>
</div>
<!-- Watchlist-style ticker grid -->
<div style="margin-top:1rem;max-width:42rem;margin-left:auto;margin-right:auto;">
<div class="wl-grid">
<div class="wl-col">
<div class="wl-header">Indexes</div>
<div class="wl-list">
<a href="/stock/spx" class="wl-row"><span class="wl-sym">SPX</span><span class="wl-name">S&P 500</span><span class="wl-chevron">›</span></a>
<a href="/stock/djx" class="wl-row"><span class="wl-sym">DJX</span><span class="wl-name">Dow Jones</span><span class="wl-chevron">›</span></a>
<a href="/stock/rut" class="wl-row"><span class="wl-sym">RUT</span><span class="wl-name">Russell 2000</span><span class="wl-chevron">›</span></a>
<a href="/stock/vix" class="wl-row"><span class="wl-sym" style="color:#d97706;">VIX</span><span class="wl-name">CBOE Volatility</span><span class="wl-chevron">›</span></a>
<a href="/stock/skew" class="wl-row wl-last"><span class="wl-sym">SKEW</span><span class="wl-name">CBOE Skew</span><span class="wl-chevron">›</span></a>
</div>
</div>
<div class="wl-col">
<div class="wl-header">Most Active</div>
<div class="wl-list">
<a href="/stock/tsla" class="wl-row"><span class="wl-sym">TSLA</span><span class="wl-name">Tesla Inc</span><span class="wl-chevron">›</span></a>
<a href="/stock/nvda" class="wl-row"><span class="wl-sym">NVDA</span><span class="wl-name">NVIDIA Corp</span><span class="wl-chevron">›</span></a>
<a href="/stock/aapl" class="wl-row"><span class="wl-sym">AAPL</span><span class="wl-name">Apple Inc</span><span class="wl-chevron">›</span></a>
<a href="/stock/amd" class="wl-row"><span class="wl-sym">AMD</span><span class="wl-name">Advanced Micro</span><span class="wl-chevron">›</span></a>
<a href="/stock/pltr" class="wl-row wl-last"><span class="wl-sym">PLTR</span><span class="wl-name">Palantir</span><span class="wl-chevron">›</span></a>
</div>
</div>
<div class="wl-col">
<div class="wl-header">ETFs</div>
<div class="wl-list">
<a href="/stock/spy" class="wl-row"><span class="wl-sym">SPY</span><span class="wl-name">S&P 500 ETF</span><span class="wl-chevron">›</span></a>
<a href="/stock/qqq" class="wl-row"><span class="wl-sym">QQQ</span><span class="wl-name">Nasdaq 100 ETF</span><span class="wl-chevron">›</span></a>
<a href="/stock/iwm" class="wl-row"><span class="wl-sym">IWM</span><span class="wl-name">Russell 2000 ETF</span><span class="wl-chevron">›</span></a>
<a href="/stock/tqqq" class="wl-row"><span class="wl-sym" style="color:#16a34a;">TQQQ</span><span class="wl-name">3x Nasdaq Bull</span><span class="wl-chevron">›</span></a>
<a href="/stock/uvxy" class="wl-row wl-last"><span class="wl-sym" style="color:#dc2626;">UVXY</span><span class="wl-name">1.5x VIX Long</span><span class="wl-chevron">›</span></a>
</div>
</div>
</div>
</div>
<style>
.wl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
@media(max-width:640px){.wl-grid{grid-template-columns:1fr;}}
.wl-col{}
.wl-header{font-size:0.6875rem;font-weight:600;color:#a1a1aa;text-transform:uppercase;letter-spacing:0.06em;padding:0 0 0.375rem 0.75rem;}
.wl-list{border:1px solid #e4e4e7;border-radius:0.5rem;overflow:hidden;background:#fff;}
.wl-row{display:flex;align-items:center;padding:0.5rem 0.75rem;text-decoration:none;border-bottom:1px solid #f4f4f5;transition:background 0.12s;}
.wl-row:hover{background:#f8fafc;}
.wl-last{border-bottom:none;}
.wl-sym{font-size:0.8125rem;font-weight:700;color:#18181b;min-width:2.75rem;}
.wl-name{flex:1;font-size:0.75rem;color:#a1a1aa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wl-chevron{font-size:1rem;color:#d4d4d8;font-weight:300;transition:color 0.12s;}
.wl-row:hover .wl-chevron{color:#71717a;}
.ticker-result:last-child{border-bottom:none}
.ticker-result.active,.ticker-result:hover{background:#f4f4f5}
</style>
</div>
</div>
</section>
<!-- Social Proof / Testimonials -->
<section class="border-b border-zinc-200">
<div class="max-w-6xl mx-auto px-4 sm:px-6 py-14 md:py-16">
<div class="text-center mb-10">
<div class="inline-flex items-center gap-1.5 text-[11px] font-semibold text-violet-700 bg-violet-50 border border-violet-100 px-3 py-1 rounded-full mb-4 uppercase tracking-[0.12em]">
<svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
What customers say
</div>
<h2 class="font-inter-tight text-2xl sm:text-3xl font-bold text-zinc-900 tracking-tight">Trusted by systematic traders & quant researchers</h2>
</div>
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-5">
<!-- Joel -->
<figure class="group relative bg-white border border-zinc-200/70 rounded-2xl p-6 flex flex-col hover:border-zinc-300 hover:shadow-[0_8px_24px_-8px_rgba(24,24,27,0.12)] hover:-translate-y-0.5 transition-all duration-200 overflow-hidden">
<svg class="absolute -top-2 -right-2 w-16 h-16 text-zinc-100 group-hover:text-violet-100/70 transition-colors" fill="currentColor" viewBox="0 0 32 32" aria-hidden="true">
<path d="M9.352 4C4.456 7.456 1 13.12 1 19.36c0 5.088 3.072 8.064 6.624 8.064 3.36 0 5.856-2.688 5.856-5.856 0-3.168-2.208-5.472-5.088-5.472-.576 0-1.344.096-1.536.192.48-3.264 3.552-7.104 6.624-9.024L9.352 4zm16.512 0c-4.8 3.456-8.256 9.12-8.256 15.36 0 5.088 3.072 8.064 6.624 8.064 3.264 0 5.856-2.688 5.856-5.856 0-3.168-2.304-5.472-5.184-5.472-.576 0-1.248.096-1.44.192.48-3.264 3.456-7.104 6.528-9.024L25.864 4z"/>
</svg>
<div class="relative flex items-center gap-0.5 text-amber-400 mb-4">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
</div>
<blockquote class="relative text-sm text-zinc-700 leading-relaxed mb-5 flex-1">
“FlashAlpha is essential infrastructure. It’s the only source for aggregate charm and vanna exposure, and that data feeds 4 of our top 5 predictive features.”
</blockquote>
<figcaption class="relative flex items-center gap-3 pt-4 border-t border-zinc-100">
<div class="w-9 h-9 rounded-full bg-gradient-to-br from-indigo-500 to-violet-600 flex items-center justify-center text-white text-sm font-semibold shrink-0 ring-2 ring-white shadow-sm">J</div>
<div class="min-w-0">
<div class="text-sm font-semibold text-zinc-900 leading-tight">Joel</div>
<div class="text-xs text-zinc-500 leading-tight">Quant researcher</div>
</div>
</figcaption>
</figure>
<!-- Will -->
<figure class="group relative bg-white border border-zinc-200/70 rounded-2xl p-6 flex flex-col hover:border-zinc-300 hover:shadow-[0_8px_24px_-8px_rgba(24,24,27,0.12)] hover:-translate-y-0.5 transition-all duration-200 overflow-hidden">
<svg class="absolute -top-2 -right-2 w-16 h-16 text-zinc-100 group-hover:text-emerald-100/70 transition-colors" fill="currentColor" viewBox="0 0 32 32" aria-hidden="true">
<path d="M9.352 4C4.456 7.456 1 13.12 1 19.36c0 5.088 3.072 8.064 6.624 8.064 3.36 0 5.856-2.688 5.856-5.856 0-3.168-2.208-5.472-5.088-5.472-.576 0-1.344.096-1.536.192.48-3.264 3.552-7.104 6.624-9.024L9.352 4zm16.512 0c-4.8 3.456-8.256 9.12-8.256 15.36 0 5.088 3.072 8.064 6.624 8.064 3.264 0 5.856-2.688 5.856-5.856 0-3.168-2.304-5.472-5.184-5.472-.576 0-1.248.096-1.44.192.48-3.264 3.456-7.104 6.528-9.024L25.864 4z"/>
</svg>
<div class="relative flex items-center gap-0.5 text-amber-400 mb-4">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
</div>
<blockquote class="relative text-sm text-zinc-700 leading-relaxed mb-5 flex-1">
“The best options analytics service I’ve used. I code my own tools and dashboards using their API, and the price-to-benefit ratio is through the roof.”
</blockquote>
<figcaption class="relative flex items-center gap-3 pt-4 border-t border-zinc-100">
<div class="w-9 h-9 rounded-full bg-gradient-to-br from-emerald-500 to-teal-600 flex items-center justify-center text-white text-sm font-semibold shrink-0 ring-2 ring-white shadow-sm">W</div>
<div class="min-w-0">
<div class="text-sm font-semibold text-zinc-900 leading-tight flex items-center gap-1">Will <svg class="w-3.5 h-3.5 text-emerald-500" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M6.267 3.455a3.066 3.066 0 001.745-.723 3.066 3.066 0 013.976 0 3.066 3.066 0 001.745.723 3.066 3.066 0 012.812 2.812c.051.643.304 1.254.723 1.745a3.066 3.066 0 010 3.976 3.066 3.066 0 00-.723 1.745 3.066 3.066 0 01-2.812 2.812 3.066 3.066 0 00-1.745.723 3.066 3.066 0 01-3.976 0 3.066 3.066 0 00-1.745-.723 3.066 3.066 0 01-2.812-2.812 3.066 3.066 0 00-.723-1.745 3.066 3.066 0 010-3.976 3.066 3.066 0 00.723-1.745 3.066 3.066 0 012.812-2.812zm7.44 5.252a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/></svg></div>
<div class="text-xs text-zinc-500 leading-tight">Verified review</div>
</div>
</figcaption>
</figure>
<!-- Alonso -->
<figure class="group relative bg-white border border-zinc-200/70 rounded-2xl p-6 flex flex-col hover:border-zinc-300 hover:shadow-[0_8px_24px_-8px_rgba(24,24,27,0.12)] hover:-translate-y-0.5 transition-all duration-200 overflow-hidden">
<svg class="absolute -top-2 -right-2 w-16 h-16 text-zinc-100 group-hover:text-amber-100/70 transition-colors" fill="currentColor" viewBox="0 0 32 32" aria-hidden="true">
<path d="M9.352 4C4.456 7.456 1 13.12 1 19.36c0 5.088 3.072 8.064 6.624 8.064 3.36 0 5.856-2.688 5.856-5.856 0-3.168-2.208-5.472-5.088-5.472-.576 0-1.344.096-1.536.192.48-3.264 3.552-7.104 6.624-9.024L9.352 4zm16.512 0c-4.8 3.456-8.256 9.12-8.256 15.36 0 5.088 3.072 8.064 6.624 8.064 3.264 0 5.856-2.688 5.856-5.856 0-3.168-2.304-5.472-5.184-5.472-.576 0-1.248.096-1.44.192.48-3.264 3.456-7.104 6.528-9.024L25.864 4z"/>
</svg>
<div class="relative flex items-center gap-0.5 text-amber-400 mb-4">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
</div>
<blockquote class="relative text-sm text-zinc-700 leading-relaxed mb-5 flex-1">
“First day live: 3 trades, 3 winners. More importantly, it blocked 30+ bad signals, including 5 institutional put trades that would have lost money.”
</blockquote>
<figcaption class="relative flex items-center gap-3 pt-4 border-t border-zinc-100">
<div class="w-9 h-9 rounded-full bg-gradient-to-br from-amber-500 to-orange-600 flex items-center justify-center text-white text-sm font-semibold shrink-0 ring-2 ring-white shadow-sm">A</div>
<div class="min-w-0">
<div class="text-sm font-semibold text-zinc-900 leading-tight">Alonso</div>
<div class="text-xs text-zinc-500 leading-tight">Independent trader</div>
</div>
</figcaption>
</figure>
<!-- Dave -->
<figure class="group relative bg-white border border-zinc-200/70 rounded-2xl p-6 flex flex-col hover:border-zinc-300 hover:shadow-[0_8px_24px_-8px_rgba(24,24,27,0.12)] hover:-translate-y-0.5 transition-all duration-200 overflow-hidden">
<svg class="absolute -top-2 -right-2 w-16 h-16 text-zinc-100 group-hover:text-sky-100/70 transition-colors" fill="currentColor" viewBox="0 0 32 32" aria-hidden="true">
<path d="M9.352 4C4.456 7.456 1 13.12 1 19.36c0 5.088 3.072 8.064 6.624 8.064 3.36 0 5.856-2.688 5.856-5.856 0-3.168-2.208-5.472-5.088-5.472-.576 0-1.344.096-1.536.192.48-3.264 3.552-7.104 6.624-9.024L9.352 4zm16.512 0c-4.8 3.456-8.256 9.12-8.256 15.36 0 5.088 3.072 8.064 6.624 8.064 3.264 0 5.856-2.688 5.856-5.856 0-3.168-2.304-5.472-5.184-5.472-.576 0-1.248.096-1.44.192.48-3.264 3.456-7.104 6.528-9.024L25.864 4z"/>
</svg>
<div class="relative flex items-center gap-0.5 text-amber-400 mb-4">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20"><path d="M10 15l-5.878 3.09 1.123-6.545L.489 6.91l6.572-.955L10 0l2.939 5.955 6.572.955-4.756 4.635 1.123 6.545z"/></svg>
</div>
<blockquote class="relative text-sm text-zinc-700 leading-relaxed mb-5 flex-1">
“Integrating FlashAlpha into our systematic 0DTE SPX iron condor regime scoring. GEX regime, dealer hedging estimates, and vol surface are exactly what we needed.”
</blockquote>
<figcaption class="relative flex items-center gap-3 pt-4 border-t border-zinc-100">
<div class="w-9 h-9 rounded-full bg-gradient-to-br from-sky-500 to-blue-600 flex items-center justify-center text-white text-sm font-semibold shrink-0 ring-2 ring-white shadow-sm">D</div>
<div class="min-w-0">
<div class="text-sm font-semibold text-zinc-900 leading-tight">Dave</div>
<div class="text-xs text-zinc-500 leading-tight">Systematic 0DTE desk</div>
</div>
</figcaption>
</figure>
</div>
</div>
</section>
<!-- Two-path CTAs -->
<section class="border-b border-zinc-200">
<div class="max-w-5xl mx-auto px-4 sm:px-6 py-12">
<div class="grid md:grid-cols-2 gap-6">
<a href="/docs/quick-start" class="group flex items-start gap-4 p-6 rounded-xl border border-zinc-200 hover:border-blue-300 hover:shadow-lg transition-all bg-white" data-analytics="path-api">
<div class="w-12 h-12 rounded-lg bg-blue-50 flex items-center justify-center shrink-0 group-hover:bg-blue-100 transition">
<svg class="w-6 h-6 text-blue-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"/></svg>
</div>
<div>
<div class="font-bold text-zinc-900 mb-1 group-hover:text-blue-600 transition">I want to build with the API</div>
<p class="text-sm text-zinc-500 mb-2">pip install, get your key, and start querying Greeks, GEX, and vol surfaces in minutes.</p>
<span class="text-sm font-semibold text-blue-600">Quick Start Guide →</span>
</div>
</a>
<a href="/gex" class="group flex items-start gap-4 p-6 rounded-xl border border-zinc-200 hover:border-emerald-300 hover:shadow-lg transition-all bg-white" data-analytics="path-data">
<div class="w-12 h-12 rounded-lg bg-emerald-50 flex items-center justify-center shrink-0 group-hover:bg-emerald-100 transition">
<svg class="w-6 h-6 text-emerald-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/></svg>
</div>
<div>
<div class="font-bold text-zinc-900 mb-1 group-hover:text-emerald-600 transition">I want to see the data</div>
<p class="text-sm text-zinc-500 mb-2">Explore live GEX dashboards, IV rank scanners, and interactive exposure tools - free, no signup.</p>
<span class="text-sm font-semibold text-emerald-600">Open GEX Dashboard →</span>
</div>
</a>
</div>
</div>
</section>
<!-- Problems We Solve -->
<section class="relative bg-zinc-900">
<div class="py-12 md:py-20">
<div class="max-w-6xl mx-auto px-4 sm:px-6">
<div class="max-w-3xl mx-auto text-center pb-12">
<div class="inline-flex text-xs font-medium text-emerald-400 bg-emerald-900/30 px-3 py-1 rounded-full mb-4">The Problem</div>
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-white mb-4">Why Build When You Can Call an API?</h2>
</div>
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Problem 1 -->
<div class="rounded-xl p-6 border border-zinc-700" style="background-color: rgba(39, 39, 42, 0.7);">
<div style="width: 40px; height: 40px; background-color: rgba(127, 29, 29, 0.3); border-radius: 8px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px;">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#f87171" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
<line x1="12" y1="9" x2="12" y2="13"></line>
<line x1="12" y1="17" x2="12.01" y2="17"></line>
</svg>
</div>
<h3 class="font-inter-tight text-lg font-semibold text-white mb-2">Python Crashes at Scale</h3>
<p class="text-sm text-zinc-400">Your models can't handle per-tick loads across the full options universe.</p>
</div>
<!-- Problem 2 -->
<div class="rounded-xl p-6 border border-zinc-700" style="background-color: rgba(39, 39, 42, 0.7);">
<div style="width: 40px; height: 40px; background-color: rgba(127, 29, 29, 0.3); border-radius: 8px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px;">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#f87171" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="10"></circle>
<polyline points="12 6 12 12 16 14"></polyline>
</svg>
</div>
<h3 class="font-inter-tight text-lg font-semibold text-white mb-2">In-House Infra Takes Years</h3>
<p class="text-sm text-zinc-400">Building options infra diverts engineering from alpha generation.</p>
</div>
<!-- Problem 3 -->
<div class="rounded-xl p-6 border border-zinc-700" style="background-color: rgba(39, 39, 42, 0.7);">
<div style="width: 40px; height: 40px; background-color: rgba(127, 29, 29, 0.3); border-radius: 8px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px;">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#f87171" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon>
</svg>
</div>
<h3 class="font-inter-tight text-lg font-semibold text-white mb-2">Stale Data Kills Edge</h3>
<p class="text-sm text-zinc-400">By the time your analytics refresh, the mispricing is gone. You need live Greeks, not EOD snapshots.</p>
</div>
</div>
<!-- Solution CTA -->
<div class="mt-12 text-center">
<div class="inline-flex items-center gap-2 px-6 py-3 bg-emerald-600 rounded-lg">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="20 6 9 17 4 12"></polyline>
</svg>
<span class="text-white font-semibold">FlashAlpha solves all of these - start free in minutes</span>
</div>
</div>
</div>
</div>
</section>
<!-- Use Cases -->
<section class="relative bg-white border-b border-zinc-200">
<div class="py-12 md:py-20">
<div class="max-w-6xl mx-auto px-4 sm:px-6">
<div class="max-w-3xl mx-auto text-center pb-12">
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-zinc-900 mb-4">What You Can Build</h2>
<p class="text-lg text-zinc-500">Real-world workflows powered by FlashAlpha's API.</p>
</div>
<div class="grid md:grid-cols-3 gap-5">
<!-- Case 1 -->
<div class="bg-zinc-50 rounded-xl p-5 border border-zinc-200">
<h3 class="font-bold text-zinc-900 mb-2">GEX Dashboard</h3>
<p class="text-sm text-zinc-600 mb-3">Call <code class="text-xs">/v1/exposure/gex/SPY</code> for per-strike gamma, flip point, and regime. Overlay dealer hedging pressure on your charts.</p>
<div class="flex items-center gap-3">
<a href="/tools/gamma-exposure" class="text-xs font-semibold text-emerald-600 hover:text-emerald-700 transition">Try live →</a>
<a href="https://github.com/FlashAlpha-lab/flashalpha-examples" target="_blank" rel="noopener" class="text-xs font-semibold text-zinc-400 hover:text-zinc-600 transition">Example code →</a>
</div>
</div>
<!-- Case 2 -->
<div class="bg-zinc-50 rounded-xl p-5 border border-zinc-200">
<h3 class="font-bold text-zinc-900 mb-2">Vol Regime Monitor</h3>
<p class="text-sm text-zinc-600 mb-3">Call <code class="text-xs">/v1/volatility/TSLA</code> for IV-RV spreads, skew by expiry, term structure, and hedging scenarios.</p>
<div class="flex items-center gap-3">
<a href="/docs/playground" class="text-xs font-semibold text-blue-600 hover:text-blue-700 transition">Try in Playground →</a>
<a href="https://github.com/FlashAlpha-lab/flashalpha-examples" target="_blank" rel="noopener" class="text-xs font-semibold text-zinc-400 hover:text-zinc-600 transition">Example code →</a>
</div>
</div>
<!-- Case 3 -->
<div class="bg-zinc-50 rounded-xl p-5 border border-zinc-200">
<h3 class="font-bold text-zinc-900 mb-2">Multi-Greek Alerts</h3>
<p class="text-sm text-zinc-600 mb-3">Poll <code class="text-xs">/v1/exposure/summary/SPX</code> for GEX + DEX + VEX + CHEX. Alert when vanna flips or charm accelerates.</p>
<div class="flex items-center gap-3">
<a href="/tools" class="text-xs font-semibold text-purple-600 hover:text-purple-700 transition">All tools →</a>
<a href="https://github.com/FlashAlpha-lab/flashalpha-examples" target="_blank" rel="noopener" class="text-xs font-semibold text-zinc-400 hover:text-zinc-600 transition">Example code →</a>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Historical API Replay -->
<section class="relative border-b border-zinc-200" style="background:linear-gradient(135deg,#f8fafc 0%,#eef2ff 50%,#ede9fe 100%);">
<div class="py-12 md:py-20">
<div class="max-w-6xl mx-auto px-4 sm:px-6">
<div class="max-w-3xl mx-auto text-center pb-10">
<div class="inline-flex text-xs font-medium text-violet-700 mb-4" style="background:rgba(255,255,255,0.7);border:1px solid #ddd6fe;padding:0.25rem 0.75rem;border-radius:9999px;">Historical API Replay · Alpha</div>
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-zinc-900 mb-4">Point-in-time replay of <span style="background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;">every endpoint.</span></h2>
<p class="text-lg text-zinc-600" style="line-height:1.7;">
Ask what GEX, gamma flip, VRP, narrative, max pain, or the full stock summary looked like at any <em>minute</em> in history. Same response shape as live - point your existing SDK at a different host, add one query parameter, and you have a backtest-ready data source.
</p>
</div>
<!-- Stats strip -->
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-10 max-w-4xl mx-auto">
<div style="background:rgba(255,255,255,0.85);border-radius:0.75rem;border:1px solid #ddd6fe;padding:0.875rem 1rem;text-align:center;">
<div style="font-size:1.5rem;font-weight:700;color:#6d28d9;">Billions</div>
<div class="text-xs text-zinc-500" style="margin-top:0.25rem;">of option rows stored</div>
</div>
<div style="background:rgba(255,255,255,0.85);border-radius:0.75rem;border:1px solid #ddd6fe;padding:0.875rem 1rem;text-align:center;">
<div style="font-size:1.5rem;font-weight:700;color:#6d28d9;">2018</div>
<div class="text-xs text-zinc-500" style="margin-top:0.25rem;">SPY coverage starts</div>
</div>
<div style="background:rgba(255,255,255,0.85);border-radius:0.75rem;border:1px solid #ddd6fe;padding:0.875rem 1rem;text-align:center;">
<div style="font-size:1.5rem;font-weight:700;color:#6d28d9;">1 min</div>
<div class="text-xs text-zinc-500" style="margin-top:0.25rem;">greeks & spot resolution</div>
</div>
<div style="background:rgba(255,255,255,0.85);border-radius:0.75rem;border:1px solid #ddd6fe;padding:0.875rem 1rem;text-align:center;">
<div style="font-size:1.5rem;font-weight:700;color:#6d28d9;">15</div>
<div class="text-xs text-zinc-500" style="margin-top:0.25rem;">endpoints, live shape</div>
</div>
</div>
<!-- COVID replay proof -->
<div class="grid lg:grid-cols-2 gap-6 items-stretch">
<!-- Request/response panel -->
<div style="border-radius:16px;overflow:hidden;box-shadow:0 25px 60px -12px rgba(79,70,229,0.25);background:#0f1117;border:1px solid rgba(255,255,255,0.06);">
<div style="display:flex;align-items:center;gap:6px;padding:10px 16px;background:#0a0b10;border-bottom:1px solid rgba(255,255,255,0.06);">
<span style="width:10px;height:10px;border-radius:50%;background:#ff5f57;"></span>
<span style="width:10px;height:10px;border-radius:50%;background:#febc2e;"></span>
<span style="width:10px;height:10px;border-radius:50%;background:#28c840;"></span>
<span style="margin-left:10px;font-size:11px;color:#52525b;font-family:monospace;">historical.flashalpha.com · COVID crash replay</span>
</div>
<div style="padding:1.5rem;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12.5px;line-height:1.75;color:#e4e4e7;">
<div style="color:#52525b;font-size:10px;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:8px;">Request</div>
<div><span style="color:#52525b;">$</span> <span style="color:#e4e4e7;">curl -H </span><span style="color:#fbbf24;">"X-Api-Key: …"</span> <span style="color:#52525b;">\</span></div>
<div style="padding-left:1rem;"><span style="color:#34d399;">https://historical.flashalpha.com</span><span style="color:#818cf8;">/v1/exposure/summary/SPY</span></div>
<div style="padding-left:1rem;"> <span style="color:#a78bfa;">?at=</span><span style="color:#f472b6;">2020-03-16T15:30:00</span></div>
<div style="color:#52525b;font-size:10px;letter-spacing:0.08em;text-transform:uppercase;margin:16px 0 8px;">Response · 200</div>
{ "symbol": "SPY", "underlying_price": 246.01, "gamma_flip": 270.92, "regime": "negative_gamma", "exposures": { "net_gex": -2,633,970,601, "net_dex": -169,419,489,077 } }
</div>
</div>
<!-- What you get -->
<div class="flex flex-col justify-between bg-white p-6" style="border-radius:1rem;border:1px solid #ddd6fe;">
<div>
<h3 class="text-xl font-bold text-zinc-900 mb-2">Backtest against the same API your live code already calls.</h3>
<p class="text-sm text-zinc-600 mb-5" style="line-height:1.65;">
The snapshot on the left is real SPY positioning at 15:30 ET on 2020-03-16, the day SPY closed down 12%. Same JSON your SDK already parses, just pointed at a different host with one extra query parameter.
</p>
<ul class="space-y-3 text-sm text-zinc-700">
<li class="flex items-start gap-2.5">
<svg class="w-4 h-4 shrink-0 mt-0.5" style="color:#4f46e5;" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5" /></svg>
<span>Identical analytics code path as the live API - any refinement that lands on <code class="text-xs">api.flashalpha.com</code> ships here on the next deploy.</span>
</li>
<li class="flex items-start gap-2.5">
<svg class="w-4 h-4 shrink-0 mt-0.5" style="color:#4f46e5;" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5" /></svg>
<span>VRP percentile <strong>date-bounded</strong> to <code class="text-xs">at</code> - no future leakage in backtests.</span>
</li>
<li class="flex items-start gap-2.5">
<svg class="w-4 h-4 shrink-0 mt-0.5" style="color:#4f46e5;" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5" /></svg>
<span>Fully backfilled: <strong>SPY 2018-04-16 → present</strong>. More symbols on demand - live coverage at <a href="https://historical.flashalpha.com/v1/tickers" target="_blank" rel="noopener" style="color:#4f46e5;font-weight:600;text-decoration:underline;">/v1/tickers</a>.</span>
</li>
</ul>
</div>
<div class="flex flex-wrap gap-3 mt-6 pt-5 border-t border-zinc-200">
<a href="/docs/historical-playground" data-analytics="cta-historical-playground" class="inline-flex items-center gap-1.5" style="padding:0.625rem 1.25rem;background:#4f46e5;color:#fff;font-size:0.875rem;font-weight:700;border-radius:0.5rem;text-decoration:none;box-shadow:0 4px 12px rgba(79,70,229,0.25);transition:background 0.15s;"
onmouseover="this.style.background='#4338ca'" onmouseout="this.style.background='#4f46e5'">
Try the replay playground
<svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6" /></svg>
</a>
<a href="/docs/historical-api" data-analytics="cta-historical-docs" class="inline-flex items-center" style="padding:0.625rem 1.25rem;background:#fff;color:#4338ca;font-size:0.875rem;font-weight:700;border-radius:0.5rem;border:2px solid #c7d2fe;text-decoration:none;transition:background 0.15s;"
onmouseover="this.style.background='#eef2ff'" onmouseout="this.style.background='#fff'">
Read the historical docs
</a>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- AI-Native: MCP Server -->
<section class="relative bg-zinc-950 border-b border-zinc-800">
<div class="py-12 md:py-20">
<div class="max-w-5xl mx-auto px-4 sm:px-6">
<div class="max-w-3xl mx-auto text-center pb-10">
<div class="inline-flex text-xs font-medium text-violet-400 bg-violet-900/30 px-3 py-1 rounded-full mb-4">AI-Native</div>
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-white mb-4">The only options API with an MCP server.</h2>
<p class="text-lg text-zinc-400">Connect FlashAlpha directly to Claude, Cursor, Windsurf, or any MCP-compatible AI assistant. Your agent gets real-time GEX, vol surfaces, and dealer positioning without writing a single line of integration code.</p>
</div>
<div class="grid md:grid-cols-2 gap-6 mb-8">
<!-- Setup -->
<div class="rounded-xl border border-zinc-800 overflow-hidden">
<div style="display:flex;align-items:center;gap:6px;padding:10px 16px;background:#0a0b10;border-bottom:1px solid rgba(255,255,255,0.06);">
<span style="width:10px;height:10px;border-radius:50%;background:#ff5f57;"></span>
<span style="width:10px;height:10px;border-radius:50%;background:#febc2e;"></span>
<span style="width:10px;height:10px;border-radius:50%;background:#28c840;"></span>
<span style="margin-left:8px;font-size:0.6875rem;color:#52525b;font-family:monospace;">Terminal</span>
</div>
<div style="padding:1.25rem 1.5rem;background:#0f1117;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:0.8125rem;line-height:1.8;">
<div style="color:#71717a;margin-bottom:0.75rem;"># Add to Claude Code</div>
<div><span style="color:#52525b;">$</span> <span style="color:#e4e4e7;">claude mcp add flashalpha</span> <span style="color:#a78bfa;">--transport http</span> <span style="color:#34d399;">\</span></div>
<div style="padding-left:1rem;"><span style="color:#34d399;">https://lab.flashalpha.com/mcp</span></div>
<div style="margin-top:1rem;color:#71717a;"># Then ask Claude:</div>
<div style="color:#fbbf24;">"What's the gamma regime for SPY right now?"</div>
</div>
</div>
<!-- Tools list -->
<div class="rounded-xl p-6 border border-zinc-800" style="background:#0f1117;">
<h3 class="text-sm font-semibold text-zinc-300 mb-2">73 MCP Tools Available</h3>
<div class="text-xs text-zinc-500 mb-4">56 live + 17 historical replay (Alpha tier)</div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:0.375rem;">
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_gex</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_dex</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_vex</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_chex</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_levels</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_exposure_summary</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_narrative</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_max_pain</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_zero_dte</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_volatility</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_advanced_volatility</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_vrp</div>
<div style="font-size:0.75rem;color:#a78bfa;font-family:monospace;">get_option_quote</div>
<div style="font-size:0.75rem;color:#34d399;font-family:monospace;">get_historical_gex</div>
<div style="font-size:0.75rem;color:#34d399;font-family:monospace;">get_historical_vrp</div>
<div style="font-size:0.75rem;color:#34d399;font-family:monospace;">get_historical_max_pain</div>
</div>
<div class="mt-3 text-xs text-zinc-600">+ 57 more — <a href="/docs/mcp" class="text-zinc-400 hover:text-zinc-200" style="text-decoration:underline;">see full list</a></div>
<div class="mt-4 pt-4" style="border-top:1px solid #27272a;">
<div class="flex items-center gap-2 text-xs text-zinc-500">
<span style="color:#22c55e;">●</span>
<span>Streamable HTTP · MCP 2025-06-18</span>
</div>
</div>
</div>
</div>
<div class="flex flex-wrap items-center justify-center gap-6 text-sm">
<a href="/docs/mcp" class="font-semibold text-violet-400 hover:text-violet-300 transition">MCP Docs →</a>
<a href="/for-ai-agents" class="font-semibold text-zinc-400 hover:text-zinc-200 transition">AI Agent Guide →</a>
<span class="text-zinc-600">|</span>
<span class="text-zinc-500">Works with Claude, Cursor, Windsurf, and any MCP client</span>
</div>
</div>
</div>
</section>
<!-- Quick Start -->
<section class="relative bg-zinc-900">
<div class="py-12 md:py-16">
<div class="max-w-4xl mx-auto px-4 sm:px-6">
<div class="text-center mb-10">
<div class="inline-flex text-xs font-medium text-emerald-400 bg-emerald-900/30 px-3 py-1 rounded-full mb-4">Quick Start</div>
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-white mb-3">Live data in 60 seconds.</h2>
<p class="text-zinc-400">No sales call. No setup fee. Three steps.</p>
</div>
<div class="grid md:grid-cols-3 gap-6 mb-10">
<div class="flex flex-col items-center text-center">
<div style="width:48px;height:48px;border-radius:50%;background:rgba(16,185,129,0.15);border:1px solid rgba(16,185,129,0.3);display:flex;align-items:center;justify-content:center;margin-bottom:16px;">
<span style="color:#10b981;font-weight:700;font-size:1.125rem;">1</span>
</div>
<h3 class="font-semibold text-white mb-1">Create a free account</h3>
<p class="text-sm text-zinc-400">Sign up with your email. No credit card. Takes 30 seconds.</p>
</div>
<div class="flex flex-col items-center text-center">
<div style="width:48px;height:48px;border-radius:50%;background:rgba(16,185,129,0.15);border:1px solid rgba(16,185,129,0.3);display:flex;align-items:center;justify-content:center;margin-bottom:16px;">
<span style="color:#10b981;font-weight:700;font-size:1.125rem;">2</span>
</div>
<h3 class="font-semibold text-white mb-1">Get your API key</h3>
<p class="text-sm text-zinc-400">Instant access from your profile dashboard. Copy and go.</p>
</div>
<div class="flex flex-col items-center text-center">
<div style="width:48px;height:48px;border-radius:50%;background:rgba(16,185,129,0.15);border:1px solid rgba(16,185,129,0.3);display:flex;align-items:center;justify-content:center;margin-bottom:16px;">
<span style="color:#10b981;font-weight:700;font-size:1.125rem;">3</span>
</div>
<h3 class="font-semibold text-white mb-1">Call the API</h3>
<p class="text-sm text-zinc-400">Real-time GEX for any ticker, right from your terminal.</p>
</div>
</div>
<!-- Split terminal: request + response -->
<div style="border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,0.1);background:#0c0c14;">
<!-- Terminal header -->
<div style="display:flex;align-items:center;gap:8px;padding:12px 20px;background:rgba(255,255,255,0.03);border-bottom:1px solid rgba(255,255,255,0.06);">
<span style="width:12px;height:12px;border-radius:50%;background:#ef4444;"></span>
<span style="width:12px;height:12px;border-radius:50%;background:#f59e0b;"></span>
<span style="width:12px;height:12px;border-radius:50%;background:#22c55e;"></span>
<span style="margin-left:8px;font-size:0.75rem;color:#52525b;font-family:ui-monospace,monospace;">FlashAlpha API - live example</span>
</div>
<!-- Split panes -->
<div style="display:grid;grid-template-columns:1fr 1fr;min-height:280px;" class="hero-terminal-grid">
<!-- REQUEST side -->
<div style="padding:1.5rem;border-right:1px solid rgba(255,255,255,0.06);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:0.8125rem;line-height:1.7;">
<div style="font-size:0.625rem;font-weight:700;color:#52525b;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:1rem;">Request</div>
<div style="color:#a1a1aa;">
<span style="color:#52525b;">$</span> <span style="color:#e4e4e7;font-weight:600;">curl</span> <span style="color:#22c55e;">https://lab.flashalpha.com/v1/exposure/gex/SPY</span> <span style="color:#52525b;">\</span><br>
<span style="color:#e4e4e7;"> -H</span> <span style="color:#fbbf24;">"X-Api-Key: cDu910mf<span style="color:#ef4444;">••••••••••••</span>"</span>
</div>
<div style="margin-top:2rem;">
<div style="font-size:0.625rem;font-weight:700;color:#52525b;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:0.75rem;">Also available</div>
<div style="margin-bottom:0.5rem;"><a href="/docs/lab-api-levels" style="color:#60a5fa;font-size:0.8125rem;text-decoration:none;font-weight:500;">/v1/exposure/levels/SPY</a><br><span style="color:#52525b;font-size:0.6875rem;">Gamma flip, call/put walls, 0DTE magnet</span></div>
<div style="margin-bottom:0.5rem;"><a href="/docs/lab-api-narrative" style="color:#60a5fa;font-size:0.8125rem;text-decoration:none;font-weight:500;">/v1/exposure/narrative/SPX</a><br><span style="color:#52525b;font-size:0.6875rem;">Verbal GEX analysis with regime outlook</span></div>
<div><a href="/docs/lab-api-volatility" style="color:#60a5fa;font-size:0.8125rem;text-decoration:none;font-weight:500;">/v1/volatility/TSLA</a><br><span style="color:#52525b;font-size:0.6875rem;">VRP, skew profiles, hedging scenarios</span></div>
</div>
</div>
<!-- RESPONSE side -->
<div style="padding:1.5rem;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:0.8125rem;line-height:1.7;background:rgba(0,0,0,0.2);">
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;">
<span style="font-size:0.625rem;font-weight:700;color:#52525b;text-transform:uppercase;letter-spacing:0.1em;">Response</span>
<span style="font-size:0.6875rem;color:#22c55e;font-weight:600;">• 200 OK</span>
</div>
<div style="color:#a1a1aa;">{<br>
<span style="color:#60a5fa;">"symbol"</span>: <span style="color:#fbbf24;">"SPY"</span>,<br>
<span style="color:#60a5fa;">"net_gex"</span>: <span style="color:#f59e0b;">-2847392</span>,<br>
<span style="color:#60a5fa;">"gamma_flip"</span>: <span style="color:#f59e0b;">582.50</span>,<br>
<span style="color:#60a5fa;">"regime"</span>: <span style="color:#fbbf24;">"negative"</span>,<br>
<span style="color:#60a5fa;">"strikes"</span>: [<br>
{ <span style="color:#60a5fa;">"strike"</span>: <span style="color:#f59e0b;">580</span>, <span style="color:#60a5fa;">"gex"</span>: <span style="color:#f59e0b;">-941820</span> },<br>
{ <span style="color:#60a5fa;">"strike"</span>: <span style="color:#f59e0b;">585</span>, <span style="color:#60a5fa;">"gex"</span>: <span style="color:#f59e0b;">-723401</span> },<br>
{ <span style="color:#60a5fa;">"strike"</span>: <span style="color:#f59e0b;">590</span>, <span style="color:#60a5fa;">"gex"</span>: <span style="color:#f59e0b;">412093</span> }<br>
],<br>
<span style="color:#60a5fa;">"updated_at"</span>: <span style="color:#fbbf24;">"2026-03-28T16:22:47Z"</span><br>
}</div>
</div>
</div>
</div>
<style>
@media (max-width: 768px) { .hero-terminal-grid { grid-template-columns: 1fr !important; } }
</style>
<!-- SDK install buttons -->
<div style="display:flex;flex-wrap:wrap;gap:10px;margin-top:1.25rem;justify-content:center;">
<a href="https://pypi.org/project/flashalpha/" target="_blank" rel="noopener" style="display:inline-flex;align-items:center;gap:8px;background:#18181b;border:1px solid #3f3f46;border-radius:10px;padding:10px 18px;font-family:ui-monospace,monospace;font-size:0.75rem;color:#e4e4e7;text-decoration:none;transition:border-color 0.15s;" onmouseover="this.style.borderColor='#10b981'" onmouseout="this.style.borderColor='#3f3f46'">
<svg width="16" height="16" viewBox="0 0 24 24" fill="#3b82f6"><path d="M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09z"/><path d="M21.54 14.14l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zM9.75 15.5h8.16l.01 2.75.02.37-.05.34-.11.31-.17.28-.25.26-.31.23-.38.2-.44.18-.51.15-.58.12-.64.1-.71.06-.77.04-.84.02-1.27-.05-1.07-.15-.9-.25-.73-.26-.59-.3-.45-.32-.34-.34-.25-.34-.16-.33-.1-.3-.04-.26-.02-.2.01-.13V15.5l.05-.63.13-.55.21-.46.26-.38.3-.31.33-.25.35-.19.35-.14.33-.1.3-.07.26-.04.21-.02h8.16z" fill="#fbbf24"/></svg>
pip install flashalpha
</a>
<a href="https://github.com/FlashAlpha-lab/flashalpha-js" target="_blank" rel="noopener" style="display:inline-flex;align-items:center;gap:8px;background:#18181b;border:1px solid #3f3f46;border-radius:10px;padding:10px 18px;font-family:ui-monospace,monospace;font-size:0.75rem;color:#e4e4e7;text-decoration:none;transition:border-color 0.15s;" onmouseover="this.style.borderColor='#10b981'" onmouseout="this.style.borderColor='#3f3f46'">
<svg width="16" height="16" viewBox="0 0 24 24" fill="#f59e0b"><path d="M0 0h24v24H0V0zm22.034 18.276c-.175-1.095-.888-2.015-3.003-2.873-.736-.345-1.554-.585-1.797-1.14-.091-.33-.105-.51-.046-.705.15-.646.915-.84 1.515-.66.39.12.75.42.976.9 1.034-.676 1.034-.676 1.755-1.125-.27-.42-.405-.6-.586-.78-.63-.6-1.469-.9-2.835-.78l-.705.089c-.676.165-1.32.525-1.71 1.005-1.14 1.291-.811 3.541.569 4.471 1.365 1.02 3.361 1.244 3.616 2.205.24 1.17-.87 1.545-1.966 1.41-.811-.18-1.26-.585-1.755-1.336l-1.83 1.051c.21.48.45.689.81 1.109 1.74 1.756 6.09 1.666 6.871-1.004.029-.09.24-.705.074-1.65l.046.067zm-8.983-7.245h-2.248c0 1.938-.009 3.864-.009 5.805 0 1.232.063 2.363-.138 2.711-.33.689-1.18.601-1.566.48-.396-.196-.597-.466-.83-.855-.063-.105-.11-.196-.127-.196l-1.825 1.125c.305.63.75 1.172 1.324 1.517.855.51 2.004.675 3.207.405.783-.226 1.458-.691 1.811-1.411.51-.93.402-2.07.397-3.346.012-2.054 0-4.109 0-6.179l.004-.056z"/></svg>
npm install flashalpha
</a>
<a href="https://www.nuget.org/packages/FlashAlpha" target="_blank" rel="noopener" style="display:inline-flex;align-items:center;gap:8px;background:#18181b;border:1px solid #3f3f46;border-radius:10px;padding:10px 18px;font-family:ui-monospace,monospace;font-size:0.75rem;color:#e4e4e7;text-decoration:none;transition:border-color 0.15s;" onmouseover="this.style.borderColor='#10b981'" onmouseout="this.style.borderColor='#3f3f46'">
<svg width="16" height="16" viewBox="0 0 24 24" fill="#a78bfa"><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm-1.25 17.292l-4.5-4.364 1.857-1.858 2.643 2.506 5.643-5.784 1.857 1.858-7.5 7.642z"/></svg>
dotnet add FlashAlpha
</a>
<a href="https://github.com/FlashAlpha-lab/flashalpha-go" target="_blank" rel="noopener" style="display:inline-flex;align-items:center;gap:8px;background:#18181b;border:1px solid #3f3f46;border-radius:10px;padding:10px 18px;font-family:ui-monospace,monospace;font-size:0.75rem;color:#e4e4e7;text-decoration:none;transition:border-color 0.15s;" onmouseover="this.style.borderColor='#10b981'" onmouseout="this.style.borderColor='#3f3f46'">
<svg width="16" height="16" viewBox="0 0 24 24" fill="#22d3ee"><path d="M1.811 10.231c-.047 0-.058-.023-.035-.059l.246-.315c.023-.035.081-.058.128-.058h4.172c.046 0 .058.035.035.07l-.199.303c-.023.036-.082.07-.117.07zM.047 11.306c-.047 0-.059-.023-.035-.058l.245-.316c.023-.035.082-.058.129-.058h5.328c.047 0 .07.035.058.07l-.093.28c-.012.047-.058.07-.105.07zm2.828 1.075c-.047 0-.059-.035-.035-.07l.163-.292c.023-.035.07-.07.117-.07h2.337c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082zm12.129-2.36c-.745.187-1.255.315-1.998.502-.176.046-.187.058-.34-.117-.174-.199-.303-.327-.548-.444-.737-.362-1.452-.257-2.107.105-.773.432-1.17 1.11-1.17 1.963 0 .851.559 1.534 1.394 1.628.714.082 1.312-.175 1.79-.725.105-.128.199-.268.316-.398H10.71c-.245 0-.304-.152-.222-.35.152-.362.432-.97.596-1.276.035-.07.117-.187.269-.187h4.45c-.023.315-.023.631-.07.946-.117.725-.363 1.416-.745 2.048-.596.968-1.405 1.661-2.444 2.06-.837.315-1.71.398-2.596.292-1.266-.152-2.326-.67-3.16-1.603-.724-.815-1.127-1.776-1.254-2.86-.187-1.475.222-2.803 1.023-3.988.909-1.347 2.128-2.209 3.653-2.561.887-.21 1.78-.222 2.667.023 1.08.304 1.93.876 2.59 1.776.233.327.42.676.558 1.058.059.128.024.187-.117.222z"/></svg>
go get flashalpha-go
</a>
</div>
<div class="flex flex-col sm:flex-row items-center justify-center gap-4 mt-8">
<a class="btn text-zinc-100 bg-emerald-600 hover:bg-emerald-500 shadow-sm px-8" href="/pricing" data-analytics="cta-quickstart">Get Your Free API Key</a>
<div class="flex items-center gap-4 text-sm text-zinc-400">
<a href="https://github.com/FlashAlpha-lab" target="_blank" rel="noopener" class="hover:text-zinc-200 transition flex items-center gap-1.5">
<svg class="w-4 h-4" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg>
View on GitHub
</a>
<span class="text-zinc-600">|</span>
<a href="https://pypi.org/project/flashalpha/" target="_blank" rel="noopener" class="hover:text-zinc-200 transition">PyPI</a>
</div>
</div>
</div>
</div>
</section>
<!-- Free Tools -->
<section class="relative bg-zinc-50 border-b border-zinc-200">
<div class="py-10 md:py-14">
<div class="max-w-6xl mx-auto px-4 sm:px-6">
<h2 class="font-inter-tight text-2xl md:text-3xl font-bold text-zinc-900 text-center mb-6">Free Tools - No Signup</h2>
<div class="grid grid-cols-2 lg:grid-cols-4 gap-3">
<a href="/tools/options-greeks-calculator" class="group bg-white rounded-lg p-4 border border-zinc-200 hover:border-amber-400 hover:shadow-md transition">
<div class="flex items-center gap-2 mb-1">
<span class="text-sm font-bold text-amber-700">Δ</span>
<h3 class="font-bold text-sm text-zinc-900 group-hover:text-amber-600 transition">Greeks Calculator</h3>
</div>
<p class="text-xs text-zinc-500">Black-Scholes Greeks - instant results.</p>
</a>
<a href="/tools/implied-volatility-calculator" class="group bg-white rounded-lg p-4 border border-zinc-200 hover:border-pink-400 hover:shadow-md transition">
<div class="flex items-center gap-2 mb-1">
<span class="text-xs font-bold text-pink-700">IV</span>
<h3 class="font-bold text-sm text-zinc-900 group-hover:text-pink-600 transition">IV Calculator</h3>
</div>
<p class="text-xs text-zinc-500">Solve IV from market price via Newton-Raphson.</p>
</a>
<a href="/tools/gamma-exposure" class="group bg-white rounded-lg p-4 border border-zinc-200 hover:border-sky-400 hover:shadow-md transition">
<div class="flex items-center gap-2 mb-1">
<span class="text-sm font-bold text-sky-700">Γ</span>
<h3 class="font-bold text-sm text-zinc-900 group-hover:text-sky-600 transition">GEX Scanner</h3>
</div>
<p class="text-xs text-zinc-500">Live gamma exposure, flip point, key walls.</p>
</a>
<a href="/tools/vol-surface" class="group bg-white rounded-lg p-4 border border-zinc-200 hover:border-rose-400 hover:shadow-md transition">
<div class="flex items-center gap-2 mb-1">
<span class="text-sm font-bold text-rose-700">σ</span>
<h3 class="font-bold text-sm text-zinc-900 group-hover:text-rose-600 transition">Vol Surface</h3>
</div>
<p class="text-xs text-zinc-500">3D IV surface - spot skew anomalies.</p>
</a>
</div>
<div class="text-center mt-4">
<a href="/tools" class="text-sm font-semibold text-zinc-600 hover:text-zinc-900 transition">View all tools →</a>
</div>
</div>
</div>
</section>
<!-- Vision / Tech credibility block -->
<section class="relative bg-zinc-800 after:absolute after:top-0 after:right-0 after:h-full after:w-96 after:pointer-events-none after:bg-linear-to-l after:from-zinc-800 max-lg:after:hidden">
<div class="py-12 md:py-20">
<!-- Carousel -->
<div class="max-w-xl lg:max-w-6xl mx-auto px-4 sm:px-6">
<div class="lg:flex space-y-12 lg:space-y-0 lg:space-x-12 xl:space-x-24" x-data="{ tab: '1' }">
<!-- Content -->
<div class="lg:max-w-none lg:min-w-[524px]">
<div class="mb-8">
<div class="inline-flex text-sm font-medium text-zinc-400 px-4 py-0.5 border border-transparent [background:linear-gradient(var(--color-zinc-800),var(--color-zinc-800))_padding-box,linear-gradient(120deg,var(--color-zinc-700),--theme(--color-zinc-700/0),var(--color-zinc-700))_border-box] rounded-full mb-4">Infrastructure as Feature</div>
<h3 class="font-inter-tight text-3xl font-bold text-zinc-200 mb-4">Under the Hood</h3>
<p class="text-lg text-zinc-500 mb-3">FlashAlpha isn't just software - it's purpose-built infrastructure. We don't query disk; we query live memory. Every millisecond matters when you're trading volatility.</p>
<p class="text-lg text-zinc-500">Built on proprietary high-bandwidth tick ingestion, distributed compute, auto-scaling infrastructure, and an in-memory analytics engine - the edge comes from how these components are orchestrated, not from any single feature.</p>
</div>
<!-- Tabs buttons -->
<div class="mb-8 md:mb-0 space-y-2">
<button
:class="tab !== '1' ? '' : '[background:linear-gradient(#2E2E32,#2E2E32)_padding-box,linear-gradient(120deg,var(--color-zinc-700),--theme(--color-zinc-700/0),var(--color-zinc-700))_border-box]'"
class="text-left flex items-center px-6 py-4 rounded-sm border border-transparent"
@click.prevent="tab = '1'"
>
<svg class="shrink-0 fill-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg" width="24" height="24">
<path d="m7.951 14.537 6.296-7.196 1.506 1.318-7.704 8.804-3.756-3.756 1.414-1.414 2.244 2.244Zm11.296-7.196 1.506 1.318-7.704 8.804-1.756-1.756 1.414-1.414.244.244 6.296-7.196Z" />
</svg>
<div>
<div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">In-Memory Decisioning</div>
<div class="text-zinc-500">Our proprietary in-memory analytics engine powers real-time computation. We don't query disk; we query live memory with nanosecond-precision timestamps.</div>
</div>
</button>
<button
:class="tab !== '2' ? '' : '[background:linear-gradient(#2E2E32,#2E2E32)_padding-box,linear-gradient(120deg,var(--color-zinc-700),--theme(--color-zinc-700/0),var(--color-zinc-700))_border-box]'"
class="text-left flex items-center px-6 py-4 rounded-sm border border-transparent"
@click.prevent="tab = '2'"
>
<svg class="shrink-0 fill-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg" width="24" height="24">
<path d="m16.997 19.056-1.78-.912A13.91 13.91 0 0 0 16.75 11.8c0-2.206-.526-4.38-1.533-6.344l1.78-.912A15.91 15.91 0 0 1 18.75 11.8c0 2.524-.602 5.01-1.753 7.256Zm-3.616-1.701-1.77-.93A9.944 9.944 0 0 0 12.75 11.8c0-1.611-.39-3.199-1.14-4.625l1.771-.93c.9 1.714 1.37 3.62 1.369 5.555 0 1.935-.47 3.841-1.369 5.555Zm-3.626-1.693-1.75-.968c.49-.885.746-1.881.745-2.895a5.97 5.97 0 0 0-.745-2.893l1.75-.968a7.968 7.968 0 0 1 .995 3.861 7.97 7.97 0 0 1-.995 3.863Zm-3.673-1.65-1.664-1.11c.217-.325.333-.709.332-1.103 0-.392-.115-.776-.332-1.102L6.082 9.59c.437.655.67 1.425.668 2.21a3.981 3.981 0 0 1-.668 2.212Z" />
</svg>
<div>
<div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">Distributed Architecture</div>
<div class="text-zinc-500">Auto-scaling compute allows modular scalability. Scale from 10 to 100 traders without performance degradation. Optimized network routing for low-latency delivery.</div>
</div>
</button>
<button
:class="tab !== '3' ? '' : '[background:linear-gradient(#2E2E32,#2E2E32)_padding-box,linear-gradient(120deg,var(--color-zinc-700),--theme(--color-zinc-700/0),var(--color-zinc-700))_border-box]'"
class="text-left flex items-center px-6 py-4 rounded-sm border border-transparent"
@click.prevent="tab = '3'"
>
<svg class="shrink-0 fill-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg" width="24" height="24">
<path d="m11.293 5.293 1.414 1.414-8 8-1.414-1.414 8-8Zm7-1 1.414 1.414-8 8-1.414-1.414 8-8Zm0 6 1.414 1.414-8 8-1.414-1.414 8-8Z" />
</svg>
<div>
<div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">Signal-to-Execution Workflow</div>
<div class="text-zinc-500">Analytics results convert to API webhooks triggering execution algorithms. REST API for EOD reconciliation, real-time polling for live updates, and broker-ready for automated order routing.</div>
</div>
</button>
</div>
</div>
<!-- Tabs items -->
<div class="relative lg:max-w-none">
<div class="relative flex flex-col">
<!-- Item 1 -->
<div
class="w-full"
x-show="tab === '1'"
x-transition:enter="transition ease-in-out duration-700 transform order-first"
x-transition:enter-start="opacity-0 translate-x-8"
x-transition:enter-end="opacity-100 translate-x-0"
x-transition:leave="transition ease-in-out duration-300 transform absolute"
x-transition:leave-start="opacity-100 translate-x-0"
x-transition:leave-end="opacity-0 -translate-x-8"
>
<div class="bg-zinc-900 p-8 rounded-xl border border-zinc-700 shadow-2xl">
<div class="flex flex-col gap-4">
<!-- Diagram Row 1 -->
<div class="flex justify-center gap-4">
<div class="bg-zinc-800 p-4 rounded border border-zinc-600 text-center w-32">
<div class="text-xs text-zinc-400">Market Data</div>
<div class="text-emerald-400 font-mono text-sm">Real-time Feed</div>
</div>
<div class="bg-zinc-800 p-4 rounded border border-zinc-600 text-center w-32">
<div class="text-xs text-zinc-400">Data Provider</div>
<div class="text-emerald-400 font-mono text-sm">REST API</div>
</div>
</div>
<!-- Arrow -->
<div class="flex justify-center text-zinc-500">↓</div>
<!-- Diagram Row 2 (Engine) -->
<div class="bg-zinc-950 p-6 rounded border border-emerald-900/50 relative overflow-hidden">
<div class="absolute inset-0 bg-emerald-500/5"></div>
<div class="relative text-center">
<div class="text-white font-bold mb-2">FlashAlpha Core Engine</div>
<div class="grid grid-cols-2 gap-2 text-xs">
<div class="bg-zinc-900 p-2 rounded border border-zinc-800 text-zinc-300">Analytics Engine</div>
<div class="bg-zinc-900 p-2 rounded border border-zinc-800 text-zinc-300">Vol Surface Fitter</div>
<div class="bg-zinc-900 p-2 rounded border border-zinc-800 text-zinc-300">Greeks Calc</div>
<div class="bg-zinc-900 p-2 rounded border border-zinc-800 text-zinc-300">Risk Engine</div>
</div>
</div>
</div>
<!-- Arrow -->
<div class="flex justify-center text-zinc-500">↓</div>
<!-- Diagram Row 3 (Output) -->
<div class="bg-zinc-800 p-4 rounded border border-zinc-600 text-center">
<div class="text-white font-bold">Client API / UI</div>
<div class="text-xs text-zinc-400 mt-1">Low-Latency Delivery</div>
</div>
</div>
</div>
</div>
<!-- Item 2 -->
<div
class="w-full"
x-show="tab === '2'"
x-transition:enter="transition ease-in-out duration-700 transform order-first"
x-transition:enter-start="opacity-0 translate-x-8"
x-transition:enter-end="opacity-100 translate-x-0"
x-transition:leave="transition ease-in-out duration-300 transform absolute"
x-transition:leave-start="opacity-100 translate-x-0"
x-transition:leave-end="opacity-0 -translate-x-8"
>
<div class="bg-zinc-900 p-8 rounded-xl border border-zinc-700 shadow-2xl flex items-center justify-center h-full min-h-[300px]">
<div class="text-center">
<div class="inline-flex items-center justify-center w-16 h-16 rounded-full bg-zinc-800 mb-4">
<svg class="w-8 h-8 text-zinc-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"></path></svg>
</div>
<h4 class="text-xl font-bold text-white mb-2">Auto-Scaling Native</h4>
<p class="text-zinc-400 max-w-sm mx-auto">Auto-scaling services for ingestion, calculation, and API serving. Zero downtime deployments.</p>
</div>
</div>
</div>
<!-- Item 3 -->
<div
class="w-full"
x-show="tab === '3'"
x-transition:enter="transition ease-in-out duration-700 transform order-first"
x-transition:enter-start="opacity-0 translate-x-8"
x-transition:enter-end="opacity-100 translate-x-0"
x-transition:leave="transition ease-in-out duration-300 transform absolute"
x-transition:leave-start="opacity-100 translate-x-0"
x-transition:leave-end="opacity-0 -translate-x-8"
>
<div class="bg-zinc-900 p-8 rounded-xl border border-zinc-700 shadow-2xl flex items-center justify-center h-full min-h-[300px]">
<div class="text-center">
<div class="inline-flex items-center justify-center w-16 h-16 rounded-full bg-zinc-800 mb-4">
<svg class="w-8 h-8 text-zinc-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg>
</div>
<h4 class="text-xl font-bold text-white mb-2">Signal to Execution</h4>
<p class="text-zinc-400 max-w-sm mx-auto">Webhooks trigger your execution algos instantly. Broker API support for direct market access.</p>
</div>
</div>
</div>
</div>
<!-- Gear illustration -->
</div>
</div>
</div>
<!-- Features blocks -->
<div class="max-w-6xl mx-auto px-4 sm:px-6 mt-24 lg:mt-32">
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-8 lg:gap-16">
<!-- Block #2 -->
<div>
<div class="flex items-center mb-1">
<svg class="fill-zinc-400 mr-2" xmlns="http://www.w3.org/2000/svg" width="16" height="16">
<path d="M13 16c-.153 0-.306-.035-.447-.105l-3.851-1.926c-.231.02-.465.031-.702.031-4.411 0-8-3.14-8-7s3.589-7 8-7 8 3.14 8 7c0 1.723-.707 3.351-2 4.63V15a1.003 1.003 0 0 1-1 1Zm-4.108-4.054c.155 0 .308.036.447.105L12 13.382v-2.187c0-.288.125-.562.341-.752C13.411 9.506 14 8.284 14 7c0-2.757-2.691-5-6-5S2 4.243 2 7s2.691 5 6 5c.266 0 .526-.02.783-.048a1.01 1.01 0 0 1 .109-.006Z" />
</svg>
<h3 class="font-inter-tight font-semibold text-zinc-200">Second-Order Greeks</h3>
</div>
<p class="text-sm text-zinc-500">Vanna (Delta sensitivity to Vol), Volga (Vega sensitivity to Vol), and Charm (Delta decay). Essential for managing complex books and 0DTE strategies.</p>
</div>
<!-- Block #3 -->
<div>
<div class="flex items-center mb-1">
<svg class="fill-zinc-400 mr-2" xmlns="http://www.w3.org/2000/svg" width="16" height="16">
<path d="M7 14c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7ZM7 2C4.243 2 2 4.243 2 7s2.243 5 5 5 5-2.243 5-5-2.243-5-5-5Zm8.707 12.293a.999.999 0 1 1-1.414 1.414L11.9 13.314a8.019 8.019 0 0 0 1.414-1.414l2.393 2.393Z" />
</svg>
<h3 class="font-inter-tight font-semibold text-zinc-200">EV Probability Surface</h3>
</div>
<p class="text-sm text-zinc-500">3D visualization combining IV, Time to Expiration, and PoP. Find "Islands of Profitability" where surface shows underpriced volatility vs historical norms.</p>
</div>
<!-- Block #4 -->
<div>
<div class="flex items-center mb-1">
<svg class="fill-zinc-400 mr-2" xmlns="http://www.w3.org/2000/svg" width="16" height="16">
<path d="M14.6.085 8 2.885 1.4.085c-.5-.2-1.4-.1-1.4.9v11c0 .4.2.8.6.9l7 3c.3.1.5.1.8 0l7-3c.4-.2.6-.5.6-.9v-11c0-1-.9-1.1-1.4-.9ZM2 2.485l5 2.1v8.8l-5-2.1v-8.8Zm12 8.8-5 2.1v-8.7l5-2.1v8.7Z" />
</svg>
<h3 class="font-inter-tight font-semibold text-zinc-200">Skew & Term Structure</h3>
</div>
<p class="text-sm text-zinc-500">Real-time skew alerts when Put IV vs Call IV deviates 2-sigma. Term structure analysis for VIX and single-stock Contango/Backwardation opportunities.</p>
</div>
<!-- Block #6 -->
<div>
<div class="flex items-center mb-1">
<svg class="fill-zinc-400 mr-2" xmlns="http://www.w3.org/2000/svg" width="14" height="16">
<path d="M13 14a1 1 0 0 1 0 2H1a1 1 0 0 1 0-2h12Zm-6.707-2.293-5-5a1 1 0 0 1 1.414-1.414L6 8.586V1a1 1 0 1 1 2 0v7.586l3.293-3.293a1 1 0 1 1 1.414 1.414l-5 5a1 1 0 0 1-1.414 0Z" />
</svg>
<h3 class="font-inter-tight font-semibold text-zinc-200">Computed API Endpoints</h3>
</div>
<p class="text-sm text-zinc-500"><code class="text-xs bg-zinc-700 px-1 rounded">GET /analytics/volatility-surface</code>, <code class="text-xs bg-zinc-700 px-1 rounded">GET /risk/portfolio-margin</code>, <code class="text-xs bg-zinc-700 px-1 rounded">GET /greeks/second-order</code>. Alpha delivered, not just raw prices.</p>
</div>
</div>
</div>
</div>
</section>
<!-- Trust Signals Section -->
<section class="relative bg-zinc-50">
<div class="py-12 md:py-20">
<div class="max-w-6xl mx-auto px-4 sm:px-6">
<div class="max-w-3xl mx-auto text-center pb-12">
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-zinc-900 mb-4">Why FlashAlpha</h2>
<p class="text-lg text-zinc-500">FlashAlpha's unique selling proposition: bridging the gap between OptionMetrics' research-grade historical data and SpiderRock's execution infrastructure with an actionable analytics and decision layer.</p>
</div>
<!-- Performance & Reliability KPIs -->
<div class="mb-16">
<h3 class="text-lg font-semibold text-zinc-800 text-center mb-6">Performance & Reliability</h3>
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4 max-w-4xl mx-auto">
<div class="bg-white rounded-xl p-5 border border-zinc-200 text-center">
<div class="text-2xl font-bold text-zinc-900 mb-1">~10ms</div>
<div class="text-xs text-zinc-500">Enterprise Compute Latency</div>
<div class="text-xs text-zinc-400 mt-1">Dedicated infrastructure</div>
</div>
<div class="bg-white rounded-xl p-5 border border-zinc-200 text-center">
<div class="text-2xl font-bold text-zinc-900 mb-1">6,000+</div>
<div class="text-xs text-zinc-500">Underlyings Covered</div>
<div class="text-xs text-zinc-400 mt-1">Full market data coverage</div>
</div>
<div class="bg-white rounded-xl p-5 border border-zinc-200 text-center">
<div class="text-2xl font-bold text-zinc-900 mb-1">10→100</div>
<div class="text-xs text-zinc-500">Trader Scaling</div>
<div class="text-xs text-zinc-400 mt-1">No performance degradation</div>
</div>
</div>
<p class="text-center text-xs text-zinc-500 mt-4">Load-tested under extreme volatility conditions including Aug 2024 VIX spike. Enterprise-grade HPC architecture with dedicated infrastructure.</p>
</div>
<!-- Tech Stack -->
<div class="mb-16">
<h3 class="text-lg font-semibold text-zinc-800 text-center mb-6">Core Technology Stack</h3>
<div class="flex flex-wrap justify-center gap-3 max-w-4xl mx-auto">
<span class="px-4 py-2 bg-white rounded-full border border-zinc-200 text-sm font-medium text-zinc-700">Auto-Scaling Compute</span>
<span class="px-4 py-2 bg-white rounded-full border border-zinc-200 text-sm font-medium text-zinc-700">In-Memory Analytics</span>
<span class="px-4 py-2 bg-white rounded-full border border-zinc-200 text-sm font-medium text-zinc-700">Event-Driven</span>
<span class="px-4 py-2 bg-white rounded-full border border-zinc-200 text-sm font-medium text-zinc-700">REST API</span>
<span class="px-4 py-2 bg-white rounded-full border border-zinc-200 text-sm font-medium text-zinc-700">Real-time Data</span>
<span class="px-4 py-2 bg-white rounded-full border border-zinc-200 text-sm font-medium text-zinc-700">Docker</span>
<span class="px-4 py-2 bg-white rounded-full border border-zinc-200 text-sm font-medium text-zinc-700">SDKs: Python, JS, C#, Go, Java</span>
</div>
</div>
<!-- Case Studies & Partnerships -->
<div class="grid md:grid-cols-2 gap-8 mb-16">
<!-- Case Study -->
<div class="bg-white rounded-xl p-6 border border-zinc-200 shadow-sm">
<div class="flex items-center mb-4">
<div class="w-10 h-10 bg-emerald-100 rounded-lg flex items-center justify-center mr-3">
<svg class="w-5 h-5 text-emerald-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/>
</svg>
</div>
<span class="text-xs font-medium text-emerald-600 bg-emerald-50 px-2 py-1 rounded-full">Case Study</span>
</div>
<h4 class="font-inter-tight text-lg font-semibold text-zinc-900 mb-2">Compute Pipeline Optimization</h4>
<p class="text-sm text-zinc-600 mb-4">Optimized options chain processing for a systematic volatility desk - from hundreds of milliseconds to single-digit ms on dedicated infrastructure, enabling real-time EV scanning across 6,000+ underlyings.</p>
<ul class="text-xs text-zinc-500 space-y-1">
<li class="flex items-center"><span class="w-1.5 h-1.5 bg-emerald-500 rounded-full mr-2"></span>Order-of-magnitude latency reduction</li>
<li class="flex items-center"><span class="w-1.5 h-1.5 bg-emerald-500 rounded-full mr-2"></span>Full market data coverage</li>
<li class="flex items-center"><span class="w-1.5 h-1.5 bg-emerald-500 rounded-full mr-2"></span>Continuous Greeks recalculation</li>
</ul>
</div>
<!-- Partnerships -->
<div class="bg-white rounded-xl p-6 border border-zinc-200 shadow-sm">
<div class="flex items-center mb-4">
<div class="w-10 h-10 bg-blue-100 rounded-lg flex items-center justify-center mr-3">
<svg class="w-5 h-5 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"/>
</svg>
</div>
<span class="text-xs font-medium text-blue-600 bg-blue-50 px-2 py-1 rounded-full">Integrations</span>
</div>
<h4 class="font-inter-tight text-lg font-semibold text-zinc-900 mb-2">Execution & Data Partners</h4>
<p class="text-sm text-zinc-600 mb-4">Native integrations with industry-standard platforms for seamless workflow from signal to execution.</p>
<div class="flex flex-wrap gap-2">
<span class="px-3 py-1.5 bg-zinc-100 rounded text-xs font-medium text-zinc-700">Interactive Brokers TWS</span>
<span class="px-3 py-1.5 bg-zinc-100 rounded text-xs font-medium text-zinc-700">Broker APIs</span>
<span class="px-3 py-1.5 bg-zinc-100 rounded text-xs font-medium text-zinc-700">Market Data Feeds</span>
</div>
</div>
</div>
<!-- Regulatory Transparency -->
<div class="max-w-3xl mx-auto" style="margin-top: 4rem; margin-bottom: 2rem;">
<div class="bg-white rounded-xl border border-zinc-200 shadow-sm" style="padding: 2rem 2.5rem;">
<h4 class="font-inter-tight text-xl font-semibold text-zinc-900" style="margin-bottom: 1.5rem;">Regulatory Transparency</h4>
<p class="text-sm text-zinc-700 mb-4">
<strong class="text-zinc-900">FlashAlpha is a technology provider.</strong> We build and operate software for options analytics, market data processing, and trading infrastructure.
</p>
<p class="text-sm text-zinc-700 mb-4">
We are <strong class="text-zinc-900">not</strong> a Registered Investment Advisor (RIA), broker-dealer, fund manager, or financial advisor. We do not:
</p>
<ul class="text-sm text-zinc-600 space-y-1 mb-6 ml-4">
<li>Provide investment advice or recommendations</li>
<li>Manage client funds or portfolios</li>
<li>Execute trades on behalf of clients</li>
<li>Hold custody of client assets</li>
<li>Guarantee trading results or returns</li>
</ul>
<p class="text-sm text-zinc-600 mb-6">
Our platform provides analytical tools and data. All trading decisions are made solely by the user.
</p>
<div class="pt-4 border-t border-zinc-200">
<p class="text-xs text-zinc-500">
<span class="font-medium text-zinc-700">Domicile:</span> Cyprus |
<span class="font-medium text-zinc-700">Business Type:</span> Software & Consulting Services
</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- FAQ Section -->
<section class="relative bg-white">
<div class="py-12 md:py-20">
<div class="max-w-4xl mx-auto px-4 sm:px-6">
<div class="text-center pb-12">
<div class="inline-flex text-xs font-medium text-zinc-600 bg-zinc-100 px-3 py-1 rounded-full mb-4">Common Questions</div>
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-zinc-900 mb-4">Frequently Asked Questions</h2>
<p class="text-lg text-zinc-500">Quick answers to common questions about FlashAlpha.</p>
</div>
<div class="space-y-4" x-data="{ openFaq: null }">
<!-- FAQ 1 -->
<div class="border border-zinc-200 rounded-xl overflow-hidden">
<button @click="openFaq = openFaq === 1 ? null : 1" class="w-full flex items-center justify-between p-6 text-left bg-white hover:bg-zinc-50 transition">
<span class="font-inter-tight font-semibold text-zinc-900">What data do we need to provide?</span>
<svg :class="{ 'rotate-180': openFaq === 1 }" class="w-5 h-5 text-zinc-500 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
</svg>
</button>
<div x-show="openFaq === 1" x-collapse class="px-6 pb-6">
<p class="text-zinc-600"><strong>None.</strong> FlashAlpha comes with its own market data feeds including full US options data. You don't need to provide any data sources - just connect to our API or use the web interface. However, if you need to integrate your own proprietary data sources, our team can build that integration - <a href="/request-discussion" class="text-emerald-600 hover:underline" data-analytics="cta-faq-inline">contact us for a quote</a>.</p>
</div>
</div>
<!-- FAQ 2 -->
<div class="border border-zinc-200 rounded-xl overflow-hidden">
<button @click="openFaq = openFaq === 2 ? null : 2" class="w-full flex items-center justify-between p-6 text-left bg-white hover:bg-zinc-50 transition">
<span class="font-inter-tight font-semibold text-zinc-900">How do we deploy FlashAlpha?</span>
<svg :class="{ 'rotate-180': openFaq === 2 }" class="w-5 h-5 text-zinc-500 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
</svg>
</button>
<div x-show="openFaq === 2" x-collapse class="px-6 pb-6">
<p class="text-zinc-600"><strong>You don't.</strong> FlashAlpha is a fully managed service. We handle all infrastructure - cloud deployment, scaling, data feeds, and maintenance. You access the platform via web interface or API.</p>
</div>
</div>
<!-- FAQ 3 -->
<div class="border border-zinc-200 rounded-xl overflow-hidden">
<button @click="openFaq = openFaq === 3 ? null : 3" class="w-full flex items-center justify-between p-6 text-left bg-white hover:bg-zinc-50 transition">
<span class="font-inter-tight font-semibold text-zinc-900">Is my strategy safe? How do you handle IP protection?</span>
<svg :class="{ 'rotate-180': openFaq === 3 }" class="w-5 h-5 text-zinc-500 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
</svg>
</button>
<div x-show="openFaq === 3" x-collapse class="px-6 pb-6">
<p class="text-zinc-600">For latency-sensitive workloads, computation must be co-located with the market data stream to avoid serialization, network hops, and scheduling jitter.</p>
<p class="text-zinc-600 mt-2">In those cases, client logic is executed inside FlashAlpha-managed isolated compute environments, running on the same nodes as the data feed.</p>
<p class="text-zinc-600 mt-2">The logic is treated as an opaque execution unit. FlashAlpha does not inspect, modify, or retain strategy parameters. Isolation is enforced at the process and infrastructure level, making cross-client access architecturally impossible.</p>
</div>
</div>
<!-- FAQ 4 -->
<div class="border border-zinc-200 rounded-xl overflow-hidden">
<button @click="openFaq = openFaq === 4 ? null : 4" class="w-full flex items-center justify-between p-6 text-left bg-white hover:bg-zinc-50 transition">
<span class="font-inter-tight font-semibold text-zinc-900">How does FlashAlpha integrate with our existing systems?</span>
<svg :class="{ 'rotate-180': openFaq === 4 }" class="w-5 h-5 text-zinc-500 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
</svg>
</button>
<div x-show="openFaq === 4" x-collapse class="px-6 pb-6">
<p class="text-zinc-600">FlashAlpha exposes computed outputs via high-throughput REST API interfaces designed for continuous consumption.</p>
<p class="text-zinc-600 mt-2">The same computation logic is applied across historical replays and live market data, producing consistent surfaces, Greeks, and strategy-level metrics in real time.</p>
<p class="text-zinc-600 mt-2">Outputs can be consumed via REST API, official SDKs (Python, JavaScript, C#, Go, Java), MCP for AI assistants, or visualised via the FlashAlpha UI.</p>
</div>
</div>
<!-- FAQ 5 -->
<div class="border border-zinc-200 rounded-xl overflow-hidden">
<button @click="openFaq = openFaq === 5 ? null : 5" class="w-full flex items-center justify-between p-6 text-left bg-white hover:bg-zinc-50 transition">
<span class="font-inter-tight font-semibold text-zinc-900">How do I get started?</span>
<svg :class="{ 'rotate-180': openFaq === 5 }" class="w-5 h-5 text-zinc-500 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
</svg>
</button>
<div x-show="openFaq === 5" x-collapse class="px-6 pb-6">
<p class="text-zinc-600"><strong>Sign up for free</strong> on our <a href="/pricing" class="text-emerald-600 hover:underline">pricing page</a> - no credit card required. You'll get an API key immediately and can start making requests. The free tier includes 5 requests per day with access to Core and Exposure endpoints. Upgrade anytime for higher limits and additional endpoints.</p>
</div>
</div>
<!-- FAQ 6 -->
<div class="border border-zinc-200 rounded-xl overflow-hidden">
<button @click="openFaq = openFaq === 6 ? null : 6" class="w-full flex items-center justify-between p-6 text-left bg-white hover:bg-zinc-50 transition">
<span class="font-inter-tight font-semibold text-zinc-900">What's the pricing model?</span>
<svg :class="{ 'rotate-180': openFaq === 6 }" class="w-5 h-5 text-zinc-500 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
</svg>
</button>
<div x-show="openFaq === 6" x-collapse class="px-6 pb-6">
<p class="text-zinc-600">Simple, transparent pricing. Start free with 5 requests/day. Paid plans start at <strong>$79/month</strong> (Basic) with 100 requests/day, up to <strong>$1,499/month</strong> (Alpha) with unlimited requests, no cache (real-time data), and dedicated support. Annual billing saves 20%. See our <a href="/pricing" class="text-emerald-600 hover:underline">pricing page</a> for full details. Custom enterprise plans are also available.</p>
</div>
</div>
<!-- FAQ 7 -->
<div class="border border-zinc-200 rounded-xl overflow-hidden">
<button @click="openFaq = openFaq === 7 ? null : 7" class="w-full flex items-center justify-between p-6 text-left bg-white hover:bg-zinc-50 transition">
<span class="font-inter-tight font-semibold text-zinc-900">Are you a registered investment advisor?</span>
<svg :class="{ 'rotate-180': openFaq === 7 }" class="w-5 h-5 text-zinc-500 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
</svg>
</button>
<div x-show="openFaq === 7" x-collapse class="px-6 pb-6">
<p class="text-zinc-600"><strong>No.</strong> FlashAlpha is a technology provider, not a financial advisor. We provide infrastructure and analytical tools. We don't provide investment advice, manage funds, execute trades on your behalf, or hold custody of assets. All trading decisions are made solely by you.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Founder Credentials & Trust Signals -->
<section class="relative bg-white border-b border-zinc-200">
<div class="py-12 md:py-16">
<div class="max-w-6xl mx-auto px-4 sm:px-6">
<div class="grid md:grid-cols-2 gap-8 items-center">
<!-- Founder Bio -->
<div class="bg-zinc-50 rounded-xl p-6 border border-zinc-200">
<div class="flex items-start gap-4 mb-4">
<div style="width: 56px; height: 56px; background-color: #27272a; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0;">
<span style="font-size: 1.25rem; font-weight: 700; color: white;">TD</span>
</div>
<div>
<h3 class="font-inter-tight text-lg font-semibold text-zinc-900">Tomasz Dobrowolski</h3>
<p class="text-sm text-zinc-600">Founder & CTO</p>
</div>
</div>
<p class="text-sm text-zinc-600 mb-3">
<strong class="text-zinc-800">15+ years in software engineering. Options analytics practitioner.</strong> Options strategy specialist with deep expertise in volatility modeling, Greeks analytics, and systematic trading systems.
</p>
<p class="text-sm text-zinc-600">
Built analytics platforms processing millions of option structures per second.
</p>
<div class="mt-4 pt-4 border-t border-zinc-200">
<a href="https://www.linkedin.com/in/tomasz-dobrowolski-8b229836/" target="_blank" rel="noopener" class="inline-flex items-center text-sm font-medium text-zinc-600 hover:text-zinc-900 transition">
<svg class="w-4 h-4 mr-2" fill="currentColor" viewBox="0 0 24 24"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
View LinkedIn Profile
</a>
</div>
</div>
<!-- Trust Signals -->
<div class="space-y-4">
<div class="flex items-start p-4 bg-emerald-50 rounded-lg border border-emerald-100">
<div class="w-8 h-8 bg-emerald-600 rounded-lg flex items-center justify-center mr-3 shrink-0">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
<polyline points="9 12 12 15 16 10"></polyline>
</svg>
</div>
<div>
<h4 class="font-semibold text-zinc-900 text-sm">Your Strategy Stays Yours</h4>
<p class="text-xs text-zinc-600 mt-1">Client logic runs in isolated environments with zero code transfer between parties. Your proprietary models never leave your control.</p>
</div>
</div>
<div class="flex items-start p-4 bg-zinc-50 rounded-lg border border-zinc-200">
<div class="w-8 h-8 bg-zinc-700 rounded-lg flex items-center justify-center mr-3 shrink-0">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect>
<line x1="8" y1="6" x2="16" y2="6"></line>
<line x1="8" y1="10" x2="16" y2="10"></line>
<line x1="8" y1="14" x2="12" y2="14"></line>
</svg>
</div>
<div>
<h4 class="font-semibold text-zinc-900 text-sm">Technology Provider, Not Advisor</h4>
<p class="text-xs text-zinc-600 mt-1">FlashAlpha provides infrastructure and analytics tools. We don't provide investment advice, manage funds, or execute trades on your behalf.</p>
</div>
</div>
<div class="flex items-start p-4 bg-zinc-100 rounded-lg border border-zinc-200">
<div class="w-8 h-8 bg-zinc-800 rounded-lg flex items-center justify-center mr-3 shrink-0">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect>
<path d="M7 11V7a5 5 0 0 1 10 0v4"></path>
</svg>
</div>
<div>
<h4 class="font-semibold text-zinc-900 text-sm">No Cross-Client Data Leakage</h4>
<p class="text-xs text-zinc-600 mt-1">Strict data isolation by design. Your queries, strategies, and analytics are never shared or visible to other clients.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Final CTA Section -->
<section class="relative bg-zinc-900">
<div class="py-16 md:py-24">
<div class="max-w-4xl mx-auto px-4 sm:px-6 text-center">
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-white mb-4">
Ready to Stop Building Infrastructure<br class="hidden md:block" />
and Start Finding Edge?
</h2>
<p class="text-lg text-zinc-400 mb-6 max-w-2xl mx-auto">
Get options analytics into your models in minutes, not months. Sign up free - no credit card required.
</p>
<!-- Next Steps Box -->
<div class="bg-zinc-800/50 rounded-xl p-6 mb-8 border border-zinc-700 max-w-xl mx-auto">
<h3 class="text-sm font-semibold text-emerald-400 mb-4">Get Started in 3 Steps</h3>
<div class="flex flex-col md:flex-row items-center justify-center gap-4 text-sm text-zinc-300">
<div class="flex items-center gap-2">
<div class="w-6 h-6 bg-emerald-600 rounded-full flex items-center justify-center text-xs font-bold text-white">1</div>
<span>Create a free account</span>
</div>
<svg class="w-4 h-4 text-zinc-600 hidden md:block" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
</svg>
<div class="flex items-center gap-2">
<div class="w-6 h-6 bg-emerald-600 rounded-full flex items-center justify-center text-xs font-bold text-white">2</div>
<span>Get your API key</span>
</div>
<svg class="w-4 h-4 text-zinc-600 hidden md:block" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
</svg>
<div class="flex items-center gap-2">
<div class="w-6 h-6 bg-emerald-600 rounded-full flex items-center justify-center text-xs font-bold text-white">3</div>
<span>Start building</span>
</div>
</div>
</div>
<div class="flex flex-col sm:flex-row items-center justify-center gap-4">
<a class="btn text-white bg-emerald-500 hover:bg-emerald-400 shadow-lg shadow-emerald-500/25 px-8 py-3 text-lg font-semibold" href="/pricing" data-analytics="cta-footer-primary">
Get Started Free
</a>
<a class="text-zinc-400 hover:text-zinc-200 text-sm font-medium flex items-center gap-2 transition" href="/profile">
<span>Existing member?</span>
<span class="underline">Log in here</span>
</a>
</div>
<p class="mt-6 text-xs text-zinc-500">
By requesting access you agree to our <a class="underline hover:text-zinc-300" href="/terms">Terms & Conditions</a>
</p>
<!-- Direct Contact -->
<div class="mt-8 pt-6 border-t border-zinc-700">
<p class="text-sm text-zinc-400 mb-3">Prefer direct contact?</p>
<div class="flex flex-col sm:flex-row items-center justify-center gap-4 text-sm">
<a href="/cdn-cgi/l/email-protection#9ae9efeaeaf5e8eedafcf6fbe9f2fbf6eaf2fbb4f9f5f7" class="text-zinc-300 hover:text-white flex items-center gap-2 transition">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg>
<span class="__cf_email__" data-cfemail="55262025253a272115333934263d3439253d347b363a38">[email protected]</span>
</a>
<span class="text-zinc-600 hidden sm:inline">|</span>
<a href="https://www.linkedin.com/in/tomasz-dobrowolski-8b229836/" target="_blank" rel="noopener" class="text-zinc-300 hover:text-white flex items-center gap-2 transition">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
LinkedIn
</a>
</div>
</div>
<!-- Thought Leadership -->
<div class="mt-6">
<a href="/articles" class="inline-flex items-center gap-2 text-sm text-emerald-400 hover:text-emerald-300 transition">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
Read our Research Blog - technical insights on volatility modeling and options analytics
</a>
</div>
</div>
</div>
</section>
<!-- Community Section -->
<section class="relative bg-zinc-800">
<div class="py-12 md:py-16">
<div class="max-w-6xl mx-auto px-4 sm:px-6">
<h3 class="font-inter-tight text-xl font-semibold text-white text-center mb-8">Connect With Us</h3>
<div class="grid md:grid-cols-3 gap-6 lg:gap-8">
<!-- Item #1 -->
<div class="flex flex-col p-4 border border-transparent [background:linear-gradient(var(--color-white),var(--color-white))_padding-box,linear-gradient(120deg,var(--color-zinc-300),var(--color-zinc-100),var(--color-zinc-300))_border-box] rounded-lg shadow-sm shadow-black/5">
<div class="flex items-center mb-3">
<div class="w-10 h-10 bg-zinc-800 rounded-full flex items-center justify-center mr-3">
<svg class="fill-zinc-100" xmlns="http://www.w3.org/2000/svg" width="22" height="16">
<path d="M18.624 1.326A18.784 18.784 0 0 0 14.146.001a.07.07 0 0 0-.072.033c-.193.328-.408.756-.558 1.092a17.544 17.544 0 0 0-5.03 0A10.86 10.86 0 0 0 7.922.034.072.072 0 0 0 7.849 0C6.277.26 4.774.711 3.37 1.326a.063.063 0 0 0-.03.024C.49 5.416-.292 9.382.091 13.298c.002.02.013.038.029.05a18.598 18.598 0 0 0 5.493 2.65.073.073 0 0 0 .077-.025c.423-.551.8-1.133 1.124-1.744.02-.036 0-.079-.038-.093a12.278 12.278 0 0 1-1.716-.78.066.066 0 0 1-.007-.112c.115-.082.23-.168.34-.255a.07.07 0 0 1 .072-.009c3.6 1.569 7.498 1.569 11.056 0a.07.07 0 0 1 .072.008c.11.087.226.174.342.256a.066.066 0 0 1-.006.112c-.548.305-1.118.564-1.717.78a.066.066 0 0 0-.038.093c.33.61.708 1.192 1.123 1.743a.072.072 0 0 0 .078.025 18.538 18.538 0 0 0 5.502-2.65.067.067 0 0 0 .028-.048c.459-4.528-.768-8.461-3.252-11.948a.055.055 0 0 0-.03-.025ZM7.352 10.914c-1.084 0-1.977-.95-1.977-2.116 0-1.166.875-2.116 1.977-2.116 1.11 0 1.994.958 1.977 2.116 0 1.166-.876 2.116-1.977 2.116Zm7.31 0c-1.084 0-1.977-.95-1.977-2.116 0-1.166.876-2.116 1.977-2.116 1.11 0 1.994.958 1.977 2.116 0 1.166-.867 2.116-1.977 2.116Z" />
</svg>
</div>
<h3 class="font-inter-tight font-semibold text-zinc-800">Discord</h3>
</div>
<p class="grow text-sm text-zinc-500">Engage in real time conversations with us!</p>
<div class="text-right">
<a class="inline-flex items-center font-medium text-sm mt-4" href="https://discord.gg/UtH22J8df2">
Talk to us
<svg class="shrink-0 ml-1 fill-current" xmlns="http://www.w3.org/2000/svg" width="9" height="9">
<path d="m1.285 8.514-.909-.915 5.513-5.523H1.663l.01-1.258h6.389v6.394H6.794l.01-4.226z" />
</svg>
</a>
</div>
</div>
<!-- Item #2 - GitHub -->
<div class="flex flex-col p-4 border border-transparent [background:linear-gradient(var(--color-white),var(--color-white))_padding-box,linear-gradient(120deg,var(--color-zinc-300),var(--color-zinc-100),var(--color-zinc-300))_border-box] rounded-lg shadow-sm shadow-black/5">
<div class="flex items-center mb-3">
<div class="w-10 h-10 bg-zinc-800 rounded-full flex items-center justify-center mr-3">
<svg class="fill-zinc-100" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24">
<path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/>
</svg>
</div>
<h3 class="font-inter-tight font-semibold text-zinc-800">GitHub</h3>
</div>
<p class="grow text-sm text-zinc-500">Official SDKs, MCP server, examples, and open-source tools.</p>
<div class="text-right">
<a class="inline-flex items-center font-medium text-sm mt-4" href="https://github.com/FlashAlpha-lab" target="_blank" rel="noopener noreferrer">
Explore repos
<svg class="shrink-0 ml-1 fill-current" xmlns="http://www.w3.org/2000/svg" width="9" height="9">
<path d="m1.285 8.514-.909-.915 5.513-5.523H1.663l.01-1.258h6.389v6.394H6.794l.01-4.226z" />
</svg>
</a>
</div>
</div>
<!-- Item #3 -->
<div class="flex flex-col p-4 border border-transparent [background:linear-gradient(var(--color-white),var(--color-white))_padding-box,linear-gradient(120deg,var(--color-zinc-300),var(--color-zinc-100),var(--color-zinc-300))_border-box] rounded-lg shadow-sm shadow-black/5">
<div class="flex items-center mb-3">
<div class="w-10 h-10 bg-zinc-800 rounded-full flex items-center justify-center mr-3">
<svg class="fill-zinc-100" xmlns="http://www.w3.org/2000/svg" width="18" height="16">
<path d="M8.096 10.409 3.117 16H.355l6.452-7.248L0 0h5.695L9.63 5.115 14.176 0h2.76L10.91 6.78 18 16h-5.555l-4.349-5.591Zm5.111 3.966h1.53L4.864 1.54h-1.64l9.984 12.836Z" />
</svg>
</div>
<h3 class="font-inter-tight font-semibold text-zinc-800">Twitter / X</h3>
</div>
<p class="grow text-sm text-zinc-500">Follow us for real-time updates and insights!</p>
<div class="text-right">
<a class="inline-flex items-center font-medium text-sm mt-4" href="https://twitter.com/FlashAlphaLab" target="_blank" rel="noopener noreferrer">
Follow @FlashAlphaLab
<svg class="shrink-0 ml-1 fill-current" xmlns="http://www.w3.org/2000/svg" width="9" height="9">
<path d="m1.285 8.514-.909-.915 5.513-5.523H1.663l.01-1.258h6.389v6.394H6.794l.01-4.226z" />
</svg>
</a>
</div>
</div>
</div>
</div>
</div>
</section>
</main>
<!-- Site footer -->
<style>
.fa-footer { background:#18181b; color:#a1a1aa; }
.fa-footer-accent { height:1px; background:linear-gradient(to right, transparent, #0ea5e9, transparent); }
.fa-footer-grid { display:grid; grid-template-columns:1fr; gap:2rem; padding:3rem 0; }
.fa-footer-link { font-size:0.875rem; color:#a1a1aa; text-decoration:none; transition:color 0.15s; display:block; padding:2px 0; }
.fa-footer-link:hover { color:#fff; }
.fa-footer-heading { font-size:0.6875rem; font-weight:600; text-transform:uppercase; letter-spacing:0.08em; color:#d4d4d8; margin-bottom:1rem; }
.fa-footer-social { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:8px; background:#27272a; transition:background 0.15s; }
.fa-footer-social:hover { background:#3f3f46; }
.fa-footer-social svg { width:16px; height:16px; fill:#71717a; transition:fill 0.15s; }
.fa-footer-social:hover svg { fill:#fff; }
.fa-footer-bottom { border-top:1px solid #27272a; padding:1.5rem 0; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; }
.fa-footer-bottom-right { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.fa-footer-status { display:inline-flex; align-items:center; gap:6px; font-size:0.75rem; color:#71717a; }
.fa-footer-status-dot { width:6px; height:6px; border-radius:50%; background:#22c55e; box-shadow:0 0 6px #22c55e; }
.fa-footer-tickers { display:flex; flex-wrap:wrap; gap:0.25rem 0.375rem; }
.fa-footer-ticker { font-size:0.75rem; color:#a1a1aa; text-decoration:none; padding:2px 6px; border-radius:4px; background:#27272a; transition:all 0.15s; }
.fa-footer-ticker:hover { color:#fff; background:#3f3f46; }
.fa-footer-sector { font-size:0.625rem; font-weight:600; text-transform:uppercase; letter-spacing:0.06em; color:#71717a; margin-top:0.5rem; margin-bottom:0.25rem; }
.fa-footer-sector:first-child { margin-top:0; }
@media (min-width: 768px) {
.fa-footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; gap:3rem; }
}
</div>
<!-- Alpine.js Collapse plugin for FAQ -->
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3.x.x/dist/cdn.min.js"></script>
<script src="/js/onboarding-archetypes.js?v=20260607a" defer></script>
<script src="/js/vendors/alpinejs.min.js" defer></script>
<script src="/js/main.js" defer></script>
<!-- 3D Volatility Surface - lazy loaded when visible -->
<script>
(function() {
var surfaceEl = document.getElementById('heroSurfaceLoader');
if (!surfaceEl) return;
var loaded = false;
var obs = new IntersectionObserver(function(entries) {
if (entries[0].isIntersecting && !loaded) {
loaded = true;
obs.disconnect();
var s1 = document.createElement('script');
s1.src = 'https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js';
s1.onload = function() {
var s2 = document.createElement('script');
s2.src = 'https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js';
s2.onload = function() {
var s3 = document.createElement('script');
s3.src = '/js/vol-surface-3d.js?v=20260310';
document.body.appendChild(s3);
};
document.body.appendChild(s2);
};
document.body.appendChild(s1);
setTimeout(function() { surfaceEl.style.display = 'none'; }, 1500);
}
}, { rootMargin: '200px' });
obs.observe(surfaceEl);
})();
</script>
Server Config
{
"mcpServers": {
"flashalpha": {
"type": "http",
"url": "https://lab.flashalpha.com/mcp-oauth"
}
}
}