Add Error Tracking (Sentry)
Use this skill when the user asks to add error tracking, crash reporting, exception monitoring, or performance tracing.
Steps
- Detect the framework — check
package.json, config files, and directory structure to determine the stack (Next.js, React, Node.js, Python/Django/Flask, etc.). - Install the SDK
- Next.js: npx @sentry/wizard@latest -i nextjs - React (Vite): npm install @sentry/react - Node.js: npm install @sentry/node - Python: pip install sentry-sdk
- Initialize Sentry
- For Next.js, the wizard creates sentry.client.config.ts, sentry.server.config.ts, and sentry.edge.config.ts. Verify they exist and contain the DSN. - For React (Vite), init in main.tsx: import * as Sentry from "@sentry/react"; Sentry.init({dsn: import.meta.env.VITE_SENTRY_DSN, integrations: [Sentry.browserTracingIntegration()], tracesSampleRate: 1.0,}); - For Node.js, init at the very top of the entry file before any other imports.
- Add environment variables
NEXT_PUBLIC_SENTRY_DSN=https://...@sentry.io/... SENTRY_AUTH_TOKEN=sntrys_... SENTRY_ORG=your-org SENTRY_PROJECT=your-project - Add error boundary — wrap the app (or critical subtrees) with
Sentry.ErrorBoundaryand a fallback UI. - Source maps — for production builds, configure the Sentry webpack/vite plugin to upload source maps. For Next.js, this is handled by
withSentryConfiginnext.config.js. - Test the integration — add a temporary button that throws an error to verify events appear in the Sentry dashboard.
Notes
- Set
tracesSampleRateto a lower value (e.g.0.1) in production to control costs. - Add
sentry.propertiesand.sentryclircto.gitignore. - Never commit
SENTRY_AUTH_TOKEN.