Skip to main content

Developer Guide

For people who want to run Loom from source, understand how it fits together or contribute a change.

This guide assumes you are comfortable with Python or TypeScript and a terminal. You do not need to be an expert in React, FastAPI or Polars.

Where to start​

GoalStart here
Set up a development environmentGetting Started
Understand how the pieces fitArchitecture Overview
Add a toolAdding Tools
Add a file formatAdding Data Formats
Fix a bug or send a changeContributing Workflow
Run the testsTesting Philosophy
Build or release the appPackaging and Releasing
Call the APIAPI Endpoints

The codebase in one paragraph​

Loom is a monorepo. Studio (studio/) is a React app that runs in Electron, Tauri or a browser. Server (server/) is a FastAPI service that executes workflows with Polars. Hub (hub/) is a FastAPI and React platform, backed by PostgreSQL, for teams. Studio never touches your data. It sends workflow JSON to a Server and shows what comes back.

Python uses uv. JavaScript uses Bun. Both have lockfiles that CI enforces.

Why contribute​

  • You will use it. The best contributions come from users who hit a limit and fix it.
  • Changes stay local. Most features touch one tool, one config panel or one endpoint.
  • It stays open. The code is AGPL-3.0, and the CLA has legal safeguards for that.
  • Reviews are public. Ask questions in issues and discussions so the answers help others.

Communication​

Principles​

  • Ship, then polish. Working software beats perfect plans.
  • Test the bones. Core logic gets heavy testing. UI gets lighter testing.
  • Explicit over magic. Behavior should be predictable and traceable.
  • Every feature has a maintenance cost. Saying no is part of the job.
  • Honest documentation. If something is broken, say so. If a decision was a trade-off, say why. See Known Issues and the Architectural Decisions.