Analysis updated 2026-05-18
Build a macOS desktop app with a web-based UI while writing the backend logic in Go.
Add native menus, dock icons, and desktop notifications to a Go application.
Call macOS-specific APIs directly from Go via embedded Objective-C code.
| alexflint/gallium | upper/db | doitintl/kube-no-trouble | |
|---|---|---|---|
| Stars | 3,659 | 3,659 | 3,662 |
| Language | Go | Go | Go |
| Setup difficulty | hard | easy | easy |
| Complexity | 4/5 | 3/5 | 2/5 |
| Audience | developer | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires git-lfs to download a 92MB Chromium framework, macOS only, early and unstable API.
Gallium is a Go library that lets developers build desktop applications where the visible interface is written in HTML, CSS, and JavaScript. The underlying display engine is Chromium, the same browser core that powers Google Chrome, so any web page or web-based UI can be rendered inside a native application window. The idea is similar to Electron, which is a well-known tool in the JavaScript world, except that with Gallium the surrounding application logic is written in Go rather than JavaScript. The library handles the parts of a desktop application that go beyond a single web page: application menus (the bar at the top of the screen with File, Edit, and similar items), a status bar icon, desktop notifications, and a dock icon. Developers write Go code to control these native elements, while the actual UI content lives in HTML files loaded into a Chromium window. Gallium also lets you mix in C or Objective-C code when you need to call macOS-specific APIs directly, such as making a window semi-transparent. At the time this README was written, Gallium only ran on macOS. Windows and Linux support was listed as planned but not yet available. The project was also described as an early release, with most of its programming interfaces likely to change before reaching a stable 1.0 version. Installing Gallium requires a tool called git large file storage because the package bundles a 92 MB binary copy of the Chromium content module. Building a finished application requires an extra step to wrap the output into an app bundle, which is the standard format macOS expects for programs that have menus and dock icons. Running the executable directly without that bundle causes some native features to stop working. This project is aimed at Go developers who want to ship a desktop application with a web-based interface rather than writing a fully native UI from scratch. If you know Go and already build web UIs, Gallium offers a way to package that work as a standalone desktop program without switching to a different programming language.
A Go library for building macOS desktop apps with an HTML/JavaScript interface, powered by an embedded Chromium browser.
Mainly Go. The stack also includes Go, Chromium, HTML.
No license is stated in the README.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.