BitPilot. Two independent projects, not a workspace.
backend/— Rust (axum, sqlx + SQLite). Run frombackend/.frontend/— React + Vite + TypeScript. Run fromfrontend/.
No root build script. cd into the right directory first.
Backend (cd backend):
cargo run— serves on0.0.0.0:8080. Override withPORT.cargo check/cargo build— no tests, no formatter.- Env vars documented in
backend/.env.example.
Frontend (cd frontend):
npm run dev— Vite dev server on:5173, proxies/api/*to:8080.npm run build— runstscthenvite build. This is the only typecheck.
Mission catalogue lives in two places:
backend/src/models/mission.rs— number, tech, reward, simulated flag.frontend/src/lib/types.ts— number, learn/quiz/do copy.
Adding or removing a mission means editing both files. Numbers must line up — there is no runtime check enforcing it.