Skip to content

Dev setup

Prerequisites

  • Node ≥ 20 (for tuner, mobile, docs)
  • PlatformIO Core (for firmware) — pip install platformio
  • Rust toolchain (xtensa) — optional, only if you touch the firmware’s Rust ports

Clone

Terminal window
git clone https://github.com/tburkhalterr/CANShift
cd CANShift

The five packages:

PackageStackCommand
canshift-coreTypeScriptcd canshift-core && npm install && npm run build
canshift-firmwareC++17 / PlatformIOcd canshift-firmware && pio run
canshift-tunerVite + Reactcd canshift-tuner && npm install && npm run dev
canshift-docsAstro Starlightcd canshift-docs && npm install && npm run dev
canshift-mobileExpoinactive unless explicitly working on mobile

PR workflow

Always via gh pr create — never merge directly to main. Branch name: type/package/short-description (e.g. feat/firmware/cruise-l-shape).

Conventional commits, subject line only (no body):

feat(firmware): cruise L-shape buttons
fix(tuner): typo overflow on long signal names
chore(firmware): strip verbose comments — phase 11