explaingit

maxence-charriere/go-app

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

TLDR

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

Things people build with this

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.

Tech stack

GoWebAssembly

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

In plain English

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.
Open on GitHub → Explain another repo

← maxence-charriere on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.