HyperDX is an observability platform that helps engineers search, visualize, and monitor logs, metrics, traces, and session replays. It's built on ClickHouse for blazing-fast queries and supports OpenTelemetry natively.
Core value: Unified observability with ClickHouse performance, schema-agnostic design, and correlation across all telemetry types in one place.
This is a monorepo with three main packages:
packages/app- Next.js frontend (TypeScript, Mantine UI, TanStack Query)packages/api- Express backend (Node.js 22+, MongoDB for metadata, ClickHouse for telemetry)packages/common-utils- Shared TypeScript utilities for query parsing and validation
Data flow: Apps → OpenTelemetry Collector → ClickHouse (telemetry data) / MongoDB (configuration/metadata)
yarn setup # Install dependencies
yarn dev # Start full stack (Docker + local services)The project uses Yarn 4.5.1 workspaces. Docker Compose manages ClickHouse, MongoDB, and the OTel Collector.
Before starting a task, read relevant documentation from the agent_docs/
directory:
agent_docs/architecture.md- Detailed architecture patterns and data modelsagent_docs/tech_stack.md- Technology stack details and component patternsagent_docs/development.md- Development workflows, testing, and common tasksagent_docs/code_style.md- Code patterns and best practices (read only when actively coding)
Tools handle formatting and linting automatically via pre-commit hooks. Focus on implementation; don't manually format code.
- Multi-tenancy: All data is scoped to
Team- ensure proper filtering - Type safety: Use TypeScript strictly; Zod schemas for validation
- Existing patterns: Follow established patterns in the codebase - explore similar files before implementing
- Component size: Keep files under 300 lines; break down large components
- UI Components: Use custom Button/ActionIcon variants (
primary,secondary,danger) - seeagent_docs/code_style.mdfor required patterns - Testing: Tests live in
__tests__/directories; use Jest for unit/integration tests
Each package has different test commands available:
packages/app (unit tests only):
cd packages/app
yarn ci:unit # Run unit tests
yarn dev:unit # Watch mode for unit tests
yarn test:e2e # Run end-to-end tests
yarn test:e2e:ci # Run end-to-end tests in CIpackages/api (integration tests only):
cd packages/api
yarn ci:int # Run integration tests
yarn dev:int # Watch mode for integration testspackages/common-utils (both unit and integration tests):
cd packages/common-utils
yarn ci:unit # Run unit tests
yarn dev:unit # Watch mode for unit tests
yarn ci:int # Run integration tests
yarn dev:int # Watch mode for integration testsTo run a specific test file or pattern:
yarn ci:unit <path/to/test.ts> # Run specific test file
yarn ci:unit --testNamePattern="test name pattern" # Run tests matching pattern- Authentication: Passport.js with team-based access control
- State management: Jotai (client), TanStack Query (server), URL params (filters)
- UI library: Mantine components are the standard (not custom UI)
- Database patterns: MongoDB for metadata with Mongoose, ClickHouse for telemetry queries
Need more details? Check the agent_docs/ directory or ask which documentation
to read.