// SP12 · M12 — Analytics studio // Event pipeline, dashboards, cohort reports, custom events const Analytics = ({ setPage }) => { const [view, setView] = React.useState('overview'); const [range, setRange] = React.useState('7d'); return (
{view === 'overview' && } {view === 'realtime' && } {view === 'events' && } {view === 'funnels' && } {view === 'cohorts' && } {view === 'pipeline' && } {view === 'alerts' && } {view === 'reports' && }
); }; // ─── SIDEBAR ───────────────────────────────────────────────────── const AnalyticsSidebar = ({ view, setView, setPage }) => { const items = [ ['overview', '◐', 'Overview', null], ['realtime', '⦿', 'Realtime', '142'], ['events', '◇', 'Events', '38'], ['funnels', '⌖', 'Funnels', '6'], ['cohorts', '◍', 'Cohorts', '12'], ['pipeline', '◈', 'Pipeline', null], ['alerts', '△', 'Alerts', '3'], ['reports', '☱', 'Reports', null], ]; return ( ); }; const ASidebarItem = ({ icon, label, count, active, onClick }) => ( ); // ─── TOPBAR ────────────────────────────────────────────────────── const AnalyticsTopbar = ({ view, range, setRange }) => { const labels = { overview:'Overview', realtime:'Realtime', events:'Events', funnels:'Funnels', cohorts:'Cohorts', pipeline:'Event pipeline', alerts:'Alerts', reports:'Reports' }; const ranges = ['24h','7d','30d','90d','MTD','YTD']; return (
Analytics / {labels[view]}
{ranges.map(r => ( ))}
); }; // ─── OVERVIEW ──────────────────────────────────────────────────── const sparkPath = (vals, w=160, h=42) => { const min = Math.min(...vals), max = Math.max(...vals); const dx = w / (vals.length-1); return vals.map((v,i)=>{ const x = i*dx; const y = h - ((v-min)/(max-min || 1)) * h; return `${i?'L':'M'}${x.toFixed(1)} ${y.toFixed(1)}`; }).join(' '); }; const AStat = ({ label, value, delta, sparkData, accent }) => (
{label}
{value}
{delta}
); const AOverview = ({ range }) => (

Traffic & conversion

Last {range} · all properties · 2.4k events/min ingesting
CurrentPrevious
}> {[ ['Direct', 32140, 0.42, 'var(--accent)'], ['Google · organic',24310, 0.31, '#7c9bff'], ['Twitter / X', 11820, 0.15, '#a78bfa'], ['Hacker News', 6204, 0.08, '#ff8a3a'], ['Email · drip', 3098, 0.04, '#7ee787'], ].map(([n,v,p,c],i) => (
0 ? '1px solid var(--line)' : 'none'}}>
{n}
{v.toLocaleString()}
))}
{[ ['/', 18420, 1.2], ['/work', 9210, 0.8], ['/work/ledgerline', 6802, 1.4], ['/pricing', 5240, 0.6], ['/tools/schema-composer', 3920, 2.1], ['/journal/rag-is-dead', 3104, 4.2], ].map(([p,v,t],i) => (
0 ? '1px solid var(--line)' : 'none',alignItems:'center'}}> {p} {v.toLocaleString()} {t}m
))}
DEVICE MIX
Desktop 62%Mobile 31%Tab 7%
TOP REGIONS
{[['US',38],['UK',14],['DE',9],['IN',8],['PK',7]].map(([r,p]) => (
{r}
{p}%
))}
{[ ['Newsletter signup', 842, 'var(--accent)'], ['Pricing → checkout', 314, '#7c9bff'], ['Demo booked', 92, '#a78bfa'], ['Tool · paid unlock', 48, '#ff8a3a'], ['Case study · contact', 36, '#7ee787'], ].map(([n,v,c],i) => (
0 ? '1px solid var(--line)' : 'none'}}>
{n}
{v}
))}
); const ACard = ({ title, action, right, children }) => (
{title}
{right || (action && )}
{children}
); const LegendDot = ({ c }) => ( ); const BigChart = () => { const cur = [12,15,14,18,22,26,24,28,32,30,34,38,36,42,48,46,52,58,54,60,64,62,68,72,70,76,82,80]; const prev = [10,12,13,15,18,20,22,24,28,26,30,32,30,36,40,38,44,46,44,50,52,50,54,58,56,60,64,62]; const W = 800, H = 220, P = 24; const max = Math.max(...cur, ...prev); const dx = (W - P*2) / (cur.length-1); const toPath = (arr) => arr.map((v,i)=> `${i?'L':'M'}${(P+i*dx).toFixed(1)} ${(H-P-(v/max)*(H-P*2)).toFixed(1)}`).join(' '); return ( {[0,1,2,3,4].map(i => ( ))} {[0,7,14,21,27].map(i => ( {['MON','TUE','WED','THU','FRI'][[0,7,14,21,27].indexOf(i)]} ))} ); }; // ─── REALTIME ──────────────────────────────────────────────────── const ARealtime = () => { const [bars, setBars] = React.useState(Array.from({length:32},()=>Math.random()*0.6+0.2)); React.useEffect(()=>{ const id = setInterval(()=> setBars(b => [...b.slice(1), Math.random()*0.6+0.2]), 1200); return ()=> clearInterval(id); },[]); return (
LIVE

142 visitors right now

Updated every 1.2s · last 30 minutes
EVENTS / MIN
2,418
{bars.map((b,i) => (
))}
−30m−20m−10mnow
● TAILING}>
{[ ['just now', 'page_view', '/work/ledgerline', 'US · Chrome', 'var(--accent)'], ['1s ago', 'cta_click', 'pricing.hero.demo', 'UK · Safari', '#7c9bff'], ['2s ago', 'page_view', '/pricing', 'DE · Firefox', 'var(--accent)'], ['3s ago', 'newsletter_signup', 'footer', 'US · Chrome', '#7ee787'], ['5s ago', 'page_view', '/journal/rag-is-dead', 'IN · Chrome', 'var(--accent)'], ['7s ago', 'tool_run', 'schema-composer', 'US · Safari', '#a78bfa'], ['8s ago', 'page_view', '/', 'PK · Chrome', 'var(--accent)'], ['10s ago', 'session_start', '—', 'CA · Chrome', '#ff8a3a'], ['12s ago', 'cta_click', 'home.hero.work', 'US · Mobile', '#7c9bff'], ['14s ago', 'page_view', '/tools', 'BR · Chrome', 'var(--accent)'], ].map(([t,e,p,d,c],i) => (
{t} {e} {p} {d}
))}
{[ ['/', 42, 'var(--accent)'], ['/work', 28, '#7c9bff'], ['/work/ledgerline', 18, '#a78bfa'], ['/pricing', 14, '#ff8a3a'], ['/journal/rag-is-dead', 11, '#7ee787'], ['/tools/schema-composer', 9, '#22d3ee'], ['/services', 8, '#f472b6'], ['/work/northbound', 6, '#fde047'], ['/team', 4, '#a3a3a3'], ['/contact', 2, '#a3a3a3'], ].map(([p,n,c],i) => (
0 ? '1px solid var(--line)' : 'none',alignItems:'center'}}> {p}
{n}
))}
); }; // ─── EVENTS ────────────────────────────────────────────────────── const AEvents = () => { const events = [ ['page_view', 'page', 'auto', 2418042, '+12%', 'var(--accent)'], ['session_start', 'system', 'auto', 284103, '+8%', '#7c9bff'], ['cta_click', 'click', 'tracked', 48210, '+22%', '#a78bfa'], ['newsletter_signup', 'form', 'tracked', 8420, '+4%', '#7ee787'], ['tool_run', 'product', 'tracked', 6204, '+38%', '#ff8a3a'], ['video_play', 'media', 'tracked', 4982, '+18%', '#22d3ee'], ['demo_booked', 'conversion','tracked', 312, '+6%', '#f472b6'], ['checkout_started', 'commerce', 'tracked', 1840, '−2%', '#fde047'], ['checkout_complete', 'conversion','tracked', 314, '+11%', 'var(--ok)'], ['error_thrown', 'system', 'auto', 182, '−14%', 'var(--accent-2)'], ]; return (

Events

38 active definitions · 2.97M tracked this period
{['Event','Category','Source','Count','Trend',''].map(h => (
{h}
))}
{events.map(([n,cat,src,v,d,c],i) => (
0 ? '1px solid var(--line)' : 'none'}}>
{n}
{cat} {src} {v.toLocaleString()} {d}
))}
); }; // ─── FUNNELS ───────────────────────────────────────────────────── const AFunnels = () => { const steps = [ ['Landing visit', 'page_view = /pricing', 100, 18420], ['Plan card click', 'cta_click ∋ plan-*', 48, 8842], ['Checkout started', 'checkout_started', 18, 3315], ['Payment submitted', 'payment_submitted', 12, 2210], ['Subscription active','checkout_complete', 8, 1473], ]; return (

Funnels

6 funnels tracked · current: Pricing → subscription
{['Pricing → subscription','Tool free → paid','Newsletter signup','Demo booking','Case study read','Contact form'].map((f,i) => ( ))}

Pricing → subscription

5 steps · 30-day window · 8.0% end-to-end
+1.2pp WoW
{steps.map(([name,def,pct,count],i) => { const drop = i > 0 ? steps[i-1][2] - pct : 0; return (
S{i+1}
{name}
{def}
{count.toLocaleString()} {pct}%
{i < steps.length-1 && drop > 0 && (
↓ {drop}% drop-off · {(steps[i-1>=0 ? i : 0][3] - count).toLocaleString()} users lost
)}
); })}
); }; // ─── COHORTS ───────────────────────────────────────────────────── const ACohorts = () => { const cohorts = [ ['W36 · Sep 1', 1240, [100, 64, 48, 38, 32, 28, 26, 24, 22, 21, 20, 19]], ['W37 · Sep 8', 1382, [100, 68, 52, 42, 36, 32, 28, 26, 24, 22, 21, -1]], ['W38 · Sep 15', 1520, [100, 71, 56, 46, 38, 34, 30, 28, 25, 23, -1, -1]], ['W39 · Sep 22', 1610, [100, 72, 58, 48, 40, 36, 32, 29, 26, -1, -1, -1]], ['W40 · Sep 29', 1748, [100, 74, 60, 50, 42, 38, 34, 30, -1, -1, -1, -1]], ['W41 · Oct 6', 1820, [100, 76, 62, 52, 44, 40, 35, -1, -1, -1, -1, -1]], ['W42 · Oct 13', 1942, [100, 78, 64, 54, 46, 42, -1, -1, -1, -1, -1, -1]], ['W43 · Oct 20', 2104, [100, 80, 66, 56, 48, -1, -1, -1, -1, -1, -1, -1]], ['W44 · Oct 27', 2280, [100, 82, 68, 58, -1, -1, -1, -1, -1, -1, -1, -1]], ]; const cell = (v) => { if (v < 0) return { bg:'transparent', c:'var(--ink-4)', t:'—' }; const opacity = v / 100; return { bg:`rgba(212,255,58,${opacity*0.7})`, c: v > 50 ? '#0a0a0a' : 'var(--ink)', t:`${v}%` }; }; return (

Cohort retention

Weekly cohorts · 12-week horizon · returning > 0 events
COHORT
USERS
{Array.from({length:12},(_,i)=>(
W{i}
))}
{cohorts.map(([name,users,vals]) => (
{name} {users.toLocaleString()} {vals.map((v,i) => { const s = cell(v); return (
{s.t}
); })}
))}
74%
+8pp vs 8 weeks ago
42%
+6pp vs 8 weeks ago
19%
baseline · 1 cohort complete
); }; // ─── PIPELINE ──────────────────────────────────────────────────── const APipeline = () => { const nodes = [ ['Browser SDK', 'solidatoms.js · 4.2 KB', 'var(--accent)', '2.4k/min'], ['Edge collector', 'edge.solidatoms.com', '#7c9bff', '2.4k/min'], ['Validation', 'schema v3.1', '#a78bfa', '2.39k/min'], ['Stream queue', 'Inngest · 24ms p50', '#ff8a3a', '2.39k/min'], ['Warehouse', 'Postgres · events', '#7ee787', '2.39k/min'], ['Materialized', '14 rollup views', '#22d3ee', '/15s'], ['Dashboards', 'API · GraphQL', 'var(--accent)', 'live'], ]; return (

Event pipeline

Ingestion → validation → store → roll-up · 99.98% uptime · p99 184ms
{nodes.map(([n,sub,c,rate],i) => (
{n}
{sub}
{rate}
{i < nodes.length-1 && (
)} ))}
SDK snippet
{``}
); }; // ─── ALERTS ────────────────────────────────────────────────────── const AAlerts = () => { const alerts = [ ['firing', 'Error rate spike', 'error_thrown > 200/min for 5m', '/api/checkout', '14m ago', 'var(--accent-2)'], ['firing', 'Conversion dip', 'conv_rate < 2.8% for 1h', 'pricing', '38m ago', 'var(--warn)'], ['firing', 'Newsletter slowing', 'signup_rate < 30/day', 'site-wide', '2h ago', 'var(--warn)'], ['ok', 'Realtime visitors', 'live_users > 200', 'site-wide', '—', 'var(--ok)'], ['ok', 'Pipeline lag', 'p99 > 500ms for 2m', 'pipeline', '—', 'var(--ok)'], ['ok', 'Tool usage healthy', 'tool_run > 100/day', 'tools', '—', 'var(--ok)'], ['paused', 'Demo bookings', 'demo_booked < 5/wk', 'pricing', '3d ago', 'var(--ink-3)'], ]; return (

Alerts

7 active rules · 3 firing · routed to Slack #atoms-alerts
{[ ['Firing', '3', 'var(--accent-2)'], ['Healthy', '3', 'var(--ok)'], ['Paused', '1', 'var(--ink-3)'], ['Avg. MTTR', '14m', 'var(--ink-2)'], ].map(([l,v,c]) => (
{l}
{v}
))}
{['Status','Rule','Condition','Scope','Last fired',''].map(h => (
{h}
))}
{alerts.map(([s,name,cond,scope,t,c],i) => (
0 ? '1px solid var(--line)' : 'none'}}> {s === 'firing' ? '● ' : ''}{s} {name} {cond} {scope} {t}
))}
); }; // ─── REPORTS ───────────────────────────────────────────────────── const AReports = () => { const reports = [ ['Weekly traffic digest','Mon 09:00','Hassan, Sana','Email','var(--accent)','active'], ['Conversion deep-dive','1st of month','Hassan','Email + Slack','#7c9bff','active'], ['Tool engagement','Thu 17:00','Bilal, Amir','Slack','#a78bfa','active'], ['Cohort retention','Bi-weekly Fri','Hassan, Sana','Notion','#ff8a3a','active'], ['Q4 board pack','Quarterly','Hassan','PDF','#7ee787','draft'], ['Investor metrics','Monthly · 5th','Hassan','PDF','#22d3ee','active'], ]; return (

Scheduled reports

6 reports · 5 active · 4 delivered this week
{reports.map(([n,cad,to,via,c,s]) => (
{s}
{n}
Cadence {cad}
Recipients {to}
Via {via}
))}
); }; window.Analytics = Analytics;