• Residence: Bosnia & Herzegovina
  • City: Bijeljina
  • Age: 25
DOWNLOAD CV
Back to Projects

BugCatch - Full-Stack Error Tracking Platform

Jan 2026 – Mar 2026

BugCatch Dashboard

Overview

BugCatch is a full-stack error tracking and application monitoring platform - a developer tool in the category of Sentry, Datadog, and New Relic. I designed and built the entire system end to end: the backend API, the React dashboard, two SDK packages (JavaScript/TypeScript and Java 21), and a containerized infrastructure.

The core design challenge was building a high-throughput ingest pipeline that never blocks on the hot path, while still providing rich grouping, deduplication, and alerting logic in the background. Every architectural decision - from Redis caching to BullMQ queue concurrency - was made to keep the ingest endpoint fast regardless of load.

Issue Details
API Metrics

Key Features

SHA256 Fingerprinting

Errors are deduplicated by hashing errorType, message, filename, and line number. Same error from any user hits the same Issue record - no duplicates, no noise.

Zero-Wait Ingest

The ingest endpoint authenticates via Redis cache (never hits MySQL on the hot path), enqueues via BullMQ, and returns HTTP 200 immediately. All processing is async.

Performance Monitoring

A global interceptor tracks every API route's response time. Slow API requests, slow DB queries, high CPU, and high memory each trigger cooldown-protected alert emails.

Regression Detection

When a resolved issue receives a new event, it automatically re-opens with a regression email to the project owner. Ignored issues stay ignored - events still recorded.

Multi-Platform SDKs

A JS/TS SDK (ESM + CJS) ships auto-capture for errors, promise rejections, breadcrumbs, and navigation. A separate zero-dependency Java 21 SDK covers Spring Boot apps.

Automated Digest & Cleanup

A weekly digest email (Fridays 12pm) summarizes project activity for all members. A monthly cron purges old events, stale issues, and API metric logs in safe batches.

Architecture: Three-Component Model

SDK

Installed in the monitored application. Auto-captures errors and breadcrumbs, parses stack traces, attaches user context, and POSTs structured payloads to the ingest endpoint using a DSN copied from the dashboard.

Ingest API

The highest-traffic endpoint. Validates the SDK key via Redis cache (5-min TTL, MySQL fallback), generates a SHA256 fingerprint, enqueues the job, and returns 200 immediately - no waiting on DB writes.

Event Processor

BullMQ worker running at concurrency 5 with exponential-backoff retries. Gets or creates the Issue by fingerprint, handles regressions, creates the Event record, increments counters atomically, and tracks unique affected users in a Redis Set.

Backend

Built with NestJS 11 and TypeScript following a strict module-per-domain structure. Each feature (ingest, issues, events, analytics, source maps, metrics, admin) is a self-contained module with its own controller and service. Data lives in MySQL via TypeORM; all email is async through a BullMQ mail queue with Handlebars templates.

Auth uses JWT with 15-minute access tokens and 7-day refresh tokens, guarded by Passport. The API is documented with Swagger and fully containerized with Docker Compose (MySQL + Redis + API).

Frontend Dashboard

Built with React 19, Vite 6, and TypeScript. Components use shadcn/ui (Radix primitives) with Tailwind CSS and full dark/light mode via next-themes. Server state is managed by TanStack Query v5; auth state by Zustand persisted in localStorage.

The dashboard lets developers triage issues with filters by status, level, and search; inspect raw events with parsed stack traces and breadcrumbs; view event frequency histograms via Recharts; upload and manage source maps; and control project settings and team membership.

Technologies

Backend

NestJS 11 TypeScript Node.js MySQL TypeORM Redis BullMQ JWT Passport Handlebars Swagger Docker

Frontend

React 19 Vite 6 TypeScript TanStack Query v5 Zustand shadcn/ui Tailwind CSS Recharts React Hook Form Zod Axios

SDKs

JavaScript / TypeScript tsup (ESM + CJS) Java 21 SDK Design Stack Trace Parsing