How much JavaScript do you actually need to build a fully interactive web app?

Less than you think.

In the latest post in my Unpoly series I walk through the client-side capabilities that make it possible.

Also every Unpoly default is tunable, every action fires an event you can intercept, and you can trigger fragment replacement from any custom logic you like.

#WebDevelopment #Unpoly #HypermediaApps #JakartaEE #ServerSideRendering

https://zeromagic.eu/posts/unpoly-client-side-capabilities/

Unpoly Client-Side Capabilities

Web applications that use Unpoly will primarily use HTML markup and custom attributes to drive interaction. It is not against the philosophy to use JavaScript — quite the opposite. Unpoly offers a very open API that lets custom code and Unpoly interact very comfortably.

All Technology, Zero Magic

My latest post about #Unpoly describes HTTP headers that the library uses to optimize backend communication

https://zeromagic.eu/posts/unpoly-server-side-protocol/

Unpoly Server-Side Protocol

While majority of Unpoly magic happens on the client-side the server still stays in control. Unpoly utilizes HTTP headers in request and response to steer both server and client-side actions

All Technology, Zero Magic

I have had good first experiences with #Unpoly (https://unpoly.com/) today. Easy to add to new and existing projects and enables a "SPA feeling" with little effort. Also allows get requests to asynchronously fetch context into the page, all by using existing backend and HTML templates.

#WebDev #Javascript #HTML

Unpoly - Progressive enhancement for HTML

First impression on three frontend libraries.

HTMX.
- very KISS
- little to no assumptions
- most flexible
- very few frills (take hx-indicator and be happy).

Unpoly.
- the use case is swapping a target from the response HTML either into a *matching* target or a new layer (modal, drawer, etc)
- some frills
- the compiler kinda pokes into jQuery territory

Turbo.
- three libraries in a trenchcoat
- feels kinda limited
- really needs to be paired with Stimulus

#HTMX #unpoly #hotwire

What are people's critiques of things like #HTMX and #Unpoly? I've seen folks excited about them and they do seem cool (and nice for old and/or low power devices), but I've also seen people dismiss them but I haven't really seen why?

pignastico aggiornamento sulla via della persistente miglioranza! (aggiornamenti Pignio)

È incredibile e pazzesco quanto in questi giorni sto migliorando infinitamente il mio Pignio, anziché marcire spiritualmente (…per quanto continuando a farlo fisicamente perché, se pur posso programmare in giro, è chiaramente più comodo e produttivo farlo a casina). Soprattutto, penso di aver risolto diversi problemi in un colpo solo stavolta, quindi miao!!! Poi oh, certamente Pignio non mi libererà in maniera magicamente definitiva dalla brama profonda che avrei per il ficcarmi un coltello in gola, però finché dura è la distrazione migliore che ho; mi salvo le mie immaginette perverse, e da stamattina pure i video, e faccio finta che vada tutto bene. 👻

Per prima cosa… cercavo, già da quando la settimana scorsa ho iniziato a sviluppare, un metodo per rendere l’esperienza di navigazione del sito più simile ad una SPA, cioè quelle webapp moderne tutte lato client che da anni vanno tanto di moda e non funzionano su nessun cazzo di browser se non le ultime 3 versioni major dei 3 browser esistenti… ma, ovviamente, tenendo il cuore della app sempre lato server. Ecco, la conseguenza di ciò è già in produzione, ma io ancora non riesco a credere che, alla base, sia stato così semplice: ho trovato questo coso chiamato Unpoly (cioè, Copilot me lo ha detto, ops), ed è bastato aggiungere il suo bundle JavaScript al mio HTML, + 3 righe di setup, per avere la navigazione senza refresh della pagina… sia i link che i form vengono gestiti infinitamente più velocemente, perché il browser non deve distruggere e ricreare tutto il DOM e gli affarini connessi ogni volta. 😳

Dovrò sistemarlo meglio nei giorni a venire, soprattutto perché di default non ha animazioni, ma è fantastico che alla base funzioni già completamente da solo… senza né cambi alla marcatura HTML, né l’aggiunta di codice sul server; cosa che quindi lo rende completamente plug and play, a differenza di (se ho capito bene) HTMX, un’altra libreria per fare questo tipo di fancy (e mi sa che, se le cose stanno così, implementerò questa libreria anche sui miei siti statici). L’unica cosa per cui dovrò aggiungere degli attributi HTML specifici (e solo quelli, nient’altro!) è per il caricamento progressivo nelle pagine degli elementi… che comunque è qualcosa che, se avessi fatto con codice custom, avrebbe richiesto ben più dell’aggiunta di 2 attributi HTML, quindi non c’è proprio niente di cui lamentarsi. Per ora l’ho fatto solo sulla home, che era la sezione più urgente su cui implementare una qualche paginazione, e così ho modo di testare se ho fatto le cose per bene, prima di passare alla ricerca e alle collezioni. (Spoiler: NON le ho fatte per bene; c’è un bug lieve che, ovviamente, ho scoperto solo in produzione…) 🐌

E, nel frattempo… sto provando anche ad usare la funzione di gestione dei progetti di GitHub, per evitare di perdermi le cose da fare per strada (cosa che, ahimè, succede spesso)… e per evitare di perdere il mio spirito per strada, perché credo che la lavagna kanban, con le cose che si accumulano da una parte per poi spostarsi via via dall’altra man mano che si completano, sia segretamente soddisfacente. Forse è anche un’arma a doppio taglio, perché, casomai finirò con task arretrate di mesi (e, statisticamente, succederà), queste staranno lì belline, e la gente potrà rinfacciarmelo… ma pazienza, la tabella resta comunque pubblica per chi vuole spoilerarsi le prossime schifezze (o, non sia mai, contribuire con codice o documentazione a quello che è un progetto open-source, non sia mai!!!): https://github.com/octospacc/Pignio/projects. 🦿

Boh, comunque sia, per chi ancora non ha goduto e sente l’impellente bisogno di farlo (adesso ben più di prima) ricordo che l’applicazione è su pignio.octt.eu.org Con anche il manifest PWA e tutto, tra l’altro, con cui si aggiunge per bene come webapp su Chromium… ma non su Firefox, perché ancora non ho un’icona pronta… e pure questa è una questione da risolvere velocemente, perché altrimenti ho difficoltà a trovare la app sulla mia stessa schermata home del telefono. (“Se tornate ancora indietro vi do un pignio!”) 😤

#frontend #OpenSource #webdev #Pignio #Unpoly

Okay so today I learned #unpoly intercepts history requests (at least on boosted links).
So... Optimizing responses for Unpoly is kind of… not very straightforward.
Tinkering with #unpoly is soooooo much fun. Though the layers concept needs some getting used to.
:heart_clockwork: 0x4d6165 :queer_anarchy: (@0x4d6165)

I wish this got more attention than htmx cause it seems to support graceful degradation better and the creator is less of chud it seems https://unpoly.com

wanderingwires

"10 reasons why #Unpoly may be a better choice than #htmx" https://matteosonoio.it/unpoly/

#Htmx being a better choice than #livewire imvho, imagine what you can do if you understand how to use #unpoly. The most unknown gem in #progressive enhancement world, please ask if you want more arguments :)

10 reasons why Unpoly may be a better choice than htmx

htmx and Unpoly are JavaScript libraries that add interactivity to multi-page applications (MPA). Here’s why Unpoly might be better choice.