18 ms·
Building an HTML-first site doubled our users overnight
- freedomben 4mo agoGood 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.
- simonw 4mo agoThe full context of that quote makes it clear that it's meant more as a wry joke: > A venerable web application pattern that has had a small modern renaissance thanks to Remix, form submissions and redirects took a while to explain to my colleagues, on account of everyone being used to heavily client-side web applications. (Although it's not really a joke, it's pretty amazing how many professional web developers these days don't know how to use forms without JavaScript.)
- someonebaggy 4mo agoThe opposite is why I'd never be a good web developer. I grew up messing around with PHP and if I spent the time to learn the modern stack, I'd constantly be thinking it's stupid.
- dormento 4mo agoI can relate to that. I recently had to intervene during the latest office holy war to explain that you don't need JS for file uploads. It was eye opening.
- dotancohen 4mo agoI'm in the same boat as you. Today I generally use Laravel for new projects.
- afavour 4mo agoI think the author is suggesting that Remix was the inspiration for the renaissance, not that it's necessarily the most popular method for doing so. I'd be curious to see the stats on how often Next.js users lean into the server component model that makes the frontend fast. My anecdotal experience is that it's an afterthought for many. By comparison, Astro (as mentioned by the author) makes you think about this stuff upfront via opt-in rather than opt-out. It's a wonderful framework.
- arowthway 4mo agoOpt-in = action is required to opt in = off by default.
- pspeter3 4mo agoI think Remix brought back interest in Form Actions and other meta frameworks took inspiration from that.
- epolanski 4mo agoRemix has been nonetheless influential in the space, in the same way preact and signals have been.
- entropichorse 4mo agoPeople 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
- malteg 4mo agotrue, but where can I find the smallest functional react website where react is needed...?
- bschmidt300 4mo ago[dead]
- afavour 4mo agoNot really, no. Astro requires you to opt a component in to client-side rendering, React (with its server components etc) require you to opt out. Defaults matter in scenarios like this and I'd bet the average developer of crappy websites would have a much faster site with Astro than React for that reason alone.
- whstl 4mo agoSmall correction: it's other frameworks that require you to opt-out, most notably Next.js. Although I've been seeing so many people confusing Next.js with React lately... Astro itself works just fine with React, and it can still be HTML-only. But you can also render React on the server yourself using renderToString, if you don't want a framework.
- hyperhello 4mo agoYou can do a bad job with any tool but you cannot do a good job with any tool.
- swiftcoder 4mo agoThis is patently untrue, give a craftsman terrible tools, and they'll still produce a decent end result. That said, defaults matter, and astro is going to be significantly more friendly out-of-the-box to low-end clients
- tootie 4mo agoI 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.
- myself248 4mo agoI think that's even more significant, since it's measuring people who cared enough to click the form in the first place, which is juicier than just page loads.
- robofanatic 4mo agomay be he meant, doubled our users who actually submitted the form
- yCombLinks 4mo agoUsers visited the site and couldn't even begin the form, nor get seen as a visitor, due to javascript metrics and rendering failing.
- yawaramin 4mo agoDoubling conversions, in digital marketing-speak. Marketing firms probably give out fat bonuses for this kind of result.
- romanovcode 4mo ago[flagged]
- rafram 4mo agoNo we don't. There are lots of countries with software outsourcing industries, and contractors in any country can be good or bad. Would you rather have a top IIT graduate, or someone who took a year of programming classes at a community college in Fresno?
- conductr 4mo agoIdk, the general javascript spinner situation is beyond normalized at this point. I think mainly driven by React and other large/overkill JS frameworks. I avoid JS/TS heavy stuff so I don't really know but that's largely the impression I get. The whole thing reminds me of dialup era internet were we all were watching progressive JPGs load on a slow connection despite the fact I have fiber. I can't believe anyone is Ok with that UX, I don't see how any framework choice justifies introducing that type of behavior.
- yakshaving_jgt 4mo ago> The problem was clearly this excerpt because we all know which country it was. Oh yeah? Which?
- ungreased0675 4mo agoEmpathy 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.
- ai_slop_hater 4mo agoThey don't know what a megabyte is
- jorisw 4mo agoThey feel the slowness of the page load
- alex_suzuki 4mo agoNot on their iPhones operating over 5G or the corporate WiFi.
- jorisw 4mo agoYou don't think there's any palpable difference as long as the connection is any good?
- hamburglar 4mo agoI think there’s a palpable difference but many young developers have no concept of why.
- afavour 4mo agoIt's still present. JSON/JS parsing still has a delay. And in either case (as the author states) not everyone is using an iPhone over 5G. Heavy React apps are a miserable experience on low end Android phones, even when the connection is fast. I've seen JS/JSON parsing times in the multiple seconds.
- 4mo ago
- bschmidt500 4mo ago[dead]
- wmanley 4mo agoThe counterargument: In Defence of the Single Page Application: https://williamkennedy.ninja/javascript/2022/05/03/in-defence-of-the-single-page-application/ https://williamkennedy.ninja/javascript/2022/05/03/in-defenc...
- pegasus 4mo agoAll I got is a "loading" animation. Gave up after 10 seconds. So, not a counterargument, but a confirmation of the article's thesis.
- tele_ski 4mo agoIt's a joke/sarcasm
- __natty__ 4mo agoFunny enough. I’m opening this on mobile internet connection and it stuck at loading spinner. I don’t know if the problem is with my internet (probably not) or support for mobile so I can’t even read the content.
- TSiege 4mo agoit's a sarcasm loader
- elmigranto 4mo agoMy guess it’s a joke.
- frisia 4mo agoI think that's the joke :) all other articles load fine instantly, just this one that has a spinner
- __natty__ 4mo agoHeh it got me then :)
- brianwmunz 4mo agoMaybe 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.
- kijin 4mo agoSEO and accessibility laws have always been the most effective way to convince someone to build clean, well-structured webpages. Guess what, both are measures of how easy it is for a machine to extract content from your pages. AI is just the latest machine that wants to slurp up your soup of tags.
- jrochkind1 4mo ago> 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.
- Quarrel 4mo agoI moved to the UK in 2016. The public sector, simple, no frills, accessible, no flashy graphics, websites were a massive eye-opener. They just worked. They had a job. They did it. I wasn't going to buy more from them because of it, and they didn't care. It was great. I've heard that recently they've dismantled the centralised team that wrote all the rules, enforced it, and started moving to decentralised hosting, but so far the whole still seems to hold to together really well. I think, I hope, they have embedded the expectation that the local council, the tax office, your visa status, etc, should just be utilitarian in nature, and work for everyone. I worry how long it will last...
- Uncle_Brumpus 4mo agoThat hit me, too, specifically thinking about my current gas/electricity provider. I have not heard one single piece of positive feedback from the public, and there's only ever problems. I feel like that's a pretty universal experience here. Even outside the scope of websites, it holds so very true. Personal anecdote: Recently they were updating everyone to "smart meters" on the gas lines. They needed me to be home so they could enter my apartment and bleed the gas out of the line by turning on the stove prior to replacing the meter. I played phone tag with them for 6 months, setting up countless appointments, and nobody ever showed up, the meter remains un-upgraded. At the same time, I have received weekly phone calls and monthly physical letters stating that if I don't upgrade the meter, my gas will be shut off. I just moved, so the new tenant will have to deal with it now.
- t1234s 4mo agoHaving been building websites since the mid 90's, I laugh at terms like "HTML-first website"
- hamburglar 4mo agoReminds me of “pre-jit”
- re-thc 4mo agoie "aot"?
- thewebguyd 4mo agoSame, and it has certainly made me realize that I am now officially entering my "old man yelling at cloud" phase of my life, and I'm "only" 38!
- kkkqkqkqkqlqlql 4mo agoIt's like chai tea.
- nonethewiser 4mo agoexplain?
- Zambyte 4mo ago> Chai, a word for tea in numerous languages https://en.wikipedia.org/wiki/Chai https://en.wikipedia.org/wiki/Chai
- jp_sc 4mo ago"Chai" means "tea", so "Chai Tea" is "Tea Tea". "ATM" means "Automatic Teller Machine", so "ATM Machine" is "Automatic Teller Machine Machine". Both are mentioned in the animated movie "Spider-Man: Across the Spider-Verse".
- melon_tsui 4mo agoInteresting 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 4mo agoDesigning 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.
- fisherwithac 4mo ago[dead]
- faangguyindia 4mo agoMost 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.
- miroljub 4mo ago> Most of my apps are now simply HTMX + Go + SQLite. Would like to hear about your Go stack for building htmx apps.
- creesch 4mo ago> 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. There is! You just have to time travel all the way back to 2009 when webOS was launched by Palm. Time travel is the easy part, you then also need to somehow prevent Palms demise and webOS fading into obscurity as a smartphone OS. If 2009 is too far back you can try your luck in 2012 with Firefox OS. Joking aside, people and companies have given it a go. But a combination of bad timing and various other events never made that reality happen in our timeline.
- nobleach 4mo agoRecently 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.
- Natfan 4mo agoesm.ah let's you include "complicated" JS that isn't usually found in CDNs. it doesn't work for everything and imo is worse for (p)react due to the lack of native JSX, but it does allow for bringing in stuff that usually takes an `npm install && npm build`
- nobleach 4mo agoYeah in this case, I needed to pop up a <dialog /> and take some form info, persist it via POST and then show the result of a "used" card/token. So there just wasn't a lot of need for libraries. I'm from the VERY old school so I do recall the fresh hell of including many deps via script tags (pre-Bower!)
- qsort 4mo agoIf 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 4mo agoin 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/ 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 4mo agoTotally 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
- yawaramin 4mo agoFTA: 'To apply for their services, customers could either use an old ASP form on the website, or follow a manual process.'
- alok-g 4mo ago>> There should always be a way for tech-illiterate people to ask someone, and fill their forms Isn't that more open to fraud and abuse though by the "someone" whether that is a gov employee or otherwise.
- oulipo2 4mo agoIf it's a government employee (as it should), it shouldn't be open to fraud and abuse, no. There should be a trail of what happened
- alok-g 4mo agoYes, there 'should' be a trail. And there's someone and a process to check that trail. And a process to find the issues, correctly so, and fix, and do all that on a timely basis, and reimburse the person for damages, ... PS: I have actually suffered through some of this, badly so, though in an unrelated setting. It comes back to which system is more robust/mistake-proof and more practically recoverable.
- oulipo2 4mo agoSure, but that's how Governments worked for decades before widespread access to laptops / mobile phones...
- dirkc 4mo agoMy 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 4mo agoI 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.
- initramfs 4mo agoI've always liked basic HTML pages where one can upload a document without having to restart the entire application. That's a great practice you have there with general forms. With each session ID, it can cross reference a page in a multi page application with that session ID, so that the user can maybe type it in if necessary, but it should be able to determine that with enough information, like IP address, upload date, browser, OS and so on. But the most accurate session would be within the browser so that the cookies for a single application aren't mixed up with another applicant, like a relative, who might be using the Playstation Portable.
- devnull3 4mo agoI am actually impressed by the gov.uk websites. Its minimal and just about right for its purpose. May I ask what tech is used for mobile apps? I am guessing not a full mobile app but it uses webview.
- petepete 4mo agoIt's still happening. I built some libraries that ease the process, and they power the new MOJ Forms and GOV.UK Forms. Rails still has a decent foothold across departments, but it's being nibbled away at by Python and.NET. https://govuk-form-builder.x-govuk.org/ https://govuk-form-builder.x-govuk.org/ https://govuk-components.x-govuk.org/ https://govuk-components.x-govuk.org/
- dotsp 4mo agoThe MoJ have moved on to using Forge now. https://www.npmjs.com/package/@ministryofjustice/hmpps-forge https://www.npmjs.com/package/@ministryofjustice/hmpps-forge
- oybng 4mo agoIt shows just how far gone webshit is when the obvious must be stated time and time again
- skylovescoffee 4mo ago"I took a very bold decision and built a new version of the site using Astro"
- tgtweak 4mo agoIt'll be replaced by a new react app within a few hires lol
- theandrewbailey 4mo ago> Javascript and modern CSS should be used to enhance the experience When messing around with my blog's Javascript, this mantra is so thoroughly embedded into writing it, that I try to include "enhance" in function names where it makes sense. I might have to do likewise with my CSS.
- Zak 4mo agoAll the text is invisible for me in Firefox on Linux when the `--font-body` is set to `"Atkinson", sans-serif`. Setting it to `"Atkinson Hyperlegible", sans-serif` fixed it.
- simonmysun 4mo agoI read the article in the source code mode and thought it was intentional until I came back to the comments P.S. your solution seems to have disabled the custom font instead of fixing it
- NopIdoN 4mo ago> […] it always worked even without javascript. He was appalled and said, “but that’s a lot more work for us.” Is it more work?
- 0xpgm 4mo agoDon't tell me were going to rediscover progressive enhancement all over again after more than a decade. Back when we used to actually care about the end user whether you were programming frontend or backend. Too much VC money and big tech influence in the JS ecosystem made the web worse in some ways.
- dlcarrier 4mo agoI keep hearing the term "dead internet theory" getting thrown around, and at first thought it was referring to web pages that don't work, not high rates of bot-generated content. I've had far more trouble with web pages that only work on a computer that's at least 80% similar to the developers computer, and the RAM sacrifice has been accepted, than from bots diluting real user-generated content, assuming I can even get to the page, if the CDN doesn't think I'm a bot myself, because I'm not logged into a Google or Apple account and their captcha is so bad only a bot could get through it.
- graypegg 4mo agoI haven't heard much about in a while, but the HTML Triptych proposal [0] is still something I hope to eventually land in browsers. HTML forms speaking to REST endpoints are a good pattern. (meaning user-aiding validation is handled via the input attributes, real validation is handled on the far side of the request, and the flow is GET /form => POST /thing => GET /thing/1) It would be a great pattern with the triptych features implemented! [0] https://triptychproject.org/ https://triptychproject.org/
- shlewis 4mo agoIn the mean time, HTMX is pretty much that with much more. Definitely recommend.
- drchaim 4mo agoI wish more people take this approach, specially public services.
- joelanman 4mo agoUK government services guidance is to use progressive enhancement https://www.gov.uk/service-manual/technology/using-progressive-enhancement https://www.gov.uk/service-manual/technology/using-progressi...
- IFC_LLC 4mo agoI've started getting traffic on my website only after I re-build it with a locally-brewed MD parsing engine that uses Astro to spit out the final version of the site. I guess the main argument is how easy it is for an LLM to ingest the content, since I can bet all of the crawlers are llm-enabled one way or another.
- hiccuphippo 4mo agoCan anyone confirm if Web Components work in the old psp web browser?
- fillok5686 4mo ago[dead]
- phyzome 4mo agoThe point is that they don't have to! That's what progressive enhancement means.
- aidanbeck 4mo agoI was going to comment on the Terence Eden excerpt quoted by the author about the woman researching housing benefits on an old PSP browser, when I noticed that you (the OP) are Terence himself. It's strikingly powerful, and a reminder of the duty we have in building our infrastructure. > Of course, your javascript-based analytics package doesn’t see the users you are bouncing because of javascript failures. It is frightening to think of how many people are alienated from critical systems every day because of this bias reinforcing the idea that they do not exist.
- genewitch 4mo agojust use firefox with an adblocker like adnauseam and a fairly decent chunk of the internet stops working, including chase.com and several other massive corp sites. I can't imagine trying to use links/lynx or a browser with less market share than FF that isn't based on chromium.
- nunez 4mo agoChase works with ad blockers, though. It doesn't work if you disable JavaScript...but it wasn't always this way! They had a mobile version of their online banking service at https://m.chase.com https://m.chase.com that was EXTREMELY FAST and did 85% of what you need to do in an online banking portal (check balances, transfer funds). They scrapped it when they moved to their current bloated monstrosity of the portal that they have today. It was a big reason why I moved to a credit union (who outsources their online banking services to Alkami, which maintains a very tight portal and supports 2FA AND passkeys!).
- genewitch 4mo agoi am unclear on if it's because of the adblocker (specifically i use ad nauseam which does block some JS. some.) or because of firefox. I can load it on edge every time it fails on firefox. last week, chase.com worked fine on firefox. the previous 15 months where i needed to log in, it did not. Someone at chase isn't checking their work on firefox.
- simonmysun 4mo agoHmm I cannot load the font on Firefox 151.0.3 Arch Linux. All I see is only a title and empty paragraphs. So I end up reading the article in the source code mode and felt pretty on-brand. Back to HN comments it looks like this wasn't actually intentional?
- ErroneousBosh 4mo ago> Arch Linux You've only got yourself to blame, there.
- nilirl 4mo agoI 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.
- aidanbeck 4mo agoThe downside mentioned by the author's replacement in the article is the unfortunate explanation for why this is rare in practice. > "but that’s a lot more work for us." And it's not that any individual or team is lazy. Most teams have a constant barrage of priorities to balance and are paid by companies valuing efficiency over everything. That said, I think the article makes a great case for adjusting our prioritization. Going a bit slower won't kill anyone, in fact doing so will probably save some.
- initramfs 4mo agoThis is such a great story. I am glad more people are sharing stories like this. I hope my article the other day inspired more to develop lightweight websites: https://inavoyage.blogspot.com/2026/06/im-building-parallel-internet-and-its.html https://inavoyage.blogspot.com/2026/06/im-building-parallel-... https://inavoyage.blogspot.com/2026/06/how-about-new-java-based-phone-apps.html https://inavoyage.blogspot.com/2026/06/how-about-new-java-ba...
- sethammons 4mo ago> When we launched, the number of people completing the form doubled. The analytics people didn’t even know where these users were coming from. Of course, your javascript-based analytics package doesn’t see the users you are bouncing because of javascript failures. Yeah, reminds me of the b52 story re holes in wings on the planes that made it back from missions, leading them down the wrong path of strengthening wings. They weren't looking at the planes that never came back with holes in the fuel silages.
- KolmogorovComp 4mo agoCertainly not the b52, which arrived after the end of WWII…
- sethammons 4mo agowhoops, yeah. Likely b17. My brain subbed "bomber" for the more prominent bomber in my head.
- ecshafer 4mo agoI am not familiar with this astro framework they used. But having built some sites using Pure HTML/JS back in the day, React, Angular, Vue, Rails ERB, Rails Hotwire, and HTMX. I think HTML first websites are absolutely the way to go. Rails Hotwire with View Components makes rails sites super fast, faster to develop and easy to re-use components. HTMX more generally, but Ive used it with Spring boot and Thymeleaf. I really don't want to go back to SPAs. Development time is less and the website performance is better, and I haven't really seen any regressions in capability. With HTMX and some url parameters, I can make a pure HTML site that seems like a Single Page Application but without the excessive loading times.
- xavortm 4mo agoI first tested Astro on my site and never went back. Now every new project defaults to Astro and I have to have a reason not to use it. So far no reasons. It's simple, fast and it kinda fits my desire to keep things minimal. For example, yes, page content matters, but all but one page on my site is under 10kb, most hovering in the 3-4kb range (100% of the downloadable content)
- Lio 4mo agoYep Hotwire and Hotwire Native are amazingly useful tech.
- ElijahLynn 4mo agoBeautiful story!
- bastawhiz 4mo agoI'm not convinced from the article that HTML-first was the thing that fixed the problem. What fixed the problem was 1) the person building it knew what they were doing and 2) it had design constraints from the get-go to be user-friendly. You can do that with React. It's arguable whether it's easier or better, but you can get there regardless of the approach you use.
- yawaramin 4mo ago1. Presumably the team that made the previous app also thought they knew what they were doing. Presumably they were not hired on the assumption that they couldn't make a good app. 2. The design constraints had always existed, the previous app just failed to meet them.
- gbacon 4mo ago1a. They may have thought they knew what they were doing, but their work product shows otherwise. 1b. They may have thought they knew what they were doing and spoke confidently enough to convince whoever was doing the acquisition, likely non-technical, of the same, but the bad hire and the bad hire’s work product shows that neither was the case. 2. Ideas merely exist. To be constraints, they must be enforced.
- yawaramin 4mo ago1a & b. Sure, but you wouldn't know that ahead of time. You'd have to wait until they finished the app. 2. It was enforced, just at a higher level (expensive fines triggered by customer complaints). A good engineer broke down and actually applied the constraints in a preventative way.
- ernsheong 4mo agoEveryone reinventing what Rails has been saying all along...
- etaioinshrdlu 4mo agoIt's true. Also, if you despise bloat, you may like my JS-free LLM site: https://ch.at/ https://ch.at/
- Dwedit 4mo agoThere is one hard wall that stops very old clients from connecting: Not supporting a new enough version of TLS. TLS 1.2 is from 2008, and TLS 1.3 is from 2018. Web browsers older than 2008 can't connect to modern websites since TLS 1.0 and 1.1 were deprecated from web servers in 2021.
- Telaneo 4mo agoI still think it's worth it to provide connections over plain HTTP for this reason. It probably doesn't apply to many people, and you shouldn't allow anything really important to happen over plain HTTP (logins, payment), but normal viewing should still be possible. Sadly, the internet as a whole seems to disagree. Even the most useful resource on the web one could use over plain HTTP, Wikipedia, only allows connections over HTTPS. I guess it kind of made sense as part of the campaign to push the internet as a whole over to HTTPS, but anyone who's connecting to any website over normal HTTP these days is doing so because they literally can't use HTTPS.
- alok-g 4mo agoHaving HTTPS as mandatory it more mistake-proof.
- zzo38computer 4mo agoI agree; you should allow non-TLS connections as well as TLS. (At least, access that does not require authentication should not require TLS, but should still allow it if that is what the client wants.) If you are concerned about accidental login or API keys without TLS, then you can consider supporting mutual TLS, which improves security (and flexibility) in other ways as well. (You do not necessarily, have to require mutual TLS, in case someone prefers to use a username/password login, or 2FA or something else like that instead.) (In the case of login forms, you can have the links to the login forms to always use HTTPS, in order to avoid the problem.)
- bigstrat2003 4mo agoThe push to have everything be served over HTTPS is absolutely insane. Very few things actually need to be served securely. But sadly, browser makers don't give a damn about actual benefits for the users, but rather shove their out of touch ideas about what the Web should be down everyone's throats.
- callumprentice 4mo agoExcellent article but I am always torn when I read inspirational articles like this - it makes perfect sense to me and I love the idea of simple, non-nonsense sites that work well, load quickly and don't rely on the latest browsers to function. Then I start to wonder if that's just because I'm not smart enough to understand React or whatever the fancy technology of the day is. Feels like I have a hard understanding threshold that cannot be breached - give me a simple editor like Sublime and ask me to make a web page - even with JavaScript - and it's my happy place. Give me VSCode or Zed, Claude/Copilot/ChatGPT plugins everywhere, React tutorials and my brain goes to mush.
- thesuitonym 4mo agoIf it makes you feel any better, the people using the fancy frameworks and whatnot usually aren't smart enough to understand them either.
- Anoian 4mo agoI am a tough guy, I only cried for twenty minutes after reading this.
- LNSY 4mo agoI love the web. I hate what the React cretins have done to it. Embrace Extend Extinguish is real, and the people going along with it deserve to be replaced by a LLM that lies and spits out garbage code just like they do but faster.
- elxr 4mo agoReact has helped folks like vercel/convex/cloudflare to build fantastic dashboards. There's just as many examples of well done React as there are the opposite. I generally prefer solidJS nowadays, but the react ecosystem has enabled lots of amazing user experiences (and developer experiences too if you don't fall into the trap of overcomplexity).
- zem 4mo agoyou might enjoy this post on complexity and why it is bad: https://tengstrand.github.io/blog/2019-09-14-the-origin-of-complexity.html https://tengstrand.github.io/blog/2019-09-14-the-origin-of-c... keeping things simple is not a bad thing, and often requires you to be smart enough not to overcomplicate them.
- motoboi 4mo agoOld people. They exist. Not even that old. 60 year people can't user your fancy site because then don't have an internal model of how a computer works. You know that when pressing a button a hidden engine runs in the backend (or something runs in the backend). You expect an answer and if the expectation do not match the result, the model in your mind creates an hypothesis about what maybe happened and iterate from there. Maybe you should have clicked something before? Maybe you should mark some form checkbox? Old people don't have that because they didn't grow up with computers. What is on the screen is what they see. I clicked next and nothing happens. Well... the site is broken. You known when you plug your refrigerator and nothing happens and instead of reflecting on the possible blown out resistor that you can bypass with a small wire you understand that your only relationship with the refrigerator is plug and unplug or call for help? That is an old person using your site. They won't fight against it. They'll give up immediately.
- pmontra 4mo agoGiving up is a wise choice: there are so many other sites to interact with. On the other side they have only one refrigerator.
- dghlsakjg 4mo agoNext time I have trouble checking in on an airline site I’ll remember that there are so many other sites to interact with that whatever I was trying to do probably doesn’t matter. I wouldn’t sweat the broken fridge either though, there’s so many other electrical appliances in the house to use.
- natbobc 4mo agoIs entirely context dependent. I can agree in some scenarios but when it’s a utility or gov site that I can’t really avoid it’s less straightforward.
- Telaneo 4mo agoI wish I could convince my grandmother of this. "Why did the bank change the layout? I want the old one back!" - Don't like it? Change bank then. That's what I did. I get that changing to another bank is a big unknown, but it's probably still worth it to show your displeasure. Plus her bank are morons when it comes to several other things.
- onion2k 4mo agoThis isn't "We replaced a React app with an HTML form and performance improved." It's "We replaced a bad web page with a good web page and performance improved." Attributing this to the technology driving the browser experience is silly. You can make a brilliant user experience with React. You can make a terrible website with plain HTML. The improvement comes from the change design, not tech.
- iammrpayments 4mo agoOf course, is just what with React is 100x harder, and when you fail the fans will blame you instead of the technology.
- lucumo 4mo agoThe standard answer to that is that some technologies make one harder than the other. That's kind of true from first principles, but it requires making the case that e.g. React is actually harder to make good than a plain HTML page. Fun thing, TFA describes a kind of multi-page wizard style form that I haven't seen a lot anymore in the last decade or so. But when I did see it, it's always some dogshit enterprise system. Some Oracle product for expensing expenses last time. The problem with those things always seems to be that they are slow in the middle of doing your task. Every button is seconds of waiting. Doubly annoying if you have to go back a step or two. The badly coded SPAs seem to be slow at the start. It takes a while to load, but once it's loaded its performance is usually okay.
- andersmurphy 4mo agoIs it slow though? Like in practice? This demo [1] using Datastar (a streaming HTML framework) every action including scrolling roundtrips to the server. Even the checkboxes changing colour is a roundtrip. https://checkboxes.andersmurphy.com https://checkboxes.andersmurphy.com
- lucumo 4mo agoThe advantage of SPAs, like the checkboxes page, is that they can do the round-trip less visibly. The user can still continue the next thing. So even if it is slow, it's less of a deal than loading and rendering a page anew. > Is it slow though? Like in practice? The multi-page wizards? The ones I've seen were. Enterprise crap systems.
- ninalanyon 4mo agoThe quote from Terence Eden almost made me cry. Actually the whole article did.
- deleted 4mo ago[deleted]
- skybrian 4mo agoWhat do people like for form validation? In this article he recommends the “validation-enhancer” library: https://www.npmjs.com/package/validation-enhancer https://www.npmjs.com/package/validation-enhancer I’ve also seen one called “formisch” that the author of valibot is working on: https://github.com/open-circle/formisch https://github.com/open-circle/formisch They’re both pretty new. Has anyone tried them?
- kccqzy 4mo agoMy biggest tip to reduce complexity of data validation if you are using React is to stop using React controlled components and switch to React uncontrolled components. They are an underused part of React. You usually don’t need React to handle every single keypress and every single character being entered by the user. In fact before React popularized it, it was unusual for form components to update on each key press; traditional desktop apps tend to validate when a field loses focus only, not on each key press. This has at least three benefits: (a) good for performance, (b) reduces unnecessary error UI when the user is in the middle of entering data, and (c) simplifies your own code by not having to deal with prefixes of valid input that’s not itself valid.
- yawaramin 4mo agoAlso allows user scripts to interact with the forms, eg I can run a bookmarklet to fill out certain forms. With React controlled components all these changes are wiped out and reset with the state that React has in its app memory.
- yawaramin 4mo agoI actually like the built-in stuff and the Constraint Validation API. I wrote about using it with htmx: https://dev.to/yawaramin/handling-form-errors-in-htmx-3ncg https://dev.to/yawaramin/handling-form-errors-in-htmx-3ncg
- marticode 4mo agoI try to stick to plain HTML5 / Javascript validation. Trying to not reinvent the wheel and use what the browser already has built-in seems best.
- danielrhodes 4mo agoI've tried this before and I think this constraint is something that has to be kept top of mind for a designer not just the engineer. Most designs these days assume a single page app and there are interaction patterns that make plain HTML not suitable. But if you incorporate this in from the start and stick with it, there's no reason you can't do this.
- yawaramin 4mo agoAlso possible to just ignore interaction patterns that don't work well with HTML and replace them with ones that do.
- regnull 4mo ago> 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.
- yawaramin 4mo agoNo, it's actually people. FTA: 'My client was a utility company, and they had a big problem. To apply for their services, customers could either use an old ASP form on the website...' Ie customers of the utility company were completing the form, not random users from the internet.
- replwoacause 4mo agoFTA? Free Trade Agreement?
- yawaramin 4mo agoFrom The Article
- OskarS 4mo agoAs a non-web dev, I have a question about this part: > 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.” Why is it more work? The approach described in the article seems honestly reasonably simple: just write the standard <input> components for the form, have a submit button at the bottom. When I was making my own websites many years ago now, that's how it worked, and it wasn't that hard. Maybe it's reflecting my ignorance in this field, but doing fancy front-ends seems much harder to me.
- simpaticoder 4mo agoSimpler doesn't mean easier. Consider a chef who at their previous job started using a wood-burning stove. This is an objectively simpler tool than a gas or electric stove, yet it would be very difficult (even impossible, depending on local architecture and regulations) for a new kitchen to add one.
- LNSY 4mo agoI don't understand how having to pay 20 different vendors so hackers can run commands on your server barely impeded is somehow simpler.
- simpaticoder 4mo agoThe message you just wrote involved how many complex systems, from your keyboard switches and firmware to your BIOS and OS interrupts, to your browser, the internet and middle boxes, just to say one sentence to someone. It would be much simpler (and more secure!) if you just told me with your mouth, but you didn't do that.
- LNSY 4mo agoOf course, and if you use all these services you can be a pedantic ass who never has to actually ship a product.
- Shellban 4mo agoI like JavaScript-light websites just as much as anyone (my own website works on the same principle). However, I do wonder how much of the increased traffic has to do with AI agents that now have an easier time working with the more standard web forms. My own contact form had a bunch of bots quoting Scorpion lyrics before I added a rate limiter.
- yawaramin 4mo agoNone of the increased traffic was from AI agents. FTA: 'The results? When we launched, the number of people completing the form doubled.' All completions were real people. It's a government website.
- fd-codier 4mo agoNice clickbait title.
- Shitty-kitty 4mo agoI'm not a web dev and my needs are pretty simple but I've had a lot of success with jekyll. It's a open source static-site generator.
- arnorhs 4mo agoThis post is good, and it's a great example of taking a problem and solving it with the appropriate tech with the right amount of depth. It really helps to have full domain knowledge of your customers as well. However, I do not like how it is framed as "simple html is better than react" - because you could just as well have told the same story as a react developer. (Nb. I could go on forever about the complexities and intricacies of storing things session based on a server vs browser based and etc - and lots of other things that were skimmed over in this article, but that would be too long) All of those things that are simple in html are also simple in react. It's literally the same code - there's nothing preventing you from using browser based html validation in react - all the same code that gets complicated in react (overly complicated validation logic) also ends up being complicated in astro - they have their own thing around schema validation etc and integrating it within an astro site means you have to integrate their client router etc etc.. so it's very easy to go overly-complicated there as well. The comparison is also with an off-shore team doing development for you with probably incomplete knowledge and the way projects are structured they have an incentive to create the solution as fast as possible, in as little time as possible, with the biggest amount of complexity as possible. The last point is devious - it's not necessarily that the contractor does this by design, but the incentive structure makes it so something that's overly complicated actually benefits them, so they don't have a direct incentive to go with something simple. Anyways, a simple solution, directly addressing the problem at hand is always better - no matter what stack you pick. (I'd like to say that I don't have anything against Astro's form validation, I was just trying to highlight how there's more to it than "native html browser validation")
- neya 4mo agoSadly, this is the story of nearly every React project I've reluctantly inherited. In my experience, it's because React is not opinionated like its peers Vue and Svelte. So, a bunch of devs will use something for state management and and another team will use something else completely. Eventually both teams leave after making a mess. But, if you look at the graphs and numbers that MBAs chase, they will all look like everyone was productive until the very last minute. The ultimate casualty is unfortunately the user. Even Facebook hasn't figured out React across their properties. Just use Instagram / Facebook on the web. Bunch of spinners to load a static list of items in a drop down menu. Not even joking, click on the bhamburger menu on Instagram web. It makes a dozen requests, shows you a loading skeleton and takes 5 seconds before you can see a finite list of menu items. Ironically Facebook was super popular in the 2014s because they didnt have much React based BS going on. Everything was just good old hyperlinks. If the creators of React haven't figured it out, what makes you think you can?
- 8note 4mo ago> Ironically Facebook was super popular in the 2014s because they didnt have much React based BS going on. facebook was super popular in 2014s because they were just starting the transition from mostly being about people to mostly being algorithmic rage bait, and they tapped a new market of fox news/conservative talk radio listeners
- disgruntledphd2 4mo agoTo be fair, Facebook invented React slightly before 2014 so the original point seems very very strange to me.
- MrBuddyCasino 4mo agoIf there is one thing developers hate its admitting that something is too complex. They feel it makes them look dumb, and for some it is perhaps some form of job security. You don't have to have a technical discussion whether or not React is too complex, you just have to look at the average website created with it.
- Havoc 4mo agoYeah the uk gov website is indeed petty damn good. For once all the money dumped into studies and what not produced an outcome.
- 6510 4mo agoIt 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.
- hit8run 4mo agoSo funny to me that the kids nowadays are rediscovering HTML lol.
- TZubiri 4mo ago>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.
- dlcarrier 4mo agoThe best way to filter out unwanted users is to make them install software that just displays a webview of what could have been a completely open web page. That way, you only get the ones you can track, which is more important than their wealth, as poor customers often end up spending more on commodity items than someone who is wealthy. In my experience, Apple and Google are the worst offenders at software bloat, maybe because they can afford to create releases every few weeks, so the bloat accumulates faster.
- miki123211 4mo agoHow many people are using browsers which don't support Javascript in 2026, and doing so out of necessity rather than out of choice? I can't imagine this number to be >1%. How many such devices can still support modern TLS certificates anyway? By this logic, shouldn't we also use plain HTTP instead of TLS?
- munificent 4mo agoIt may only be 1%, but that small fraction of users are also probably the people who sure as hell don't need even one more tiny thing going wrong in their life. If you're using a decade old phone to sign up for a utility, you've got bigger problems in your life and no self-respecting person should be adding to them.
- miki123211 4mo agoA decade-old phone was released in 2016 (yes, we're old). React already existed in 2016, so did Vue and Typescript. Never mind good old JS. I frankly can't imagine a device capable of supporting modern TLS stacks but incapable of supporting JS. Much less a phone, which in many countries basically requires LTE (and sometimes even VO LTE) support to function at all, due to the 2G and 3G shutdowns.
- zzo38computer 4mo ago> By this logic, shouldn't we also use plain HTTP instead of TLS? Better would be to use plain HTTP in addition to TLS, rather than instead of TLS. TLS does have benefits, but if it is optional then it can also be used on computers without TLS (as well as potentially other situations where you do not want TLS or where it is not useful).
- phyzome 4mo agoRemember, "don't support JS" is just a shorthand for a broader variety of situations: - Old browsers without the modern JS features you're trying to use - Different browsers, with different features - JS didn't load due to network errors
- James_K 4mo agoI 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.
- Telaneo 4mo agoI'm curious how many web issues can be solved by having the people responsible for the relevant sites only be allowed to use them on a Windows 11 machine with only 4 GB of RAM using Firefox with the network throttled to 3G speeds. Assuming the processor isn't horrible, I can still browse plenty of sites with those specs without much issue, and on the sites that do require more, it's very rarely because the sites actually needs it (i.e. I'm not running Windows XP in a VM in the browser or something). It could just be normal HTML and CSS and normal forms, sprinkled with some light JS to help out a bit. But the amount of sites made with that level of care and attention are sadly rare, since the people responsible rarely feel the pain or have the empathy to fix the problem.
- alok-g 4mo ago+1 to the idea. Developers should have a powerful machine to develop, but a minimal machine to run and test.
- McGlockenshire 4mo ago> Windows 11 machine with only 4 GB of RAM using Firefox with the network throttled to 3G speeds And their mobile device should be the cheapest Android phone from a monthly cell provider you've never heard of. This is what the real world is for a lot of people, and a huge number of developers simply don't know or care.
- mrweasel 4mo agoAnd with a small screen. The number of websites that are almost useless on the iPhone SE is getting pretty insane. Many site have a massive header, maybe a footer and a sticky ad. That frequently leaves less than half (~4.5cm) the screen usable. I don't even think Apple cares about smaller screens anymore, because iOS UI elements also overlaps in some places.
- deleted 4mo ago[deleted]
- digital_voodoo 4mo agoAs a public policy specialist (and a tinkerer when it comes to tech), I read the article with pure joy. This is the "wonder" that happens when you build for the client instead of for yourself. It takes being truly intentional: sometimes the client (especially that kind of client) does not know what he needs or want; sometimes you as a dev simply build something with good intentions but just out of habit. Taking the time to ask true, relevant questions, and build backwards, is one of the ways you achieve this. It takes time, energy, intentionality (once again)... but it's worth it.
- Theodores 4mo agoEveryone pays lip service to 'user experience' and 'putting the customer first', but, only with experiences such as acing customer service forms can one really claim to know what 'putting the customer first' means. Sometimes it is just a form that you need, with the web page loading a new one after 'submit' has been clicked. Yes we can do fancy things to ajax-submit the data, but did the customer want that? Getting to the form in its 'final form' takes work, particularly if asking the customer for more information, such as proof of purchase or important documents. Do you just start the conversation with a 'contact us' box to have customer service ask for the bits they need later, or do you ask the customer for all information up front, reducing the need for back and fore? You need to actively test what your customers will do, with metrics such as time filling in the form and how big the ticket queue is. There can also be internal problems that prevent getting the form right. For example, if there is some manager in charge of customer service that is an empire builder, with a vast team. If your form decimates the team because everyone is efficient and able to go home at the end of the day with an empty queue, then you have undermined the empire builder, so he will want you gone! There are some huge benefits to getting customer service right. You can brazenly have phone numbers, email addresses and even physical addresses, all published on the website. If the forms work then the phone never rings, the inbox is empty. And nobody can accuse the company of hiding behind a wall of corporate website small print. The word of mouth aspect is also not to be overlooked. You can harvest reviews from happy customers that should have been unhappy under the old system. If you fix their problem in an hour, or get a replacement product to them the next day, then they will write you a rave review, with that being great for the customer because they explain better than you can how dedicated your customer service team is. I use the word customer lightly here, there is the term 'service user' that is used in the public/third sectors, but that doesn't sound good in front of the 'service user', probably because they have an actual name. Getting to the form 'in the final form' means quite a few small changes that can be easily reverted and monitored. It could be just making an input box only show capital letters, or show a numeric rather than standard keyboard. Ideally, a submitted form does something when completed to place the ball in either the customer service court or that of the customer. If the customer need to provide some information before anyone need look at the ticket, the form needs to send out that email, then park the ticket awaiting whatever the customer does next. There should be no need for someone on the team to do that step. I know AI does everything awesomely under all circumstances, but the 3-6 month journey needed to deeply understand the customer, the product and the team is something that needs a human, simply because you are dealing with humans and their emotions. What has proven to be a huge bonus is CSS grid styling. Inputs and labels can be written without the div and span cruft, with everything lining up nicely with a few align 'center' CSS things. What a fun time to be doing forms that actually work!
- righthand 4mo agoHTML 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.
- lo_fye 4mo agoGreat work. I love it. We need more developers like you.
- tweetle_beetle 4mo ago> My client was a utility company > Adding a lot of pressure, this was a regulated monopoly > Some requirements I derived: > ... > We had to meet WCAG accessibility (the team settled on AA rather than AAA) The author doesn't doxx their employer by giving any dates, but if we take the story at face value and assume it took place in last few years, it is pretty shocking. How does it take a single hero to be fighting for AA compliance as an afterthought for a project with this scope in the 2020s? I've worked on much more niche projects that treated this with the respect it deserves as a quasi-legal requirement.
- dlcarrier 4mo agoIt didn't say anyone was fighting for it just that they had to. Whoever fought for the least possible compliance is the real hero. The less of that feel-good nonsense that is implemented, the easier it is for a text-only browser to parse, and the better a graphical browser works with the keyboard navigation that has been built into pretty much all web browsers since their conception. Ideally, they ignore WCAG altogether, then throw on an overlay if compliance is required, which can be easily blocked by a dedicated blocker (e.g. https://www.accessibyebye.org/ https://www.accessibyebye.org/) or I just add a list of overlay domains to my ad blocker.
- simonbarker87 4mo agoI want to work with people like this. Build the right solution to the problem with the simplest technology you can.
- Dansvidania 4mo agoSame. But I never got so lucky as to find a company where this is valued.
- unsungNovelty 4mo agoI still to this day is baffled by all the idiot geniuses who thought it was OK to have "Please enable javascript" when opening a website without JS enabled. A good chunk in many pages are just static content. You should be able to render HTML. Ashte!
- reacharavindh 4mo agoHTML first, minimal JS, not using any frameworks unless absolutely justified is already part of my prompts to LLMs when I build stuff for myself. I’m not a frontend developer, and have not kept up to date with the ton of frameworks. That HTMl first approach already makes the LLM outputs faster/fresher for me. I wish more people went this route for public facing services.
- butterfi 4mo agoI remember when YouTube implemented a new html player and suddenly, unexpectedly, they had all the is traffic coming from rural Africa. Size matters.
- 7xmohamed 4mo agoMost of my apps are now simply HTMX + Go + SQLite. I've found it's enough for most projects.
- geroge_kyaw 4mo agoUse Next.js Bro just know React and complaining it.
- geroge_kyaw 4mo agoUse Next.js!!! Bro just know React and complaining it.
- Xotic007 4mo ago[dead]
- zzo38computer 4mo agoI think it is a good idea. JavaScripts and CSS can enhance it but should not be required. Accessibility functions are also helpful; if designed well then it would be helpful for everyone (not only if you are blind or other disabilities), in many possible circumstances.
- dlcarrier 4mo agoI have a theory that "accessibility" is just a euphemism for "usability", when it's so bat that a noticeable portion of your userbase is locked out.
- LyalinDotCom 4mo agoOMG its JavaScript, I can't even.
- MoonWalk 4mo ago"customers could either use an old ASP form on the website" Did I miss it, or did the article neglect to explain why this was a problem?
- bruhlikereally 4mo agoYou ever tried to maintain or enhance an ASP form that was built 20 years ago and enhanced by random devs with no documentation? I was working with ASP forms 15 years ago that were hopelessly outdated, included tons of technical debt and were not in the least bit user friendly. You can accomplish so much more with things that ship in every browser now. It’s not a very modern technology and you miss out on things that are now very standardized and much, much easier and quicker to develop and maintain. Also, Microsoft.
- bpbp-mango 4mo agoIn the age of LLMs it shouldn't be a big deal to migrate any legacy ASP to .net core, surely
- _pdp_ 4mo agoThe landing page for our latest tool is a static website (exported from nextjs). It has no marketing on it. It just has simple instructions to copy a prompt into ChatGPT / Claude. That's it. I will report back if it works.
- tylerhackbart 4mo ago[flagged]
- erlkonig 4mo agoSomeone should send this doc to papajohns.com, which has overcomplicated their website to the point it doesn't even work in Firefox anymore.
- sjs382 4mo ago"And then the whole bus clapped..."
- jklinger410 4mo agoThere are truly an amazing amount of red flags in this otherwise well meaning and short post.
- casey2 4mo agoWe are still in the early days of software and web development. This is the food service equivalent of a restaurant operator discovering that if they serve dog poo vs edible food they get more return customers.
- flufluflufluffy 4mo ago> form submissions and redirects took a while to explain to my colleagues, on account of everyone being used to heavily client-side web applications. Ah yes, when you have to explain to your esteemed web developer colleagues how the web works xD
- kristianp 4mo agoRelated recent threads about react performance: JavaScript-heavy approaches are not compatible with long-term performance goals 178 points by luu 3 months ago | 237 comments https://news.ycombinator.com/item?id=47029339 https://news.ycombinator.com/item?id=47029339 (should be called "Why React is not compatible with long-term performance goals") Does anybody like React? (jsx.lol) 242 points by brazukadev 15 days ago https://news.ycombinator.com/item?id=48274077 https://news.ycombinator.com/item?id=48274077
- kristianp 4mo agoI should have added this one from 2022: https://news.ycombinator.com/item?id=30528473 https://news.ycombinator.com/item?id=30528473 SPAs Were a Mistake (gomakethings.com) 692 points March 2, 2022 | 620 comments
- refactron_SOTA 4mo ago[flagged]
- abraxas 4mo agoWe have the "social media" companies to thank for this innovation. They introduced these stupid patterns primarily to keep users locked into their walled gardens and the rest of the industry followed them to the bad place like lemmings. Software is a fashion industry.
- mghackerlady 4mo agoI'm personally of the mind that any .gov or utility website should work on old browsers, or at least have a lite fallback to ensure everyone can at least read how to do something the pen and paper way
- iamflimflam1 4mo agoThey replaced an ASP form on the website with something better. To apply for their services, customers could either use an old ASP form on the website, or follow a manual process
- sublimefire 4mo agoThis takes me back close to 15 years ago: using backend session management in Grails and the html forms that were enhanced with “some” JS, using responsive CSS. The difference at that time was browser tech not being as advanced as now, we had to care for different browsers and deal with IE7 and even IE6, it was difficult and we needed extensive QA (Browserstack would appear later). There is a reason why we had JS library evolution. Dude there was no npm, not even bower. Then we had Backbone.js - loved it, then AngularJS - amazing, then Angular version which had huge breaking changes then React, Polymer etc. Native browsers can do a lot these days, it is easy to enhance the functionality as well. But it was not always the same, the decisions to use React made sense for a variety of reasons at the time, maybe it was the case here as well.
- LoganDark 4mo ago> form submissions and redirects took a while to explain to my colleagues This is so sad
- ezbie 4mo agoThat this article even has to be written proves how stupid web development as a whole has become. I loathe this area of software development, loads of unnecessary frameworks and spinning gears that add complexity while making less and less functional applications
- agentrank_ai 4mo ago[flagged]
- topaitools_xyz 4mo ago[flagged]
- tomcon7 4mo agoI'm not a fan at all, but the thing I don't get about react sites is do they not lazy load at all? Large spa apps are very fast if components are only loaded when needed Coming from a angular1 -> vue2 -> svelte2 -> settling on pure web components with no shadow dom it's a joy to work with, and fast
- sonixaep 4mo ago[dead]
- sonixaep 4mo ago[dead]
- ThomW 4mo agoI teared up at the PSP talk. I feel terrible that life requires a level of technology that not everyone is capable of affording and it doesn’t seem right.
- Henchman21 4mo agoIt doesn’t seem right because it isn’t .
- dlcarrier 4mo agoI had a PSP long before a cell phone, and the built-in browser was like a peek into the future. It really was janky, and could only scroll a page at a time, like an e-reader, but back then web pages didn't need a top-of-the-line computer with gigabytes of ram, to display text and the occasional image, so it was extremely useful when a laptop wasn't available. The button mapping was pretty good, and navigated similar text-based browsers like Lynx, but with the benefit of seeing images.
- deleted 4mo ago[deleted]
- demiurges 4mo ago[flagged]
- digitaltrees 4mo agoI loved this post. Awesome commitment to users. Breath of fresh air.
- fillok5686 4mo ago[flagged]
- dstephy19 4mo ago[flagged]
- voxell_code 4mo ago[flagged]
- zoetaylor00 4mo agoTwo failed React attempts before this. Shows how chasing fancy frameworks over solid basics can cost millions. Simple HTML wins for public services every time.
- wolfi1 4mo agobut it's not simple html, it's a npm-package
- zoetaylor00 4mo ago"Simple HTML" in 2024 means HTML generated by a tool built on a tool that installs 300 node_modules. We've come full circle.
- clemiclemen 4mo agoThis reminds me of the story of the "Feather" project at YouTube where they improved a lot the page weight and the average page latency went higher just because they were actually seeing a lot more traffic from places with slow Internet. https://blog.chriszacharias.com/page-weight-matters https://blog.chriszacharias.com/page-weight-matters
- deleted 4mo ago[deleted]
- thisOtterBeGood 4mo ago“but that’s a lot more work for us.” Even if it is more work (it isn't, the author of this phrase probably is just not familiar with this "tech stack"), the sum of saved time for the users is far more important.
- Mystery-Machine 4mo agoWhat a great article! > Shipping them 20MB of javascript before we even render a form would be a ridiculous thing to do. > I have seen teams waste person-months of effort wrangling React validation libraries. > It is not acceptable to bounce users on old browsers, users with bad network connections, users using assistive technologies. > Build a web application that works on a playstation portable on a 3G connection - if you do, it will work for all your users, and it will still work 30 years from now. The other day I added a fix so that the website would work in a PS5. Before that I didn’t even know that PS5 has a browser.
- mohammedelkarsh 4mo ago[flagged]
- assimpleaspossi 4mo agoNote: the <input> tag does not use and does not need a closing slash and never has in any HTML specification. https://html.spec.whatwg.org/dev/input.html#the-input-element https://html.spec.whatwg.org/dev/input.html#the-input-elemen...
- vanshsoni0027 4mo agonooo
- psp99 4mo agoLiterally signed up here after 20+ years of lurking, because reading that the PSP had Candy Crush made me stop everything I was doing. This game is a mobile game and did not exist on PSP. "Clutched in her hands is a games console - a PlayStation Portable. She stares at it intensely; blocking out the world with Candy Crush."
- deltarholamda 4mo agoYou missed the point. The guy thought she was playing a game, but she was actually using the built-in web browser on the PSP. Whether it was Candy Crush or Tony Hawk Pro Skater or Super Mario Bros. (also not on PSP) doesn't matter. She was using what is broadly comparable to a WebTV browser to access a government site, and it worked because the guidelines for gov.uk are so very, very good. (The UK gov sometimes gets a bit of stick for being needlessly useless, but their web guidelines are extremely good. Absolutely a fantastic starting point for anybody interested in web development.)
- psp99 4mo ago[dead]
- sylware 4mo agoOpen your eyes: the "web" was stolen by the 'whatng cartel'. Their web engines are abominations, the c++ language is making things even worse because now it requires a compiler of an obscene complexity to handle "~right" the absurd and grotesque complexity of the c++ syntax. We have to eat the bullet, there is only one way out: restore noscript/basic HTML interop in "security" infrastructures (can still have a non-mandatory web app on top). And it will probably require super strong _technical_ regulations and expect the 'whatng cartel' to fight hard, because they won't like critical web sites not being web apps then forced to run on their massively complex web engines... Don't forget, a few years back, most, if not all, online services were able to run on 1D or 2D (simple table) HTML documents.
- bomewish 4mo agoHe was appalled and said, “but that’s a lot more work for us.” This made me really, really angry.
- ksec 4mo agoThe industry as a whole stopped caring about users. They cared about their resume or CV. Resume Driven development. They have also either completely forgotten or for newer devs never learned anything about HTML / non JS front end development. Hence "but that’s a lot more work for us." Somewhere along the line HTML and CSS became Assembly. They somehow became dark magic. For real users, no one cares about the tech being used. And most of the so called advantage provided by JS front end sites are at best marginal and realistically speaking imaginary unless you are Google Earth or Online photoshop / spreadsheets.
- jadecarter68 4mo ago[dead]
- frictasolver 4mo ago[flagged]
- arendtio 4mo agoSo ironic that I had to start Chromium just to read his blog post, because my Firefox 151.0.3 was unable to render the font on his blog... To some extent, I share the view that forms should be simple (e.g., at one point I built a reservation system that worked in Links2 (the CLI browser)), but having a blog that can't be read in a modern Firefox seems a bit weird when preaching such messages.
- oscarcooper257 4mo ago[dead]
- zoetaylor00 4mo ago1KB for working form validation without all the library drama is just common sense. But common sense got replaced by "I like the shiny new thing" somewhere around 2015.