Free uptime & status monitoring. Sign up β Add your first site β Get alerts.
- Sign up - Create your free account
- Add websites - Monitor your sites and APIs
- Get alerts - Discord notifications when sites go down
Or self-host using the instructions below.
PulseWatch is a professional-grade website uptime and health monitoring platform built with Go and React. Monitor multiple websites, track performance metrics, and get instant alerts when issues occur. Features a stunning dashboard and public status pages that rival industry leaders like GitHub Status and Vercel Status.
- β HTTP/HTTPS uptime monitoring - Real-time website health checks
- β° Configurable intervals - Custom check frequency per website
- π Response time tracking - Monitor performance trends
- π SSL certificate monitoring - Track certificate expiry dates
- π Uptime statistics - 24h and 7-day uptime percentages
- π¨ Discord alerts - Instant notifications when sites go up/down
- π‘οΈ Smart alerting - Only alerts on status changes (no spam)
- π± Real-time updates - Live dashboard updates every 10 seconds
- π Modern React dashboard - Beautiful, responsive admin interface
- π Dark/light themes - Automatic theme switching with user preference
- π Interactive charts - Response time graphs and uptime analytics
- π Search & filtering - Find websites quickly with advanced filters
- π± Mobile responsive - Works perfectly on all devices
- π JWT authentication - Secure user sessions with Supabase
- π₯ Multi-user support - Each user sees only their websites
- π‘οΈ Protected admin APIs - JWT validation on all admin endpoints
- π Public status pages - No authentication required for status viewing
- π User data isolation - Complete separation between user accounts
- π Professional status pages - Public-facing status like GitHub/Vercel
- π¨ Stunning animations - 3D effects, gradients, and smooth transitions
- π Service history - Click any service to see detailed 24h history
- π Auto-refresh - Real-time updates every 30 seconds
- π― No authentication required - Perfect for sharing with customers
- π¦ MongoDB Atlas integration - Scalable cloud database storage
- π Cron-based execution - Reliable background monitoring
- π‘ Pluggable storage - Easily extend to other databases
- π Production ready - Deployed on Render with auto-scaling
- π§ Keep-alive system - Prevents free tier spin-downs
- Go 1.18+ - Backend API and monitoring service
- Node.js 16+ - Frontend React application
- MongoDB Atlas - Cloud database (Free tier supported)
- Supabase - Authentication service (Free tier supported)
- Discord Webhook - For notifications (Optional)
git clone https://github.com/prateeks007/PulseWatch.git
cd PulseWatch- Create a free cluster: https://cloud.mongodb.com
- Add a user and whitelist your IP (or use 0.0.0.0/0 for development)
- Copy your connection string:
mongodb+srv://<user>:<pass>@cluster0.mongodb.net/?retryWrites=true&w=majority
- Create a free project: https://supabase.com
- Go to Settings β API to get your keys
- Copy the Project URL and anon public key
Create a .env file in the root directory:
# MongoDB Configuration
MONGO_URI="your-mongodb-connection-string"
MONGO_DB_NAME="pulsewatch_db_local" # Use different names for local/prod
# Supabase Authentication
SUPABASE_URL="https://your-project.supabase.co"
SUPABASE_JWT_SECRET="your-jwt-secret-from-supabase-settings"
# Discord Notifications (Optional)
DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/your-webhook-url"Create monitor/frontend/.env.local for frontend:
VITE_API_BASE_URL="http://localhost:3000"
VITE_SUPABASE_URL="https://your-project.supabase.co"
VITE_SUPABASE_ANON_KEY="your-anon-public-key"# Install Go dependencies
go mod tidy
# Run the backend server
go run ./monitor/backendThis starts:
- π Cron scheduler - Monitors websites every minute
- π API server - REST API on
http://localhost:3000 - π Keep-alive service - Prevents deployment spin-downs
- π SSL monitoring - Daily certificate checks
# Navigate to frontend directory
cd monitor/frontend
# Install dependencies
npm install
# Start development server
npm run devThis opens:
- π Admin Dashboard -
http://localhost:5173/dashboard - π Public Status Page -
http://localhost:5173/status
βββββββββββββββββββββββ ββββββββββββββββββββββββ βββββββββββββββββββββββ
β React Frontend β β Go Backend API β β External Services β
β β β β β β
β β’ Admin Dashboard βββββΊβ β’ Fiber REST API βββββΊβ β’ MongoDB Atlas β
β β’ Public Status β β β’ JWT Validation β β β’ Supabase Auth β
β β’ Authentication β β β’ Cron Scheduler β β β’ Discord Webhooks β
β β’ Real-time Updates β β β’ Monitor Service β β β’ SSL Certificates β
βββββββββββββββββββββββ ββββββββββββββββββββββββ βββββββββββββββββββββββ
1. User authenticates β Supabase returns JWT token
2. Frontend sends JWT with API requests β Go backend
3. Backend validates JWT β Extracts user_id
4. Database queries filtered by user_id β MongoDB Atlas
5. User sees only their websites and data
Local Development: MongoDB "pulsewatch_db_local" + Supabase Cloud Auth
Production: MongoDB "pulsewatch_db_prod" + Supabase Cloud Auth
(Same auth, separate data)
Web dashboard with chartsβ DONEAlerting: Discordβ DONESSL certificate monitoringβ DONEPublic status pagesβ DONEDark/light themesβ DONEReal-time updatesβ DONEData cleanup and retentionβ DONEProduction deploymentβ DONEUser authentication (Supabase integration)β DONEMulti-tenant architectureβ DONE
- Custom status page domains
- Email, Slack, SMS alerts
- Incident management system
- API rate limiting
- Monitoring optimization - Shared monitoring for popular sites to prevent rate limiting
- Docker + Helm deployment
- Prometheus + Grafana exporter
- Mobile app (React Native)
- Advanced analytics & reporting
- π Start Monitoring: https://pulse-watch.vercel.app - Sign up and add your first website
- π Example Status Page: https://pulse-watch.vercel.app/status - See what your customers will see
- π API Endpoint: https://pulsewatch-av56.onrender.com - Backend service
# Build and deploy
npm run build
vercel --prod# Auto-deploys from GitHub
# Set environment variables in Render dashboardContributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Go and Fiber
- Frontend powered by React and Tailwind CSS
- Authentication by Supabase
- Database hosted on MongoDB Atlas
- Deployed on Render and Vercel