https://go-app.dev/ go-app Home Getting started V7 to V8 guide API reference Architecture Components Concurrency Declarative syntax JS/Dom Lifecycle Routing SEO Static resources Testing Built with go-app Examples Install GitHub Twitter Buy me a coffee Donate cryptos GitHub Sponsor Open Collective Index go-app Declarative syntax Standard HTTP Other features Next Report issue Support go-app go-app logo. go-app Circle CI Go build Go Report Card GitHub release Twitter URL [badge] Go-app is a package for building progressive web apps (PWA) with the Go programming language (Golang) and WebAssembly (Wasm). Shaping a UI is done by using a declarative syntax that creates and compose HTML elements only by using the Go programing language. It uses Go HTTP standard model. An app created with go-app can out of the box run in its own window, supports offline mode, and are SEO friendly. Declarative syntax Go-app uses a declarative syntax so you can write reusable component-based UI elements just by using the Go programming language. Here is a Hello World component that takes an input and displays its value in its title: type hello struct { app.Compo name string } func (h *hello) Render() app.UI { return app.Div().Body( app.H1().Body( app.Text("Hello, "), app.If(h.name != "", app.Text(h.name), ).Else( app.Text("World!"), ), ), app.P().Body( app.Input(). Type("text"). Value(h.name). Placeholder("What is your name?"). AutoFocus(true). OnChange(h.ValueTo(&h.name)), ), ) } Standard HTTP Apps created with go-app complies with Go standard HTTP package interfaces. func main() { // Components routing: app.Route("/", &hello{}) app.Route("/hello", &hello{}) app.RunWhenOnBrowser() // HTTP routing: http.Handle("/", &app.Handler{ Name: "Hello", Description: "An Hello World! example", }) if err := http.ListenAndServe(":8000", nil); err != nil { log.Fatal(err) } } Other features * SEO friendly * Installable * Offline mode Next * Getting started * Understand go-app architecture * API reference Loading home.md Report issue Found something incorrect, a typo or have suggestions to improve this article? Let me know :) Support go-app Hello there, I'am Maxence, the creator of go-app . Let's go straight to the point: I want to make this package become something big! Buying me a coffee , being part of the Open Collective , sponsoring me on GitHub , or giving me some cryptocurrencies, all would help me reach that goal, sustain the development, and boost motivation during long coding sessions. Buy me a coffee Donate cryptos Github sponsor Open collective [icon-192] Loading go-app documentation...