Shipped generic webhook alert channels in Observare today.
Instead of building individual Slack, PagerDuty, Discord, and Opsgenie integrations one at a time, we built one generic webhook channel. You give us a URL, we POST structured JSON every time a monitor fires — down, recovered, flapping, SSL expiring, heartbeat missed, the lot.
One feature. Connects to everything.
PagerDuty, Opsgenie, Slack incoming webhooks, Discord webhooks, n8n, Zapier, Make, or your own custom endpoint — they all just work because they all accept HTTP POSTs.
The payload is structured with an event field (15 types across uptime, SSL, port, cron, and Stripe webhooks), a details object with event-specific data, and a short message field you can forward to a chat channel as-is. Optional HMAC-SHA256 signing if you want to verify authenticity.
This was a deliberate choice. Individual integrations are maintenance liabilities — each one has its own auth flow, its own API versioning, its own breaking changes. A generic webhook puts the customer in control. If they switch from PagerDuty to Opsgenie, they change the URL. They don't wait for us.
For a £5/month bundled monitoring tool, that felt like the right call. We're not trying to replace anyone's ops stack — we're trying to fit into it.
Included in the standard plan alongside email and SMS. No add-on pricing.
Curious what other indie builders think — do you ship individual integrations or go generic-first?