Developer Guide
Welcome, contributor! This guide will help you extend gibb.eri.sh.
Prerequisites
- Rust (stable, 1.75+)
- Node.js (20+)
- macOS (for now—Linux/Windows coming)
Quick Start
# Clone
git clone https://github.com/mpuig/gibb.eri.sh
cd gibb.eri.sh
# Install frontend dependencies
cd apps/desktop && npm install
# Run in development mode
npm run tauri dev
Project Structure
gibb.eri.sh/
├── apps/
│ └── desktop/ # Tauri app
│ ├── src/ # React frontend
│ └── src-tauri/ # Rust backend
├── crates/ # Pure Rust libraries
├── plugins/ # Tauri plugin adapters
├── scripts/ # Build & conversion tools
└── docs/ # This documentation
Development Workflow
Making Changes
- Pure logic? → Edit in
crates/ - UI interaction? → Edit in
plugins/ - Frontend? → Edit in
apps/desktop/src/
Testing
# Run all Rust tests
cargo test --workspace
# Run a specific crate's tests
cargo test -p gibberish-bus
Building
# Debug build
cd apps/desktop && npm run tauri dev
# Release build
npm run tauri build
Guides
- Adding Features — The proper way to extend functionality
- Adding Languages — Support new languages via NeMo CTC
- Headless Engine — Use the core without UI
Code Style
Rust
- Use
rustfmt(default settings) - Prefer
Result<T>over panics - Document public APIs with
///
TypeScript
- Use Prettier (default settings)
- Prefer functional components with hooks
- Type everything (no
any)
Getting Help
- Issues: GitHub Issues
- Discussions: GitHub Discussions