Repolode
maxence-charriere

maxence-charriere/go-app

A Go package for building progressive web apps with WebAssembly, using a declarative, component-based UI written entirely in Go.

Stars
8,973
Forks
406
Open issues
52
Last commit
yesterday

What is it?

go-app lets developers build progressive web apps in Go. UI is written as reusable components that create and compose HTML elements directly in Go code, so no separate JavaScript or template language is needed on the front end. The Go code is compiled to WebAssembly to run in the browser.

The package follows the standard Go net/http model, so an app can be served through http.Handle and http.ListenAndServe like any other Go web server. Apps built with it can run in their own window, support offline mode, and are designed to be SEO friendly. Routing between components is handled with app.Route.

The project requires Go 1.18 or newer and is installed as a Go module. The documentation site at go-app.dev covers declarative syntax and a getting started guide.

Key features

  • 01Build UI entirely in Go with a declarative, component-based syntax.
  • 02Compile Go to WebAssembly to run in the browser.
  • 03Follows the standard Go net/http interfaces for serving apps.
  • 04Supports offline mode and running in its own window as a PWA.
  • 05Provides component routing with app.Route.

Use cases

  • Building a web or PWA frontend for a team that prefers to write everything in Go.
  • Creating installable, offline-capable web apps that also need to be indexed by search engines.
  • Sharing Go types and logic between a backend server and a browser-side UI.

Quick start

  1. 1

    Initialize a Go module in your project folder

    go mod init
  2. 2

    Install the go-app package

    go get -u github.com/maxence-charriere/go-app/v11/pkg/app
  3. 3

    Follow the Getting Started guide on go-app.dev to build your first app

Topics

FAQ

What is go-app?
A Go package for building progressive web apps with WebAssembly, using a declarative, component-based UI written entirely in Go. go-app lets developers build progressive web apps in Go. UI is written as reusable components that create and compose HTML elements directly in Go code, so no separate JavaScript or template language is needed on the front end. The Go code is compiled to WebAssembly to run in the browser.
Is go-app free to use? What license does it have?
go-app is open source under the MIT license. Check the license terms before using it in commercial products.
Is go-app still maintained?
Actively maintained. The last commit to go-app was on Oct 21, 2026.
What can I use go-app for?
Building a web or PWA frontend for a team that prefers to write everything in Go. Creating installable, offline-capable web apps that also need to be indexed by search engines. Sharing Go types and logic between a backend server and a browser-side UI.
How do I install go-app?
Initialize a Go module in your project folder: go mod init Install the go-app package: go get -u github.com/maxence-charriere/go-app/v11/pkg/app Follow the Getting Started guide on go-app.dev to build your first app
Where can I get go-app?
The source code and installation instructions are on GitHub: https://github.com/maxence-charriere/go-app

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects