For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Copy to LLMGithubGo to App
DocumentationIntegrationsAgent OptimizationSelf-hosting OpikSDK & API referenceOpik University
DocumentationIntegrationsAgent OptimizationSelf-hosting OpikSDK & API referenceOpik University
  • Getting Started
    • Home
    • Quickstart
    • Quickstart notebook
    • Roadmap
    • FAQ
    • Changelog
  • Observability
    • Concepts
    • Log traces
    • Log conversations
    • Log user feedback
    • Log media & attachments
    • Cost tracking
    • Opik Assist
  • Evaluation
    • Overview
    • Concepts
    • Manage datasets
    • Evaluate single prompts
    • Evaluate your agent
    • Evaluate agent trajectories
    • Evaluate multimodal traces
    • Evaluate multi-turn agents
    • Manually logging experiments
    • Re-running an existing experiment
    • Annotation Queues
  • Prompt engineering
    • Prompt management
    • Prompt Playground
    • Prompt Generator and Improver
    • Opik's MCP server
  • Testing
    • Pytest integration
  • Production
    • Production monitoring
    • Online Evaluation rules
    • Gateway
    • Guardrails
    • Anonymizers
    • Alerts
    • Dashboards
  • Administration
    • Overview
    • Roles and Permissions
  • Contributing
    • Contribution Overview
      • Documentation
      • Local Development Setup
      • Python SDK
      • TypeScript SDK
      • Opik Optimizer
      • Frontend
      • Backend
LogoLogo
Copy to LLMGithubGo to App
On this page
  • Contributing to the Frontend
  • Project Structure
  • Directory Layout
  • Setting Up Your Development Environment
  • 4. Code Quality Checks
  • Linting
  • Type Checking and Unit Tests
  • 5. Submitting a Pull Request
ContributingSpecific Contribution Guides

Frontend

Was this page helpful?
Previous

Backend

Next
Built with

Contributing to the Frontend

This guide will help you get started with contributing to the Opik frontend.

Before you start, please review our general Contribution Overview and the Contributor License Agreement (CLA).

Project Structure

The Opik frontend is a React application located in the apps/opik-frontend directory of the comet-ml/opik repository. It provides the user interface for interacting with the Opik platform.

Directory Layout

apps/opik-frontend/src/
├── api/ # API client and endpoint definitions
├── constants/ # Application-wide constants
├── hooks/ # Shared custom hooks
├── lib/ # Utility libraries
├── store/ # Zustand stores
├── types/ # Shared TypeScript types
├── ui/ # Base UI components (shadcn/ui + Radix)
├── shared/ # Shared business components
├── v1/ # Opik 1 UI (layout, pages, pages-shared)
└── v2/ # Opik 2 UI (layout, pages, pages-shared)

Import rules: ui → shared → v{N}/pages-shared → v{N}/pages (one-way only). v1 and v2 cannot import from each other. Validate with npm run deps:validate.

Setting Up Your Development Environment

We provide multiple ways to develop the frontend. Choose the approach that best fits your workflow:

Local Process Mode (Recommended)
Docker Mode
Manual Setup

Best for rapid development with hot reload

This mode runs the frontend as a local process with Vite’s dev server, providing instant hot reload when you save files:

Linux/Mac
Windows
$# From repository root - restart everything
$scripts/dev-runner.sh
$
$# Or just start (faster if already built)
$scripts/dev-runner.sh --start

Access the UI at http://localhost:5174 (Vite dev server with hot reload).

Benefits:

  • Instant hot reload on file changes
  • Fast rebuilds
  • Full TypeScript type checking and linting
  • Easy debugging with browser dev tools

Prerequisites:

  • Node.js 18+ with npm. You can download it from nodejs.org.
  • Java Development Kit (JDK) 21 (for backend)
  • Apache Maven 3.8+ (for backend)

For comprehensive documentation on all development modes, troubleshooting, and advanced workflows, see our Local Development Guide.

4. Code Quality Checks

Before submitting a Pull Request, please ensure your code passes the following checks:

Linting

Using dev-runner (Recommended)
Manual npm
Linux/Mac
Windows
$# From repository root
$scripts/dev-runner.sh --lint-fe

Type Checking and Unit Tests

Run these commands from the apps/opik-frontend directory:

$cd apps/opik-frontend
$
$npm run typecheck # TypeScript type checking
$npm run test # Unit tests for utilities and helpers

5. Submitting a Pull Request

After implementing, commit your changes and open a Pull Request against the main branch of the comet-ml/opik repository.