I built an experimental web runtime called StateSurface:
https://github.com/superlucky84/state-surface https://state-surface.subtleflo.com/
It explores a simple idea:
Server owns state. Client owns DOM projection. Pages are real MPA HTML, and in-page updates stream over NDJSON.
The model has four pieces: - Surface: HTML page shell with anchors - Template: stateless TSX projection - Transition: server-side async generator yielding state frames - Action: declarative HTML trigger
This is not production-ready — it’s a prototype to explore whether server-owned state + streaming UI can be a useful alternative to SPA-heavy architectures.
Would love feedback, especially from people familiar with htmx, LiveView, Hotwire, or server-driven UI in general.
Show HN: StateSurface – server-owned state and NDJSON streaming for MPA pages
github.com