Building a KPI Dashboard for a Thai SME - CLEARPATH
CLEARPATH [BKK]
January 2026 • 6 min read

Building a KPI Dashboard for a Thai SME

A Bangkok-based business came to me with a problem: their data was scattered across spreadsheets, LINE messages, and someone's memory. They had no idea how the business was actually performing until the end of the month.

They needed a dashboard. Something that shows real numbers, in real time, without manual data entry.

Here's how I built it.

The Problem

Before the dashboard, their workflow looked like this:

  1. Sales recorded in a Google Sheet (sometimes)
  2. Expenses tracked in a different Sheet (when remembered)
  3. Customer info scattered across LINE chats
  4. Monthly "reports" cobbled together manually
  5. Decisions made on gut feeling, not data

The owner spent hours every week trying to figure out basic questions: How much did we make this month? Which products are selling? Are we profitable?

The Solution

I built a custom dashboard that pulls everything into one place:

4
Weeks to build
5+
Hours saved/week
100%
Data visibility
Mobile
First design

Tech Stack

Next.js React TypeScript Supabase Tailwind CSS Vercel

Why this stack:

Next.js + React - Fast, modern frontend. Server-side rendering for quick initial loads. Easy to deploy.

Supabase - PostgreSQL database with real-time subscriptions. When a sale is recorded, the dashboard updates instantly. No refresh needed. Also handles authentication out of the box.

Tailwind CSS - Rapid UI development. Mobile-first responsive design without fighting CSS.

Vercel - Zero-config deployment. Push to GitHub, site updates. Free tier handles their traffic easily.

Key Features

Mobile-first design. The owner checks numbers on their phone more than desktop. Every view works on a 360px screen. Big touch targets. Swipe gestures for navigation.

Real-time updates. Using Supabase's real-time subscriptions, changes appear instantly across all connected devices. Staff adds a sale on the shop floor, owner sees it on their phone immediately.

Simple data entry. Adding a transaction takes three taps. Select customer (or add new), select product, confirm amount. No forms with 20 fields.

Visual reports. Charts that actually make sense. Revenue trends, category breakdowns, customer growth. Exportable to PDF for sharing with partners.

Challenges

Data migration. The old spreadsheets were messy. Inconsistent formats, duplicate entries, missing dates. Spent a full day cleaning and importing historical data.

User training. Staff weren't tech-savvy. Had to make the interface dead simple and run a hands-on training session. If it's not obvious, it won't get used.

Offline handling. Thailand's internet isn't always reliable. Added offline support so data entry works without connection and syncs when back online.

Lesson learned: The best dashboard is the one that actually gets used. I cut half the features I originally planned because they added complexity without adding value. Simple beats comprehensive.

Results

Three months after launch:

What I'd Do Differently

Start with mobile mockups. I designed desktop first, then adapted to mobile. Should have been the other way around. Caused some rework.

More user testing early. Some assumptions about workflow were wrong. Could have caught them faster with earlier testing.

Built-in backup reminders. Added this later after a close call. Should have been day one.

Want Something Similar?

Every business has different data and different needs. But the core problem is usually the same: you're making decisions without clear visibility into your numbers.

A custom dashboard costs less than you think—and pays for itself in time saved and better decisions.

Let's build yours

Tell me what you're tracking. I'll show you what's possible.

Get in Touch
AI_ASSISTANT
Hey. Ask me about services, pricing, or timelines. I'll give you a straight answer.