Site Watch Lite is a lightweight website monitoring and quality-checking web app. Give it a URL and it will automatically run continuous checks and surface issues for SSL, DNS, WHOIS, uptime, performance, accessibility, security headers, mixed content, broken links, and more. Checks run automatically using Google Cloud schedulers / cron jobs and (where applicable) the Google Lighthouse API for page speed / performance insights.
Live demo: https://site-watch-lite.vercel.app
- Uptime monitoring: checks availability every minute.
- SSL monitoring: certificate validity, expiration, chain, and configuration checks.
- DNS checks: records presence and basic correctness (A, AAAA, CNAME, MX, TXT, NS).
- WHOIS monitoring: domain registration and expiration checks.
- Broken link detection: crawls pages and detects unreachable links and HTTP errors.
- Mixed content detection: finds insecure (HTTP) resources on HTTPS pages.
- Accessibility checks: identifies common accessibility issues (via Lighthouse / automated audits).
- PageSpeed / Performance: Lighthouse-based audits (Google Lighthouse API) giving performance, best-practices, SEO and accessibility scores.
- Security headers checks: verifies common security headers (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, etc.)
- Scheduling: uses Google Cloud cron jobs and schedulers to run checks automatically on the configured cadence.
- Notifications (if configured): can be extended to send alerts through webhooks, email, or other integrations.
- Lightweight UI: simple dashboard to add URLs, view recent check results, and inspect historical data.
- Frontend: TypeScript web application (deployed to Vercel). Provides UI for adding/managing monitored sites and viewing check results.
- Back-end / workers: Serverless functions or scheduled jobs that execute checks. Scheduled by Google Cloud Scheduler / Cron to run checks at configured intervals (including per-minute uptime checks).
- Checkers: modular check routines for SSL, DNS, WHOIS, broken links, mixed content, accessibility, Lighthouse/PageSpeed, security headers, and uptime.
- Data store: persistent storage for site configurations and check histories (configureable — e.g., cloud database, Firestore, or a lightweight DB).
- External APIs: Google Lighthouse API for page speed / audit results; optional integrations for notifications or other third-party services.
- Deployment: Frontend on Vercel; scheduled jobs on Google Cloud Scheduler / Cloud Functions / Cloud Run (as configured).
- Uptime: HTTP(S) GET requests to the given URL; measure response status and latency. Retries and response code handling are configurable.
- SSL: connect to the host, inspect the certificate chain and validity dates, check issuer and supported protocols/ciphers (optional).
- DNS: query DNS records (A, AAAA, CNAME, MX, TXT, NS) and flag missing/incorrect records.
- WHOIS: query WHOIS registry for domain registration and expiration date. Generate alerts for near-expiration.
- Broken links: crawl the site (respecting robots directives if configured), follow internal pages up to configured depth, and detect links returning 4xx/5xx or timeouts.
- Mixed content: analyze page resources to find insecure (HTTP) resources loaded on HTTPS pages.
- Accessibility & Lighthouse: call Google Lighthouse / PageSpeed API to gather performance, accessibility, best-practices, and SEO audits. Report top issues and scores.
- Security headers: fetch headers and validate presence and values of common security headers.
- Per-minute uptime checks can be scheduled using Google Cloud Scheduler with a job per monitored URL or a single job that iterates monitored sites and enqueues per-site checks into Pub/Sub.
- Resource-intensive checks (Lighthouse, deep link crawls, WHOIS) are scheduled less frequently (hourly/daily) to conserve quota and costs.
- Use exponential backoff and rate-limiting to avoid overloading target sites and hitting API quotas.
- Store check results and metadata in your configured database. Consider retention policies:
- Keep high-resolution uptime data for N days (e.g., 7–30 days).
- Aggregate or summarize older data (daily/weekly rollups).
- Archive or delete very old detailed check results to save space.
- The app is structured to allow adding notification providers:
- Webhooks (POST payloads with check results)
- Email (via SMTP or third-party providers)
- Slack, Microsoft Teams, Discord, SMS (via integrations)
- Configure thresholds for alerts (e.g., 3 consecutive failures, SSL expiring in < 14 days, Lighthouse performance score < 50).
- Keep API keys and service account credentials out of source control. Use environment secrets in Vercel, Google Secret Manager, or equivalent.
- Use service accounts with least privileges for scheduler and API access.
- Rate-limit background jobs and implement retries with backoff.
Contributions, bug reports, and feature requests are welcome. Please open issues and PRs against the repository.
Suggested contribution steps:
- Fork the repository
- Create a feature branch
- Write tests for new functionality
- Submit a pull request with a clear description of the change
- Scheduler jobs not running: verify Cloud Scheduler job permissions, service account, and target endpoint authorization.
- Lighthouse API errors: confirm billing and API enablement for PageSpeed/Lighthouse in Google Cloud and verify LIGHTHOUSE_API_KEY or credentials.
- High resource use: reduce Lighthouse frequency, limit crawl depth, or increase job intervals for heavy checks.
- Add user accounts and multi-user/team support.
- Richer alerting channels and escalation workflows.
- Historical charts and SLA reporting.
- On-demand (manual) checks in addition to scheduled ones.
- Better rate-limiting, batching, and concurrency controls for large monitoring sets.
Include your chosen license here (e.g., MIT). If none is chosen, add a LICENSE file before reuse.