# maxence-charriere/go-app

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/maxence-charriere-go-app).**

8,929 stars · 407 forks · Go · MIT

## Links

- GitHub: https://github.com/maxence-charriere/go-app
- Homepage: https://go-app.dev
- awesome-repositories: https://awesome-repositories.com/repository/maxence-charriere-go-app.md

## Topics

`awesome-go` `go` `golang` `gui` `pwa` `ui` `wasm`

## Description

go-app is a WebAssembly frontend framework and UI library for building progressive web apps using the Go programming language. It enables the execution of Go code directly in the browser to manage application logic and client-side views.

The framework provides a component-based system for creating reusable interface elements with declarative syntax and automatic state synchronization. It includes a client-side router that maps URL paths to specific interface components to enable navigation within a single-page application.

The project covers general frontend development capabilities, including state-driven DOM reconciliation, event dispatching, and integration with standard HTTP backends.

## Tags

### Web Development

- [WebAssembly Runtimes](https://awesome-repositories.com/f/web-development/webassembly-runtimes.md) — Executes Go code in the browser via a WebAssembly runtime to manage client-side application logic and DOM manipulations.
- [WebAssembly Frontend Frameworks](https://awesome-repositories.com/f/web-development/webassembly-frontend-frameworks.md) — Provides a full framework for building user interfaces where Go is compiled to WebAssembly as the primary execution target.
- [Application Route Handling](https://awesome-repositories.com/f/web-development/application-route-handling.md) — Maps specific URL paths to interface components to display the correct content based on the request. ([source](https://github.com/maxence-charriere/go-app/blob/master/README.md))
- [Client-Side Routers](https://awesome-repositories.com/f/web-development/client-side-routers.md) — Ships a navigation system that maps URL paths to specific interface components within a single-page application.
- [Client-side Routing](https://awesome-repositories.com/f/web-development/client-side-routing.md) — Manages application views and URL paths within the browser to enable seamless navigation without page reloads.
- [Progressive Web Apps](https://awesome-repositories.com/f/web-development/progressive-web-apps.md) — Supports the development of installable web applications that provide a native-like experience in the browser.
- [URL-Driven State Synchronization](https://awesome-repositories.com/f/web-development/url-driven-state-synchronization.md) — Synchronizes the application's internal state with the browser URL to enable deep linking and view navigation.

### User Interface & Experience

- [Component-Based UI Libraries](https://awesome-repositories.com/f/user-interface-experience/component-libraries/component-based-ui-libraries.md) — Provides a system for creating reusable interface elements with declarative syntax and automatic state synchronization.
- [Declarative Component Architectures](https://awesome-repositories.com/f/user-interface-experience/declarative-component-architectures.md) — Provides a structural architecture for building user interfaces via a hierarchy of nested, reusable components.
- [Reusable UI Components](https://awesome-repositories.com/f/user-interface-experience/reusable-ui-components.md) — Enables the creation of reusable interface elements using a declarative syntax for consistent UI design. ([source](https://github.com/maxence-charriere/go-app#readme))
- [State Reconciliation Strategies](https://awesome-repositories.com/f/user-interface-experience/state-reconciliation-strategies.md) — Updates the browser DOM by comparing new component states against the current view to apply minimal changes.
