Skip to main content

Show HN: Build progressively enhanced reactive HTML apps using Go and Alpine.js https://ift.tt/y7EkPtQ

Show HN: Build progressively enhanced reactive HTML apps using Go and Alpine.js Fir leverages Golang’s standard library html/template package and a bit of alpinejs to allow building reactive UIs. You start with plain old html and use alpinejs to enhance it to bring no-page-reload interactivity to web apps. The Fir toolkit is designed for Go developers with moderate html/css & js skills who want to progressively build reactive web apps without mastering complex web frameworks. It includes a Go library and an Alpine.js plugin. How it works ? On receiving user-interactions the fir server re-renders html templates and sends it over the wire where the fir client library selectively updates the changed areas. When a user event is received by a Fir route, an array of html templates are rendered on the server and returned as an array of DOM events to the browser. The DOM events are consumed by the alpinejs plugin and dispatched within the DOM where listeners attached to elements can use the event to update the DOM. See the demo and quickstart here: https://ift.tt/CPV7wck https://ift.tt/CPV7wck May 10, 2023 at 06:03AM

Comments

Popular posts from this blog

Show HN: KittenDNS – easy to setup, rule engine, LetsEncrypt compatible https://ift.tt/JEbrc0i

Show HN: KittenDNS – easy to setup, rule engine, LetsEncrypt compatible My goal was to create a DNS server as simple as the LDAP server I've been contributing to (glauth) and here it is: https://ift.tt/i6S4IHQ A few things to know about it: - It is easy to configure using a Toml file - I am using it to bail my coredns/etcd instances when under attack - (yes, it also works as a service location server) - It comes with a simple, plain English, rule engine that doesn't do much at this point - It can be used with LetsEncrypt. I use it to retrieve certificates for my home servers. - RFC: all the nice ones :) Anyway, feedback is welcome. May 16, 2022 at 03:34AM