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