Raygun
Replaceable in one session with an AI coding agent.
Crash reporting and real user monitoring together: the errors your users hit, and how the pages actually performed for them.
Build me the crash reporting and real user monitoring that replaces Raygun. The combination is the idea: **an error and a slow page are the same event seen twice**, and having both from the same visitor is what makes either useful. STACK - Node 20+ with Fastify - SQLite through better-sqlite3, WAL mode - A tiny script on the page — no library, no framework - Caddy in front THE DATA MODEL - groups: id, fingerprint, title, culprit, first_seen, last_seen, count, status, resolved_in_release - occurrences: id, group_id, release, environment, message, stack_json, context_json, session_id, at - sessions: id, visitor_hash, started_at, device, browser, os, country - vitals: id, session_id, path, metric, value, at — largest contentful paint, cumulative layout shift, interaction latency, time to first byte - releases: id, version, deployed_at CRASH GROUPING - Fingerprint from the exception type and the top frames of your own code, skipping framework and vendor frames - **Normalise the variable parts out**: ids, numbers in paths, quoted values. Otherwise every affected user creates a new group - Fingerprint on function and file, never on line numbers, or a whitespace change creates a hundred new groups - Source maps uploaded per release and resolved on ingest, with both raw and resolved frames stored REAL USER MONITORING, DONE LIGHTLY - The browser's own PerformanceObserver reports the vitals. **You do not need to measure anything yourself** — read what the platform already provides - Send once on page hide, in a single beacon. Never on an interval, and never blocking anything - **Report percentiles, never averages.** The average page load is a number nobody experienced; the 75th percentile is what a bad visit looks like and it is what the metric is defined against - Segment by device, connection and country, because 'the site is fast' is usually only true on a laptop in your own city THE COMBINATION, WHICH IS THE POINT - The session id on both the error and the vitals. Now 'the users hitting this error were also on the slowest pages' is one query - On a group page, show the distribution of the vitals for the sessions that hit it - **A release comparison: errors and vitals before and after a deploy, side by side.** That single view answers the only question anybody asks after shipping INGEST SAFETY - Accept, write, respond. A rate limit per group so a hot loop costs a counter and not a disk - Payload and stack depth caps - Scrub secrets and never store input values or personal data from the page ALERTING - New group, regression of a resolved group, spike against a group's own baseline, and a vitals regression after a release. A daily digest for everything else WHAT MATTERS MOST A shared session id, percentiles rather than averages, and the release comparison. Together they turn two separate tools into one answer.
What you lose
- Real user performance data collected from actual visitors
- Crash grouping that holds across releases and platforms
- Source map handling for every framework
- Correlating a slow page with the error on it
If you would rather not build
- OpenReplay, if session replay is what you actually want
The escape hatch
open source · no votes, no paid placement
GlitchTip
$0Sentry-compatible error tracking that runs small.
glitchtip/glitchtip-backendfree · open source
web-vitals
$0Reads the browser’s own performance metrics in a few kilobytes.
GoogleChrome/web-vitalsfree · open source
Why this verdict
our own opinion · changed only by a person
76/100
Verdict yes at 76: the browser reports its own vitals for free and the error half is a fingerprint function. Joining them on a session id is the whole value and it costs one column.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about Raygun
answered from the record above
Is Raygun free?
No — the plan we track is $4 a month. Crash reporting from $4 per 10,000 errors per month; real user monitoring is priced separately.
Can you replace Raygun by building your own?
YES. Replaceable in one session with an AI coding agent. Replacement score 76 out of 100, build time one session. Read what you lose before you decide.
How much does Raygun cost?
$4 a month on Crash Reporting — $48 a year. Recorded 14 Aug 2026.
What do you lose by replacing Raygun?
Real user performance data collected from actual visitors; Crash grouping that holds across releases and platforms; Source map handling for every framework; Correlating a slow page with the error on it. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Raygun?
Yes: GlitchTip, web-vitals. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

