Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

lobehub/lobe-mygo

Developer Tools

A Go UI kit that brings Lobe UI components and design tokens to native desktop apps built with MyGo.

186
3
Go
MIT
3 days old

Overview

Lobe MyGo ports the Lobe UI design language to MyGo's native Go UI, so desktop apps can use React-style components without HTML, JavaScript, or a webview. It provides 70+ components across actions, form fields, choice controls, display, feedback, overlays, navigation, layout, code, and Markdown, plus light/dark theme tokens generated from @lobehub/ui, springs and shared-element transitions, and 2,300+ Lucide icons as Go functions. It targets Go developers building native desktop interfaces with MyGo.

The library claims to be pure Go without cgo, producing a small per-platform binary that can be cross-compiled. The token system is the bridge to Lobe UI: a Go app and a React app can share colors, radii, font sizes, and appearance behavior.

Getting Started

Prerequisites: Go 1.27 or later and a project based on MyGo.

go get github.com/lobehub/lobe-mygo

The README's minimal example calls theme.Apply(c) at the top of each view, reads tokens with theme.TokensOf(c), and uses action.Button inside a MyGo window:

package main

import (
	"fmt"
	"log"

	"github.com/egoist/mygo"
	"github.com/egoist/mygo/ui"
	"github.com/lobehub/lobe-mygo/pkg/action"
	"github.com/lobehub/lobe-mygo/pkg/theme"
)

var count int

func view(c *ui.Context) {
	theme.Apply(c)
	ui.Column(c).Fill().Center().Gap(12).Background(theme.TokensOf(c).BgContainer).Children(func() {
		if action.Button(c, "Hello Lobe", action.ButtonProps{Variant: action.Primary}).Clicked() {
			count++
		}
		ui.Text(c, fmt.Sprintf("Clicked %d times", count))
	})
}

func main() {
	mygo.App.WhenReady(func() {
		mygo.NewWindow(mygo.WindowOptions{Title: "Hello Lobe", Width: 480, Height: 320, Content: ui.View(view)})
	})
	if err := mygo.App.Run(); err != nil {
		log.Fatal(err)
	}
}

To browse components, use the live documentation site starting with Getting Started or run the native catalog locally. From a clone, go run ./catalog opens the catalog window, and go run ./catalog button/basic opens a single component page. For the WebAssembly-based docs site, run bun install && bun run dev; the catalog demos are in the catalog directory.

Constraints

  • Go 1.27 minimum, building on MyGo's native UI.
  • The library is a UI layer for MyGo, not a standalone GUI framework; existing MyGo application structure is required.
  • Local docs development needs Bun in addition to Go.
  • The project is MIT licensed (28).
  • README states no cgo and cross-compilation support, but compatibility with specific operating systems or GPU backends is not detailed in the provided material.

HotRepo's Take

Lobe MyGo entered HotRepo's Go new list on 2026-11-09 with 104 stars gained in its recorded growth window and 1 fork. That is early attention for a young repository, and its value depends on whether the Lobe UI look and token compatibility matter to your app. The strongest technical differentiator is the shared design-token layer with Lobe UI plus a pure-Go rendering path; the practical next check is the component catalog and whether the subset you need is present.

Written by AI from the project's README, updated . The project's own docs are the source of truth.

You might also like

  1. vivaui/vivaBuild native Go desktop apps that render through each OS's own window and GPU APIs, without a WebView or bundled runtime.Go101
  2. yappologistic/CUIA dependency-free C99 library of roughly 190 native UI components for building cross-platform Windows, macOS and Linux desktop apps.C625
  3. Caho1/open-claude-uiA React/CSS component library that reconstructs Claude's desktop design system, including motion physics, from decompiled binaries.TypeScript1,398
  4. oneo-me/nsgoWrite cross-platform apps in Go while each platform renders them with its own native views.Go134
  5. egoist/mygo-musicA native Go desktop music player for local files, with JavaScript plugins adding streaming catalogs and accounts.Go147