Server-rendered HTML is fast enough, actually

Closetags 8 min read

We build most client web applications with Django, HTMX and a little Alpine. Here's why that outperforms a SPA for the majority of business software.

The default assumption for a new web application is a JavaScript framework with a separate API. For a lot of business software, that choice imports substantial complexity to solve a problem the project doesn't have.

What you're actually buying with a SPA

Client-side routing, optimistic updates, and offline capability. If your application genuinely needs those — a design tool, a collaborative editor, a mapping interface — a SPA is the right call.

What most business software needs instead

Forms that validate, tables that filter, and pages that load fast on a poor connection. Server-rendered HTML with HTMX handles all three with roughly a tenth of the code, no build-step for the interactive parts, no API contract to version, and no client-side state to desynchronise.

The honest trade-offs

You give up rich offline behaviour and some interaction polish. You gain a codebase a single developer can hold in their head, and pages that render before a SPA has finished parsing its bundle. For a dashboard used by forty people in an office with unreliable internet, that's not close.

Got a project in mind?

We'll tell you honestly whether we're the right fit.

Start a project