Campaign intelligence platform for Diray Media — a women-led TV media agency.
Diray Intelligence gives media buyers a single place to monitor portfolio performance, surface AI-driven insights across client accounts, and produce post-flight analyses in seconds. Built to replace fragmented spreadsheets and manual reporting with a live, intelligent dashboard.
Portfolio overview Real-time view of all active client accounts — blended ROAS, spend pacing, flagged campaigns, and animated live KPIs that update continuously. Includes a 6-week ROAS trend chart across the full book of business.
Client intelligence Drill into any client to see channel-level performance (Linear TV, Streaming CTV, Programmatic), week-over-week ROAS trajectory, and campaign-level flag status. Each account page surfaces three curated AI insights generated by Claude.
Post-flight analysis Select a completed flight and instantly see a structured performance summary — goal vs. actual ROAS, per-channel spend breakdown, and analyst notes — then generate a full written analysis with Claude in one click.
AI Insights Hub On-demand portfolio intelligence powered by Claude. Analyzes all active accounts simultaneously and surfaces cross-client patterns, decline signals, channel efficiency gaps, and growth opportunities.
Report builder
Configure tone, period, and sections, then generate a client-ready report as a streaming document. Copy to clipboard or download as .txt.
Data upload Multi-step upload flow for Linear TV, Streaming/CTV, and Programmatic CSV exports with normalization preview and one-click dashboard refresh.
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 |
| Animation | Framer Motion |
| Charts | Recharts |
| AI | Anthropic Claude (streaming) |
| Font | DM Sans + DM Serif Display |
All AI calls are server-side — the Anthropic API key never reaches the browser. Each insight, post-flight analysis, and report streams token-by-token from a Next.js API route directly to the UI via a ReadableStream.
Pages are a mix of React Server Components (data-heavy views) and Client Components (animated widgets, AI streaming, interactive selectors). Animation boundaries are isolated so server rendering is preserved wherever possible.
Diray Media — Buying Media That Sells