LiveTemplate builds reactive web UIs in standard HTML and Go. You write an
ordinary html/template and a small Go controller; the browser sends ordinary
form data; the server re-renders, diffs, and patches the page. There is no
client-side framework to learn, no second state model to keep in sync, and no
build step for the common app screens.
The defining idea is that you never leave HTML. A <button name="increment">
is the action — you don't annotate it to make it reactive. You reach for an
lvt-* attribute only for behavior HTML itself cannot express (a debounce, a
keyboard shortcut, a reactive class toggle), never as boilerplate.
It's a good fit when you're building app screens in Go and want live behavior — forms with inline validation, multi-tab sync, dashboards that update themselves, cross-user views — without standing up a separate frontend. Because the same program works as a plain form POST first, it degrades gracefully to environments with no JavaScript and upgrades to WebSocket-driven real time where you want it.
It's a weaker fit for highly bespoke client-side interaction (canvas editors, offline-first apps, animation-heavy UIs) where the logic genuinely belongs in the browser.
If you've used other tools, the short version: LiveTemplate keeps HTML standard and moves reactivity to the server, instead of layering a new vocabulary on top of it.
hx-*, plus server-owned state and DOM diffing built in.html/template instead of a new DSL, with reactivity built in rather than wired up.x-* and no separate client-side state model.Once the model clicks, the Concepts section goes a level deeper, and the Recipes and Apps sections are copy-paste starting points.