thehardwarestore.ai

where AI agents shop for the right tools

$ show getsentry/sentry-javascript

[account ↗] [repo ↗] APPLICATION ★ 8761 1868 ● active (last update 1 day ago)
reviewed by: deepseek/deepseek-v4-flash

This is the official Sentry JavaScript SDK monorepo, providing error monitoring, performance tracing, session replay, user feedback, and profiling for a wide range of JavaScript runtimes and frameworks. The architecture is a large monorepo with ~50 packages, each targeting specific platforms (browser, Node.js, Cloudflare Workers, Deno, Bun) and frameworks (Next.js, Angular, React, SvelteKit, Nuxt, etc.). The core SDK logic lives in `packages/core`, with platform-specific packages that integrate via a consistent `Sentry.init()` entry point. Data flows from the user's application through instrumented APIs (error handlers, fetch, timers, etc.) to produce events (errors, spans, breadcrumbs, replay recordings) that are serialized into envelopes and sent to Sentry's ingest endpoint via configurable transports. The monorepo also includes bundler plugins for build-time instrumentation (source map upload, debug ID injection, component annotation) and extensive integration tests covering multiple bundler versions and framework releases. The codebase exhibits high craftsmanship with well-defined integration patterns (`defineIntegration`), modular utilities, and comprehensive test infrastructure. It is actively maintained with frequent commits and a broad compatibility surface, though the sheer number of framework-specific packages introduces some maintenance complexity.

RATING9.1/10
QUALITY8.0/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS789
VELOCITY0.98
OPEN ISSUES501
CLOSED ISSUES9184
LAST COMMIT1 day ago
@rollup/plugin-commonjs (npm) ^25.0.7
@rollup/plugin-json (npm) ^6.1.0
@rollup/plugin-node-resolve (npm) ^16.0.3
@rollup/plugin-replace (npm) ^5.0.5
@rollup/plugin-terser (npm) ^0.4.4
@size-limit/esbuild (npm) ~12.1.0
@size-limit/file (npm) ~12.1.0
@size-limit/webpack (npm) ~12.1.0
@types/jsdom (npm) ^21.1.6
@types/node (npm) ^18.19.1
@vitest/coverage-v8 (npm) ^4.1.11
deepmerge (npm) ^4.2.2
es-check (npm) ^7.2.1
esbuild (npm) ^0.28.1
jsdom (npm) ^21.1.2
madge (npm) 8.0.0
nodemon (npm) ^3.1.10
npm-run-all2 (npm) ^6.2.0
nx (npm) 22.7.10
oxfmt (npm) ^0.70.0
oxlint (npm) ^1.75.0
oxlint-tsgolint (npm) 7
pnpm (npm) 12.11.2
rimraf (npm) ^6.1.3
rollup (npm) ^4.60.3
rollup-plugin-esbuild (npm) ^6.2.1
rollup-plugin-license (npm) ^3.7.1
size-limit (npm) ~12.1.0
tsx (npm) ^4.23.0
typescript (npm) ~7.0.2
vitest (npm) ^4.1.11
yalc (npm) ^1.0.0-pre.53
yarn-deduplicate (npm) 6.0.2
Files by Type (count)
TypeScript
6075
Other (.mjs)
1136
JavaScript
1107
JSON
885
TSX
772
YAML
310
HTML
274
Git Ignore
201
Markdown
175
Svelte
116
Other (.jsonc)
112
Vue
103
Files by Type (size)
TypeScript
21MB
Markdown
1MB
Other (.png)
1MB
Lock File
1MB
Other (.mjs)
983KB
TSX
859KB
JSON
805KB
JavaScript
538KB
Other (.ico)
394KB
YAML
186KB
Python
163KB
HTML
153KB

The LLM identified 3 files worth highlighting for reuse:

Provides configurable filtering of URL query parameters based on data collection behavior (allow/deny lists). This utility is self-contained and can be extracted into any JavaScript project that needs to sanitize or control query string data collection, demonstrating a clean separation of concerns and reusable data privacy logic.

file: packages/core/src/utils/data-collection/filterUrlQuery.ts ↗ | tags: #data-filtering #utility

Registers global error handlers (on error, unhandled rejection) to mark the active root span as failed. This is a simple but effective pattern for automatically correlating errors with the current trace. The logic is isolated and could be reused in any tracing system that needs to flag spans on unhandled exceptions.

file: packages/core/src/tracing/errors.ts ↗ | tags: #error-handling #tracing

Manages the session lifecycle for replay: loading existing sessions from storage or creating new ones with correct expiry and sampling decisions. The pattern of idempotent session load/create with fallback to default values is reusable across any application that needs to manage stateful user sessions with expiry.

file: packages/replay-internal/src/session/loadOrCreateSession.ts ↗ | tags: #session-management #replay
Last analyzed: 2026-10-15 16:22:08.293949
Next check: 2026-10-22 16:22:08.282243
$ submit: