When we rebuilt the structa.cloud landing pages, the first decision was the rendering model. The old stack shipped a heavy React SPA: a shell, a hydration step, and a JSON API feeding it. The browser waited through all three before a user saw text.
The document model
We switched to the AHA stack — Astro, HTMX, Alpine. Every page is finished HTML in one response. The server composes the document from Wagtail StreamField blocks; the browser just paints it.
The difference is measurable: first paint dropped from seconds to tens of milliseconds, and SEO tools stopped complaining about empty shells. A page is a document again, not an application bootstrap.
What we kept
- HTMX fragments for the rare dynamic region
- Alpine.js for micro-interactions — accordions, toggles, counters
- Wagtail as the single source of content truth
No SPA shell, no hydration waterfall — just the web as it should be.
Comments
Sign in to join the conversation.
Commenting as