For Developers

Welcome to Vauchi development! This section contains everything you need to contribute.


Getting Started

New to the project? Start here:

  1. Contributing Guide — Set up your environment and learn the workflow
  2. Architecture Overview — Understand how the system works
  3. GUI Guidelines & UX Guidelines — Design rules for all platforms
  4. Cryptography Reference — Deep dive into encryption

Documentation

DocumentDescription
ContributingDevelopment workflow, code guidelines, PR process
GUI GuidelinesComponent-level design rules — toasts, inline editing, confirmations
UX Interaction GuidelinesInteraction philosophy — physical-first, offline-first, flow design
ArchitectureSystem overview, components, data flow
CryptographyEncryption algorithms, key management, protocols
Tech StackLanguages, frameworks, libraries
DiagramsSequence diagrams for core flows

Repository Structure

Vauchi is a multi-repo project under the vauchi GitLab group:

RepositoryPurpose
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