Launching today
Uptimepage
Open-source monitoring + status page, driven as code.
11 followers
Open-source monitoring + status page, driven as code.
11 followers
Most tools monitor OR run a status page, so you pay for two and wire them together. Uptimepage does both in one open-source tool: a failing check opens an incident and posts it to a branded status page. Free hosted tier, or self-host the single Rust binary.




How do the alerts actually get triggered when a check fails, and is there any kind of throttling or grouping so you don't spam your status page if something flaps?
@sleymanseklke1 Alerts come from incidents, not from single failed checks. A check has to fail a few times in a row before an incident opens and we send anything (2 by default, you can change it per monitor). Recovery needs the same number of good checks. So a short blip sends no alert and never appears on the status page.
A monitor can also only have one open incident at a time, and each channel gets one message per event. If nobody reacts, you can turn on a reminder (every hour by default).
How does the incident lifecycle actually work when a check recovers mid-way, do users see a clean timeline on the public status page or does it look patchy until you manually resolve?
@hilalj1hg Incidents open and close automatically. A check must fail several times in a row before an incident opens (default is 2 times, and you can also require several regions to agree).
The status page only shows confirmed incidents, not every single check result. One good check in the middle of an outage does not close and reopen the incident. It stays one incident. Manual resolve and updates still exist if you want them.
How does the free hosted tier actually compare in limits when self-hosting, and do you have any concerns about running everything as a single Rust binary for larger deployments with strict uptime requirements?
The single Rust binary + self-host option is such a relief after wrestling with multi-service monitoring stacks. Love that the check, incident, and status page loop all live in one place without glue code.