Highlight.io and Vigilmon both appear in the observability conversation. They're solving different problems from entirely different vantage points, and understanding that difference saves engineering teams from coverage gaps that users discover before monitoring does.
Highlight.io captures what users experience inside your running application — sessions, errors, and logs from within the browser or server process. Vigilmon probes your application from outside, the way any user would before a JavaScript bundle even loads. Together they close the observation gaps that each leaves open on its own.
What Is Highlight.io?
Highlight.io is an open-source session replay, error monitoring, and logging platform. It integrates with your application via SDK and captures what users actually see and experience inside your product.
Highlight.io's core capabilities include:
- Session replay: Record and replay user browser sessions with full DOM reconstruction — see exactly what a user saw when they encountered a bug
- Error monitoring: Capture frontend and backend exceptions with stack traces, session context, and user information
- Console and network log capture: Record console.log output and network requests alongside session recordings
- Backend error tracking: Server-side error capture for Node.js, Python, Go, Ruby, and other runtimes
- Comments and annotations: Engineers can comment directly on session recordings for collaborative debugging
- Alerts: Error spike detection and volume-based alerting
- Self-hostable: Full open-source stack you can run on your own infrastructure
Highlight.io is particularly powerful for frontend debugging — when a user reports "something didn't work," session replay lets you watch exactly what happened without needing to reproduce it.
What Is Vigilmon?
Vigilmon is a purpose-built external uptime and infrastructure monitoring service. It does not integrate with your application code. It sends HTTP requests to your endpoints from multiple geographic locations and alerts you when those requests fail, time out, or return unexpected status codes.
Vigilmon's core capabilities include:
- HTTP/HTTPS endpoint monitoring with status code and response body validation
- SSL/TLS certificate expiry monitoring with advance warnings
- TCP port monitoring for non-HTTP services
- Cron job heartbeat monitoring (dead man's switch pattern)
- Multi-region consensus alerting — fires only when a quorum of probes agree a target is down
- Response time history with period selectors
- Webhook, email, and Slack alert channels
- Customer-facing status page included at no extra cost
- REST API for programmatic monitor management
No SDK. No code changes. Vigilmon doesn't know what language your application is written in — it only knows whether your service responds to a probe from the public internet.
The Fundamental Difference: Inside-Out vs. Outside-In
This is the architectural distinction that determines which failures each tool can see:
Highlight.io is inside-out. Its SDK runs inside your application process (or your users' browsers). It captures what happens after the connection is made, after the page loads, after the JavaScript executes. For Highlight.io to capture an event, your application must first be reachable enough to run.
Vigilmon is outside-in. It probes your service from external infrastructure, simulating the initial connection a user makes. If the server is unreachable — due to a networking issue, server crash, load balancer failure, or DNS misconfiguration — Vigilmon detects this immediately. There's nothing for an internal SDK to run when the service is completely down.
| Scenario | Highlight.io sees | Vigilmon sees | |---|---|---| | JavaScript exception on checkout page | ✅ Full session replay + stack trace | ✅ HTTP 200 (error in client code) | | Server unreachable (complete outage) | ❌ No session to record | ✅ Probe fails, alert fires | | DNS resolution failure | ❌ Nothing (browser can't connect) | ✅ Probe fails, alert fires | | SSL certificate expired | ❌ Nothing (HTTPS fails before SDK loads) | ✅ Certificate alert fires days before | | 500 error from API | ✅ Captured with session context | ✅ HTTP 500 from probe | | Third-party CDN serving cached error page | ❌ Potentially (if JS loads) | ✅ Probe detects unexpected response | | Cron job stopped running | ❌ Nothing | ✅ Heartbeat missed, alert fires | | Slow backend causing timeouts | ✅ Network requests captured in session | ✅ Response time alert fires |
What Highlight.io Doesn't Cover
Complete Infrastructure Outages
When your server is down, Highlight.io receives no events. There is nothing to capture — the SDK never loads, the session never starts, no errors are thrown. From Highlight.io's perspective, a catastrophic outage looks identical to a quiet Tuesday morning with no active users.
The worst category of failure — "nobody can reach the site at all" — produces zero signal in Highlight.io.
SSL Certificate Expiry
SSL certificates expire on a calendar. Highlight.io doesn't monitor certificates. When a certificate expires, HTTPS connections fail before any JavaScript can load, meaning no session replay, no error capture, nothing. Users see a browser security warning and bounce. You find out from the surge in support tickets.
Vigilmon monitors SSL certificates and alerts 30, 14, and 7 days before expiry. Certificate expiry is the most preventable class of outage — it only requires knowing about it in time.
Third-Party and Non-Web Services
Most production stacks depend on external services — payment gateways, email delivery APIs, data providers, partner integrations. Highlight.io captures errors thrown by your code when these services fail, but only if your application is up to throw them.
Vigilmon can monitor any HTTP endpoint and any TCP port, including infrastructure outside your codebase: the health endpoint on your PostgreSQL proxy, the payment gateway's availability page, your Redis cluster's TCP port.
Cron Job and Background Worker Availability
Highlight.io doesn't know whether your scheduled jobs ran. If a nightly billing job stops executing, Highlight.io has no session to replay and no error to capture — the job simply didn't run.
Vigilmon's heartbeat monitoring inverts this: your job pings a Vigilmon URL when it completes, and Vigilmon alerts if the ping doesn't arrive on schedule. This catches silent failures in background workers before they accumulate into data integrity or billing problems.
What Vigilmon Doesn't Cover
Vigilmon doesn't know what happened inside your application after the probe received a 200 OK. A user clicking a button that silently fails, a checkout flow that completes the HTTP request but doesn't actually process the order, a form validation error that blocks a user without returning an HTTP error — none of these produce a signal Vigilmon can see.
This is exactly where Highlight.io excels. Session replay makes invisible user friction visible. Error tracking with stack traces gives engineers the diagnostic context that monitoring can't provide.
Feature Comparison
| Feature | Highlight.io | Vigilmon | |---|---|---| | Session replay | ✅ core strength | ❌ | | Frontend error tracking | ✅ | ❌ | | Backend error tracking | ✅ | ❌ | | Console/network log capture | ✅ | ❌ | | External HTTP uptime probing | ❌ | ✅ core strength | | SSL certificate monitoring | ❌ | ✅ | | TCP port monitoring | ❌ | ✅ | | Multi-region consensus alerting | ❌ | ✅ | | Cron job / heartbeat monitoring | ❌ | ✅ | | Customer-facing status page | ❌ | ✅ included | | Alerting on complete outage | ❌ | ✅ | | Self-hostable | ✅ open source | ✅ open source | | Setup requires code changes | ✅ SDK install | ❌ |
The Detection Gap Problem
Here's the scenario that matters for on-call engineers:
With Highlight.io as your only alert source:
- Server crashes at 2:47 AM
- Users attempt to load the app — connection refused
- Highlight.io SDK never loads — zero events captured
- No alert fires
- On-call team learns about the outage from a user tweet at 3:12 AM
- 25 minutes of user-facing downtime before engineering knows
With Vigilmon monitoring the same endpoint:
- Server crashes at 2:47 AM
- 2:48 AM — Vigilmon probe fires, fails, consensus check starts
- 2:49 AM — multi-region consensus confirms outage, alert fires to Slack
- On-call engineer paged
- 2 minutes from crash to alert
The detection gap — the time between failure and engineering awareness — is bounded by Vigilmon's probe interval rather than by how many users happen to be awake and using your product.
The Layered Observability Stack
The right framing isn't "Highlight.io vs Vigilmon" — it's "Highlight.io and Vigilmon covering different layers of a complete observability picture":
┌─────────────────────────────────────────────────┐
│ LAYER 1: Is the service reachable? │
│ → Vigilmon (external probes, uptime, SSL) │
├─────────────────────────────────────────────────┤
│ LAYER 2: Is the service producing errors? │
│ → Highlight.io (error tracking, backend logs) │
├─────────────────────────────────────────────────┤
│ LAYER 3: What did the user experience? │
│ → Highlight.io (session replay, UX debugging) │
└─────────────────────────────────────────────────┘
Each layer answers a distinct question:
- Layer 1 (Vigilmon): Can users connect at all? Binary reachability. Catches the worst failures first and fastest.
- Layer 2 (Highlight.io): When users connect, is the application throwing errors? Requires the application to be running.
- Layer 3 (Highlight.io): What exactly did the user experience? Requires a session that was actually recorded.
Teams using Highlight.io alone operate with layers 2 and 3 only. The entire class of infrastructure-level failures — DNS, certificates, network paths, server crashes, load balancer failures — produces no signal in Highlight.io and fires no alerts.
Setting Up Both: A Practical Configuration
Running Vigilmon and Highlight.io together requires no integration between the tools — they observe independently and alert through their own channels.
Vigilmon setup (under 5 minutes)
1. Go to vigilmon.online and create a free account
2. Add your primary endpoint: https://yourapp.com/health
3. Set check interval: 1 minute
4. Add SSL monitoring for your domain
5. Configure Slack or webhook alert
6. Add a heartbeat URL to your key background jobs
Highlight.io SDK setup (React example)
import { H } from '@highlight-run/react';
H.init('<YOUR_PROJECT_ID>', {
tracingOrigins: true,
networkRecording: {
enabled: true,
recordHeadersAndBody: true,
},
});
With both running:
- Vigilmon fires → service unreachable → incident response before any user reports
- Highlight.io fires → error in application code → targeted debugging with session context
- Both fire on HTTP 500 → service is up but throwing errors → you know scope and have full diagnostic context
Pricing Overview
| | Highlight.io | Vigilmon | |---|---|---| | Free tier | 500 sessions/month, 1,000 errors/month | 5 monitors, 1-min intervals, status page | | Paid | From ~$50/month | From ~$10/month | | Self-hosted | ✅ full open source | ✅ open source |
Both have functional free tiers that cover small teams and side projects. The free tiers work independently — configure each one for your stack and benefit from both alert channels at $0/month.
Summary
Highlight.io is one of the best tools available for understanding what users experience inside your application. Session replay eliminates the "I can't reproduce it" category of bug report. Error tracking with session context cuts debugging time dramatically.
But Highlight.io has a hard architectural constraint: it requires your application to run. When the application is completely unreachable — the failure users care about most — Highlight.io is silent. No session starts. No errors are captured. No alerts fire.
Vigilmon fills that gap. It monitors whether your service responds to a probe from the outside world, regardless of what's happening inside your codebase. When it doesn't respond, Vigilmon alerts within a minute — before users start tweeting, before support tickets pile up, before your team asks "wait, is the site actually down?"
Use Highlight.io to understand what goes wrong inside your application. Use Vigilmon to know when your application stops being reachable at all.
Start monitoring your external endpoints for free at vigilmon.online — 5 monitors, 1-minute intervals, SSL monitoring, multi-region consensus, and a status page for your users, all included at $0/month.
Tags: #monitoring #devops #highlight #sessionreplay #uptime #errortracking #sre #observability #openSource