fyne
Cross platform GUI in Go based on Material Design
Fyne is a Go toolkit for building desktop and mobile apps that run on Windows, Mac, Linux, iOS, and Android from a single codebase, with a clean Material Design look.
Fyne is a toolkit that lets you build desktop and mobile apps using the Go programming language. Instead of writing different code for Windows, Mac, Linux, iOS, and Android, you write your app once in Go and it runs everywhere. The interface follows Material Design, which is a clean, modern visual style that Google developed.
The core appeal is simplicity. If you know Go, you can build a working app with just a few lines of code. You describe what you want the app to look like—buttons, text boxes, labels—and Fyne handles drawing it on screen and responding to user clicks. The README example shows a "Hello" window with a label and quit button in about a dozen lines. You don't have to wrestle with platform-specific APIs or learn multiple UI frameworks.
Under the hood, Fyne takes your Go code and translates it into native-looking windows and controls on each operating system. It handles the messy details of how Mac and Windows and Linux actually draw things differently. The library includes pre-built widgets (buttons, text inputs, menus, etc.) that you snap together like building blocks.
Who would use this? Go developers building internal tools, utilities, or cross-platform apps where shipping a single codebase matters more than pixel-perfect native feel. A small team could write a database management tool or configuration app once and have it work on their Mac, Windows, and Linux machines without maintaining three separate codebases. It's less suitable if you need a highly polished or platform-specific user experience, but excellent if you value developer speed and code reuse.
Where it fits
- Build a database management or configuration tool once in Go and ship it on Mac, Windows, and Linux
- Create a simple cross-platform utility app without learning separate native UI frameworks
- Prototype a desktop app quickly using pre-built widgets like buttons and text inputs
- Extend the same Go codebase to also target iOS and Android