CatColab: for developers
    Preparing search index...

    CatColab: for developers

    Note: This page can be viewed at either next.catcolab.org/dev or github.com/ToposInstitute/CatColab/contribute

    Grouping Package Language Instructions Documentation
    Core catlog Rust /dev/rust/catlog
    Frontend frontend TypeScript /dev/frontend/
    catlog-wasm Rust /dev/rust/catlog_wasm
    Backend backend Rust README /dev/rust/backend
    automerge-doc-server TypeScript README

    CatColab is written in a mix of Rust and TypeScript. To start any development, the first steps are

    1. install Rust (say, by using rustup)
    2. install pnpm
    3. clone the CatColab repository

    "Most" development will likely only require changes to the core (catlog) and the frontend (frontend) (and thus also the bindings in catlog-wasm). For this, you can simply follow the instructions in the frontend docs, replacing $MODE by staging, i.e. running

    pnpm run build && pnpm run dev --mode staging
    

    to view any changes made.

    If your development touches the actual backend (e.g. file storage) then you will need to also follow the backend README.

    To maintain a clean and consistent codebase, we follow strict conventions on code formatting and style. To format and lint the frontend code, run these commands from the top-level directory:

    pnpm --filter ./packages/frontend run format
    pnpm --filter ./packages/frontend run lint

    To format and lint the Rust code, run these commands from the top-level directory:

    cargo fmt
    cargo clippy

    Try to remember to run these commands before making a PR. (If you forget, the CI will remind you.)