Hey folks! 👋
I've been working on PulseWatch — an AI-powered website monitoring tool that tracks changes on any webpage and sends instant notifications. I wanted to share how I built it and what makes it different from existing solutions.
The Problem
We all need to track changes on websites sometimes — price drops on Amazon, new job postings, API documentation updates, stock availability, or news articles. The existing tools either require complex CSS selectors or are too expensive for what they offer.
The Solution: AI-Powered Selection
PulseWatch uses GPT-4o to analyze web pages and suggest what to monitor. Instead of writing CSS selectors manually, you can:
- Point and click — Take a screenshot, click on the element you want to track
- Drag to select — Draw a box around a region on the page
- AI suggestions — Let GPT-4o analyze the page and recommend what to monitor
- 40+ templates — Pre-built selectors for popular sites like Amazon, eBay, GitHub, and more
Tech Stack
Here's what powers PulseWatch under the hood:
- Backend: .NET 8, PostgreSQL, deployed on Railway
- Frontend: Flutter Web + Mobile (iOS & Android), deployed on Vercel
- AI: OpenAI GPT-4o for element detection, GPT-4o mini for change summaries
- Screenshots: thum.io API for capturing page screenshots
- Notifications: Brevo (email), Firebase Cloud Messaging (push), plus Slack, Discord, and webhook integrations
- Error Tracking: Sentry for real-time error monitoring
- Landing Page: Next.js with i18n support for 9 languages
How Change Detection Works
The monitoring flow is straightforward:
- User adds a URL and selects an element (via AI, visual selector, or template)
- PulseWatch captures a screenshot and extracts the element content on a schedule
- When content changes, it generates an AI summary of what changed
- Notifications fire across all configured channels
The AI summary is a game-changer — instead of just saying "something changed," PulseWatch tells you what changed in plain language.
Multi-Channel Notifications
One of the most requested features was flexible notifications. PulseWatch supports:
- Push notifications — iOS (APNs) and Web (FCM)
- Email — Detailed change reports via Brevo
- Slack — Channel-based alerts
- Discord — Webhook integration
- Custom Webhooks — POST requests to any endpoint
- Quiet hours — Don't disturb during sleep
REST API for Developers
As a developer, I wanted PulseWatch to be API-first. The REST API lets you:
GET /api/watches — List all monitors
POST /api/watches — Create a new monitor
GET /api/watches/:id — Get monitor details
DELETE /api/watches/:id — Delete a monitor
GET /api/history/:id — Get change history
Authenticate with an API key (X-API-Key header) and build your own integrations. Full docs at pulsewatch.watch/docs/api.
Chrome Extension
I also built a Chrome extension that lets you add any website to PulseWatch directly from your browser. Right-click on any page → "Monitor with PulseWatch" → done.
Available on the Chrome Web Store.
Internationalization
PulseWatch supports 9 languages: English, Turkish, German, Spanish, French, Arabic, Japanese, Korean, and Chinese. The landing page, app, and even AI-generated change summaries are all localized.
What's Next
I'm currently working on:
- Public status pages for monitored sites
- Weekly digest emails
- Webhook retry mechanism
- Onboarding flow improvements
Try It Out
PulseWatch has a free tier (2 monitors, daily checks) so you can try it without commitment. Paid plans start at $8.99/month for more monitors, faster checks, and API access.
🔗 Website: pulsewatch.watch
📱 Chrome Extension: Chrome Web Store
📖 API Docs: pulsewatch.watch/docs/api
🐙 GitHub: https://github.com/KaracaTR/pulsewatch-website-monitoring
📺 Demo Video: YouTube
🏹 Product Hunt: Product Hunt
I'd love to hear your feedback! What features would you find most useful? Drop a comment below 👇
Top comments (0)