
Native apps in Go,
on every screen
Bellui is a UI toolkit for Go with Material Design 3 widgets and WebGPU rendering.
One codebase runs on macOS, Windows, Linux, Android, iOS and the browser.

Every widget, theme and extension in one app: take the gallery tour.
Material Design 3
A full MD3 component set and theme system: navigation bars and rails, sheets, chips, date and time pickers, snackbars, rich text and more, with light and dark schemes.
WebGPU rendering
One renderer drives Metal, Vulkan, D3D12 and browser WebGPU. The OpenGL backend stays available with the gl build tag.
Desktop, mobile and web
Build for macOS, Windows and Linux, package for Android and iOS, or compile to WebAssembly, all from the same Go code.
Plain Go
No markup language, no JavaScript bridge, no generated code. Widgets are Go values, and the native libraries ship inside Go modules.
Built for concurrent Go
Do slow work in goroutines as usual. bellui.Do, DoAndWait and RunOnMain hand the UI update back to the main thread.
Batteries included
Data binding and reactive state, dialogs, storage, translations, accessibility, sign-in with OIDC, an embedded web view, developer tools and testing helpers.
Extensions
Larger components ship as optional Go modules, so an app only pays for what it imports. All of them are drawn by Bellui itself: no HTML, no JavaScript.
Charts
Line, bar, scatter, pie, financial, hierarchical, 3D and geographic charts, with zoom, tooltips and animation.
Data grid
A spreadsheet-class table: virtual scrolling, sorting, filtering, editing, pinned columns, grouping and sparklines.
Code editor
Syntax highlighting, a gutter with line numbers, breakpoints and diagnostics, folding, find, completion and hover.
Graphs
An interactive node-and-edge canvas for directed acyclic graphs, over a graph model you can use without any UI.
Media
Video and audio playback with subtitles and device capture, decoded by FFmpeg.
Libraries and tools
The Go libraries Bellui is built on, each usable on its own, and tools we publish alongside it: Alidade, Clair and Uploader.
Hello, Bellui
// The first app: a label and a button that changes it.
package main
import (
"github.com/belluikit/bellui"
"github.com/belluikit/bellui/app"
"github.com/belluikit/bellui/container"
"github.com/belluikit/bellui/widget"
)
func main() {
a := app.New()
w := a.NewWindow("Hello")
hello := widget.NewLabel("Hello Bellui!")
w.SetContent(container.NewVBox(
hello,
widget.NewButton("Hi!", func() {
hello.SetText("Welcome :)")
}),
))
bellui.ShowAndRun(w)
}go mod init example.com/hello
go mod tidy
go run .Install the prerequisites and build your first app →
Alidade: a map of your code for AI agents
Alidade turns a whole repository into one graph and serves it to AI coding agents over MCP. An agent can ask who calls a function, what implements an interface, or which code uses a database column, and get the answer the compiler would give: Go through the Go type checker, TypeScript through its own compiler, plus .proto, SQL, Python and Markdown in the same graph. No model reads your code.
In its published benchmark, 47 call-graph questions over four public repositories, agents using Alidade were as accurate as agents using grep, at about half the cost per correct answer.
brew install belluikit/tap/alidade
alidade setup