LogRocket vs Raygun: A Hands-On Error Tracking Comparison for 2026

Stanley Ulili
Updated on November 10, 2026

The moment my test storefront's checkout broke, LogRocket showed me the shopper's click, the request body with the bad coupon, and the server's error message in the response, all inside one recording. Raygun showed me the same failure from the server's side, with a stack trace, a version and request-scoped breadcrumbs, and left the browser's view of it in a separate application with its own key.

That split runs through every feature these two products offer. LogRocket is a session replay platform that records each visit with its network traffic, console and browser performance, then builds errors, analytics and its AI assistant, Galileo, on top of those recordings. It has no Node.js SDK, so your server stays out of view unless you connect a backend tool.

Raygun is a suite of three separately priced products: Crash Reporting for errors on any platform, Real User Monitoring for page and request timing, and APM for server traces through an agent. Each part of your stack becomes its own application in Raygun, with its own error list.

So the question for your team is which half of the problem you need covered first. In my test, LogRocket answered "what did the user do?" better than anything Raygun offers, and Raygun answered "which release brought this back?" in a way LogRocket can't. Both had rough edges that would change a purchase decision: a release-tracking gap in one, and an APM package that quietly broke error reporting in the other.

The sections below cover installation, catching errors, source maps, the error page, grouping, recordings and RUM, regressions across releases, speed, logs, alerting, AI and what each costs.

LogRocket vs Raygun: Results at a glance

Every verdict here reflects one Express and Vite app, with each tool installed the way its docs describe. A paid Raygun plan or another framework might change some rows.

Area Better in my test Why
Setup and onboarding LogRocket Two lines in the browser; Raygun needs one application per part of the app and manual source map labels on the trial
Error capture Raygun Covers the server and the browser; LogRocket sees only what the browser sees
Source maps LogRocket A CLI upload on any plan; Raygun's upload API needs a paid token
Debugging an error LogRocket A recording with request and response bodies beside the stack
Error grouping Neither LogRocket filed a new bug under an old title; Raygun split one bug by URL and by amount
Session replay and RUM Mixed LogRocket records video replays; Raygun measures pages, requests and Web Vitals across all users
Releases and regressions Raygun Resolves in a version, reopens on return and lists regressions per deployment
Performance monitoring Neither LogRocket times requests per session only; Raygun's APM saw no app code and broke error capture
Logs Neither LogRocket keeps the browser console per session; Raygun has no log product
Alerts Not compared I set up no Slack, email or webhook destination in either
AI-assisted debugging Not compared Galileo was tested; Raygun's only AI route is an MCP server I didn't connect
Price Raygun for errors, LogRocket for replay Raygun's error plan starts at $40 a month; LogRocket's free tier covers 1,000 sessions

How I tested LogRocket and Raygun

monitoring-lab is a small bookstore built to fail. A Vite storefront with hash routes calls an Express API backed by SQLite, a fake pricing service fails on purpose, and a background job writes a sales report every minute. Each tool plugs in through the same pair of adapters, so the app code never changes between tests.

The planted problems:

  • Browser crashes: adding a book to the wishlist throws a TypeError, and an order-tracking request fails and leaves its promise rejection unhandled.
  • Failed API calls: requests for missing books return 404 or 500, a broken checkout returns 500, and price lookups return 502.
  • Server exceptions: an unknown coupon crashes checkout with a TypeError, out-of-stock orders throw a handled error, and an upstream service returns 503.
  • Background work: some sales report runs throw.
  • Slowness: a search endpoint that blocks for about 1.5 seconds.

Two scripted shoppers, alice and bob, browse in headless Chromium, while a third, carol, never opens the storefront and orders by API.

The releases

Release What I tested
1.0.0 Installation, capture, source maps, the error page and recordings
1.1.0 A bug I'd marked fixed, shipped again unchanged
1.2.0 A bad deploy: a slow database query in checkout, plus a new payment error on one charge in five

The last release is the one that separates monitoring tools. A good answer says that checkout got slower and that a new error appeared, and keeps those two problems apart.

SDKs and test limitations

Platform LogRocket Raygun
Browser logrocket 12.4.0, source maps with logrocket-cli 0.16.0 raygun4js 3.1.4, Crash Reporting and RUM
Node.js server ✘: no SDK; session links printed in server logs raygun 2.2.10 for Crash Reporting, raygun-apm 2.3.0 plus a separate agent for APM
Plan during the test Pro trial, 14 days Trial, 14 days, all three products

Keep these in mind as you read:

  • Separate runs: each tool ran in its own week of October 2026, with the same traffic script. Event counts aren't comparable one to one.
  • LogRocket had nothing on the server. Every server-side result for LogRocket comes from what the browser received.
  • Raygun's APM ran in Docker on a Mac, using an agent image that hadn't been updated in almost three years.
  • Both tools recorded headless Chromium with no extra setting.

Terms in each tool

Concept LogRocket Raygun
A group of the same error Error row under Signals, Issue once you open one Error group
Fixed state Closed Issue Resolved, or Resolved in a version
Release release in LogRocket.init Version from setVersion, plus Deployments
Release page ✘: none, first and last seen on the Issue Deployment page with New errors and Regressions
Silenced state ✘: not found Ignored, or Permanently ignored
Breadcrumbs Console and Custom event rows in the session Breadcrumbs tab, automatic in the browser
Where a visit lives Session recording RUM session timeline

Setup and onboarding

Both tools install from an npm package in a few minutes. The difference is how many separate things you set up before your whole app is covered.

LogRocket: One project, two lines of code

LogRocket asks for a project, recommending "a project for each environment (dev/staging/prod)", then a use case and an install method. The install step offers AI Setup for Cursor or Claude, NPM and Script Tag:

LogRocket install step with the npm snippet

The npm route is npm i --save logrocket and a single LogRocket.init call, and the page waits with "Waiting for data" until your first session arrives. In a real app you'll add a release name and a user:

web/src/monitoring/logrocket.js
import LogRocket from 'logrocket';

LogRocket.init('<your_app_id>', {
});
LogRocket.identify('<user_id>', { email: '<user_email>' });

That's the whole browser install. There's nothing to install on the server, because LogRocket doesn't monitor one.

Releases on a brand-new project

My first logrocket-cli release call failed with a 500 that mentioned "Sentry project not found for appID". After the project received its first sessions, the same command returned "Success!". If you script releases into CI, run your first deploy after some real traffic has arrived.

Raygun: One application per part of your app

Raygun treats your frontend, backend and mobile app as separate applications. Onboarding sets up one application and one product at a time, and its third step won't let you leave until data arrives. Here's the form for the browser application, with its notification defaults already on:

Raygun Create application form with notification defaults

Every application carries a separate key and a separate list of errors, so my test needed two: one for the Node.js API with Crash Reporting, and one for the storefront with Crash Reporting and RUM.

The npm package and lazy-loaded code

raygun4js reads its configuration at the page's "load" event. I imported it inside a module that loaded later, and it never started or sent anything. The fix was to queue calls first, the way Raygun's CDN snippet does, and import the library after load. The docs show the plain npm import without a warning about this.

Worth turning on: in LogRocket, add release to LogRocket.init from day one, since first and last seen per release is the only version data an Issue carries. In Raygun, set setVersion on every application, because resolving in a version and the deployment pages depend on it.

Setup comparison

Capability LogRocket Raygun
Browser install ✔: npm or script tag, two lines ✔: npm or CDN snippet
Server install ✘: no Node.js SDK ✔: raygun package for Crash Reporting
AI-assisted install ✔: prompts for Cursor and Claude ✘: not offered in onboarding
Structure One project per environment One application per part of the app, per product
First-run blockers Release command failed until data arrived npm import silent when loaded after page load

Verdict: LogRocket. One snippet covers everything LogRocket can see, and it worked on the first try. Raygun covers more of your stack, at the cost of more applications, more keys and one silent failure on the way. LogRocket fits a frontend team that wants recordings running today, while Raygun fits a team ready to wire up every service it runs.

Error capture

LogRocket catches what happens in the browser and adds failures the browser can infer for itself. Raygun catches errors wherever you install an SDK, which in my test meant the server and the storefront.

LogRocket: Browser errors, network failures and error text on the page

Errors in LogRocket live under Signals → Errors. The Issues Feed stays empty until you turn an error into an Issue, which surprised me on the first visit. After the first traffic run, the list held eight browser errors:

LogRocket Errors list with automatic network errors

The boxed rows show LogRocket filing failed requests as Network Error rows by itself, next to the app's own ApiError exceptions. It also turned book URLs into /books/*/ automatically, and each row counts the sessions affected.

Two capture features stood out:

  • Error State: after 1.2.0, LogRocket added a row for a "Something went wrong" message that was visible on the page, separate from the exception behind it.
  • Broken assets: the session's network log showed a missing cover image returning 404, which no exception reported.

What it can't see is anything that never reached the browser. The server's out-of-stock errors, the failing report job and API-only orders left no trace in LogRocket.

Raygun: Server and browser, in two lists

The backend application listed five error groups after the first run, from the report job to the coupon crash:

Raygun backend error groups for the API

The boxed area covers the handled and unhandled server errors LogRocket could never see. One was missing: the unhandled promise rejection from a background route, even with reportUncaughtExceptions on.

The storefront application caught the browser side in a separate list of eight groups. Browser errors and the server errors behind them never appear in the same place, and Raygun has no tracing to connect them.

Error capture comparison

Capability LogRocket Raygun
Browser exceptions ✔: automatic ✔: automatic
Failed requests as errors ✔: automatic Network Error rows ✘: only what the app throws
Error text shown on the page ✔: Error State rows ✘: not offered
Server exceptions ✘: no server SDK ✔: handled and unhandled
Unhandled server promise rejection ✘: no server SDK ✘: missed in my test
Browser and server in one view ✘: browser only ✘: separate applications
List counts Sessions Events and users

Verdict: Raygun. Only Raygun reports exceptions from your API and background job. LogRocket's automatic network and on-page errors are useful extras for a browser-only team, and Raygun suits teams that need both tiers covered.

Source maps

Minified stacks are useless, so both tools let you upload source maps. How you get them there, and on which plan, differs a lot.

LogRocket: A CLI upload before the errors arrive

logrocket-cli uploaded 33 files from web/dist/assets in one command, using the new pat:org:app:secret key format. The result on the wishlist crash:

LogRocket source-mapped frame for the wishlist crash

Line 122 of src/pages.js is highlighted with five lines either side, including the comment above the bug. Two catches: maps must be uploaded before the error happens, since they aren't applied afterwards, and the bundle needs a //# sourceMappingURL comment, because hidden source maps aren't supported.

Raygun: Manual labels on the trial

Raygun's upload API needs a Personal Access Token, and creating one reports "Purchase a plan to use this feature." On the trial, you upload in the JS Source Map Center and type the full URL each file was served from:

Raygun Source Map Center with every file unlabelled

Every file starts as "Please enter resource URL here", and since Vite renames files on each build, you repeat this after every rebuild. Labels swapped during upload twice in my test. Once they were right, Re-process this error for Source Maps remapped an error that had already arrived:

Raygun source-mapped browser error after reprocessing

After reprocessing, the top frame points to ../../src/pages.js:122 with surrounding lines. Raygun's ability to reprocess old errors is something LogRocket doesn't offer.

Source map comparison

Capability LogRocket Raygun
Upload by CLI or API ✔: on any plan ✔: paid plans only
Manual upload Not needed ✔: Source Map Center, one URL label per file
Applies to earlier errors ✘: only errors after upload ✔: Re-process per error
Hidden source maps ✘: not supported Not tested

Verdict: LogRocket. Its CLI works on every plan and fits a build script. Raygun's reprocessing is handy, but on a trial or without the paid token, every deploy means retyping URLs. LogRocket fits teams that deploy often, and Raygun fits teams already on a paid plan with the token in CI.

Debugging an error

An error page should answer two questions: what the user did, and what the code did. LogRocket leans hard into the first, and Raygun into the second.

LogRocket: The recording opens at the error

Opening an error starts the session recording a few seconds before it happened, with the other affected sessions on the left and a breakdown by browser, device, URL and user on the right:

LogRocket error opening on its session recording

The highlighted panel shows first and last seen "in release 1.0.0". Below the player sit Network, Performance and Logs panels that behave like the browser's devtools.

The network panel was the most useful part of the whole test. For the failed checkout, it held both bodies:

LogRocket request and response bodies for a failed checkout

The request carried the bad coupon, and the response carried the server's own error text. So you can read a server crash from the browser side, with no server SDK.

What LogRocket shows on screen by default Page text isn't masked by default: one replay showed "Ordering as alice@example.com" with the coupon code. Masking is opt-in through `dom.textSanitizer` and `dom.inputSanitizer` in `LogRocket.init`, or `data-private` on elements. Turn these on before you record real customers.

Raygun: A stack, an environment and breadcrumbs

A Raygun error page has totals, affected users linked to the Customers page, first and last seen, and seven tabs, from Summary and Error details through to Breadcrumbs and Raw data:

Raygun backend error page header and tabs

The boxed counters link users to the Customers view, which joins each person's sessions and errors. Breadcrumbs on the server were scoped to the request, showing the checkout route and the app's own steps.

In the browser, Raygun records breadcrumbs automatically: clicks, hash changes, navigations and requests, plus the app's own entries:

Raygun automatic browser breadcrumbs

The trail reads like a text version of a LogRocket session. The server stack trace was thinner: server.js:150 and "1 framework frame", with no lines of code around it.

Debugging comparison

Capability LogRocket Raygun
Video replay at the error ✔: opens seconds before it ✘: not offered
Request and response bodies ✔: in the network panel ✘: not shown
Browser breadcrumbs ✔: console and custom events ✔: automatic clicks, routes, requests
Server stack trace ✘: no server SDK ✔: without source lines in Node.js
User view ✔: per session ✔: Customers page across sessions

Verdict: LogRocket. A recording with network bodies answered more questions per error than any tab in Raygun. Raygun's error page is the better choice for backend crashes LogRocket can't see. LogRocket fits teams chasing UI and API bugs users report, and Raygun fits teams debugging server exceptions.

Error grouping

How a tool groups errors decides what a deploy looks like in the list. Loose grouping lets a fresh bug slip into an old row, and strict grouping fills the list with copies of one bug.

LogRocket: Grouped by browser stack, so a new bug hid

LogRocket grouped API failures by where the browser threw them. When 1.2.0 started rejecting card payments, those failures joined the older checkout row, under the old coupon title:

LogRocket payment failures merged into the coupon error row

The boxed row still reads "Cannot read properties of undefined (reading 'discount')", while the latest session's exception was a payment gateway rejection. The row went from 2 to 5 sessions, and nothing marked it as new.

Raygun: Grouped with the message, so one bug split

Raygun's grouping includes message text and URLs. In the browser, one failing book request became four groups, one per book ID. Server-side, Raygun divided the 1.2.0 payment failure by the charge amount in its message:

Raygun payment error split into two groups by amount

"44 USD" and "35.5 USD" versions of the same rejection share the same class and stack, yet sit in separate groups. The changed checkout code in 1.2.0 also opened duplicate groups for older errors.

Grouping comparison

Capability LogRocket Raygun
Groups by Browser stack, title from first message Class, stack and message text
Same bug, different values ✔: stays together ✘: split by URL and amount
New bug on a shared code path ✘: hidden under an old title ✔: gets its own groups
URL parameterizing ✔: automatic, as /books/*/ ✘: split per URL in the browser
Custom grouping Options in Issues Settings, not tested Not tested

Verdict: Neither. LogRocket hid the most important new error of the test, and Raygun turned one bug into several rows. LogRocket's grouping suits stable code with steady errors, and Raygun's suits teams willing to tune grouping before the noise builds up.

LogRocket put the payment failures under a coupon title, and Raygun gave each charge amount its own group. When I sent the same 1.2.0 release to Better Stack, all 10 payment exceptions landed in one new group:

Better Stack payment error kept in a single group

The amounts in the message didn't split it, and the lines that threw are shown on the page. After the deploy, you'd see exactly one new row for one new bug.

Keep each new bug in one group

Session replay and real user monitoring

Both tools watch real visits, from opposite ends. LogRocket keeps a full recording of each session. Raygun measures timing across all sessions and keeps each one as a timeline of page views.

LogRocket: Every visit as a recording, with devtools beside it

A LogRocket session holds the replay, every request with its waterfall, the console, and custom events from your code:

LogRocket session with network waterfall and console

The boxed request is the 404 cover image, a problem only the recording surfaced. The Performance panel adds CPU usage, long tasks, memory, network throughput and layout shift on the same timeline as the replay, measured in the visitor's browser.

On the session list, Summarize writes a one-line summary of each visit, linked to the moments it describes:

LogRocket session list with AI summaries

The Highlights column matched the sessions I'd watched, and short sessions got "Summary unavailable". It's a Pro feature. I didn't find a Web Vitals overview per page in LogRocket during the test.

Raygun: Timing across all visits, without video

Raygun RUM charts page load and the Core Web Vitals family, including LCP, CLS and INP, for the whole site:

Raygun RUM performance charts with Web Vitals

Below the charts, Raygun ranks virtual pages and requests by traffic and speed, built from hash route changes:

Raygun most viewed virtual pages with load times

The highlighted row shows /books/* averaging 1.58 s, but Raygun merges every book page into that pattern, so one slow book needs drilling in. Each user's session is a timeline of pages and time on page, with no video:

Raygun RUM session timeline

The "Experience: Excellent" label and counters summarize the visit, but you can't watch what happened on screen.

Worth turning on: in LogRocket, set dom.textSanitizer and dom.inputSanitizer, because page text is recorded unmasked by default. In Raygun, enable RUM on the browser application from the start, since onboarding sets up one product at a time and RUM is easy to leave waiting.

Replay and RUM comparison

Capability LogRocket Raygun
Video session replay ✔: every session ✘: timeline only
Network bodies per session ✔: request and response ✘: not offered
Web Vitals across the site Not found in my test ✔: LCP, FID, CLS, INP and more
Slowest pages and requests ✘: per session only ✔: ranked tables
Per-user history ✔: sessions per user ✔: Customers page
AI session summaries ✔: Pro feature ✘: not offered
Default privacy Text unmasked Not checked

Verdict: Mixed. LogRocket wins on understanding a single visit, and Raygun wins on measuring all of them. LogRocket fits product and support teams reproducing user reports, and Raygun fits teams tracking frontend speed over time.

Releases and regressions

A release tracker should let you mark a bug fixed in a version and warn you if it comes back. To check this, I marked one bug fixed, shipped it again unchanged in 1.1.0, then released 1.2.0.

Diagram of error states in LogRocket and Raygun and what moves an error between them

The red arrow is the reopen rule. Only Raygun has one, and neither tool flags the reopen in its main list.

LogRocket: A Closed Issue never reopens

LogRocket errors carry no status of their own until you open one as an Issue. Close Issue is one click, with no release or version option:

LogRocket Issue closed with no release option

The bug returned on 1.1.0, and the Issue picked up the extra session and updated Last Seen. Its status stayed Closed through 1.1.0 and 1.2.0:

LogRocket Issue still Closed with Last Seen in 1.2.0

The badge still reads Closed while Last Seen shows "release 1.2.0" and five sessions. Issues Settings had no option for reopening closed issues, and LogRocket has no release page.

Raygun: Resolve in the next version, and it reopens

Raygun offers Resolve, Resolve in version… and Resolve in next version…, plus two ignore options. The next-version dialog explains the rule:

Raygun Resolve in next version dialog

It also offers "Discard future occurrences until a newer version is released", ticked by default. When the bug came back in 1.1.0, Raygun reactivated it and wrote "Error reoccurred" in the activity feed:

Raygun version split and Error reoccurred activity

The version split shows 43% of events on 1.1.0. The list row only says Active, though, so the reopen is easier to catch from Raygun's Deployments. Each deployment page has tabs for New errors, Regressions, Still occurring and Commits:

Raygun 1.1.0 deployment with one regression

Regressions lists exactly one error: the bug resolved in 1.0.0 and active again. For 1.2.0, New errors held the payment groups and the duplicates.

Creating deployments

Deployments come from the API or a form. The API needs the same paid token as source maps, and my first manual save returned a Raygun 500 page. It worked on the second try with only Version filled in.

Release comparison

Capability LogRocket Raygun
Version on errors ✔: first and last seen per release ✔: version split per error
Resolve in a version ✘: Close has no version ✔: in version, or next version
Reopens a returning bug ✘: stays Closed ✔: reactivates, logs "Error reoccurred"
Regression flag in the list ✘: none ✘: row shows Active
Release page ✘: none ✔: New errors, Regressions, Still occurring
Release creation logrocket-cli Form, or API with a paid token

Verdict: Raygun. It reactivated the bug when it returned and put it under Regressions for 1.1.0. LogRocket counted the bug's return without changing its status. Raygun fits teams who ship often and audit each release, and LogRocket fits teams who triage from user sessions.

LogRocket left the returning bug Closed, and Raygun reopened it but showed only Active in the list. I shipped the same 1.1.0 release to Better Stack, and the error list itself changed:

Better Stack error list with the returning bug marked Reoccurred

A red "Reoccurred" status replaced the old one on that row only. Better Stack has no deployment pages like Raygun's, but you see the regression without opening a release.

Spot fixes that didn't hold

Performance monitoring

Release 1.2.0 slowed checkout with a slow database query. Finding that takes either server traces or, at least, request timings you can compare between releases.

LogRocket: One slow request, inside one session

One failing checkout recorded during 1.2.0 ran for 2.899 s. The same failure on 1.0.0 had taken 15 ms:

LogRocket waterfall with a 2.9 second checkout request

The boxed bar shows the slowdown. Its Timing tab had no breakdown to offer, reporting "Timing data is unavailable for this request", and LogRocket has no server spans. I didn't find a view of request latency by release. The browser's CPU was busy during the wait, which tells you nothing about the database.

Raygun: Three tools, three partial answers

Raygun has three places to look, and each told me something different:

  • Crash Reporting has no timing at all.
  • RUM's XHR table showed checkout averaging 439 ms over 143 requests, up from 199 ms, blended across all versions.
  • RUM Compare ranked the bad release as faster, because it compares full page loads, which didn't change:

Raygun RUM Compare calling 1.2.0 faster than 1.1.0

Its headline claims the bad release runs 34.8% faster in median load time, because the slow part was an API call the comparison ignores.

APM, and the side effect on error reporting

Raygun APM for Node.js needs a separate agent next to your app, plus the raygun-apm package. On macOS it failed until I set the agent host, which the setup page doesn't mention:

 
RAYGUN_AGENT_HOST=127.0.0.1 node --require raygun-apm/http src/server.js

The overview ranked checkout as the slowest request at 3,545 ms. Inside the traces, though, the profiler saw no app code:

Raygun APM flame chart with idle and garbage collector blocks

The blocks are "(idle)" and "(garbage collector)", with no functions from server.js. The profiler hooks require, and my app uses ES modules. SQLite isn't supported, so query time showed 0 ms. By default Raygun keeps one sampled trace for each URL each minute.

A worse surprise turned up in Crash Reporting. With raygun-apm merely installed, native JavaScript errors started arriving as "Unknown error" with an empty message and stack:

Raygun errors arriving as Unknown error after installing raygun-apm

The boxed group merged two different crashes into 152 empty events. The Crash Reporting SDK loads a bridge from raygun-apm that replaces the global Error, so V8's own errors fail an instanceof Error check. It happened with the profiler off, too.

How to keep Crash Reporting working alongside raygun-apm Either uninstall `raygun-apm`, or switch off its crash reporting bridge before your app starts: ```command RAYGUN_APM_CRASH_REPORTING_INTEGRATION=false node src/server.js ``` Errors your own code defines, such as a class that extends `Error`, kept their messages either way. Only errors thrown by the runtime were emptied.

Performance comparison

Capability LogRocket Raygun
Server traces ✘: needs a connected backend tool ✔: APM with a separate agent
App code in traces ✘: no server data ✘: none with ES modules in my test
Database queries ✘: no server data ✘: SQLite not supported
Request timing in the browser ✔: per session ✔: averages across sessions
Release comparison ✘: not found ✔: RUM Compare, page loads only
Browser performance ✔: CPU, memory, long tasks per session ✔: Web Vitals across the site

Verdict: Neither. Neither tool told me which query slowed checkout, and Raygun's comparison pointed the wrong way. If you add Raygun APM to a Node.js app already using Crash Reporting, test your error reports first. Raygun fits teams on require-based Node.js who want traces and errors from one vendor, and LogRocket fits teams who'll pair it with a backend tool.

LogRocket timed the slow checkout without explaining it, and Raygun's profiler saw only idle time while its RUM called the release faster. Better Stack traced the same 1.2.0 checkout on the server in my test:

Better Stack spans for a failing checkout with the slow book lookup

Of that request's 2.19 s, the book lookup used 1.53 s and the declined charge used 660 ms, each as its own span. You go from "checkout is slow" to the query in one view.

See which query slowed a release

Logs

Logs fill in what an error doesn't say, such as a warning written just before the crash. Neither tool sells log management, but LogRocket keeps more than Raygun.

LogRocket: The browser console, and a door to backend logs

Each session keeps its console output, navigations and custom events in the Logs panel. For the server, a request's Backend Logs tab asks you to connect another tool:

LogRocket backend integrations list

The options include Datadog, Google Cloud, Azure, AWS CloudWatch, Splunk, Dynatrace, Sumo Logic and a custom option, which link backend traces and logs to sessions. I didn't test any of them. LogRocket's pricing says logs are unlimited on every plan, which applies to what it records in the browser.

Raygun: Breadcrumbs only

Raygun has no log product. Breadcrumbs attached to each error are the closest thing, and they exist only when an error happens. A warning logged during a successful request, like the slow-query warning in 1.2.0, never reaches Raygun.

Logs comparison

Capability LogRocket Raygun
Browser console ✔: per session ✔: as breadcrumbs on errors
Server logs ✘: needs an integration ✘: not offered
Search across logs Not tested ✘: not offered
Billing Unlimited, included Not applicable

Verdict: Neither. LogRocket's console capture helps on the frontend, but neither tool showed me a server log line. Plan on a separate log tool with either one.

LogRocket stops at the browser console, and Raygun keeps breadcrumbs only when something throws. In Better Stack, the failing 1.2.0 checkout linked straight to its server logs:

Better Stack Live tail filtered to one failing checkout

The slow-query warning sits beside the failure, filtered to that request's trace. You get the cause from the same place you found the error, and you can search those logs later too.

Read the logs behind each error

Alerts

Alerts decide whether anyone hears about a problem in time. I looked at both tools' rules but didn't connect a delivery channel in either.

LogRocket: Metric alerts and severe new issues

LogRocket has Metric Alerts for thresholds such as page load spikes or conversion drops, and Issues Alerts for new problems. The issue rule is narrow:

LogRocket Issues Alert rule form

The rule only covers a severe issue first seen within a day, and it delivers to Slack or a webhook. Galileo rated both of my Issues Low, so neither would have triggered it. Weekly Error Digests are also available.

Raygun: Notifications set per application

As the setup form earlier showed, every new Raygun application starts with three notifications switched on: one whenever an error is new, a summary each day, and a RUM roundup each week. APM alerts are off by default. I didn't test delivery or rules beyond those defaults.

Neither tool offers uptime checks or a status page.

Alerts comparison

Capability LogRocket Raygun
New error alerts ✔: severe issues only ✔: on by default per application
Metric thresholds ✔: Metric Alerts Not tested
Regression alerts Listed in the description, not tested Not tested
Digests ✔: weekly ✔: daily summary, weekly RUM
Uptime checks or status pages ✘: not offered ✘: not offered

Verdict: Not compared. I didn't send an alert from either tool. On paper, Raygun's defaults cover every new error, while LogRocket's issue rule depends on Galileo calling an issue severe.

AI-assisted debugging

LogRocket builds Galileo into the product. Raygun offers no assistant inside its app, and instead exposes a remote MCP server for outside tools like Claude Code, Cursor or Codex. I tested Galileo and didn't connect Raygun's MCP server, so this section isn't a head-to-head.

LogRocket: Galileo, cautious and correctable

Analyze and open an Issue lets Galileo set the priority and write a summary. For the wishlist crash, it named the null access correctly, yet claimed it couldn't tell which action caused it. The replay showed the wishlist click right before the error:

Galileo Issue for the wishlist crash rated Low

It focused on user impact and rated the crash Low. On the checkout failure, its troubleshooting step asked me to inspect "the corresponding server stack trace", which LogRocket doesn't collect.

Ask Galileo did better on an open question about release 1.2.0. Its first answer searched for the release string as I'd typed it, found no sessions, said so, and wrongly picked an old error as the new one. Once I gave it the exact release names, it built a comparison and corrected itself:

Galileo comparing sessions in 1.1.0 and 1.2.0

The table separates the old discount error from the new payment timeout and counts sessions per release. Its root cause was a payment dependency timing out upstream. It also said it couldn't confirm the cause in code, a fair limit for a tool with no server data.

Raygun: An MCP server for your own assistant

Raygun's MCP server, at https://api.raygun.com/v3/mcp with OAuth sign-in, lets an outside assistant read errors, deployments, sessions and APM data. I skipped it in this test, so I can't say how well an assistant does with it.

AI comparison

Capability LogRocket Raygun
Assistant inside the product ✔: Galileo ✘: not offered
Issue summaries and priority ✔: tested ✘: not offered
Open questions about releases ✔: Ask Galileo, tested Not tested
Session summaries ✔: Summarize, tested ✘: not offered
Access for outside assistants ✔: MCP and API on Pro, not tested ✔: MCP server, not tested
Plan needed Pro Not tested

Verdict: Not compared. Galileo was careful and fixed its own mistake, but it couldn't see the server. Raygun's AI depends on the assistant you bring, which I didn't test. LogRocket fits teams wanting AI inside the replay tool, and Raygun fits teams already working in Claude Code or Cursor.

Galileo had only the browser to go on, and Raygun leaves the reasoning to an outside assistant. I asked Better Stack's AI SRE the same release question, with no code connected:

Better Stack AI SRE comparing release 1.2.0 with 1.1.0

It singled out checkout's slow query and showed that 10 of 48 card charges failed, every one on 1.2.0. The answer took roughly four minutes and $0.49, longer than Galileo, and it rested on server traces and logs.

Ask what changed in your last release

Pricing

LogRocket charges per recorded session and leaves errors, logs and analytics unmetered. Raygun prices its three products separately, by errors, sessions and traces.

I read both pricing pages on November 10, 2026. Prices change, so check them before you commit.

Free plans and trials

Item LogRocket Raygun
Free plan ✔: 1,000 sessions a month ✘: none
Trial 14 days, all features, no card 14 days on every plan
AI on the free plan ✘: Galileo needs Pro ✘: no assistant in the product
API access on trial ✔: CLI worked ✘: Personal Access Token blocked

Entry-level paid plans

Prices are per month on annual billing.

Item LogRocket Core LogRocket Pro Raygun Crash Reporting Basic Raygun RUM Basic
Price $83 $292 $40 $80
Monthly billing Not listed Not listed $60 $120
Volume 10,000 sessions 10,000 sessions 100,000 errors 100,000 sessions
Errors Unlimited Unlimited Billed per error Not applicable
AI ✘: not included ✔: Galileo ✘: not offered ✘: not offered
Retention Not listed Not listed 180 days Not listed

What costs extra

Need LogRocket Raygun
More sessions or errors A bigger tier, Pro required above 100,000 sessions $0.001 per extra error, $0.002 per extra session
Server errors ✘: needs another tool Included in Crash Reporting
Server performance ✘: needs a backend integration APM Basic, $80 a month for 100,000 traces
Session replay Included ✘: not offered
AI Pro plan Your own assistant through MCP

At 25,000 sessions, LogRocket Core was $176 a month and Pro $407:

LogRocket pricing calculator at 25,000 sessions

The calculator only shows annual prices, and the page notes that seats, retention and add-ons change the final figure.

Comparing the actual cost

For error tracking alone, Raygun is the cheaper start: $40 a month covers 100,000 errors across your server and browser, kept for 180 days. LogRocket's errors are free inside its plans, but the plan itself starts at $83 for 10,000 sessions, and it can't see your server.

Once you want both halves, the bills stack differently. Raygun Crash Reporting plus RUM costs $120 a month and still has no replay. LogRocket Core gives you replay and browser errors, and you'd still need a server error tracker on top. For the same bills set against a lighter browser tracker, see our TrackJS vs Raygun comparison and our LogRocket vs TrackJS comparison.

Verdict: Mixed. Raygun costs less per error and covers the server. LogRocket has the only free plan of the two, and what you pay for is recordings Raygun doesn't make.

Full feature comparison

Feature LogRocket Raygun
Browser errors ✔: automatic, plus network and on-page errors ✔: automatic
Server errors ✘: no Node.js SDK ✔: Crash Reporting
Source maps ✔: CLI on any plan ✔: manual on trial, API on paid plans
Reprocess old errors ✘: not offered ✔: per error
Video session replay ✔: every session ✘: timeline only
Request and response bodies ✔: in the session ✘: not shown
Web Vitals across the site Not found ✔: RUM charts
Breadcrumbs ✔: console and custom events ✔: automatic in the browser, request-scoped on the server
Grouping of a new bug ✘: merged into an old title ✔: own groups, split by message
Grouping of one bug with varying values ✔: kept together ✘: split by URL and amount
Resolve in a version ✘: not offered ✔: in version, or next version
Reopens returning bugs ✘: stays Closed ✔: reactivates
Release pages ✘: not offered ✔: Deployments with Regressions
Server traces ✘: needs integration ✔: APM, no app frames with ES modules in my test
Logs ✔: browser console ✘: not offered
Alerts ✔: metric and severe-issue alerts ✔: new errors and digests
Uptime and status pages ✘: not offered ✘: not offered
AI in the product ✔: Galileo on Pro ✘: MCP server for outside assistants
Free plan ✔: 1,000 sessions ✘: none
Entry price $83 a month, annual $40 a month, annual

Which should you choose?

Pick by the question you most often ask when something breaks: "what did the user see?" or "what did the code do, and in which release?"

Choose LogRocket if you need to see what users saw

  • You debug from user reports. The recording, network bodies and console beside each error answer most frontend questions in one place.
  • Your bugs live in the browser. Automatic network errors, on-page error text and per-session performance catch things exception trackers miss.
  • You want AI inside the tool. Galileo summarizes sessions and issues, and it corrected itself once it had the right release names.

The trade-offs: no server monitoring at all, no regression handling, grouping that can hide a new bug, and unmasked page text until you configure it. Our Sentry vs LogRocket comparison pairs it with a tool that covers the server.

Choose Raygun if you need errors across your stack, tied to releases

  • You run a backend and a frontend. Crash Reporting covers both, and the Customers page ties a user's errors and sessions together.
  • You ship often. Resolve in next version, automatic reactivation and the Regressions tab make each deploy auditable.
  • You track frontend speed over time. RUM ranks pages and requests and charts Web Vitals across every visit.

The trade-offs: separate applications with no link between them, grouping that splits by message, manual source maps until you pay, and an APM package that broke error capture in my Node.js app. Our Raygun vs Honeybadger comparison covers another option for backend-heavy teams.

FAQ

Can LogRocket monitor a Node.js server?

LogRocket has no Node.js SDK, so it can't. It can show a failed request's response body from the browser, and its backend integrations can link sessions to logs and traces in tools like Datadog or Splunk.

Does Raygun record session replays?

Raygun RUM keeps each session as a timeline of page views, load times and errors, without a video of the screen.

Which tool tells me when a fixed bug comes back?

Raygun does. Resolving in the next version makes it reactivate the error when a newer version reports it, and the deployment's Regressions tab lists it. LogRocket kept my Issue Closed while counting the new sessions.

Is Raygun APM safe to add to an app using Raygun Crash Reporting?

Only after you test it. Installing raygun-apm in my Node.js app wiped the message and stack from every runtime error, with or without the profiler running. Disabling its crash reporting bridge, or uninstalling it, brought them back.

Final thoughts

LogRocket and Raygun cover opposite halves of the same incident, and neither one closes the gap to the other. LogRocket hands you the user's screen, clicks and network traffic, then goes quiet at the API boundary. Raygun follows the error through your server and your releases, but has nothing to show for what the user actually did.

So the real decision is which half you'll buy a second tool for. A frontend team that lives in user reports should start with LogRocket and add server error tracking. A team shipping APIs every week should start with Raygun and live with session timelines where LogRocket would give them video.

Whichever you choose, check how it groups your errors before you trust its list, because in my test, both tools showed the wrong number of bugs after a bad deploy.