BUILD — COMMAND CENTER
One dashboard, zero invented numbers
Group-level marketing means every brand's paid, organic, Business Profile and review data living somewhere different. Command Center is the system I built to pull all of it into one local-first workspace — assembled from the platform APIs, cached overnight by a scheduled runner, and read by models running on my own machine.
Personal build, ongoing since 2026. Runs daily on a MacBook Air.
- 1
- dashboard for every brand in the group
- 6 + RSS
- data sources fanned out per refresh
- 10
- scheduled playbooks in the runner
- 0
- fabricated figures, by design
Why I built it
Reporting across a multi-brand portfolio is mostly assembly work — the same exports, the same joins, the same spreadsheet, every week. Worse, opening a workspace meant waiting on six third-party APIs to answer live, which made 'just check the numbers' a two-minute stall instead of a glance. So I built the assembly once, properly: one endpoint that fans out to every source concurrently and returns a single contract, a nightly job that pre-fetches it so the morning read is instant, and a launcher that puts every tool one keystroke away.
How it works
A boot sequence leads into a hub, and the hub opens workspaces. The data path underneath is deliberately thin: routes orchestrate, libraries do the work, and every mapper is its own testable file — GA4 sessions and revenue, Meta and Google Ads spend with status chips, UTM-derived sources and campaigns, Business Profile metrics, Business Profile reviews (a separate export with its own brand resolver), and organic social. Once a day a snapshot flattens the whole payload to one file per day, which is what the sparklines read from — real history, accumulated, rather than a trend line inferred from a single point. A separate 'Nexus' screen pulls AI and industry feeds, reads my task board out of my notes vault, runs honest health probes against each dependency, and drafts a morning brief grounded only on those lines.
What's inside it
Brands dashboard — the group performance view, with sparklines off the snapshot history. Reviews reader — Business Profile reviews across every location, on demand rather than on every page load, because reviews are a slow-moving twelve-month window and shouldn't cost a refresh. Nexus — feeds, focus, dependency health, and the grounded morning brief. Paperlens — a fully local RAG tool for PDFs and transcripts (its own build, below). Council — six models across four providers debating a question, with a chairman that synthesises and a budget guard that keeps a real ledger so free tiers stay free tiers. Agentic runner — ten playbooks on a schedule: cache warming, WooCommerce ingest, Search Console ingest, daily snapshot, anomaly detection against the snapshot baseline, review responder drafts, GEO tracking, competitor watch, dependency radar, model radar. BWPE Studio — the front end for the Brand Web Presence Engine (its own build, below).
The rules it's built on
Never fabricate. A missing figure is an omitted key and an empty state, never a zero that looks like a real measurement. Health checks stay grey when they can't be verified rather than going green on a guess. Cached is not live. Every cached figure carries its real fetch timestamp and stale data says so on the screen — a cached number presented as live is a fabricated number. A failed refresh must never blank the dashboard. A playbook that fails fails loudly in its own run record and leaves the last good cache intact. Scheduling is done by the OS, not the app, so jobs still fire with the dev server down and catch up on wake instead of silently skipping a closed lid. Credentials are referenced by environment-variable name from config; the values never enter a JSON file that could end up in a screenshot.
What it proves
That I can specify a data system, build it, and then operate it — including the unglamorous parts: brand-routing rules that survive campaign renames, a snapshot key format that has to stay byte-identical or the history breaks, and the discipline to write down every place reality deviated from the spec instead of quietly patching over it. The marketing value is simpler. I know exactly what my numbers are made of, because I built the thing that assembles them.
Stack