# go-app **Repository Path**: rdor/go-app ## Basic Information - **Project Name**: go-app - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-24 - **Last Updated**: 2026-02-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

go-app

GitHub actions Go Report Card GitHub release pkg.go.dev docs Twitter URL

Go-app is a package for **building progressive web apps (PWA)** with the [Go programming language (Golang)](https://golang.org) and [WebAssembly (Wasm)](https://webassembly.org). Shaping a UI is done by using a **[declarative syntax](https://go-app.dev/declarative-syntax) that creates and compose HTML elements only by using the Go programing language**. It **uses [Go HTTP standard](https://golang.org/pkg/net/http) model**. An app created with go-app can out of the box **runs in its own window**, **supports offline mode**, and is **SEO friendly**. ## Documentation (built with go-app) [![go-app documentation](docs/web/images/go-app.png)](https://go-app.dev) ## Install **go-app** requirements: - [Go 1.18](https://golang.org/doc/go1.17) or newer - [Go module](https://github.com/golang/go/wiki/Modules) ```sh go mod init go get -u github.com/maxence-charriere/go-app/v10/pkg/app ``` ## Declarative syntax Go-app uses a [declarative syntax](https://go-app.dev/declarative-syntax) so you can **write reusable component-based UI elements** just by using the Go programming language. Here is a Hello World component that takes an input and displays its value in its title: ```go type hello struct { app.Compo name string } func (h *hello) Render() app.UI { return app.Div().Body( app.H1().Body( app.Text("Hello, "), app.If(h.name != "", func() app.UI { return app.Text(h.name) }).Else(func() app.UI { return app.Text("World!") }), ), app.P().Body( app.Input(). Type("text"). Value(h.name). Placeholder("What is your name?"). AutoFocus(true). OnChange(h.ValueTo(&h.name)), ), ) } ``` ## Standard HTTP Apps created with go-app complies with [Go standard HTTP](https://golang.org/pkg/net/http) package interfaces. ```go func main() { // Components routing: app.Route("/", func() app.Composer { return &hello{} }) app.Route("/hello", func() app.Composer { return &hello{} }) app.RunWhenOnBrowser() // HTTP routing: http.Handle("/", &app.Handler{ Name: "Hello", Description: "An Hello World! example", }) if err := http.ListenAndServe(":8000", nil); err != nil { log.Fatal(err) } } ``` ## Getting started **Read the [Getting Started](https://go-app.dev/getting-started) document**. ## Built with go-app - [Lofimusic.app](https://lofimusic.app/collegemusic-lonely) - [Murlok.io](https://murlok.io/) - [liwasc](https://pojntfx.github.io/liwasc/) - [go-app Docs](https://go-app.dev/) ## Contributors ### Code Contributors This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. ### Financial Contributors Become a financial contributor and help us sustain [go-app](https://github.com/maxence-charriere/go-app) development. [[Contribute](https://opencollective.com/go-app/contribute)] #### Individuals #### Organizations Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/go-app/contribute)]