Interactive Dashboard Builder
Build self-contained HTML dashboards with Chart.js for data visualization
You need a dashboard but don't have Tableau, your team can't access your Jupyter notebook, and asking engineering to build one means waiting 3 sprints. You just need charts, filters, and tables in something anyone can open.
Who it's for: analysts who need shareable dashboards without enterprise BI tools, managers wanting quick data visualizations for team meetings, consultants delivering interactive reports to clients, startups without Tableau or Looker budgets, anyone who needs a dashboard they can email as a single file
Example
"Build a dashboard showing our Q4 sales data with filters by region and product" → Self-contained HTML file with Chart.js visualizations, dropdown filters, sortable tables, and professional styling — opens in any browser, no server needed, shareable as an email attachment
New here? 3-minute setup guide → | Already set up? Copy the template below.
# Build Interactive Dashboards
Build a self-contained interactive HTML dashboard with charts, filters, tables, and professional styling. Opens directly in a browser -- no server or dependencies required.
## Usage
Describe the dashboard you want to build and optionally provide a data source.
## Workflow
### 1. Understand the Dashboard Requirements
Determine:
- **Purpose**: Executive overview, operational monitoring, deep-dive analysis, team reporting
- **Audience**: Who will use this dashboard?
- **Key metrics**: What numbers matter most?
- **Dimensions**: What should users be able to filter or slice by?
- **Data source**: Live query, pasted data, CSV file, or sample data
### 2. Gather the Data
**If data warehouse is connected:**
1. Query the necessary data
2. Embed the results as JSON within the HTML file
**If data is pasted or uploaded:**
1. Parse and clean the data
2. Embed as JSON in the dashboard
**If working from a description without data:**
1. Create a realistic sample dataset matching the described schema
2. Note in the dashboard that it uses sample data
3. Provide instructions for swapping in real data
### 3. Design the Dashboard Layout
Follow a standard dashboard layout pattern:
```
+--------------------------------------------------+
| Dashboard Title [Filters v] |
+------------+------------+------------+-----------+
| KPI Card | KPI Card | KPI Card | KPI Card |
+------------+------------+------------+-----------+
| | |
| Primary Chart | Secondary Chart |
| (largest area) | |
| | |
+-------------------------+------------------------+
| |
| Detail Table (sortable, scrollable) |
| |
+--------------------------------------------------+
```
**Adapt the layout to the content:**
- 2-4 KPI cards at the top for headline numbers
- 1-3 charts in the middle section for trends and breakdowns
- Optional detail table at the bottom for drill-down data
- Filters in the header or sidebar depending on complexity
### 4. Build the HTML Dashboard
Generate a single self-contained HTML file including:
**Structure (HTML):**
- Semantic HTML5 layout
- Responsive grid using CSS Grid or Flexbox
- Filter controls (dropdowns, date pickers, toggles)
- KPI cards with values and labels
- Chart containers
- Data table with sortable headers
**Styling (CSS):**
- Professional color scheme (clean whites, grays, with accent colors for data)
- Card-based layout with subtle shadows
- Consistent typography (system fonts for fast loading)
- Responsive design that works on different screen sizes
- Print-friendly styles
**Interactivity (JavaScript):**
- Chart.js for interactive charts (included via CDN)
- Filter dropdowns that update all charts and tables simultaneously
- Sortable table columns
- Hover tooltips on charts
- Number formatting (commas, currency, percentages)
**Data (embedded JSON):**
- All data embedded directly in the HTML as JavaScript variables
- No external data fetches required
- Dashboard works completely offline
### 5. Implement Chart Types
Use Chart.js for all charts. Common dashboard chart patterns:
- **Line chart**: Time series trends
- **Bar chart**: Category comparisons
- **Doughnut chart**: Composition (when <6 categories)
- **Stacked bar**: Composition over time
- **Mixed (bar + line)**: Volume with rate overlay
### 6. Add Interactivity
Implement dropdown filters, date range filters, combined filter logic, sortable tables, and chart updates.
### 7. Save and Open
1. Save the dashboard as an HTML file with a descriptive name (e.g., `sales_dashboard.html`)
2. Open it in the user's default browser
3. Confirm it renders correctly
4. Provide instructions for updating data or customizing
## Performance Considerations for Large Datasets
| Data Size | Approach |
|---|---|
| <1,000 rows | Embed directly in HTML. Full interactivity. |
| 1,000 - 10,000 rows | Embed in HTML. May need to pre-aggregate for charts. |
| 10,000 - 100,000 rows | Pre-aggregate server-side. Embed only aggregated data. |
| >100,000 rows | Not suitable for client-side dashboard. Use a BI tool or paginate. |
## Tips
- Dashboards are fully self-contained HTML files -- share them with anyone by sending the file
- For real-time dashboards, consider connecting to a BI tool instead. These dashboards are point-in-time snapshots
- Request "dark mode" or "presentation mode" for different styling
- You can request a specific color scheme to match your brand
What This Does
Builds self-contained interactive HTML dashboards with charts, filters, tables, and professional styling. The generated dashboard opens directly in a browser with no server or dependencies required -- just share the HTML file with anyone.
Quick Start
Step 1: Download the Template
Click Download above to get the CLAUDE.md file.
Step 2: Set Up Your Project
Create a project folder and place the template inside:
my-dashboard-project/
├── CLAUDE.md
├── data/ # Place CSV/Excel files here
└── dashboards/ # Generated dashboards go here
Step 3: Start Working
claude
Say: "Build a monthly sales dashboard with revenue trend, top products, and regional breakdown"
Dashboard Layout
Every dashboard follows a standard layout pattern:
- KPI cards at the top for headline numbers (2-4 cards)
- Charts in the middle section for trends and breakdowns (1-3 charts)
- Detail table at the bottom for drill-down data (sortable, scrollable)
- Filters in the header or sidebar depending on complexity
Supported Chart Types
- Line chart: Time series trends
- Bar chart: Category comparisons
- Doughnut chart: Composition (when fewer than 6 categories)
- Stacked bar: Composition over time
- Mixed (bar + line): Volume with rate overlay
Data Size Guidelines
| Data Size | Approach |
|---|---|
| Less than 1,000 rows | Embed directly in HTML with full interactivity |
| 1,000 - 10,000 rows | Embed in HTML, may need to pre-aggregate for charts |
| 10,000 - 100,000 rows | Pre-aggregate server-side, embed only aggregated data |
| More than 100,000 rows | Not suitable for client-side dashboard |
Tips
- Dashboards are fully self-contained HTML files -- share them with anyone by sending the file
- For real-time dashboards, consider connecting to a BI tool instead; these dashboards are point-in-time snapshots
- Request "dark mode" or "presentation mode" for different styling
- You can request a specific color scheme to match your brand
Example Prompts
"Build a monthly sales dashboard with revenue trend, top products, and regional breakdown. Data is in the orders table."
"Here's our support ticket data [paste CSV]. Build a dashboard showing volume by priority, response time trends, and resolution rates."
"Create a template executive dashboard for a SaaS company showing MRR, churn, new customers, and NPS. Use sample data."