Building an HTML-first site doubled our users overnight

edent 1060 points 476 comments June 10, 2026
mohkohn.co.uk · View on Hacker News

Discussion Highlights (20 comments)

freedomben

Good post, but: > A venerable web application pattern that has had a small modern renaissance thanks to Remix Remix is not that popular. I don't think attributing this to remix is accurate. Next.js quite possibly.

entropichorse

People who built a crappy website using React are just as likely to build a crappy website using Astro, HTML-first approach or any other technology

tootie

I was a little confused by "doubled our users" since that's more about inbound traffic than site experience. I guess it's really shorthand for "halved form abandonment" which is still pretty great.

ungreased0675

Empathy and respect for users is what product managers should be doing. Shipping tens of megabytes per web page is impolite, if not outright disrespectful to users.

wmanley

The counterargument: In Defence of the Single Page Application: https://williamkennedy.ninja/javascript/2022/05/03/in-defenc...

brianwmunz

Maybe this is heretical in today's AI hype climate but...weirdly due to the rise of AI, then AI-slop polluting everything, a lot of old fundamentals are coming back. Clear, well-structured, descriptive content on a well-built page has a better shot of being picked up for SEO/AEO/whatever which are the same best practices from 2005. A lot of these tips and tricks and hacks just aren't going to move the needle as much anymore imo.

jrochkind1

> this was a regulated monopoly, and if their customer satisfaction dropped below 96% (if I remember correctly) it could result in millions of pounds in fines. OK, I'm still at the beginning and irrelevant to the article, but as a USA-ian, I am so jealous about that. Unheard of here.

t1234s

Having been building websites since the mid 90's, I laugh at terms like "HTML-first website"

melon_tsui

Interesting they went with Astro.Makes sense for a form-heavy site. No JS until you need it,and it handles page transitions cleanly.

masa-kozu

Designing for failure modes (bad network, old devices, no JS) often leads to better systems even in the happy path. This is a good case study of that.

faangguyindia

Most of my apps are now simply HTMX + Go + SQLite. I've found it's enough for most projects. One of my sites is image heavy and serves 10 TB of traffic per month. For this, I use the following setup: 1. S3 (I wanted reliable data storage) 2. In front of it, I have Cloudflare (with Tiered Cache enabled, which makes POPs prefer pulling from Cloudflare rather than the origin). I've set rules to cache everything on both the browser and Cloudflare for 1 year, ignore origin cache policies, ignore query strings, etc., and I simply use immutable objects that require revisioning. 3. BunnyCDN in front Cloudflare will not let you run an image heavy site on its own, so I use this approach to massively cut the bills. Their policy says you cannot use it primarily for images; it must be used for HTML, CSS, JavaScript, and other site content. And if you run only S3, the bills will be huge. But yes, lately I’ve been building mobile apps. PWAs are limited; the OS can evict IndexedDB storage, so I cannot offer people reliable data storage in the app without sign up or involving a backend. What can I do? So I was forced to switch to Flutter on Android, but I ran into another pain point: app updates sometimes spend a lot of time "under review," which is frustrating. For the same app, I maintain a web app that is very quick to update by comparison. I wonder why there isn't a mobile OS that simply lets you build apps with JavaScript, HTML, and CSS and gives you reliable storage without all this effort. I like how quickly you can update PWA app.

nobleach

Recently I had to migrate an old SpringBoot app that had a React front-end to a new cluster. Not wanting to mess with super-old dependencies, I opted to rewrite it on a new version of Java/SpringBoot. When it came to the frontend, I paused. I couldn't come up with a single good reason why this app needed React. I rewrote the frontend in straight HTML with a little bit of JavaScript for DOM manipulation. I literally used `var` instead of `let/const` just to drive the point home... (yes, that was overkill). But you know what I didn't need? A BUILD PROCESS! No npm deps. No vite/rsbuild/etc. It was like I had forgotten we could even DO that. Don't get me wrong, I actually have enjoyed React over these past 10 years. But, including it blindly is just silly.

qsort

If you're a "React person", as the article puts it, friendly reminder that you can render components to HTML and serve that to the user. I have done exactly that on a project that was under similar constraints. The UI models live in .tsx files and the browser gets pure HTML with zero JS by default.

malteg

in the bio ... "has over twenty years of experience building highly accessible and usable web applications" why not take the html5 standard (see https://html.spec.whatwg.org/ ) and if needed (dont think so for these use cases... "for clients ranging from energy companies to political parties") htmx or alpinejs ...

oulipo2

Totally agree, gov pages should be widely accessible. Also gov services should NEVER mandate internet access. There should always be a way for tech-illiterate people to ask someone, and fill their forms

dirkc

My go-to for spinning up a site has been Jekyll + Bootstrap with the occasional bit of React for well over 10 years now. While it still does the job, I'm a little curious to explore more modern options, if for nothing else to understand the choices a more junior dev would face/make today. I'm seriously considering giving Atro a go. Is it worth it?

sjtgraham

I built apps like these on GOV.UK over 10 years ago for the Ministry of Justice. We built our own form wizard library that let us validate long forms in steps and break them out into multiple pages because Ruby on Rails didn't support doing that out of the box. It was a very important principle back then that everyone should be able to make use of these digital services regardless of whatever users were using to access them.

oybng

It shows just how far gone webshit is when the obvious must be stated time and time again

skylovescoffee

"I took a very bold decision and built a new version of the site using Astro"

tgtweak

It'll be replaced by a new react app within a few hires lol

Semantic search powered by Rivestack pgvector
10,094 stories · 94,891 chunks indexed