Know when your sites go down — instantly, from your toolbar.
SiteWatch is a Chrome extension that watches your websites 24/7. Your uptime status lives right in your browser toolbar as a green/red badge you glance at 50 times a day.
Use SiteWatch Cloud for zero-setup monitoring, or self-host the server for unlimited everything.
Website | Chrome Web Store (coming soon) | Pricing
| Self-Hosted | Cloud Free | Cloud Pro | |
|---|---|---|---|
| Sites | Unlimited | 3 | 50 |
| Check interval | You decide | 5 min | 1 min |
| History | Unlimited | 24 hours | 30 days |
| Setup | Your server | Install & go | Install & go |
| Cost | $0 | $0 | $5/mo |
| Feature | SiteWatch | UptimeRobot Free | Pingdom |
|---|---|---|---|
| Browser badge | Real-time | No | No |
| Self-hosted option | Yes | No | No |
| Cloud option | Yes | Yes | Yes |
| Desktop alerts | Native Chrome | Email only | Email/SMS |
| Open source | MIT | No | No |
| Starting price | $0 | $0 | $15/mo |
┌──────────────────┐ HTTPS/REST ┌──────────────────────┐
│ Chrome Extension │ <───────────────> │ Monitor Server │
│ │ │ │
│ - Popup UI │ │ - Pings sites │
│ - Badge status │ │ - Stores history │
│ - Notifications │ │ - REST API │
│ - Mode selector │ │ - Multi-tenant │
└──────────────────┘ │ - Zero dependencies │
└──────────────────────┘
(your VPS or our cloud)
- Install the Chrome extension
- Click "Use SiteWatch Cloud"
- Get a free license key from LemonSqueezy
- Paste the key, click Activate — done!
One-command install:
git clone https://github.com/zerodeps-dev/sitewatch.git
cd sitewatch
bash scripts/setup.shOr run manually:
cd server
SITEWATCH_TOKEN=your-secret-token node server.jsOr with Docker:
SITEWATCH_TOKEN=your-secret-token docker compose up -dThen install the extension, click "Connect to my server", enter your URL and token.
| Variable | Default | Description |
|---|---|---|
SITEWATCH_PORT |
3200 |
HTTP port |
SITEWATCH_HOST |
0.0.0.0 |
Bind address |
SITEWATCH_TOKEN |
change-me-in-production |
Bearer auth token (self-hosted) |
SITEWATCH_DATA |
./data |
Data storage directory |
SITEWATCH_MODE |
selfhosted |
selfhosted or cloud |
SITEWATCH_CORS_ORIGIN |
* |
CORS allowed origin |
LEMONSQUEEZY_API_KEY |
(none) | LemonSqueezy API key (cloud only) |
LEMONSQUEEZY_FREE_PRODUCT_ID |
(none) | Free product ID (cloud only) |
LEMONSQUEEZY_PRO_PRODUCT_ID |
(none) | Pro product ID (cloud only) |
All endpoints except /api/health and /api/auth/activate require Authorization: Bearer <token> header.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/health |
Public health check |
POST |
/api/auth/activate |
Activate license key (cloud only) |
POST |
/api/auth/upgrade |
Upgrade to Pro license (cloud only) |
GET |
/api/status |
Quick badge data (all sites) |
GET |
/api/account |
Plan info and limits |
GET |
/api/sites |
List all monitored sites |
POST |
/api/sites |
Add site {"url": "...", "name": "..."} |
GET |
/api/sites/:id |
Site details + recent history |
DELETE |
/api/sites/:id |
Remove a site |
GET |
/api/sites/:id/history |
Full check history (?limit=100) |
monitor.yourdomain.com {
reverse_proxy localhost:3200
}
- Server: Node.js 18+, zero npm dependencies, ES modules
- Storage: JSON files (per-tenant in cloud mode)
- Extension: Chrome Manifest V3, vanilla JS, no framework
- Payments: LemonSqueezy (Merchant of Record)
- Deployment: systemd, Caddy, Docker (optional)
- License: MIT
Contributions are welcome! Please open an issue first to discuss what you'd like to change.
MIT — Use it, modify it, ship it.
Built by ZeroDeps — Zero npm dependencies, zero hosting costs.