I used to spend Sunday evenings manually pulling numbers from four different tools, pasting them into a spreadsheet, and formatting a weekly report. About 90 minutes of work that felt important but was mostly just data transcription.
Now I have a dashboard that does all of it automatically. Revenue from Stripe, traffic from Plausible, email stats from Beehiiv, and my top three active tasks from Notion — all live on one page that I open on Sunday morning and read in three minutes.
Building it took one day. Here’s how.
What belongs on a dashboard
A dashboard’s job is to tell you, at a glance, whether things are going well or badly. That’s it. It’s not a reporting tool. It’s not an analysis tool. It’s a signal.
The best dashboards I’ve seen have five to eight metrics. The worst have forty. More metrics means more cognitive load means you stop looking at it.
Before building anything, write down the five numbers that matter most to your specific situation. Some examples:
For a freelancer/consultant: Monthly revenue, pipeline value, active projects, outstanding invoices, hours logged this week.
For a SaaS founder: MRR, new trials this week, churn this month, active users (DAU/WAU), and conversion rate from trial to paid.
For a content creator: Newsletter subscribers, email open rate, website traffic this week, new followers, and revenue from the latest newsletter.
Pick your five. Everything else is optional and can be added later.
Choosing your build approach
There are three practical approaches to building a business dashboard with AI, each suited to different technical comfort levels and data source types:
Approach 1: bolt.new (easiest, best for custom apps)
Build a React dashboard app in Bolt with your metrics as the design spec. Connect to APIs and databases directly from the app. Deploy natively from Bolt. Best for dashboards that pull from APIs or Supabase databases.
Approach 2: Google sheets + AppSheet or Retool (easiest for spreadsheet data)
If your data already lives in Google Sheets, this is the fastest path. AppSheet can turn a Google Sheet into a visual dashboard with almost no code. Retool (free for small teams) can build more sophisticated dashboards from Sheets, databases, or APIs. Best for data that’s already in spreadsheets.
Approach 3: n8n + Supabase + a custom frontend (most flexible)
Use n8n to pull data from multiple sources on a schedule, store it in Supabase, and build a frontend that queries Supabase. Highest setup effort but the most flexible — handles any data source combination. Best for complex dashboards pulling from 3+ sources.
I’ll cover Approach 1 and 3 in detail here — Bolt for straightforward builds, n8n+Supabase for complex ones.
Building the dashboard UI with AI
Start with the UI before connecting any data. It’s faster to build and design with placeholder numbers, then wire in real data once the layout is solid.
Prompt for Bolt:
“Build a business dashboard web app. The dashboard should show: [list your 5 metrics with their names and what they represent]. Each metric should have a card with: the metric name, the current value (placeholder), and a trend indicator (up/down arrow + percentage change vs last week/month). Layout: a responsive grid, 2 columns on desktop, 1 column on mobile. Color scheme: dark background, white text, green for positive trends, red for negative. No navigation, just the dashboard. Do not add charts yet — just metric cards.”
Get the card layout working first. Add charts after — they’re harder to wire to real data and you don’t need them for a day-one MVP.
Once the structure is right, prompt for a chart for your most important metric:
“Add a line chart below the metric cards showing [metric name] over the last 30 days. Use Recharts. The data should come from a props object called chartData that I’ll populate later. Placeholder data: 30 days of random values between [min] and [max].”
Connecting your data sources
Data connection is where dashboards get complicated. The key insight: you don’t need real-time data. Most business dashboards are useful if they’re 1–24 hours fresh. This means you can use scheduled data pulls rather than live API calls on every page load, which is simpler and more reliable.
The simple approach: API calls on page load
For each metric, the dashboard makes an API call when the page loads and displays the result. Works well for APIs with fast response times. Downside: slow if multiple APIs are called simultaneously, and breaks if any API is down.
The robust approach: n8n pulls data on a schedule, stores in Supabase
Build n8n workflows that run every hour (or daily), fetch data from each source, and write to a Supabase table. The dashboard queries Supabase — which is always fast and always available. More setup, but the dashboard loads instantly and doesn’t depend on the availability of five different third-party APIs simultaneously.
For a one-day build, start with direct API calls. If it’s slow or unreliable, migrate to the n8n/Supabase approach later.
Common data sources and how to connect them
Stripe (revenue metrics)
Stripe has an excellent API. For MRR and revenue: use the /v1/charges or /v1/payment_intents endpoint filtered by date. Bolt can generate the API call code when prompted with your Stripe API key and the specific metrics you need. Store the key as an environment variable, never in the code.
Google analytics / Plausible (traffic metrics)
Plausible has a simple REST API — request your site stats with a date range and it returns page views, unique visitors, and bounce rate in one call. Google Analytics is more complex; the GA4 API requires OAuth setup. Plausible is much easier for dashboard integration. If you use Plausible, prioritize it.
Google sheets (any manually tracked data)
The Google Sheets API is well-documented and n8n has a native Google Sheets node. For data you track manually (revenue pipeline, project status, custom KPIs), a Google Sheet as the data source works well and is easy to update without touching the dashboard.
Notion (tasks, projects)
Notion’s API lets you query database entries. Useful for showing active project count, task completion rate, or any structured data you manage in Notion. n8n has a native Notion node. The Notion API returns JSON that needs some parsing — prompt Claude to write the parsing logic for your specific database structure.
Email tools (Beehiiv, Mailchimp, Kit)
All major email platforms have APIs that expose subscriber count, open rate, click rate, and unsubscribe rate. Most have free API tiers. Connect via HTTP Request node in n8n or direct API calls in Bolt.
Deploying and sharing
For a personal dashboard (just you): deploy on Bolt’s native hosting or Vercel. No auth needed — just don’t share the URL publicly.
For a team dashboard: add basic password protection. Vercel has password-protected deployments on paid plans. Alternatively, add simple HTTP basic auth to your backend. For an internal tool, this is usually sufficient.
For a client dashboard: consider adding proper user auth (Supabase Auth) so clients can only see their own data. This is a half-day project on top of the basic dashboard build.
One important thing to configure before deploying: environment variables. Your API keys should never be in your code — use Bolt’s or Vercel’s environment variable system. Prompt Bolt to set up environment variable handling if it hasn’t done so automatically.
What i’d do differently
I tried to add too many metrics on day one
My first dashboard had eleven metrics. It was overwhelming to look at and several were never actually useful. Start with five. You can always add more — you rarely need to.
I used live API calls instead of scheduled data pulls
My first dashboard made seven API calls every time it loaded. It was slow and broke whenever any one API was having issues. I rebuilt it with n8n pulling data hourly to Supabase. Much faster, much more reliable. If I were starting over, I’d design for the Supabase approach from day one.
I didn’t add historical data storage early enough
A dashboard that only shows current values has limited analytical value. Storing daily snapshots (even just in a Google Sheet) lets you see trends over time. Add this on day one — it’s easy to set up and hard to backfill later.
What to build next
- → [LINK: How to Build an AI CRM with Airtable in One Day]
- → [LINK: Automate Your Dashboard Data with n8n]
- → Back to the Build with AI pillar
FAQ
What’s the best free tool for building a business dashboard?
For code-based dashboards: Bolt.new with a free Supabase database is free to build and cheap to host. For no-code options: Google Looker Studio (free) connects to Google Sheets, Google Analytics, and many other sources. It’s not as customizable as a built dashboard but it’s powerful and free.
How do i show real-time data on my dashboard?
True real-time (second-by-second updates) requires WebSockets or server-sent events — complex to build. For most business dashboards, “refreshes every 5 minutes on page load” is indistinguishable from real-time for practical purposes. Add a simple auto-refresh interval in JavaScript: setTimeout(() => location.reload(), 300000).
Can i build a dashboard without coding if i don’t know any JavaScript?
Yes. Tools like Google Looker Studio, Retool, and AppSheet let you build functional dashboards from data sources without writing code. They’re less flexible than a coded dashboard but much faster to get started with. For a one-day build with zero coding, Looker Studio connected to a Google Sheet is the fastest path.
How do i handle API authentication securely in a dashboard?
Never put API keys in your frontend code — they’ll be visible to anyone who opens the browser DevTools. For client-side apps, call your APIs through a serverless function (Vercel Edge Functions work well) that holds the credentials server-side. Bolt’s generated code usually handles this correctly when you specify it in your prompt.
What metrics should a SaaS founder track on their dashboard?
The core five for early-stage SaaS: Monthly Recurring Revenue (MRR), new trials this week, trial-to-paid conversion rate, churn rate (monthly), and active users (DAU or WAU depending on your product type). Secondary metrics to add later: LTV, CAC, NPS, and feature usage data.