For Developers
Welcome to Vauchi development! This section contains everything you need to contribute.
Getting Started
New to the project? Start here:
- Contributing Guide — Set up your environment and learn the workflow
- Architecture Overview — Understand how the system works
- GUI Guidelines & UX Guidelines — Design rules for all platforms
- Cryptography Reference — Deep dive into encryption
Documentation
| Document | Description |
|---|---|
| Contributing | Development workflow, code guidelines, PR process |
| GUI Guidelines | Component-level design rules — toasts, inline editing, confirmations |
| UX Interaction Guidelines | Interaction philosophy — physical-first, offline-first, flow design |
| Architecture | System overview, components, data flow |
| Cryptography | Encryption algorithms, key management, protocols |
| Tech Stack | Languages, frameworks, libraries |
| Diagrams | Sequence diagrams for core flows |
Repository Structure
Vauchi is a multi-repo project under the vauchi GitLab group:
| Repository | Purpose |
|---|---|
vauchi/ | Orchestrator repo (this documentation) |
core/ | Rust workspace: vauchi-core + UniFFI bindings |
relay/ | WebSocket relay server |
linux-gtk/ | GTK4 Linux desktop app |
linux-qt/ | Qt6/QML Linux desktop app |
macos/ | macOS native app (SwiftUI) |
windows/ | Windows native app (WinUI3) |
ios/ | SwiftUI app |
android/ | Kotlin/Compose app |
features/ | Gherkin specs |
locales/ | i18n JSON files |
Quick Commands
# Clone and setup workspace
git clone git@gitlab.com:vauchi/vauchi.git
cd vauchi
just setup
# Build everything
just build
# Run all checks
just check
# Run tests
just test
# Show all commands
just help
Key Principles
All development follows our core principles:
- TDD mandatory — Red → Green → Refactor
- 90%+ coverage — For vauchi-core
- Real crypto in tests — No mocking
- Problem-first — Every task starts as a problem record
Getting Help
- Issues: GitLab Issues
- Discussions: GitLab Issues
- Code of Conduct: Community Standards