I wish more people take this approach, specially public services.
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.
> When we launched, the number of people completing the form doubled.
I don't want to be that guy, but the title is misleading. The number of users completing the form doubled.
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 ...
I understand people need to make arguments for things they like but provide more please.
What were some of the downsides? Illuminating the tradeoffs would elevate this post from good to great.
HTML doesnt have hundreds evangelists writing blogs about how cool it is. So it doesn’t really matter what the benefits are if juniors are going to keep showing up writing client-side react components. And the product managers letting them because of their sparkling (but naive) personality.
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.
I will never stop singing the praises of plain HTML. It's accessible, it's portable, it's simple, but for some reason we need horrid JavaScript nonsense to operate.
Use Next.js Bro just know React and complaining it.
It will still work 30 years from now! 300 years! 3000 years. There will be no strange error messages in the log, no browser updates breaking stuff.
Personally, rather than this luxurious approach, I just do one giant form and store all values in local storage. If something is wrong have one message at the top listing which fields failed validation and why. Generate some css to put a red border around the fields.
Local storage might not be a good idea for such sensitive data but if you can get away with the simplicity it's lovely.
Everyone reinventing what Rails has been saying all along...
Beautiful story!
It shows just how far gone webshit is when the obvious must be stated time and time again
"I took a very bold decision and built a new version of the site using Astro"
It's true. Also, if you despise bloat, you may like my JS-free LLM site: https://ch.at/
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
Use Next.js!!! Bro just know React and complaining it.
It'll be replaced by a new react app within a few hires lol
>She’s connected to the complementary WiFi and is browsing the GOV.UK pages on Housing Benefit. She’s not slicing fruit; she’s arming herself with knowledge.
>The PSP’s web browser is - charitably - pathetic. It is slow, frequently runs out of memory, and can only open 3 tabs at a time.
Alluring, an annoying property of private software development is that making websites and software in general inaccessible to lower end hardware is actually a positive effect, as it filters out 'undesirable' lower-income prospects.
That, along with pressure to produce fast, without much concern for quality (with notable privileged exceptions of luxury software like Apple or 1B+ user software like Google), as well as a disregard for sourcing "I don't care if you do it yourself, or npm install software from effectively unpaid volunteers", ends up in a state of software lacking craftmanship, software that one is not proud of to work in.
So funny to me that the kids nowadays are rediscovering HTML lol.
Having been building websites since the mid 90's, I laugh at terms like "HTML-first website"
[dead]
[dead]
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.