Contributing to JBrowse 2
August 10, 2026 ยท View on GitHub
Welcome, we are happy to receive contributions to JBrowse 2. This short guide will help you get started.
Quick Start
git clone https://github.com/GMOD/jbrowse-components
cd jbrowse-components
pnpm install
cd products/jbrowse-web
pnpm start
Setup & Prerequisites
- Package Manager: pnpm
- Windows: Use
git clone -c core.symlinks=true - Native Deps:
node-canvas(tests) requires system libs:- macOS:
brew install pkg-config cairo pango libpng jpeg giflib librsvg - Ubuntu:
sudo apt install python3 make gcc libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev - If it fails, run
pnpm rebuild canvas.
- macOS:
Development
Run from root:
- Lint:
pnpm lint(--fixto auto-fix) - Types:
pnpm typecheck - Format:
pnpm format - Test:
pnpm test
pnpm install points core.hooksPath at .githooks, whose pre-commit runs
oxfmt over the files in the commit. Skip it with SKIP_OXFMT=1 git commit or
git commit --no-verify.
Products
- Web:
cd products/jbrowse-web && pnpm start - Desktop:
cd products/jbrowse-desktop && pnpm dev(starts the dev server and launches Electron in one command). To run the pieces separately, usepnpm startthenpnpm electron. - Embedded component examples:
cd products/jbrowse-react-linear-genome-view/examples-site && pnpm dev
Project Structure
packages/: Core libraries.plugins/: Feature code (Alignments, Variants, etc.). Main dev area.products/: Apps (Web, Desktop, CLI).website/: Astro documentation site.
Documentation
The website is an Astro site. Run it locally with:
cd website
pnpm dev