How building an HTML-first site doubled our users overnight
139 points by krig
139 points by krig
There was a sad coda; as is the way of contract work, I moved on. I explained what I had built to my replacement, that it always worked even without javascript. He was appalled and said, “but that’s a lot more work for us.”
Yes it's work to make things that work for people. But that's kinda the whole job.
It strikes me as kind of odd, because if you take into account the labour required to keep the thing running (e.g. following the JS ecosystem version churn), it's almost certainly more work to do the react app than the simple HTML one.
What the author's successors must have really meant, I think, is that they are unfamiliar with the basics of the web platform.
In a capitalist society, the job is usually to make money. Making money and building software that works for legacy and obscure client configurations is often diametrically opposed. I'm not saying that this is how it should be, I am merely describing the current state of affairs.
You don’t have to make excuses for the bad guys. Don’t write as if there’s no option but to behave like them.
legacy and obscure client configurations
What's even sadder is that screen readers (or apps related to accesibility) are part of the obscure group. :(
You're just using objective language to frame things as if we have no choice; but the reality is, choosing progressive enhancement and lightweight HTML forms is often the correct choice, in both technical and social senses. If you refuse to take responsibility for making good choices, you'll never be an engineer worth hiring.
They are a regulated monopoly, so they are not fully a part of capitalist economics, though.
form submissions and redirects took a while to explain to my colleagues, on account of everyone being used to heavily client-side web applications.
Web development is in such a sad state right now. The education work is really cut out for us.
I believe you do not need such level of compatibility to justify this approach. As the post says, for God's sake it is a fucking form (my emphasis). So that is how I would build it, regardless.
Man, I'd love a job where I could build sites just like the one he described. The challenge of a tiny download that needs to run on virtually every browser and needs to be accessible sounds like a lot of fun. Are there companies that specialize in this sort of thing? Are they hiring?
Maybe I'm just old and nostalgic about how straightforward things used to be.
A little ironic, I had to switch to reader mode, because some styling made the text completely invisible and unselectable on Firefox. (I'm still able to see the title, the pink quote marker and the code block, but nothing else is visible.) EDIT: Most likely a me-issue, see below. Keeping this for context.
As for the article itself, it is a nice read. God knows, we all pay for React's "agility" whether we're the developers or the end user. I wished it many times that I could use some different stack at my workplace. I also have to commend the author's empathy and how they engineered it into an "everyone wins" scenario. Caring pays dividends.
Strange, the site is working nicely for me in FF.
Very bizarre, it seems to be the font that's causing the issues on my end. When I switched it over to just sans-serif it renders completely fine. If I wanted to be coy, I'd say this is an example of user experience being harmed by not going for the safe, low common denominator, which feels pretty relevant to the post, but frankly it's probably just me misconfiguring something :)
This really resonated with me. I build a blog that was extremely heavy on JavaScript and there was practically a revolt over the JS enabled features. I haven't had time to migrate to HTML-first, but it mostly appears as an HTML-first webpage.
I saw similar data in my analytics -- bounce rate went from 80% to ~50%, new visitors almost doubled for all subsequent posts. I shudder to think how many people have been scared away from my domain for life based on the original mess that I implemented with JS.
For any web page or blog, this is some of the most salient advice you can give.
If you add streaming via SSE to this mix and a morph library you can do really nice dynamic/realtime/multiplayer stuff too.