01 / 03
A full admin panel, built into the product
Three-column dashboard, auto-refreshed every 30 seconds.
Stats — signups by tier (free / beta / pro), beta funnel
conversion, 24h visit counts parsed from nginx access logs, activity feed.
Ops — beta invite queue (pending / approved / rejected),
feedback inbox from testers, one-click invite dispatch via Brevo.
Health — live VPS card (CPU, RAM, disk as color-coded bars
with sparklines over time), API service status, cache state (stacked bar:
today / yesterday / this week / older), warmup history for the last 7 runs,
6 alert rules with on/off toggle and test email trigger, quick actions
(trigger warmup, reload nginx, restart API — each requiring typed confirmation).
All side-effectful actions are logged in an admin_actions table.
02 / 03
6 automated alert rules, email-triggered
A cron runs every 5 minutes and evaluates six rules against the
metrics_history table (itself populated every 10 minutes via
psutil + journalctl): memory above 90% for 10+ minutes, disk above 85%,
CPU above 85% for 15+ minutes, 5xx errors above 20 per hour, workers below 1,
fewer than 10 cache files written today. Anti-flap cooldown built in.
Alert emails go out via Brevo the moment a rule fires.
No third-party monitoring service needed.
03 / 03
MCP servers & agentic layer for maintenance
Routine admin tasks — subscription management, email list operations,
deployment triggers, beta approvals — are handled through a set of MCP
servers connected to the product's external services: Lemon Squeezy
(payments), Brevo (transactional email + lists), GitLab (CI/CD pipeline).
This means an LLM can be instructed to approve a batch of beta applicants,
trigger a deployment, resync a subscription, or send a newsletter —
through natural language, without touching the codebase. The MCP layer
sits alongside the runtime app as a maintenance agent, used exclusively
for operator-side tasks. FastAPI talks directly to the external APIs at
runtime; MCP handles the human-in-the-loop operations.
In practice: what used to be 15 minutes of manual API calls across three
dashboards is now a single instruction. This is MCP in production — not as
a developer tool, but as an operational layer that reduces maintenance
overhead at scale.