Context
Private ops UI (LAN + token) separate from public marketing site. Single GET /api/ops-dashboard aggregates:
- Plane A publish counts (JSONL + tick logs cross-check)
- Meta ads spend panel
- Health score heuristic
- Pitch/marketing copy merged from JSON on each request (no stale cache for copy)
Design choices
- TTL cache ~45s + background refresh so browser stays snappy during heavy ticks
- Stale snapshot while tick runs — better than blank screen
-
i18n inline in HTML (EN default,
?lang=sk) — avoids 404 on external JS in tunnel setups -
?present=1— larger KPI typography for screen share / screenshots
Automation boundary
Automation proposes; review queue + gates before send. Daily touch cap enforced in manager state — ops dashboard shows eligible vs blocked reasons.
Metrics that matter
Not impressions. Web visits, leads, weekly UTM from comment links, touch mix (peer/education/service), member group count.
Example live row: 904 web · 10/10 touches · health 68% yellow.
Export for LinkedIn
Script linkedin_presentation_export.py pulls live API + Playwright screenshots → 4 PNG carousel + EN/SK post text.
Not open-sourcing the dashboard
Sharing the pattern for other builders; product is tied to our compliance workflow.
Public contact: https://digitalnypostar-sluzba.sk
Top comments (0)