Naive is not the same as wrong. Sending 2,500 HTML divs every 200 ms sounds like a design mistake. Brotli makes it right. Before you reach for a diff algorithm, a binary streaming protocol, or a canvas renderer: measure first. The naive approach is often fast enough, and its simplicity has real value.
The backend doesn't matter. Datastar receives SSE and morphs the DOM regardless of whether the server is PHP, Go, Python, Ruby, or Rust. Everyone keeps their preferred language; the pattern scales because it’s built on standard HTTP. php-via demonstrates it with PHP; the pattern works with any server language.
SSE + DOM morphing is an underrated combination. One persistent HTTP connection, standard compression, zero hand-written client code. For anything that’s primarily server→client, it’s worth reaching for this stack first, before pulling in WebSockets, client-side state machines, and build pipelines.
The web platform can do more than we use. SSE, Brotli, HTTP/2 multiplexing: all of it is available in every browser today, no library required, no build step. Most of it goes unused because the ecosystem reaches for the next abstraction before exhausting the standards underneath. DOM morphing is Datastar’s contribution (12 KB, no build step). Sometimes the right move is to do less.