Cut restock decisions from 4hr/wk to 12min/day at Handmade Kapamilya
Replacing manual spreadsheet workflows with an owned Next.js + Supabase ops dashboard, wired into Veeqo, QuickBooks, and WooCommerce, with an AI-assisted content pipeline on top.
- →Restock decisions: from 4hr/wk of spreadsheet juggling to 12min/day of dashboard review
- →Product content turnaround: from 2 days to 30min via AI-assisted pipeline
- →Zero manual data re-entry between Veeqo, QuickBooks, and WooCommerce
The problem
Before the dashboard, weekly restock at Handmade Kapamilya ran on a raw spreadsheet that had to be hand-rebuilt every Monday morning. Inventory levels lived in Veeqo. Sales velocity lived in WooCommerce reports. Cost-of-goods lived in QuickBooks. Three systems, none of them talking to each other.
Product launches had the same problem in reverse. Every new SKU meant manually writing copy in one place, entering pricing in another, and updating stock counts in a third.
The bottleneck wasn’t the decision-making itself. It was the ~4 hours per week of stitching systems together before any decision could be made.
What we built
- Inventory + restock dashboard. Veeqo stock levels and sales velocity, surfaced in one view alongside cost-of-goods from QuickBooks. The dashboard answers the only question that matters on a Monday: what do I need to reorder this week, and how much?
- Profitability dashboard. Pulls completed orders from WooCommerce, joins to product COGS, surfaces margin by SKU and category. Lets us drop unprofitable SKUs and double down on the ones that earn their shelf space.
- AI-assisted content pipeline. n8n workflow: product brief → Claude draft → human review → publish to WooCommerce. Net writing time per SKU dropped from ~2 days to ~30 minutes.
- Nightly sync via n8n. Pulls from Veeqo, QuickBooks, and WooCommerce into Supabase. The dashboards never hit the source systems directly; they read from one place. When a number changes in Veeqo, it’s in the dashboard by morning.
How it changed the day
Restock used to be a Monday ritual: pull three reports, rebuild the spreadsheet, decide. Now it’s a 12-minute tab-check over coffee.
New product launches stopped requiring a dedicated writing day. Content runs through the n8n pipeline; the operator reviews instead of drafts.
The biggest win is one that doesn’t show up in a metric: no more re-entering the same number into three systems. Every integration is wired through Supabase. Inventory, orders, accounting all flow from one source of truth. If a number changes anywhere upstream, it changes everywhere downstream.
Stack
- Frontend: Next.js 14 on Vercel (private deployment)
- Database: Supabase. Postgres for relational data,
pgvectorextension for the embeddings the content pipeline uses - Automation: n8n, self-hosted on Hostinger
- Integrations: Veeqo API (inventory), QuickBooks Online (accounting), WooCommerce REST API (storefront and orders)
- AI: Claude for content drafting and structured-data extraction in the pipeline
The whole thing lives in two repos (website for the storefront, hk-ops for the dashboard + workflows). No SaaS subscription replaces the work it does.
We shipped this for our own business first. The numbers above are the ones we measured. The next case study is the one we build for you.