GUIDE
Build Internal Dashboards with Claude Code (No Engineering Required)
Stop waiting on engineering for dashboards. Build a real, data-connected internal dashboard with Claude Code in one afternoon, from mock data to deployed URL.
The dashboard your team needs has been sitting in a Jira backlog for 4 months. Marketing wants campaign metrics in one place. CS wants a ticket resolution tracker. Sales wants pipeline visibility without logging into Salesforce. Engineering estimates 2 sprints. Nobody prioritizes it.
I've watched dozens of non-engineers build real, functional dashboards with Claude Code in a single afternoon. No React experience. No database knowledge. Just a clear picture of what data they need and what it should look like. Here's how to do it yourself.
Why Internal Dashboards Are the Perfect First Project
Dashboards are the sweet spot for Claude Code because they're high value and low risk. They pull data, display it, and that's about it. No user authentication flows. No payment processing. No complex state management. The worst case if something goes wrong? A chart shows the wrong number and you fix it.
Compare that to building a customer-facing feature where a bug means lost revenue. Dashboards let you learn Claude Code on something that matters to your team without any real downside. That's why I tell every student: start here.
The Tech Stack (Claude Code Picks This for You)
You don't need to memorize this. When you tell Claude Code to build a dashboard, it'll reach for these tools automatically. But knowing what's under the hood helps you troubleshoot if something goes sideways:
- Next.js: the web framework that renders your pages. It handles routing, server-side data fetching, and deployment.
- Recharts: a charting library for React. Line charts, bar charts, pie charts, area charts. Claude knows it well and wires it up cleanly.
- Tailwind CSS: utility-based styling. Makes everything look polished without writing custom CSS.
- Your data source: could be a Postgres database, a REST API, a CSV file, or even a Google Sheet. Claude Code connects to all of them.
You won't type any of these names into a terminal. Claude Code installs and configures everything based on your description of what you want. If you haven't set up Claude Code yet, follow the setup guide first.
Concrete Example: A Marketing Performance Dashboard
Let's build something real. Say you're on a marketing team and you want a dashboard that shows:
- Total leads generated this month vs. last month
- Lead source breakdown (organic, paid, referral, direct)
- Conversion rate by channel over the last 90 days
- Top 10 performing landing pages by conversion rate
- Weekly lead trend as a line chart
Right now this data lives in a Postgres database (or maybe it's in HubSpot, or a CSV export from Google Analytics). Doesn't matter. Claude Code handles the connection.
Step 1: Set Up the Project
Open your terminal, create a folder, and fire up Claude Code:
mkdir marketing-dashboard && cd marketing-dashboard
claudeNow give Claude Code your first prompt. Be specific about what you want to see:
Create a Next.js dashboard app for marketing performance. Use Recharts
for charts and Tailwind for styling.
The dashboard should show:
- Summary cards at the top: total leads this month, last month, and
percent change
- A line chart showing weekly lead volume over the last 90 days
- A bar chart breaking down leads by source (organic, paid, referral,
direct)
- A table of the top 10 landing pages sorted by conversion rate
For now, use realistic mock data. I'll connect the real database later.Starting with mock data is a deliberate move. It lets you nail the layout and visual design without wrestling with database credentials upfront. Get the shape right first, then plug in real numbers.
Step 2: Iterate on the Design
Claude Code will scaffold the entire project and generate your dashboard. Run it locally (Claude usually starts the dev server for you) and look at what you've got. Then refine:
The summary cards look good but I want them in a 4-column grid, not
stacked. Add a fourth card showing the overall conversion rate.
For the line chart, add a second line showing the previous 90-day
period as a dashed line so I can compare trends.
Make the landing page table sortable by clicking column headers.Each iteration takes Claude Code 30 seconds to a couple minutes. You're doing design review, not coding. This is the skill that best practices hinge on: describe outcomes, let Claude pick implementations.
Step 3: Connect Real Data
Once the layout looks right, swap in your actual data source. If you're pulling from Postgres:
Replace the mock data with real data from our Postgres database.
Connection string: postgres://readonly_user:password@db.example.com:5432/marketing
The leads table has columns: id, email, source, landing_page_url,
created_at, converted_at (nullable).
Use server-side data fetching so the database credentials never
reach the browser.If your data lives in an API instead (HubSpot, Google Analytics, a custom endpoint), just describe the API and Claude Code will wire up the fetch calls. If it's a CSV, Claude Code will parse it. The pattern is the same: tell Claude where the data lives and what shape it's in.
One important note: put sensitive credentials in a .env.local file, not directly in the prompt. Claude Code knows to read from environment variables when you mention them.
Step 4: Deploy It
Your dashboard is running locally. Time to put it somewhere your team can access it:
Deploy this to Vercel. Set it up so the database connection string
comes from an environment variable called DATABASE_URL.Claude Code will walk you through the Vercel deployment (it takes about 2 minutes). Once it's live, you've got a URL you can share with your team. Done. No sprint planning. No engineering tickets. No 4-month wait.
What the Finished Product Looks Like
After an afternoon of work, you'll have:
- A responsive web dashboard with summary KPI cards across the top
- Interactive charts (hover for details, click to filter) powered by Recharts
- A sortable, searchable data table for the detailed view
- Live data that updates every time you refresh the page
- A shareable URL on Vercel that anyone on your team can bookmark
Compare that to what you had this morning: a Jira ticket with "Dashboard for marketing metrics" and zero progress.
Other Dashboard Ideas You Can Build the Same Way
The marketing dashboard is just one example. Every team has the same problem: data exists somewhere but nobody has time to build the view. Here are templates that follow the exact same workflow:
- CS Metrics Dashboard: ticket volume, resolution time, CSAT scores, agent performance. Pull from Zendesk or Intercom APIs.
- Sales Pipeline Tracker: deal stages, win rates, average deal size, forecast vs. actual. Pull from your CRM's API.
- Product Usage Dashboard: DAU/MAU, feature adoption, retention curves, error rates. Pull from your analytics database.
- Finance Overview: MRR, churn, LTV, burn rate. Pull from Stripe and your accounting system.
- Recruiting Pipeline: open roles, candidates per stage, time-to-hire, offer acceptance rate. Pull from your ATS.
Every single one of these follows the same four steps: scaffold with mock data, iterate the design, connect the real source, deploy. The prompt changes; the process doesn't.
Tips That Save You Time
- Start with mock data, always. It separates design problems from data problems. Fix them one at a time.
- Commit to git after each working step. If connecting the database breaks your layout, you can roll back to the last good state instantly.
- Use plan mode for dashboards with more than 3 or 4 views. Have Claude outline the page structure before building anything.
- Ask Claude to add a refresh button and a "last updated" timestamp. Your team will ask for these immediately, so bolt them on from the start.
- Keep it read-only. Dashboards that only display data are safe to deploy without security review. The moment you add write operations (editing records, triggering actions), you need engineering eyes on it.
The Skill You're Actually Building
Building a dashboard is the surface task. The real skill you're developing is the ability to turn a business question into a working tool without waiting for anyone else. Once you've built one dashboard, you'll start seeing opportunities everywhere: reports that could be automated, data that could be visualized, workflows that could be streamlined.
That's the shift. You stop being the person who requests tools and start being the person who builds them. And you can learn the full workflow, from first prompt to deployed app, in ClaudeFluent. We build a complete dashboard from scratch in one of the core exercises.