← Docs · Introduction

Contributing

How to contribute to Colony — development setup, coding standards, and contribution guidelines.

Colony will be released under the Functional Source License (FSL). The repository is currently private during pre-launch development — contributions will be welcome once we open the source.

Prerequisites

  • Nix with Flakes enabled (manages all dev dependencies)
  • An Anthropic API key (for agent features)

Getting Started

# Clone the repository
git clone https://github.com/colonydev/colony.git
cd colony

# Install deps, generate proto, setup DNS
make init

# Start all services
make dev

# Run tests
make test

Project Structure

colony/
├── mycelium/     # Gleam + OTP orchestration layer
├── stem/         # Rust TUI
├── bloom/        # SolidJS web dashboard
├── proto/        # Shared Protobuf definitions
├── canopy/       # Marketing website (this site)
├── seed/         # Demo projects and starter templates
├── scripts/      # Setup and utility scripts
└── docs/         # ADRs and internal documentation

Development Workflow

  1. Pick an issue or open one describing what you want to work on
  2. Create a Jujutsu workspace for your changes
  3. Write tests first — Colony targets high test coverage
  4. Run the full test suite before submitting
make test          # All tests (Gleam + Rust + Bloom)
make mycelium-test # Gleam tests only
make stem-test     # Rust tests only
make bloom-test    # SolidJS tests only

Coding Standards

  • Gleam: Follow Gleam community conventions, format with gleam format
  • Rust: Follow Rust conventions, format with cargo fmt, lint with cargo clippy
  • TypeScript/SolidJS: ESLint + Prettier configuration in bloom/
  • No warnings in CI — treat warnings as errors

License

By contributing, you agree that your contributions will be licensed under the same FSL terms as Colony, including the automatic Apache 2.0 conversion after 2 years.