Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A Go toolkit for building reactive web interfaces with server-side html/template fragments and Alpine.js.

Flowbite React Icon library is the official collection of SVG icons, provided freely and as open-source.

Open-source AI resume builder with multi-template editing, PDF export, and LLM-based polish, deep-dive, and mock interview features.

A lightweight jQuery-based HTML editor that replaces textareas with a fast, minimal rich text editing interface.

Deprecated NodeJS/Browser API client and CLI tool for DatoCMS.
Fir is a Go toolkit for building reactive web interfaces by re-rendering html/template fragments on the server and patching the DOM with an Alpine.js plugin, positioning itself between Phoenix LiveView and htmx. It is an open-source library hosted on GitHub (github.com/livefir/fir) that ships with a Go server library and an Alpine.js plugin.
Fir is a Go library and Alpine.js plugin for building reactive web applications with server-rendered HTML. It takes Go code and html/template templates as input, and produces HTML fragments that update the page in response to user or server events. Fir runs inside a standard Go web server and is designed for developers who want reactive behavior without learning a full JavaScript framework.
html/template library.Go developers with moderate HTML/CSS/JS skills who want to build reactive apps without mastering a complex frontend framework are the primary audience. It is a good fit for building internal tools, interactive forms, and real-time feeds. The page explicitly notes Fir works well for these three use cases with low effort.
html/template and patching updates via Alpine.js.github.com/livefir/cli tool to generate a new project and route, then run it on localhost:9867.Fir introduces a single declarative expression, fir:event-name:event-state::template-name, which attaches to Alpine.js event binding syntax. When an event fires, Fir sends a request to the server, re-renders the specified html/template, and patches the page with the returned fragment. The Go API mirrors Phoenix LiveView concepts: routes (Fir Route), loading data on page load (Fir OnLoad), and handling user events (Fir OnEvent).
Fir is an open-source toolkit published on GitHub under github.com/livefir/fir, with an Alpine.js plugin published on npm under @livefir/fir. Both libraries are freely available.
The GitHub repository states: "DEVELOPMENT STOPPED ON FIR" — development has pivoted to a new project called livetemplate, a Phoenix LiveView-inspired web framework. The repository remains available, but new feature work is happening on livetemplate.
No. Fir has built-in pubsub over websocket, but websockets can be disabled. In that case, UI diffs are still delivered over standard HTTP, allowing the toolkit to work in simpler deployment environments.
Yes, thanks to progressive enhancement. You can begin with a JavaScript-free HTML file and Fir's Go server API for a quick setup. The Alpine.js plugin is then added gradually to enable DOM updates without page reloads.
The expression fir:event-name:event-state::template-name piggybacks on Alpine.js event binding syntax. It declares which html/template should be re-rendered on the server when an event occurs, and the resulting HTML fragment is applied to the page.
