gitwtfhub

wtf is go-app?

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

Analysis updated 2026-06-24

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

TL;DR

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

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

Why would anyone build with this?

REASON 1

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

REASON 2

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

REASON 3

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

What's in the stack?

GoWebAssembly

How it stacks up

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 spin it up?

Difficulty · moderate Time to first run · 30min

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

Wtf does this do

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.

Yoink these 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

wtf 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.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.