Web Agency 2026-04-28

How a Web Agency Monitors 150 Client Sites for $20 a Month

A web agency's playbook for monitoring 150 client sites with Miterl: webhook deploys, monthly reports, and turning uptime monitoring into paid revenue.

agency maintenance contract uptime monitoring automation webhook

The team and assumptions

This use case follows a fictional 10-person web agency, "Agency A," based in Tokyo and Osaka. They primarily build and maintain corporate websites for SMBs. Their portfolio: 30 active clients, 150 production sites under maintenance contracts at $30–100/month per site.

Until recently, their "uptime monitoring" was effectively a phone call from the client saying "the site is down." This use case walks through what changed in the three months after they adopted Miterl, ending with a model where monitoring became a profit center rather than a cost.

Three pain points before adoption

1. Existing monitoring tools were too heavy and too expensive

The industry-standard monitoring SaaS products are feature-rich but charge per-monitor. At 150 sites, the licensing alone runs into hundreds of dollars per month. Layering that onto a $30/month maintenance contract turns the line item negative.

Some teams ran homegrown shell scripts on their own server, but the monitoring server itself going down without anyone noticing turned that into more risk than it was worth.

2. Deploy-time false alerts trained the team to ignore alerts

Major CMS upgrades (WordPress, Movable Type) and server migrations triggered DOWN alerts during planned work. Slack would buzz at 2 AM, and the team would shrug it off as "yeah, that's the deploy." A culture of "ignore the channel" set in, and real incidents started getting buried.

3. Monthly reports were assembled by hand

"Last month's uptime was 99.95%" — that one sentence took an engineer 3–4 hours every month to back up with CSVs and graphs, in a different format per client. No template, no reuse, no leverage.

Three reasons Miterl made the cut

Concern What worked
Monthly cost $20/month for 150 sites — about $0.13 per site
Maintenance windows One webhook call from the deploy script
i18n / timezones JP-side ops and offshore dev teams see localized timestamps

The single biggest unlock was deploy-time webhook silencing. Once integrated, the false-alert rate dropped to near zero, and on-call trust was restored.

Operational playbook

1. One Workspace per client

Agency A separates each client into its own Workspace. Project managers receive viewer access to their assigned Workspaces only; engineers get member access for monitor-rule edits. Onboarding/offboarding became trivial — flip permissions, no SQL surgery.

2. Webhook-based maintenance windows in CI/CD

Each Workspace mints a maintenance webhook token. The deploy script wraps real work between START and END calls — works equally well in GitHub Actions, Bitbucket Pipelines, or self-hosted Jenkins.

# Before deploy
curl -X POST https://miterl.com/api/v1/webhooks/maintenance/$MITERL_TOKEN/start \
  -H "Content-Type: application/json" \
  -d '{"duration_hours": 1, "name": "Deploy v1.2.3"}'

# Real deploy steps
./deploy.sh

# After deploy
curl -X POST https://miterl.com/api/v1/webhooks/maintenance/$MITERL_TOKEN/end

Monitoring is paused for the whole window. If the deploy runs long, the duration_hours cap auto-resumes monitoring — no risk of leaving a site silently unmonitored if the END call is forgotten.

3. Incident response SLA

Agency A added an SLA clause to the maintenance contract: first client contact within 30 minutes of detection. Miterl pushes alerts into a #oncall Slack channel; the on-call engineer follows a documented runbook (status check → first contact → recovery → resolution notice).

On-call drills run once a month using Miterl's Drill mode against staging — not production. New hires reach independent on-call rotation within 3 months.

4. Automated monthly reports

On the first of each month, every Workspace generates a monthly uptime report as a shareable URL / PDF. Format is consistent across clients. Engineering effort dropped from 3 hours/month to 15 minutes.

Why $20/month covers 150 sites

Miterl's Plus plan ($22/month) includes 250 monitors with 1-minute checks, multi-channel notifications (Slack / email / Discord / Chatwork), webhook maintenance windows, SLA calculations, and monthly PDF reports — all bundled, no per-feature add-ons. At 150 sites, that's roughly $0.13 per site per month.

Charge each client $5–10/month as a "24/7 uptime monitoring & incident detection" line item, and 150 sites turn into $750–1,500/month of net revenue.

A pitch you can copy

"Your current maintenance contract covers incident response, but in practice you usually notice the issue before we do. We'd like to flip that with a 24/7 monitoring add-on — $10/month per site — that catches SSL expiry, missing keywords, and slow pages, so we can call you before you call us."

Bring last year's incident count, average time-to-detection, and a rough estimate of revenue lost during downtime. Concrete numbers close deals.

Related reading

Run the same playbook on Miterl

Start free. No credit card required.

See pricing