Picking free error monitoring in 2026 is harder than the quota numbers suggest
I spent a few evenings comparing seven tools with real free tiers: Sentry, GlitchTip, Rollbar, Better Stack, Highlight, LogRocket, and OpenTelemetry plus Grafana Cloud. The Reddit-style “just use X, it gives you more for free” answers mostly ignore that these products do not meter the same unit.
Better Stack is the one that makes you do a double take: 100,000 exceptions per month, 5,000 session replays, 3 GB logs, 3 GB traces, 30 GB metrics, 10 uptime monitors, and one status page. Impressive until you remember that bundle covers errors, logs, traces, uptime, and status pages. A dedicated error tracker it is not.
My default for a typical indie web app is still Sentry. The free quota is not the headline. The product is. JavaScript support is mature, source map uploads work through Wizard, bundler plugins, or CLI, and the SDK list covers most stacks you will actually ship. The free Developer plan includes 5,000 errors, 5 million spans, 50 replays, 5 GB logs, and 5 GB application metrics per pricing.
Where Sentry loses me on the free tier is alerting. One user. Email only. Slack, PagerDuty, Opsgenie, and webhooks are paid features. For a solo side project I can live with that. For a two-person team where someone needs a Slack ping at 2 a.m., I would look at Rollbar first. Uptime plus a status page in the same account points you at Better Stack. Keeping error data on your own hardware points you at GlitchTip.
You cannot compare these on error count alone
Vendors bill errors, sessions, or gigabytes. Pick the wrong mental model and you will mis-budget.
Sentry, GlitchTip, Rollbar, and Better Stack primarily bill in errors, exceptions, or occurrences. LogRocket and Highlight bill in sessions. Grafana Cloud’s core free plan is mostly gigabytes and active metric series, not issue counts.
| Mental model | Tools | What burns quota |
|---|---|---|
| Exception / occurrence | Sentry, GlitchTip, Rollbar, Better Stack | Repeated errors, exception storms |
| Session-based | LogRocket, Highlight | Normal traffic, not just failures |
| Telemetry volume | Grafana Cloud (OTel) | Verbose logs, traces, high-cardinality metrics |
Debugging a thrown exception? Watch the error quota. Debugging “what did they click right before it broke?” Watch sessions. Building a full observability stack? Watch GB and metric cardinality. Better Stack and Grafana Cloud look bigger on paper partly because they are doing more than classic issue triage.
You will not get a perfect apples-to-apples table. Use the numbers below as directional, then sanity-check them against how your app actually fails.
Free tiers at a glance
| Option | Free tier and retention | Source maps | Alerts and status pages | SDK scope | Usage controls | Privacy / hosting | Main caveats |
|---|---|---|---|---|---|---|---|
| Sentry | 1 user; 5k errors, 5M spans, 50 replays, 5 GB logs, 5 GB app metrics. Free-plan retention not clearly published on pricing page. | Strong JS support via Wizard, bundler plugins, CLI; webpack, Vite, Rollup, esbuild, TypeScript. No separate source-map quota documented. | Free: email only. Slack, Teams, PagerDuty, webhooks on paid tiers. No native status page. | Very broad: browser JS, major backends, mobile. | Paid plans have PAYG budgets; free tier is effectively cap-based. | Cloud-first; scrubbing docs; optional local Relay. | Best pure error product here; free alerting is weak for teams. |
| GlitchTip | Hosted free: 1,000 events/month. Self-host: capacity is yours; default 90-day retention, 365-day release retention. | GlitchTip CLI; Sentry-compatible artifact bundles per docs. | Email and webhook (webhook can feed Slack). No native status page. | Sentry SDK-compatible. | Hosted: throttles 10% after quota, blocks at 2x quota. Self-host: sample traces at 1-10%. | Strongest data control when self-hosted. Needs Postgres 14+, web/worker, optional Valkey/Redis. | Real ops even when “simple.” ~30 GB disk at 1M events/month. |
| Highlight | 500 monthly sessions, AI error grouping, up to 15 seats. Separate free error/log/trace quotas and retention not clearly on pricing page. | @highlight-run/sourcemap-uploader; public maps also work per browser docs. | Slack, webhooks, email in reviewed docs. No PagerDuty found. | Browser frameworks plus Node, Go, Python, Ruby, Java, Rust, Cloudflare, Hono. | Free overage behavior not clearly documented. SDKs are OTel-based. | Masking, allowlists/blocklists, SOC 2 Type 2, GDPR. Self-host docs exist. | Docs say site is no longer being updated; check LaunchDarkly observability packaging. |
| Rollbar | 5,000 occurrences, 1,000 session replays, 30-day retention. | Hosted or uploaded maps per source map docs. | Email, Slack, webhooks, PagerDuty, VictorOps, OpsGenie per notifications. No status page. | JS, React, Node, Next.js, Vue, Angular, Ruby, Go, Java, PHP, Python, iOS, .NET. | Stop at limit, on-demand, or overage budgets. HTTP 429 rate limits. Email capped at 100/day per recipient. | SOC 2, ISO 27001, HIPAA SaaS option; SDK scrubbing. | Best free team alerting; less UX context than replay tools. |
| Better Stack | 100k exceptions/mo, 5k replays, 3 GB logs, 3 GB traces, 30 GB metrics, 10 monitors, 1 status page. 90-day retention for errors/replays; 3 days for logs/traces/web events. | Sentry-style uploads; does not support publicly hosted source maps per error tracking docs. | Slack and email on free tier. Phone/SMS/on-call tied to responder licensing. Native status page. | Sentry-SDK compatible for errors; OTel ingestion for telemetry. | Per-signal usage pricing beyond included volume. Free overage behavior not fully spelled out. | VRL redaction, SOC 2 Type 2, GDPR, EU defaults. | Best all-in-one free option; less specialized for classic issue triage. |
| LogRocket | 1,000 sessions/month, 1 month retention. Issues kept 1 month from last instance. | Public hosting or LogRocket upload. Hidden maps not supported; upload before error, tied to releases. Mobile debug files supported. | Slack, webhooks, email, PagerDuty, Teams for alerts and digests. No status page. | Web, Android, iOS, React Native, Flutter. | Session-based. May stop recording on heavy DOM churn. | data-private, DOM masking; sanitized data never sent. | Replay-first; weaker for backend-only error monitoring. |
| OTel + Grafana Cloud | 10k active metric series, 50 GB logs, 50 GB traces, 3 visualization users, 14-day retention. Frontend Observability: 50k sessions/month. | Grafana Faro private uploads via bundler, CLI, cURL. Plain OTel does not deobfuscate browser stacks out of the box. | Email, Slack, PagerDuty, webhooks, Teams. IRM adds SMS and push. No status page on free tier in reviewed sources. | Broadest ecosystem; Grafana guided setup for many runtimes. | Hard-limited free tier; concrete ingestion caps (e.g. 5 MB/s logs per user, 3 MB max trace). | You control instrumentation and export paths. | Most flexible; least turnkey. You assemble the product. |
Two things to keep in mind. Highlight’s free-tier error and retention numbers were not fully spelled out on the pricing page I read, so I would treat it as a session product until LaunchDarkly-era packaging is clear. And several vendors explain source-map uploads in detail without publishing a separate storage quota. In practice your CI either uploads maps on release or it does not. That matters more than any plan footnote.
What the free tiers actually cost you later
Sentry: strong product, weak free alerting
Sentry’s free Developer plan works fine for one person on a small app. Source maps, release tracking, issue grouping: all familiar if you have touched Sentry before.
Teams are where it gets awkward. One seat, email-only alerts. You live in the inbox or you upgrade. Fine for a weekend project. Less fine when your cofounder wants Slack at 2 a.m.
Rollbar: the free alerting pick
Rollbar’s free plan matches Sentry on errors (5,000 occurrences) but ships Slack, webhooks, PagerDuty, VictorOps, and OpsGenie on the free tier per notification docs. That alone can justify the switch before you have budget.
Rollbar’s billing docs are also unusually clear: stop at the plan limit, turn on on-demand billing, or cap with overage budgets. Email notifications default to 100 per day per recipient. Noisy error loops will hit that ceiling.
Better Stack: one pane for errors, uptime, and status
I like Better Stack when I do not want three vendors for errors, uptime, and a status page. The free tier’s 100,000 exceptions per month is the largest error quota here, plus 10 monitors and one status page.
It is less specialized than Sentry for classic issue triage, even though error ingestion is Sentry-SDK compatible. Logs and traces on free only stick around for three days. Good for “what broke this week.” Useless for month-over-month comparisons.
Source maps have to be uploaded. Public hosting is not supported per their error tracking documentation. Bake that into CI or you will wonder why stacks are minified.
GlitchTip: self-host for control, hosted free for testing
GlitchTip speaks Sentry’s API. If your app already has Sentry SDKs wired up, this is the lowest-friction self-hosted path in the list. The hosted free tier is 1,000 events per month. Enough to kick the tires. Not enough for production.
Self-hosting is the real pitch. You own retention (default 90 days for events, 365 for releases), storage, and residency. The install guide still wants PostgreSQL 14+, web plus worker, optional Valkey/Redis 7+, TLS, SMTP, backups, and disk planning. GlitchTip suggests 512 MB RAM for an all-in-one Docker box and warns you may need ~30 GB disk around 1 million events per month.
“Free” self-hosting assumes you already run databases and workers comfortably. If reading that list made you tired, pay for Sentry.
LogRocket and Highlight: replay-first, session-metered
LogRocket gives 1,000 sessions per month free, one month retention. Sessions burn on normal traffic, not just crashes. I reach for it when the question is user behavior, not a backend stack trace.
Source maps: public hosting or upload, no hidden maps, upload before the error, tied to releases. Heavy DOM churn can make LogRocket stop recording entirely.
Highlight is 500 monthly sessions, AI error grouping, up to 15 seats on free. I like the full-stack mapping idea. The packaging story is messy post-acquisition: Highlight’s docs say the site is no longer being updated and send you to LaunchDarkly observability docs. I would re-check quotas and retention there before betting a production app on it.
Highlight has a session-caching toggle for memory-heavy pages. On a chatty SPA or a dashboard that re-renders constantly, SDK overhead can matter more than the session count on the pricing page.
OpenTelemetry plus Grafana Cloud: portable, DIY
Grafana Cloud’s free tier gives you 50 GB logs, 50 GB traces, and 10k active metric series. Frontend Observability via Faro adds 50,000 sessions per month with private source-map uploads.
This is the stack I pick when portability matters more than convenience. OTel standardizes signals. Grafana stores them and handles dashboards and alerts. You still wire up instrumentation, OTLP export, collectors (Grafana pushes Alloy for production), sampling, contact points, and whatever frontend layer you need.
“OTel” is not “Sentry, but free.” Issue grouping, browser deobfuscation, and replay-style UX need extra pieces or different Grafana products. Great architecture. More assembly required.
Source maps, alerts, and replay overhead
Every vendor here wants source maps handled correctly. Sentry and GlitchTip want build-time uploads with release or debug-ID linkage. Better Stack requires uploads and rejects public hosting. LogRocket allows public maps or uploads but not hidden ones, and the upload has to land before the error. Grafana Faro does private uploads for frontend deobfuscation.
I have watched teams blame Sentry for unreadable stacks when the deploy pipeline simply never uploaded maps. The vendor was fine. CI was not.
Alert routing on free tiers is all over the map. Sentry: email, solo-friendly. Rollbar: Slack and PagerDuty on free, which is why I mentioned it above. Better Stack: Slack and email on free, with room to grow into on-call later. LogRocket has more alert surfaces than I expected for a replay tool, but they orbit UX debugging, not a classic service-error pipeline.
Replay SDKs do more client work than error-only libraries. On a dashboard that never stops re-rendering, that overhead can bite harder than the free session allowance suggests.
Setup notes (when you go past the signup button)
GlitchTip self-host
Start with Docker Compose on one VM. Kubernetes when you actually need HA, not before. From the install guide, the minimum production checklist is SECRET_KEY, SMTP or an API mail provider, GLITCHTIP_DOMAIN, DATABASE_URL pointed at Postgres 14+, a TLS proxy in front, and retention tuned through GLITCHTIP_*_RETENTION_DAYS.
GlitchTip’s hot/cold model can push older data to local files or S3 via DuckDB-backed cold storage if you want cheap long retention. Non-Docker installs mean manual upgrades and knowing your way around Django, workers, and SSL. Again: if that list exhausts you, use hosted Sentry.
OpenTelemetry plus Grafana Cloud
Grafana Cloud’s connection tiles plus OTLP straight to the Grafana Cloud endpoint is the fast path. Docs say you can skip a collector for a quickstart. Production? Stand up Alloy or another OpenTelemetry Collector so export, enrichment, and routing live in one place.
Browser apps split two ways for me. General tracing: @opentelemetry/sdk-trace-web with document-load instrumentation. Fuller frontend stuff (RUM, JS exceptions, private source maps): Grafana Faro. I usually see backends on OTel and the browser on Faro.
What I would pick
flowchart TD
start[Need self-hosted data control?] -->|Yes| glitchTip[GlitchTip]
start -->|No| allInOne[Need uptime plus status page in one tool?]
allInOne -->|Yes| betterStack[Better Stack]
allInOne -->|No| pureErrors[Need strongest pure error tracking?]
pureErrors -->|Yes| sentry[Sentry]
pureErrors -->|No| alerts[Need Slack or PagerDuty on free?]
alerts -->|Yes| rollbar[Rollbar]
alerts -->|No| replay[Need replay-first debugging?]
replay -->|Yes| logRocket[LogRocket or Highlight]
replay -->|No| otel[Need vendor-neutral telemetry?]
otel -->|Yes| grafana[OpenTelemetry plus Grafana Cloud]
otel -->|No| sentryDefault[Sentry] For a hobby project or solo dev, I default to Sentry when the bug is in the code. GlitchTip if I want OSS and self-hosting. Better Stack if I also need uptime and a status page without gluing vendors together. LogRocket when the bug sounds like “what were they doing right before it broke.”
Startups split on habit. Stack traces and release regressions: Sentry or Rollbar. I would pick Sentry for product depth and Rollbar when Slack or PagerDuty has to work on day one without a credit card. One operational pane for errors, logs, traces, uptime, and status: Better Stack. Support or design needs replay alongside engineering: LogRocket. Highlight only if you like the mapping model and accept the docs mess during the LaunchDarkly transition.
Enterprise teams should treat free tiers as eval sandboxes, not destinations. OTel plus Grafana Cloud for portable telemetry long term. GlitchTip self-hosted when policy says error data stays in-house. If procurement wants a mature managed vendor now, skip the free tier theater and buy Sentry, Rollbar, Better Stack, or Grafana paid so SSO, retention, and on-call are not retrofits.
For a bootstrapped web app I would ship Sentry, wire source map uploads into CI on day one, and treat Rollbar or Better Stack as the first upgrade trigger: Rollbar when Slack alerts beat email, Better Stack when uptime and a public status page belong in the same account.
Gaps in the public docs
Highlight’s free retention and separate error/log/trace entitlements were not clear on the pricing page I read. Highlight’s docs also say the site is no longer being updated, which makes the gaps harder to close.
Better Stack did not spell out free-tier overage behavior as plainly as Rollbar or Grafana. Sentry lists free volumes but not free retention on the pricing page I checked.
Several vendors document source-map uploads without a storage quota line item. A test deploy beats reading the fine print alone.
Sources
Sentry
Sentry pricing
JavaScript source maps
Sentry integrations
GlitchTip
GlitchTip
GlitchTip documentation
Install guide
Rollbar
Rollbar pricing
Notifications
Source maps
Rate limits and overage
Better Stack
Better Stack pricing
Error tracking docs
Source maps
Status pages
Highlight
Highlight pricing
Highlight docs
Source map uploader
LogRocket
LogRocket pricing
Source maps
Issue alerts
Privacy and sanitization
Grafana Cloud
Grafana Cloud pricing
Frontend Observability
Grafana Faro source maps
Grafana Alloy
Grafana Cloud OTLP endpoint
OpenTelemetry
Browser instrumentation getting started
OpenTelemetry Collector