Dashboards · React
Marketing campaigns
Leads by channel, spend per campaign and cost per lead for a small in-house marketing team.

What you get
A campaign dashboard for an outdoor gear brand: leads from paid and organic channels by month, spend split by channel, and every live campaign with its cost per lead. All numbers live in src/dashboard.ts.
Files
Exactly what is copied into a new project: 13 files, nothing generated.
Explorer 13
import type { Dashboard } from "./types"; /** Everything this dashboard shows. Edit freely. */export const dashboard: Dashboard = { "brand": "Saltmarsh", "user": { "name": "Imogen Clarke", "role": "Marketing Lead" }, "nav": [ { "label": "Overview", "icon": "chart", "href": "#overview" }, { "label": "Leads", "icon": "bolt", "href": "#trends" }, { "label": "Channels", "icon": "globe", "href": "#breakdown" }, { "label": "Campaigns", "icon": "mail", "href": "#table" }, { "label": "Activity", "icon": "clock", "href": "#activity" } ], "title": "Campaign performance", "subtitle": "September 2026 · Saltmarsh Outdoor", "ranges": [ { "label": "6M", "points": 6 }, { "label": "12M", "points": 12 } ], "kpis": [ { "label": "Leads", "value": "2,100", "delta": "9.4%", "up": true }, { "label": "Ad spend", "value": "$38,400", "delta": "3.2%", "up": true, "upIsGood": false }, { "label": "Cost per lead", "value": "$18.29", "delta": "$1.21", "up": false, "upIsGood": false }, { "label": "Lead to order", "value": "3.8%", "delta": "0.4 pts", "up": true } ], "chart": { "title": "Leads by month", "type": "line", "labels": [ "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep" ], "series": [ { "name": "Paid", "values": [ 820, 870, 760, 910, 950, 1010, 1060, 1120, 1080, 1170, 1130, 1240 ] }, { "name": "Organic", "values": [ 540, 560, 610, 590, 620, 650, 700, 720, 760, 780, 790, 860 ] } ] }, "side": { "title": "Spend by channel", "items": [ { "label": "Paid search", "value": "$14,200", "pct": 37 }, { "label": "Paid social", "value": "$11,500", "pct": 30 }, { "label": "Display", "value": "$6,100", "pct": 16 }, { "label": "Podcasts", "value": "$4,300", "pct": 11 }, { "label": "Email", "value": "$2,300", "pct": 6 } ] }, "table": { "title": "Campaigns", "columns": [ "Campaign", "Channel", "Spend", "Leads", "Cost per lead", "Status" ], "statusColumn": 5, "tones": { "Live": "good", "Scheduled": "accent", "Paused": "warn", "Ended": "neutral" }, "rows": [ [ "Autumn Trail Sale", "Paid search", "$9,800", "612", "$16.01", "Live" ], [ "Rain Shell Relaunch", "Paid social", "$7,400", "389", "$19.02", "Live" ], [ "Hut-to-Hut Guide", "Email", "$1,200", "341", "$3.52", "Live" ], [ "Winter Layering", "Podcasts", "$4,300", "118", "$36.44", "Live" ], [ "Cart retargeting", "Display", "$3,600", "204", "$17.65", "Paused" ], [ "Summer Clearance", "Paid social", "$4,100", "236", "$17.37", "Ended" ], [ "Holiday Gift Guide", "Email", "$0", "0", "—", "Scheduled" ] ] }, "feed": { "title": "Activity", "items": [ { "text": "Imogen paused Cart retargeting after cost per lead passed $17", "time": "3 hours ago" }, { "text": "Hut-to-Hut Guide email sent to 18,240 subscribers", "time": "Yesterday" }, { "text": "Holiday Gift Guide scheduled for Nov 14", "time": "2 days ago" }, { "text": "Rain Shell Relaunch: new video ads approved", "time": "4 days ago" } ] }};Remix
Remix this template
Describe what to change and the agent starts from Marketing campaigns's files. The box is already started for you: finish “Start from Marketing campaigns and …”
Dependencies
Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.
- react^19.1.0
- react-dom^19.1.0
- vite^6.3.0
- @vitejs/plugin-react^4.4.0
- tailwindcss^4.1.0
- @tailwindcss/vite^4.1.0
- typescript^5.8.0
How it runs
- Framework
- Vite + React + TypeScript
- Dev command
- npm run dev
- Build command
- npm run build
- Output directory
- dist
- Port
- 5173
- Entry route
- /
Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.
Keep browsing
All templates- Featured

Analytics dashboard
A responsive dashboard layout with sidebar navigation, stat cards, and a data table.

API monitoring
Latency, error rates, uptime and service health for an API platform, in a dark on-call layout.

SaaS metrics
MRR, churn, ARPA and a breakdown of new, expansion and churned revenue for a subscription product.
Build on Marketing campaigns
Create a free account, start from this template, and ask the AI agent to turn it into your app.