MyGo
v0.1.18 · macOS, Linux, Windows

Desktop apps in Go.Tiny, fast, fully typed.

One small binary for macOS, Windows and Linux, cross-compiled from any machine. Type-safe calls from TypeScript to Go, installers and auto-updates included.

Get started
Binary
~7MB
Memory, webview included
~62MB
CPU at idle
0%
main.go
type Greeter struct{}

// Greet returns a greeting.
func (Greeter) Greet(name string) string { return "Hello, " + name }

func main() {
	mygo.Bind(Greeter{})
	mygo.App.WhenReady(func() {
		mygo.NewWindow(mygo.WindowOptions{Title: "Hello", URL: "/"})
	})
	if err := mygo.App.Run(); err != nil {
		log.Fatal(err)
	}
}
src/main.ts
import { Greeter } from "./mygo"; // generated

document.body.textContent = await Greeter.greet("Ada");

./mygo is generated from main.go, with the types of your structs and the docs of your methods.