SiteSparkSiteSpark星火建站type a prompt · ship a website
← All posts
Dashboards

Building a data dashboard without writing code

A dashboard is not about charting everything you have; it answers a handful of specific questions. List the questions first, build it with 7 copy-paste prompts, then reconcile the numbers against your spreadsheet.

First: a dashboard is not about charting everything

Most dashboards fail for a non-technical reason: nobody said what they wanted to look at. So every field gets thrown on the screen, it becomes a wall of numbers, and nobody reads it.

Start by listing questions — the three to five things you must be able to answer at a glance, daily or weekly. How much did we sell today? Which products are piling up? Where did this month's spending go? Each question becomes one block on the dashboard; everything else is cut.

Stage 1 · Describe the idea: questions first, data second (prompt 1)

State the questions and the structure follows. Say where the data lives, too — an Excel file, a CSV exported from a platform, a paper ledger — and whether it can be exported as a table.

What to check: does the page answer the questions you listed, and did anything you do not care about sneak in?

Build me a sales dashboard. I need three things daily: today's revenue, today's order count, and the 30-day sales trend. Once a week I look at the top 5 products by volume and any stock that is not moving. The data starts as a CSV import with roughly these columns: date, order number, product, quantity, amount, status. Build a page that shows these first.

Stage 2 · The agent generates: what you should end up with

The result should have three layers: a table structure to store the data, the charts, and a detail table. All three matter — charts without a detail table leave you unable to investigate when a number looks wrong.

Stage 3 · Preview and iterate (1/4): arrange the page by question (prompt 2)

People read a dashboard top-down: conclusion first (the key numbers), then the trend, then the detail. Put the numbers that matter at the top — nobody should have to scroll to find out how today is going.

What to check: are the key numbers in the first screen, and can you hover them to see the exact value?

Lay the page out in three layers: four cards at the top with the key numbers (today's revenue, today's orders, average order value, month-to-date total) sized so they read at a glance; a 30-day revenue line chart in the middle; a detail table at the bottom with date, order number, product, quantity, amount and status, sortable by column.

Stage 3 · Preview and iterate (2/4): import your own data (prompt 3)

Get the page working with sample data first, then swap in the real thing — doing it the other way round gets you stuck in format problems.

What to check: does the row count match, are amounts arriving as text, has the date format survived?

Add a CSV import: after I upload a file, detect the header row and let me confirm which column maps to which field (date, order number, product, quantity, amount, status); when finished, show how many rows were imported and how many were skipped, with the reason for each skip (a bad date format, for example).

Stage 3 · Preview and iterate (3/4): filters and date ranges (prompt 4)

The most common follow-up question about any dashboard is “what about last week?” or “just this product?”. Filters save you from re-importing data every time somebody asks.

Add filters: date range (today / this week / this month / custom start and end), product, and order status. When a filter changes, the top numbers, the trend chart and the detail table must all update together, and the current filter should be stated on screen.

Stage 3 · Preview and iterate (4/4): empty and broken data need a state too (prompt 5)

Dirty data is a fact of life: a day with no orders, a product with no amount, a CSV whose column names changed. The page has to say so explicitly rather than showing zero or nothing — a fake zero leads to a bad decision.

Handle the awkward cases: when there are no orders today, the card should say “no orders yet today” rather than 0; rows with a missing amount should be highlighted in the detail table with a count shown; if an import is missing a required column, list which one and stop the import.

Stage 3 · Preview and iterate (5/5): access and export (prompt 6)

Internal data does not belong on a public page. A dashboard usually needs a login, and it needs an export — “send me this week's numbers” is the most frequent request any owner makes.

Require sign-in to view the dashboard, redirecting to the login page otherwise. Add an export button that downloads the current filtered detail as CSV. Also check that no internal data is exposed on any public page or public API route.

Stage 4 · Ship: reconcile the numbers first (prompt 7)

The danger with a dashboard is not ugliness — it is numbers that are quietly wrong. A miscalculated figure leads directly to a bad decision, and it is hard to notice.

So reconcile before launch: pick three records at random from the detail table and check them line by line against your spreadsheet or platform back office — amount, quantity, date. It is done when they match.

Reconcile with me before launch: pick three records at random from the detail table and list their date, order number, product, quantity and amount so I can check them against the original source; also confirm the top three numbers are visible on a phone.

How the data gets updated (what decides whether it survives)

The simplest route is manual: re-import a CSV daily or weekly, either replacing or appending. For most small teams that is enough — no database to run, nothing to maintain.

When volumes grow, or you need the numbers fresh every hour, connect the platform to your existing system's API or database and let it pull on a schedule. That is a second-round improvement; do not start there.

FAQ

The three questions we hear most:

  • Do I need a database? — Not necessarily. CSV import gets you running; connect an API or database once the volume grows or you need automatic updates.
  • Do I have to update the data by hand every day? — Re-importing a CSV is the least effort; automation means connecting your existing system, which the platform can then pull on a schedule.
  • Can I show it to just a few people? — A login handles that. The real point is to keep internal data off public pages — and to check it is not leaking through a public API route either.

Next step

If you want to turn a spreadsheet into an interface you can click, start from any of the links below.

Idea → website

Your next website is one sentence away.

Stop scaffolding. Start describing. Build, run, and ship a real website without leaving the conversation.