SitePulse is a SaaS platform for monitoring the health and uptime of any website. Add any URL for plain uptime monitoring, or connect the WordPress plugin to unlock deeper insight — audit history, SSL status, plugin vulnerabilities, database health, and PHP errors — all in one dashboard with instant alerts the moment something goes wrong.
No more manually checking sites. No more finding out a site was down hours after the fact.
Note
· Hosted on AWS
· Infrastructure provisioned with Terraform. Deployed via GitHub Actions CI/CD
- Universal uptime monitoring — add any URL and SitePulse will check it on a per-plan cadence (1–5 min). No plugin required.
- WordPress deep monitoring — connect the lightweight plugin to get health snapshots covering plugin vulnerabilities, SSL certificate, database size, server info, and PHP errors. Full audit history stored and queryable.
- Incident tracking — every outage is recorded with start time, HTTP status, and failure reason. Resolved automatically on recovery.
- Instant alerts — down/up notifications via Email, Slack, Discord, or custom webhooks the moment a state transition is detected.
- Team collaboration — invite members, assign roles (Owner / Member / Guest), and share monitoring across a team.
- Plan-based limits — Free, Pro, and Enterprise tiers with configurable site limits, check intervals, and notification channel access.
System cron (every minute)
└── sites:check-due command
└── dispatches CheckSiteHeartbeat job per due site
├── Plain mode → GET / (any 2xx = up)
└── WordPress mode → GET /heartbeat (api_key auth, expects {ok:true},
also detects PHP fatal errors in response body)
On first failure: incident created, retry in 2 min.
On second failure (confirmed down): alert dispatched to all team notification channels.
On recovery: incident resolved, recovery alert dispatched.
| State | Next check |
|---|---|
| Up | Free: 5 min · Pro: 3 min · Enterprise: 1 min |
| 1st failure | 2 min |
| 2nd+ failure | 9 min |
| 6+ consecutive failures | 19 min |
sitepulse/
├── sitepulse-app/ # Laravel 13 app — backend API + React/Inertia frontend
└── sitepulse-wp/ # WordPress Docker dev environment
├── sitepulse-monitor/ # WP plugin source — tracked in git
└── wordpress/ # Full WP install — NOT tracked in git
sitepulse-wp/sitepulse-monitor/ is the canonical plugin source. sitepulse-wp/wordpress/ is gitignored.
Alerts are dispatched on down and recovery events to all active channels configured per team:
| Channel | How |
|---|---|
| Blade template via Laravel Mail (Resend in production) | |
| Slack | Incoming webhook POST |
| Discord | Incoming webhook POST |
| Custom Webhook | JSON POST with optional HMAC-SHA256 signature (X-SPM-Signature) |
If no email channel is configured, alerts fall back to the site owner's account email.
| Free | Pro | Enterprise | |
|---|---|---|---|
| Monitored sites | 3 | Unlimited | Unlimited |
| Check interval | 5 min | 3 min | 1 min |
| Teams | 1 | 1 | Unlimited |
| Notification channels | All | All |