DEV Community

Alex Spinov
Alex Spinov

Posted on

Sentry Has a Free Tier — Track Errors, Performance, and Crashes Across Your Entire Stack

Your app is crashing in production. A user reports "it does not work." Your logs say nothing useful. You spend 3 hours guessing.

Sentry gives you real-time error tracking with stack traces, breadcrumbs, and user context — for free. 5,000 errors/month, unlimited projects.

What You Get for Free

  • 5,000 errors/month — events with full stack traces
  • 10,000 performance transactions/month — track slow endpoints
  • 1 GB attachments — screenshots, minidumps
  • Unlimited projects — monitor everything
  • Release tracking — correlate errors with deployments
  • Source maps — readable stack traces in production
  • 100+ integrations — Slack, GitHub, Jira, PagerDuty

Quick Start (3 Minutes)

1. Sign Up and Get DSN

Sign up at sentry.io, create a project, grab your DSN (Data Source Name).

2. Node.js / Express

npm install @sentry/node
Enter fullscreen mode Exit fullscreen mode
import * as Sentry from "@sentry/node";

Sentry.init({
  dsn: "https://YOUR_KEY@sentry.io/YOUR_PROJECT",
  tracesSampleRate: 1.0,
});

// Express error handler
app.use(Sentry.Handlers.errorHandler());

// Every unhandled error is now captured with:
// - Full stack trace
// - Request data (URL, headers, body)
// - User info
// - Breadcrumbs (what happened before the error)
Enter fullscreen mode Exit fullscreen mode

3. React / Next.js

npx @sentry/wizard@latest -i nextjs
Enter fullscreen mode Exit fullscreen mode

This auto-configures everything. Sentry captures:

  • Client-side errors with component stack
  • Server-side errors with API route context
  • Performance data for every page load

4. Python / Django

pip install sentry-sdk
Enter fullscreen mode Exit fullscreen mode
import sentry_sdk

sentry_sdk.init(
    dsn="https://YOUR_KEY@sentry.io/YOUR_PROJECT",
    traces_sample_rate=1.0,
)

# Django — add to settings.py, errors are auto-captured
# Flask — wrap your app, errors are auto-captured
# Any Python — unhandled exceptions are auto-captured
Enter fullscreen mode Exit fullscreen mode

5. Manual Error Capture

try {
  await riskyOperation();
} catch (error) {
  Sentry.captureException(error, {
    tags: { module: "payments" },
    extra: { orderId: "12345" },
  });
}
Enter fullscreen mode Exit fullscreen mode

What You See in the Dashboard

Every error shows:

  • Stack trace — exact file and line number
  • Breadcrumbs — HTTP requests, console logs, UI clicks that happened before the crash
  • User context — who was affected
  • Device/browser info — OS, browser version, screen size
  • Release — which deployment introduced the bug
  • Frequency — how often it happens, is it getting worse?

Real-World Use Case

A developer shipping a SaaS told me: "We had a bug that only happened on Safari iOS 16.4 with a specific screen width. Without Sentry, we would have never found it. The error came in with the exact device info, user session replay, and a breadcrumb trail showing the user resized their window right before the crash."

Free Plan Limits

Feature Free Tier (Developer)
Errors 5,000/month
Performance 10,000 transactions
Attachments 1 GB
Team members 1
Projects Unlimited
Retention 30 days
Alerts Yes
Source maps Yes

The Bottom Line

5,000 errors/month is generous for any app that is not actively on fire. If you are shipping without error tracking, you are flying blind.

Sentry is the difference between "the app crashed" and "line 42 of payments.js threw a TypeError because user.address was null on Safari iOS."


Need to monitor scraping jobs? Check out my web scraping tools on Apify — built-in error handling and notifications.

Building something custom? Email me at spinov001@gmail.com


More Free APIs You Should Know About

Top comments (0)