whatisgithub

What is go-app?

maxence-charriere/go-app — explained in plain English

Analysis updated 2026-06-24

8,891GoAudience · developerComplexity · 3/5Setup · moderate

In one sentence

A Go package for building installable Progressive Web Apps entirely in Go, no JavaScript or HTML required, by compiling components to WebAssembly and serving them through Go's standard HTTP model.

Mindmap

mindmap
  root((go-app))
    What it does
      Build PWAs in Go
      No JavaScript needed
      WebAssembly output
    Core Concepts
      Components
      Declarative syntax
      HTTP integration
    PWA Features
      Installable apps
      Offline support
      Standalone window
    Audience
      Go developers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a PWA that installs on a user's device and works offline, using only Go code without writing any JavaScript.

USE CASE 2

Add a web UI to an existing Go HTTP server by defining reusable components in Go that compile to WebAssembly.

USE CASE 3

Create a web app that runs in a standalone desktop-style window with full offline support, built entirely in Go.

What is it built with?

GoWebAssembly

How does it compare?

maxence-charriere/go-appfission/fissionanchore/syft
Stars8,8918,8598,925
LanguageGoGoGo
Setup difficultymoderatehardeasy
Complexity3/54/52/5
Audiencedeveloperops devopsops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Go 1.18 or newer, full documentation is on an external site separate from the README.

So what is it?

go-app is a Go package that lets developers build Progressive Web Apps, often called PWAs, using the Go programming language and WebAssembly. A PWA is a type of website that can be installed on a device like a regular app, works offline, and can run in its own window separate from a browser tab. go-app makes this possible entirely within Go code, without requiring developers to write JavaScript or HTML directly. The core idea is a declarative syntax for building user interfaces. Instead of describing a web page in HTML markup, you write Go code that defines what each piece of the page looks like and how it behaves. These pieces are called components. A component might represent a button, a form, a heading, or any section of a page. You assemble components together to build the full interface. The code is then compiled to WebAssembly so it runs in the browser. go-app fits into Go's standard HTTP model, which is the built-in way Go programs serve web content. You define which URL path shows which component, then start the server with a few lines of code. Because it follows the standard HTTP interfaces, it works alongside other Go web tools without special adapters. Apps built with go-app can run in standalone windows like desktop applications, support offline use, and are structured in a way that makes their content readable to search engines. The README lists several live apps built with the package, including a lofi music player and a network scanner tool. Installation requires Go 1.18 or newer and uses Go's standard module system. The README itself is brief and refers readers to a separate documentation site for full guides on getting started, component composition, and advanced usage.

Copy-paste prompts

Prompt 1
Using go-app, show me how to create a basic counter component in Go and serve it as a PWA at the /counter path.
Prompt 2
I have an existing Go HTTP server. Show me how to integrate go-app to render a component-based homepage without writing any HTML or JavaScript.
Prompt 3
Help me build a to-do list PWA using go-app that stores items locally, works offline, and can be installed from the browser.
Prompt 4
Show me how to compose multiple go-app components together to build a multi-section page, and how to pass data between parent and child components.

Frequently asked questions

What is go-app?

A Go package for building installable Progressive Web Apps entirely in Go, no JavaScript or HTML required, by compiling components to WebAssembly and serving them through Go's standard HTTP model.

What language is go-app written in?

Mainly Go. The stack also includes Go, WebAssembly.

How hard is go-app to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is go-app for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.