Project · Uptime monitoring
PulseWatch
Uptime monitoring for websites and APIs, with incidents, alerts and public status pages.
Scheduled checks open and resolve incidents on their own, with alerts only on state changes.
- Type
- Personal open-source project
- Automated tests
- 33 (pytest)
- Built with
- Python · FastAPI · asyncio
- Live demo
- Runs locally — not hosted

Overview
What it does
PulseWatch checks websites and APIs on a schedule, records every result, opens an incident when failures cross a threshold, alerts on Discord, Telegram or a webhook, and publishes a public status page. The effort went into a scheduler that never checks twice, incidents that don't page over one dropped packet, uptime that is never rounded up, and an SSRF guard.
Core features
What's in it
Scheduler
One asyncio task with atomic claiming and bounded concurrency, so a monitor is never checked twice at once.
Incidents
Opened and resolved by consecutive-failure thresholds, not single blips.
Alerts
Discord, Telegram and webhook alerts when an incident opens; recovery closes it with the downtime recorded.
Status pages
Public, auto-refreshing status pages with uptime that is never rounded up.
Stack & skills
Built with
Technology
- Python
- FastAPI
- asyncio
- httpx
- SQLAlchemy
- Next.js
- TypeScript
What this project demonstrates
- Monitoring
- Async scheduling
- Incident logic
- Alerting
Repository & demo
Run it yourself
Seeded demo account: demo@pulsewatch.dev / pulsewatch-demo-1234.
No public live demo is hosted. Everything below runs locally with Python 3.12+ and Node 20+.
$ git clone https://github.com/Moeijiro/pulsewatch.git
$ cd pulsewatch
$ make install
$ make seed
$ make api
$ make web
Have a project in mind?
I build APIs, automation systems, Discord integrations and full-stack applications. Tell me what it should do and I'll tell you how I'd build it.



