Building Uptime Monitor: a production-grade website & API monitor in Djangoβββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββο»Ώββββο»Ώββββββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββο»Ώββββο»Ώββββββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ
How I built Uptime Monitor β a website and API monitoring service with scheduled checks, multi-channel alerts, team status pages, and uptime history, in Django.βββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββββββββββο»Ώβο»Ώβββο»Ώβο»Ώβββββββο»Ώβββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββββββββββο»Ώβο»Ώβββο»Ώβο»Ώβββββββο»Ώβββο»Ώββββββββο»Ώο»Ώββο»Ώββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ

I wanted a website and API monitor I fully owned β something in the spirit of UptimeRobot, Pingdom, or Better Stack, but self-hostable and open source. So I built Uptime Monitor.βββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ
What it doesβββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ
You point it at a URL and it checks the endpoint on a schedule. When a healthy response turns into an error, a timeout, or a refused connection β or recovers β it alerts you instantly across email, Slack, webhooks, and SMS. Along the way it tracks response times, SSL-certificate expiry, and full uptime history, and can publish a shareable public status page.βββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβο»Ώβββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβο»Ώβββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ
How it's builtβββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ
The stack is Python 3.12 and Django 6, with Celery (and a beat schedule) running the checks in the background and Redis as the broker. Uptime history is aggregated efficiently in the database and rendered as dependency-free inline SVG, so the detail pages stay fast. Alerts fan out through Resend (email), Slack OAuth, webhooks, and Twilio (SMS).βββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ
Teams, done quietlyβββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ
Teams are ad-hoc by design: solo users never see the concept. Create a team, invite teammates by email, share monitors, and everyone gets alerted through their own preferences when a shared monitor goes down.βββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβο»Ώβββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβο»Ώβββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ
Try the βββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβlive demoβββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ, or read the full write-up on the project page.βββββο»Ώβο»Ώββββββο»Ώο»Ώβο»Ώβββββββββο»Ώββββββο»Ώββββββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββββββο»Ώβββο»Ώββββο»Ώβββββββο»Ώο»Ώββββββο»Ώββββββββββο»Ώβββββββββββββββο»Ώββββββββο»Ώο»Ώβο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώββο»Ώο»Ώββββββο»Ώββο»Ώββββββββο»Ώββο»Ώββββο»Ώο»Ώβββββββββββββο»Ώββββο»Ώο»Ώββο»Ώβββο»Ώο»Ώβββββββββο»Ώο»Ώββο»Ώβββο»Ώβββββββο»Ώβο»Ώββββββο»Ώββο»Ώβββββββο»Ώββββββββο»Ώο»Ώββο»Ώββο»Ώβο»Ώβββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββο»Ώβο»Ώβο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώββββο»Ώββο»Ώο»Ώββββββο»Ώβββββββο»Ώβο»Ώβο»Ώβββο»Ώββββββββββββο»Ώο»Ώβββββββββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώββο»Ώββββββο»Ώββββββββο»Ώβββββββββββο»Ώββββο»Ώββο»Ώββο»Ώβββο»Ώβββο»Ώββββββββο»Ώβββββββο»Ώβββο»Ώβββο»Ώο»Ώββο»Ώββββββο»Ώββββο»Ώο»Ώβο»Ώβββββββο»Ώβββο»Ώβββο»Ώβββββββο»Ώο»Ώβββββββο»Ώβββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββββββββο»Ώβββββββββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββββο»Ώββββββββββο»Ώββββββο»Ώββββββββο»Ώββββββο»Ώββββββββο»Ώο»Ώβββο»Ώβββββο»Ώβββββββο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββββο»Ώβββο»Ώβββο»Ώβο»Ώβο»Ώβο»Ώβββββο»Ώβββο»Ώβββββββο»Ώββββββββο»Ώββο»Ώβββββββο»Ώβββο»Ώβββββββο»Ώβββββββο»Ώβββο»Ώβο»Ώβο»Ώβββββββββο»Ώβο»Ώβββββββο»Ώβββββββο»Ώο»Ώββο»Ώβββο»Ώββββββββο»Ώββββββο»Ώβο»Ώβββββββββββββββββο»Ώο»Ώβ