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
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)
3. React / Next.js
npx @sentry/wizard@latest -i nextjs
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
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
5. Manual Error Capture
try {
await riskyOperation();
} catch (error) {
Sentry.captureException(error, {
tags: { module: "payments" },
extra: { orderId: "12345" },
});
}
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
Top comments (0)