goapplib

A Go library for server-rendered web apps. Pages are Go views rendered through templates, the parts that need client code are islands mounted by a small TypeScript kit, and an app's own Go handlers can run in the browser as wasm when a round trip to the server is too slow.

Pages, mixins and htmx

Views load their own data, mixins add pagination, auth and filtering, and the same templates render whole pages and htmx fragments.

The Go library →

Islands

A page names its islands and their slots in Go; tsappkit mounts each one when its load strategy says to: at once, when the browser is idle, when its slot scrolls into view, or when a media query matches.

The TypeScript kit →

Go handlers in the browser

wasmhost runs an app's HTTP or Connect handlers as wasm in a Web Worker, over files the page hands it, and the page's clients can't tell it from a server.

The worker host →