Skip to content
DHDorian
All projects
Local Full-Stack MVPActive developmentDeveloper tool

TraceRoom

Incident investigation with a shared record of evidence, reasoning, and response.

TraceRoom is a local full-stack incident investigation MVP in active development. Its primary incident, investigation, collaboration, authorization, post-mortem, and audit workflows are implemented, while presence behavior, global search, production artifact storage, invitation delivery, and deployment hardening remain ongoing.

Role
Product design and full-stack engineering
Scope
Incident workflows, domain modeling, collaboration, authorization, persistence, auditability, post-mortem tooling, and product interface
Status
Local full-stack MVP · Active development
Core stack
React · TypeScript · NestJS · MongoDB

Product interface

A shared investigation room

TraceRoom connects chronological events, technical evidence, competing hypotheses, assigned work, mitigation decisions, discussions, resolution context, and post-mortem documentation in one persisted product. The case-study incident is a fully persisted seeded development scenario rendered through TraceRoom's normal schemas, API routes, membership checks, authorization rules, relationships, and real-time product workflows.

TraceRoom incident room showing a SEV-2 API latency investigation with a chronological timeline, technical evidence, hypotheses, assigned tasks, and rollback decisions.

Product overview

Why this product exists.

Incident response produces more than a final resolution. Teams collect evidence, propose and reject hypotheses, assign investigation work, make mitigation decisions, discuss findings, and later reconstruct what happened. These records are often fragmented across chat, tickets, dashboards, and documents.

TraceRoom keeps those activities connected inside one incident workspace. The timeline, evidence, hypotheses, tasks, decisions, discussions, technical artifacts, and resolution record remain part of the same persisted investigation rather than separate pieces of context.

The local full-stack MVP uses a React and TypeScript frontend, a NestJS API, MongoDB persistence, role-aware authorization, real-time collaboration, structured post-mortems, notifications, audit history, Docker-based local development, and automated frontend, backend, API, and browser testing. The product remains in active development, with broader search, production storage, invitation delivery, presence behavior, and deployment hardening still in progress.

Problem / motivation

An incident record should explain not only what failed, but what the team observed, believed, rejected, investigated, decided, and changed while restoring the system.

Product experience

Key features.

  1. 01

    Incident command and discovery

    Surfaces active incidents, severity, ownership, affected services, unresolved work, and recent activity across the workspace.

  2. 02

    Persisted investigation timeline

    Preserves chronological observations, status changes, evidence, discussions, and incident lifecycle events as part of one durable investigation record.

  3. 03

    Connected investigation reasoning

    Links technical evidence to competing hypotheses, investigation tasks, mitigation decisions, and targeted discussions.

  4. 04

    Structured response coordination

    Tracks investigation work, ownership, priority, status, and mitigation decisions without separating them from the incident context that produced them.

  5. 05

    Resolution and post-mortem workflow

    Turns the persisted incident record into an editable post-mortem with structured resolution context and Markdown export.

  6. 06

    Role-aware collaboration and auditability

    Applies backend-enforced workspace permissions while preserving authorship, notifications, activity history, and audit context.

Under the surface

Architecture and technical challenges.

Architecture

  • React and TypeScript client built with Vite, route-level product surfaces, shared contracts, and TanStack Query for server state
  • NestJS domain modules with MongoDB and Mongoose persistence for workspaces, incidents, investigation records, collaboration, and post-mortems
  • JWT authentication with short-lived access tokens, rotating HTTP-only refresh sessions, and backend-enforced workspace roles
  • Socket.IO entity updates for live collaboration while transient presence remains separate from persisted incident truth
  • Protected local artifact storage behind a replaceable service, Docker Compose, and automated frontend, backend, API, and Playwright testing

Challenges

  • Modeling an incident as connected investigative reasoning rather than a collection of isolated notes
  • Preserving chronological truth while allowing structured relationships between investigation records
  • Enforcing active workspace membership and role permissions at backend mutation boundaries
  • Synchronizing entity updates without treating transient participant presence as persisted truth
  • Preserving authorship, notifications, audit context, and structured post-mortem output across the investigation lifecycle

Technology stack

ReactTypeScriptViteTanStack QueryNestJSMongoDBMongooseSocket.IOJWTDockerPlaywrightREST APIs

Delivery status

What exists today.

Implemented

  • Command Center, incident register, Investigation Room, and persisted incident timeline
  • Linked evidence, hypotheses, tasks, decisions, discussions, and protected technical artifacts
  • Structured resolution, editable post-mortems, Markdown export, notifications, activity, and audit history
  • Workspace membership, backend-enforced roles, invitation links, and Socket.IO entity updates
  • Docker Compose plus frontend, backend, API, and Playwright browser tests

Partial

  • Search opens a scoped incident view rather than a complete cross-collection index
  • Invitation workflows create local or copyable links; production email delivery is not connected
  • Artifacts use access-controlled local filesystem storage behind a replaceable service
  • Some edits, notifications, responsive behavior, accessibility, and production hardening remain active work

Experimental

  • Transient Socket.IO participant-join presence; it is not persisted as incident truth

Planned

  • Production object storage
  • Email-backed invitation delivery
  • Cross-collection global search
  • Expanded workflow, integration, accessibility, responsive, and browser-test coverage
  • Deployment, monitoring, secrets, and operational hardening

Interface

Surface 01

Incident command and discovery

The Command Center and incident register provide a workspace-level view of active incidents, severity, ownership, affected systems, unresolved work, and recent investigation activity before the user enters a specific room.

Command Center

TraceRoom Command Center showing active incidents, severity, ownership, open investigation work, affected services, and recent workspace activity.

Incident register

TraceRoom incident register filtered to an investigating SEV-2 incident with its owner, affected services, age, and unresolved task count.

Surface 02

A shared investigation room

The Investigation Room keeps the incident timeline and active reasoning in one shared workspace. Evidence, hypotheses, assigned work, mitigation decisions, and discussions remain connected to the same persisted incident context.

TraceRoom Investigation Room showing the chronological incident timeline beside hypothesis states, assigned work, technical evidence, and mitigation decisions.

Surface 03

Evidence and connected reasoning

Evidence does not exist as an isolated attachment. TraceRoom connects observations and technical artifacts to the hypotheses they support or challenge, the work they trigger, and the decisions that follow.

TraceRoom hypothesis detail connecting a supported retry-policy hypothesis to technical evidence and its recorded status history.

Surface 04

Resolution, post-mortem, and accountability

The investigation record continues into resolution and review. Structured post-mortems, activity history, notifications, authorship, and role-aware access preserve how the incident was handled rather than reducing it to a final status change.

Post-mortem editor

TraceRoom editable post-mortem with structured summary, impact, contributing factors, timeline, action items, and Markdown export.

Security and audit history

TraceRoom workspace settings showing documented security assumptions and an auditable history of incident and scenario actions.

Honest edges

Limitations and what comes next.

Current scope

  • TraceRoom is a local full-stack MVP in active development.
  • Presence remains experimental and is not used as persisted incident truth.
  • Invitations use copyable links, artifacts use local storage behind an abstraction, and search remains incident-scoped rather than globally indexed.
  • Production deployment, monitoring, infrastructure hardening, customer usage, and measured incident outcomes are not claimed.

Future improvements

  • Introduce production-ready artifact and object storage.
  • Add email-backed workspace invitation delivery.
  • Expand global search across incidents and investigation entities.
  • Continue presence, notification, collaboration, accessibility, responsive, and test-coverage refinements.
  • Define hosting, secrets, storage, database, monitoring, and operational requirements before deployment.