What We Learned Building Public Dashboard Sharing
Lessons learned from building MonSPHERE's public, unauthenticated dashboard share links.
We didn't set out to build a dedicated "status page" product — we built public dashboard share links, and it turned out to solve the same problem for most teams.
The actual feature
Any MonSPHERE dashboard can generate a public, unauthenticated share link. Whoever has the link sees the same real-time widgets your team sees internally — no separate "customer-facing" data model to keep in sync, because it's the same dashboard.
curl -X POST https://api.monsphere.com/api/v1/organizations/:orgId/dashboards/:dashboardId/share \
-H "X-Api-Key: msk_live_..."
# { "shareUrl": "https://app.monsphere.com/shared/d/8f3a..." }What we learned building it
The temptation with a "status page" feature is to build a second, simplified data model just for external eyes — a manually-toggled "operational / degraded / outage" indicator that someone has to remember to update. We deliberately didn't do that. A shared dashboard showing real, live widget data is more trustworthy than a manually maintained status indicator, because it can't silently drift out of sync with reality.
The tradeoff
What we don't have today is a dedicated incident-communication surface — a page purpose-built for posting "we're aware of the issue, here's our ETA" updates during an outage, the way a classic status page does. A shared dashboard shows the data; it doesn't narrate it. If your team needs customer-facing incident narration specifically, that's a real gap today, not a solved problem we're just not talking about.
Why we're writing this publicly
We'd rather describe the actual tradeoff we made than let "status pages" imply a feature we haven't built.