Skip to main content
Prerequisites:
  • Node.js (version 18 or higher)
  • Git
  • An LLM provider account (OpenAI, Anthropic, etc.) for testing

Local Development Setup

Clone the Repository

First, clone the Untrace repository and install dependencies:
git clone https://github.com/untrace-dev/untrace.git
cd untrace
npm install

Start the Development Server

Run the development server locally:
npm run dev
This will start:
  • The API server on port 3000
  • The web dashboard on port 3001
  • The trace processing service on port 3002

Project Structure

untrace-sdk/
├── packages/
│   ├── analytics/    # Analytics components
│   ├── destinations/ # Integration destinations
│   ├── logger/       # Logging utilities
│   ├── ui/          # UI components
│   └── utils/       # Shared utilities
├── sdks/            # Language-specific SDKs
│   ├── js/          # JavaScript/TypeScript SDK
│   ├── python/      # Python SDK
│   ├── go/          # Go SDK
│   ├── rust/        # Rust SDK
│   ├── csharp/      # C#/.NET SDK
│   └── elixir/      # Elixir SDK
├── docs/            # Documentation
└── examples/        # Example integrations

Development Workflow

Running Tests

We use Jest for testing. Run the test suite with:
# Run all tests
npm test

# Run tests in watch mode
npm test -- --watch

# Run tests for a specific package
npm test -- packages/analytics

Linting and Formatting

We use ESLint and Prettier to maintain code quality:
# Run linter
npm run lint

# Fix linting issues
npm run lint:fix

# Format code
npm run format

Building Locally

To build all packages:
npm run build
To build a specific package:
npm run build --workspace=@untrace/analytics

Running Examples

We provide example integrations in the examples/ directory. To run an example:
# Navigate to an example
cd examples/basic-usage

# Install dependencies
npm install

# Start the example
npm run dev

Debugging

SDK Debugging

Run the SDK with debug logging:
# Using npm
npm run dev:sdk -- --debug

# Direct binary
./packages/analytics/bin/run --debug

Dashboard Debugging

The dashboard includes React Developer Tools and runs in development mode by default:
# Start dashboard in development mode
npm run dev:dashboard

Common Issues

If port 3000, 3001, or 3002 is already in use, you can specify different ports:
# For API server
PORT=4000 npm run dev:api

# For dashboard
PORT=4001 npm run dev:dashboard

# For trace service
TRACE_PORT=4002 npm run dev:service
During development, you can use test API keys:
# Test mode
UNTRACE_API_KEY=test_key npm run dev

Contributing

We welcome contributions! Here’s how you can help:
  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run tests: npm test
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to your branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Contribution Guidelines

  • Follow the existing code style
  • Add tests for new features
  • Update documentation for changes
  • Keep commits focused and atomic
  • Write clear commit messages

Next Steps

Architecture

Learn about Untrace’s internal architecture

API Reference

Explore the internal APIs

Testing Guide

Learn how to test your changes

SDK Development

Create integrations for new programming languages