0001 — Wails desktop shell
- Status: Accepted
- Date: 2026-10-28
Context
Git Revenge has a Go backend and must run as a desktop app on Windows and macOS, both of which are first-class. Linux is a nice-to-have. The options were a local server with a browser UI, Wails, or Electron/Tauri with a Go sidecar.
Decision
Use Wails v2. Go exposes a typed API through Wails bindings and pushes updates to the UI as events. The UI runs in the system WebView: WebView2 on Windows and WKWebView on macOS.
Consequences
- Each platform ships a single native binary with a small footprint compared to Electron, plus native dialogs and windowing.
- We need per-OS builds in CI. macOS builds also need signing and notarization.
- The Go API stays transport-agnostic. A browser mode could be added later as an HTTP adapter over the same API.