Architecture
System design, technology decisions, and infrastructure overview.
Data Flow
Design Patterns
Server-First Architecture
Data fetching happens in Server Components — zero JavaScript shipped for read-only pages. Client Components are used only for interactivity.
Typed Query Layer
All Supabase queries are centralized in a typed query module with explicit return types and error handling. No raw queries in components.
Real-time via SSE
Server-Sent Events with DB polling instead of WebSockets. Simpler, stateless, and compatible with serverless/edge environments.
Component Architecture
Reusable UI primitives built with CVA + clsx + tailwind-merge. No component library dependency — full control over design.
Technology Stack
Frontend
Next.js 16
App Router, React Server Components, Turbopack
TypeScript
Strict mode, full type safety across all layers
Tailwind CSS 4
Utility-first with CSS variable design tokens
Recharts 3
Composable charts for metrics visualization
Lucide React
Consistent, accessible icon system
Backend
Next.js API Routes
Serverless functions with edge runtime support
Supabase
PostgreSQL, Row Level Security, typed queries
Server-Sent Events
Real-time streaming via DB polling
DORA Calculator
Automated metric computation from pipeline data
Integration
GitLab API v4
Pipeline, job, environment, and commit data
Webhook Receiver
Real-time pipeline event ingestion endpoint
Admin API
Protected endpoints for sync and data management
Infrastructure
Vercel
Edge deployment with serverless functions
Supabase Cloud
Managed PostgreSQL (eu-west-1)
GitHub
Source control and CI/CD