
Wails
A Go framework for building desktop apps with a web-based user interface.
- Stars
- 36.9k
- Forks
- 1.9k
- Licence
- MIT
- Language
- Go
- Last update
- 4 days ago
- Type
- Framework
What it is
Wails lets Go programmers build desktop applications using HTML, JavaScript, and CSS for the interface, with Go handling the backend logic. It packages both into a single binary and handles project creation, compilation, and bundling. The README says it uses native rendering engines rather than an embedded browser, and offers native dialogs and menus.
- Build a desktop utility with a Go backend and a web frontend
- Call Go methods from JavaScript and receive auto-generated TypeScript definitions
- Add native menus, dialogs, and dark/light mode to a Go app
- Bundle a Go program and its web UI into one distributable binary
Great for
- Go programmers who want a desktop app with a web-style interface
- Developers who want to add a frontend to an existing Go program
- Teams wanting a lighter alternative to Electron for Go-based apps
- Developers who already know React, Vue, Svelte, or Angular
Not ideal for
- People who do not know Go, since the backend is written in Go (reason: the framework assumes Go programming skills)
- Projects needing a browser-based web server rather than a desktop app (reason: Wails targets packaged desktop binaries)
- Anyone needing a mature v3 ecosystem, since the README lists v2 as the stable line and v3.0.0 with no release binaries (reason: version status is still settling)
How to get it
- 1
Install with a package manager
You'll need: Go
Install Wails v2 CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latestInstall Wails v3.0.0 CLI
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0 - 2
Run it
- Choose v2 (stable) or v3.0.0 based on the docs you need
- Run the install command for your chosen version
- Follow the full installation instructions linked from the README at wails.io or v2.wails.io
- Use the Wails CLI to create and build a project
- 3
Get the most out of it
- Use the pre-built templates to start a frontend quickly
- Use auto-generated TypeScript definitions for type-safe calls from JavaScript to Go
- Use the unified eventing system to pass messages between Go and JavaScript
- Check the roadmap discussion and WEP process if you want to follow or propose changes
Downloads
Strengths
- Lets Go developers reuse familiar web frontend tools
- Produces a single binary combining Go code and the web UI
- Supports macOS, Windows, and Linux per the project topics and features list
Trade-offs
- Requires Go knowledge and familiarity with web frontend tooling
- Version 3 is newly released and the latest release lists no binaries, so you may need to build it yourself
- The README is truncated here, so detailed platform and setup requirements are not fully confirmed
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| wails (this) | 36.9k | Framework | intermediate | 4 days ago | Go programmers who want a desktop app with a web-style interface |
| electron | 124k | Framework | intermediate | 4 days ago | Web developers who want to ship a desktop app using skills they already have |
| nativefier | 35.2k | CLI | beginner | 3.1 years ago | People who want a site like WhatsApp Web or Gmail in its own window |
| atom | 60.7k | App | beginner | 3.8 years ago | Developers who want a desktop code editor they can customize with packages |
| yazi | 43.2k | App | intermediate | 4 days ago | People who already spend time in a terminal and want a faster way to browse folders |
| marktext | 63.5k | App | beginner | 4 days ago | People who write notes or articles in Markdown and want a clean, minimal editor |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.