Sentry
The leading error tracking and performance monitoring platform. Sentry captures exceptions, stack traces, and performance issues in real time across web, mobile, and backend. Essential for any production application.
Why Sentry?
You need real-time error tracking with full stack traces
You want performance monitoring and distributed tracing
You need to group, triage, and assign bugs across a team
Signal Breakdown
What drives the Trust Score
Download Trend
Last 12 months
Tradeoffs & Caveats
Know before you commitYou only need uptime monitoring (BetterStack is simpler)
You're building an internal tool where error alerting isn't critical
Budget is tight — Sentry's free tier is limited
Pricing
Free tier & paid plans
5K errors/mo · 10K perf events
$26/mo Team (100K errors)
14-day trial on Business
Cost Calculator
Estimate your Sentry cost
Estimated monthly cost
$26/mo
Team plan: $26/mo for up to 100K errors.
Estimates only. Verify with official pricing pages before budgeting.
Often Used Together
Complementary tools that pair well with Sentry
Learning Resources
Docs, videos, tutorials, and courses
Get Started
Repository and installation options
View on GitHub
github.com/getsentry/sentry-javascript
npm install @sentry/nextjspip install sentry-sdkQuick Start
Copy and adapt to get going fast
// sentry.client.config.ts
import * as Sentry from "@sentry/nextjs";
Sentry.init({
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
tracesSampleRate: 1.0,
environment: process.env.NODE_ENV,
});Code Examples
Common usage patterns
Capture a handled exception
Manually report an error with extra context
import * as Sentry from "@sentry/nextjs";
try {
await riskyOperation();
} catch (err) {
Sentry.captureException(err, {
extra: { userId, action: 'riskyOperation' },
tags: { feature: 'payments' },
});
throw err;
}Custom performance span
Trace a specific operation for performance monitoring
import * as Sentry from "@sentry/nextjs";
const result = await Sentry.startSpan(
{ name: 'db.query.fetchTools', op: 'db.query' },
async () => {
return await db.query('SELECT * FROM tools');
}
);Set user context
Associate errors with the authenticated user
import * as Sentry from "@sentry/nextjs";
// After the user logs in
Sentry.setUser({
id: user.id,
email: user.email,
username: user.name,
});
// Clear on logout
Sentry.setUser(null);Community Notes
Real experiences from developers who've used this tool