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
"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.)