Need help with go-app?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

5.4K Stars 258 Forks MIT License 1.1K Commits 37 Opened issues


A package to build progressive web apps with Go programming language and WebAssembly.

Services available


Need anything else?

Contributors list


Circle CI Go build Go Report Card GitHub release docs Twitter URL

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.

Documentation (built with go-app)

go-app documentation


go-app requirements:

go mod init
go get -u

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 {

name string


func (h *hello) Render() app.UI { return app.Div().Body( app.H1().Body( app.Text("Hello, "), app.If( != "", app.Text(, ).Else( app.Text("World!"), ), ), app.P().Body( app.Input(). Type("text"). Value( Placeholder("What is your name?"). AutoFocus(true). OnChange(h.ValueTo(&, ), ) }

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{})

// HTTP routing:
http.Handle("/", &app.Handler{
    Name:        "Hello",
    Description: "An Hello World! example",

if err := http.ListenAndServe(":8000", nil); err != nil {


Getting started

Read the Getting Started document.

Built with go-app


Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain go-app development. [Contribute]



Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.