Five-phase migration of server-side instrumentation from Sentry-direct SDK calls to OpenTelemetry SDK with @sentry/opentelemetry as the (initial) exporter. Vendor neutrality: swap vendors = swap exporters, never rewrite tracer/logger/metrics impls. Phase 1: OTel SDK infrastructure (no behavior swap). Phase 2: OtelTracer replaces SentryTracer (uses @opentelemetry/api). Phase 3: OtelLogger replaces SentryLogger (pure OTel Logs API via @opentelemetry/api-logs; breadcrumbs become span events; user.id as span attribute). Phase 4: New IMetrics interface + Noop/Otel/Recording impls; added to BindContext as metrics? with corresponding MetricsProtocol in core-shared/di/bind-protocols.ts. Phase 5: HTTP/undici/pg auto-instrumentations; PII scrubbing migrates from Sentry beforeSend hooks to OTel SpanProcessor/LogRecordProcessor; delete remaining Sentry-direct files; ADR-017 supersedes ADR-014's impl section while keeping R31-R51 interface decisions authoritative. Server-only scope. Browser keeps Sentry SDK directly (replay + native error UX); future spec extends to browser when OTel-Browser matures. Companion ADR will be assigned at implementation time (expected ADR-017). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Clean Architecture Monorepo Template
Turborepo + pnpm monorepo organized by vertical features. See CLAUDE.md for the full conventions reference and AGENTS.md for the package map.
Quick Start
pnpm install # Install all dependencies
pnpm dev # Start all dev servers
pnpm build # Build all packages
pnpm test # Run all tests
pnpm turbo boundaries # Validate workspace dependency graph
pnpm turbo gen feature # Scaffold a new feature package
docker compose up -d # Start PostgreSQL
Optional packages
The default template includes the must-have core packages and all 5 feature packages. Four core packages are optional and scaffold on demand:
pnpm turbo gen core-package realtime # Socket.IO realtime layer (ADR-016)
pnpm turbo gen core-package events # Cross-feature events + Payload jobs (ADR-015)
pnpm turbo gen core-package trpc # tRPC server setup
pnpm turbo gen core-package ui # Design system
See docs/architecture/template-tiers.md for the full tier list.
Key ports
| Service | Port |
|---|---|
| Next.js | 3000 |
| Payload CMS | 3001 |
| TanStack Start | 3002 |
| PostgreSQL | 5432 |
| Storybook | 6006 |
Description
Languages
TypeScript
65.6%
JavaScript
21.1%
Handlebars
12.2%
Shell
0.9%
Dockerfile
0.1%