Go-app is a Go package designed for building progressive web applications using WebAssembly. The project enables developers to write full-featured PWAs entirely in Go, compiling to WebAssembly for browser execution. The framework is built around a declarative syntax that allows developers to construct and compose HTML elements using only Go code, eliminating the need to write HTML or JavaScript directly. This approach keeps the entire application logic within the Go ecosystem while maintaining compatibility with standard web technologies.
The framework leverages Go's standard HTTP package model, meaning applications built with go-app comply with familiar Go HTTP interfaces. This design choice makes it accessible to Go developers who already understand the standard library's networking capabilities. Applications created with go-app support offline functionality out of the box, can run in their own window as standalone applications, and are designed to be SEO friendly, addressing key requirements for modern web applications.
The project requires Go 1.18 or newer and uses Go modules for dependency management. The documentation itself is built using go-app, demonstrating the framework's capabilities in a real-world context. Several applications have been built with the framework, including Lofimusic.app, Murlok.io, liwasc, and the go-app documentation site itself, showcasing the framework's viability for production use.
Community engagement around go-app shows active maintenance and support. GitGenius tracking data reveals a median issue and pull request response latency of 1.2 hours across 95 tracked items, with a mean response time of 150.8 hours, indicating responsive maintainers. The most active contributors include oderwat with 118 tracked events, maxence-charriere with 88 events, and rtrzebinski with 40 events. The project has attracted attention from developers working on other significant Go projects, as evidenced by overlapping contributors with repositories including concourse/concourse, golang/go, and dagger/dagger.
The framework supports financial contributions through Open Collective, with both individual and organizational sponsors listed. This funding model reflects the project's maturity and the community's investment in its continued development. The project is classified across multiple domains including web framework, progressive web apps, component-based architecture, single page applications, mobile support, and UI library functionality, positioning it as a comprehensive solution for Go developers seeking to build modern web applications without leaving the Go language ecosystem.