Visual project planning, engineered for Raspberry Pi.
Free, fully offline, and open-source desktop planner for RPi boards and GPIO wiring accessories.
PiForge sits at the intersection of hardware wiring, sprint planning, and system dependencies visualization — combining the wiring clarity of Fritzing, the sprint tracking efficiency of Linear, and the infinite visual design freedom of Excalidraw into a single offline-first workspace.
- 🍉 Interactive SVG Canvas: An infinite panning and zooming stage. Drag-and-drop Raspberry Pi motherboard diagrams (Pi 5, 4B, Zero 2W, Pico, Pico W, etc.) and click individual pin headers to draw curved vector wires to sensors, relays, and OLED displays.
- 🛡️ Real-Time Hardware Diagnostics: An on-canvas schematic validator that alerts you to:
- GPIO Pin Conflicts: Triggering warnings when multiple accessories are wired to the same physical pin.
- Power Mismatch Errors: Warning if a 5V high-torque actuator (e.g. SG90 Servo, Relay) is incorrectly powered by a 3.3V rail.
- 💻 Firmware Code Scaffolding: Cross-compiles physical visual wiring directly into ready-to-run scripts.
- Supported Standards: Python (
gpiozeroOOP,RPi.GPIOclassic) and C++ (WiringPi). - Broad Catalog Coverage: Generates pin-accurate setups and operations for all 13 built-in accessories—including LEDs, Push Buttons, Rotary Encoders, DHT22 sensors, HC-SR04 sonars, SG90 servos, Relays, Buzzers, I2C OLED screens, Character LCD1602 screens, L298N H-bridges, MCP3008 ADCs, and DS18B20 1-Wire temperature sensors.
- Supported Standards: Python (
- 📋 Tactile Sprint Kanban: Columns dashboard utilizing native HTML5 drag-and-drop card trackers. Click a sprint card to access checklist task properties, timeline estimates, and calendars.
- 📝 Tabular Tasks Ledger: Spreadsheet-like ledger with instant inline priority adjustments and filter widgets.
- 🕸️ Force-Directed Graph: Uses
Cytoscape.jsto map your project's components and tasks as relational nodes, illustrating hardware layouts and software sprint blocks at a glance. - 📚 Sanitized Documentation Editor: Markdown notes compiler that uses a split-pane layout to show HTML previews sanitized by
DOMPurify. - 📊 Bill of Materials Generator: Aggregates all canvas sensors to auto-generate a component list printable as vector PDFs or shared as Excel CSV sheets.
- 🔒 Off-Grid Sovereign Security: Completely offline and privacy-first.
- Locks down scripts with a strict Content Security Policy (CSP) blocking external frames or script execution.
- Features a 100% clean audit pass (0 vulnerabilities found via dependency checks and 0 warnings via strict Rust
clippystatic analysis).
- 📦 Local Portability (.piforge): Completely offline. Imports and exports self-contained sharing JSON archives representing your entire workspace.
- Desktop Shell: Tauri v2.x (Rust-based system IPC & tray orchestration)
- Frontend Compiler: SvelteKit v2.x in Single-Page Application (SPA) mode
- Reactive Engine: Svelte 5 (reactive stores & components bindings)
- Styling Compilation: Tailwind CSS v4.x
- Local Persistence: Offline SQLite database file via native Rust
rusqlite - Dependency Graph: Cytoscape.js
Follow these simple instructions to initialize the developer environment:
Install Node.js 20+, Rust toolchains, and package managers via Homebrew:
# Install Homebrew if missing
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Node & package manager
brew install node@20 pnpm git
# Install Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
rustup default stable
rustup target add aarch64-apple-darwinClone the repo, install packages, and boot up:
# Clone the repository
git clone https://github.com/pallab-js/PiForge.git
cd PiForge
# Install frontend libraries
pnpm installTo run a lightweight mockup browser server (great for rapid UI checking using localStorage fallbacks):
pnpm dev
# Opens http://localhost:5173To launch the native Tauri desktop app (using the SQLite database inside application support):
pnpm tauri devCompile the static client-side distribution folder and trigger the Tauri compiler to package native binary installers (e.g. .dmg on macOS, .msi on Windows, or .AppImage on Linux):
pnpm build
pnpm tauri buildDistributed under the terms of the MIT License. See LICENSE for more details.