The operations dashboard that tells a founder, in one look each morning, whether the business is healthy and what needs attention.
Client
Favo, our own product
Type
Internal dashboard
Platforms
Desktop, phone, installable
Work
Design and development
The problem
Revenue sat in the App Store, costs in a handful of provider dashboards, quality in the database and support in an inbox. Nothing showed whether the business was healthy.
The solution
One private dashboard that reads every source at once and opens on Today: quality, costs, system health, reviews and a short list of what needs a decision.
Built for the morning check.
Status first
One line says whether every system is running before you read a single number.
Costs OctoberExpected €300
€142 spent so far
Models€123 / 150
Workers€18 / 100
Search€1 / 6
Models reach their cap around 27 October
Costs under control
Spend per provider against a monthly cap, a forecast for the month, and a warning well before a cap is hit.
Costs OctoberExpected €300
€142 spent so far
Models€123 / 150
Workers€18 / 100
Search€1 / 6
Models reach their cap around 27 October
Numbers you can trust
A missing source says so instead of showing zero. A failed one keeps its last good value, with the time.
Revenue this month€48,215+€3,118 vs last month
Profit this monthNot connectedNeeds: read access to your bookkeeping
Open invoicesFrom 14:05€12,480Retry
Revenue this month€48,215+€3,118 vs last month
Profit this monthNot connectedNeeds: read access to your bookkeeping
Open invoicesFrom 14:05€12,480Retry
And everything else.
01A live viewEvery save as it happens, from share to result, refreshed every 5 seconds.
02Fresh without flickerThe page refreshes every minute in the background and keeps the old numbers on screen until the new ones are in.
03Instant periodsToday, 7 days and 30 days are loaded together, so switching between them feels instant.
04App Store reviews in one placeNew reviews arrive in HQ next to the numbers, so feedback is never a separate tab.
05Private by designEvery page and every action checks access on its own. To anyone without access, the dashboard does not exist.
06On the home screenInstalls as an app. Alerts arrive as a push on the founder’s phone, with quiet hours at night.
For technical readers
Under the hood.
What runs behind the screens. Only what is built and running in the product today.
5minutes between health checks
10services on the system page
30seconds between refreshes
1role, on purpose
01 · Data sources
Connected data sources
Each source has its own reader. A source that is not connected says so, and shows what it needs, instead of a zero.
Production database: saves, results, quality and growth
Worker, catalogue and database health, uptime and deploys
Cloud and API bills, and App Store reviews
PostgresREST APIsOAuth
02 · Monitoring
Monitoring and alerts
One health check across worker, web, database, queue and catalogue drives the status line. Fixed rules, never a model, decide what needs attention.
Checks every 5 minutes: stuck work, failure spikes, outages
Cost alerts at 50, 80 and 100% of a cap, and on spend spikes
Push to the founder’s phone, at most once an hour, quiet at night
CronPush (APNs)Rules
03 · Access
Access control
There is exactly one role, by design: the founder. Access is checked again on every page, every action and every API route.
Verified, confirmed account on an allowlist, or the page is a 404
Founder tables behind row-level security, server-side only
The phone widget gets its own read-only, revocable token
Row-level securityServer-side checks
04 · Costs
Costs and system status
Money is reserved before a paid call and settled after it. Every provider has a monthly cap and a month-end forecast.
Daily budget ledger per provider, request and user
HQ’s own AI features run on a hard monthly budget
System page with 10 services, refreshed every 30 seconds
Budget ledgerForecasts
Stack
Next.js 16React 19TypeScriptPostgres with row-level securityHosted in FrankfurtAutomated tests per feature