Show HN: Gova – The declarative GUI framework for Go

· systems devtools coding · Source ↗

TLDR

  • Gova lets Go developers build native desktop apps for macOS, Windows, and Linux from a single codebase, shipping a single static binary with no JavaScript runtime.

Key Takeaways

  • Components are plain Go structs with typed prop fields; reactive state lives on an explicit Scope, avoiding hook-ordering rules and hidden schedulers.
  • macOS gets native NSAlert, NSOpenPanel, NSSavePanel, and NSDockTile integrations via cgo; Windows and Linux fall back to Fyne with the same API surface.
  • Default binary for the counter example is ~32 MB (~23 MB stripped); idle memory is ~80 MB RSS on macOS arm64 with Go 1.26.2.
  • Built on Fyne internally, but Fyne is treated as a private implementation detail – the public Gova API is the stable contract and renderer swaps won’t break caller code.
  • Pre-1.0 with explicit API-change warning; requires Go 1.26+ and a C toolchain (Xcode CLT, build-essential + libgl1-mesa-dev, or MinGW depending on platform).

Hacker News Comment Review

  • No substantive HN discussion yet.

Original | Discuss on HN