Look — I’m old enough to remember when the “web standards movement” was controversial. I had to argue with my boss about using CSS vs tables. And I remember when you did need javascript to do a lot of things that HTML now does natively. JS frameworks had to exist to push the state of the art, because the state of the art got stuck. The standards bodies and browser vendors got their shit together, and now you can do things you used to need frameworks for in plain HTML. That’s great! But let’s not re-write history, here.
Software is in a constant state of revolution and counter-revolution. It’s one of the things that keeps this job interesting.
Sort of but it just builds on top of cruft. CSS and html is poorly designed to do what we are doing with it today.
Like I understand the point of not building bloat. But the reason why people build bloated stuff like react is because the primitives are just raw shit. HTML and css is just really bad.
Oh? All things considered, I believe html and css are both great. Incredibly flexible and very easy to get a basic "framework" started for consistent design
Everything else I've used to date (for UIs) was either extremely limited or way more complicated to use in comparison
I personally feel like the only thing we're missing is a way more aggressive deprecation policy. Not actually removing the API, just clearly signal that you would probably be better off not using it in 2025.
CSS is incredible technology, but holy shit does it feel archaic in a large Typescript project to have a massive design system in a string.
Why can’t I click an element and see the css files that apply to it? Why can I get autocomplete for my utility classes and custom properties? I would happily nuke CSS from a project for a typescript library that could marry the two worlds with minimal trade-offs, but I’ve yet to have the time or courage to dive into a library like vanilla-extract: https://vanilla-extract.style
Look - the content is good and some of us are not native English speakers. People should edit their chatgpt correction but we should stop calling everything AI generated without real proof. Anyway, if the comment is meaningful and adds to the discussion, why should I care if it was AI generated?
I agree. The structure feels like an LLM. What scares me is that the more I use it the more I feel myself writing like chatgpt. Hell even thinking in its 'tone of voice'
I was having trouble getting reader mode to "detect" my blog posts a while back, I was never able to find documentation on how it decides to show the button or not.
You can configure that as a default in Safari, and manually opt sites out to allow them to render normally; I use the setting on iOS and have for years.
I think Firefox requires an extension (vendoring Readability.js) to behave similarly, since it doesn't expose its built-in version even to extension developers. (I don't think that's even part of the manifest spec.) I've never wanted the behavior on a desktop browser, though, so don't take my word for it; it's been probably most of a decade since I looked.
The intention behind Readability's introduction was that it remain a feature entirely and only under control of the user. So far as I'm aware, those browsers implementing the capability have honored that intent, as has W3C.
I'm not asking for default loading sites into readability mode, just that the button to load a site in readability mode isn't arbitrarily hidden.
I don't understand how hiding a button is "giving users control". Wouldn't it be under more control of the user to always have the button to load in reader mode available?
Oh, I see what you mean. The option is surfaced where a page has "enough" text according to Readability's heuristic. Where absent, it wouldn't be able to do anything useful anyway. (It is doing something a lot more sophisticated than just document.write(Array.from(document.querySelectorAll('')).map(({ innerText }) => `<p>${innerText}</p>`).join()).)
I can't really speak to the details of that heuristic this decade, but I believe an early version of Mozilla's reader-mode implementation (maybe also the basis for others) still to be available on Github under the name "Readability.js", which should provide a suitable reference implementation for further review. (This is also why I keep calling it "Readability;" that was the name it wore when we met.) I assume a current version is also available in the Firefox source.
iOS Safari's implementation is always available, even when the "Show Reader" menu option is grayed out, the equivalent of Firefox hiding the button: long-press the "aA" context-menu icon in the URL bar. But if the page can't be rendered usefully in reader mode, all that will happen is the regular haptic to tell you the system recognized your input.
It's an extremely intentional and all but plagiaristic take on a Zed Shaw piece from the late oughts. Tastelessly slavish imitation, at absolute minimum. At least the original is linked in tiny print at the bottom, below the advertisement.
A great deal, I hear, but he was young then too, and deeply frustrated with a poisonous Boston in-crowd. The methylphenidate style has not come back into vogue in the meanwhile, no more than Rails ever has or will.
| <font size="5" face="Helvetica">Monitor and protect your web app from cyberfraud, account threats, bots and abuse with a single security platform.</font>
Sure but how is this better than setting up the font in CSS? There may be an advantage to not having an external CSS file, but setting up CSS rules inside the HTML file works perfectly well and is much more maintainable than this IMHO.
The short answer: Because anyone can do this using in-line or in-file CSS.
The long answer: Technologies are a blend of humans and machines. Typing HTML code by yourself, especially in 2025, gives another level of meaning and human touch. It's more like modern art in some way.
Hard to disagree on the last part, but hand-coding HTML4 for food in 2025 is not the answer. First, it will look horrible. Second, if will look even more horrible on mobiles, which are first.
Third, if you're really determined to go piedi nudi nel parco in a modern browser, why not abandon HTML4 as well, and the dreaded 1-pixel along with it?
Just escape everything altogether, and you'll be fine. Avoid HTML5, CSS, WOFF, Canvas, and all other dreadfully slow and bug-ridden APIs. You'll be fine, take my word for it. All you need, really, is unobstructed access to target GPU, which will be orders of magnitude faster than all API bs and still do more than HTML4 ever could. For one example, can you figure out how the following page manages to render an HTML page with Garamond Math on it without loading any Garamond Math to begin with and no HTML to write home about? Network tab is a good start:
Easy to update means you only need a text editor and source code to maintain it.
Regarding the effort to write `<font size="5" face="Helvetica">` (I'm just typing this again), it's fairly easy, and taking into account the meaning of the text inside those tags, it is worth spending the time for typing.
Easy as in 'you do not need to shave a yack, just open a text editor'. As opposed to "install node, sass, webpack, vuex, tailwind" or what have you nowadays.
But the same can be achieved by using css. Then there's still nothing to install, and it's still something you can change by just opening a text editor. Plus it would be easy to update in the sense your parent poster meant. And with css you're using the right tools to style your website, so you won't have people complaining the website isn't working well on mobile, although you thought it would be.
I'm all for using simple tools and web standards, but this website with its layout build with tables is a terrible example.
Just for fun, I tried opening the tirreno website on the first iPhone now, and it works as it should.
However, it must be clear that no one expects this website to be taken as an example. Back in the day, there was no other solution than using tables and 1px gif spacing, this is just a reminder of how things were at the beginning.
It’s like seeing neon gas advertising and insisting it should be made with a flat screen display. In this case, it’s our way of bringing back neon to the web.
No, brother - a neon tube requires at least a 4kV transformer, she's not so easy going. And in 2025 there are still absolutely valid use cases for CRT oscilloscopes, lamp amplifiers, LPs and Compact Cassettes, if you're old enough to know what those things are. But arithmometers are only useful to have fun under influence, sorry. Don't be a luddite.
A modern web browser, on the other hand, is the closest the humanity ever got to building a tower of Babylon, which is very easy to see by spending a few hours exploring how the Chromium sausage is made. I'm not aware of any worse codebase out there in the wild, and it is definitely not glowing neon.
On yet another hand, there are good news - it is just a matter of time when DOM API will get properly exposed to WASM VM, and on that sunny day all script kiddies, along with nodejs kiddies, along with endless pythonista will finally and traumatically learn the difference between the definitions of "computer programmer" and "software developer".
The day will come, and computer programming will again be art and full of fun.
You always get back to the basics, they say. But the road is long and full of sticks and stones, just like a false sheperd called 1-pixel gif. That's not yet the art of programming, sorry.
And btw I fully support HN for flagging this post. The quality of writing there is as silly as it is obnoxious.
There is nothing about luddism here. We had a choice: to create a standard modern website, as everyone does these days, or to try something slightly different. The team chose a non-standard approach. To an external observer, such as our banker, it looks absolutely normal. However, if some CTO veteran were to delve into the code and encounter HTML tags that they haven't seen in the last 25 years, they might experience some sentimental or ironic feelings, but in any case, no one gets hurt. Luckily, the <bgsound> tag is no longer supported.
What these web page experiments actually prove is that there are people in the industry who either don’t know or have forgotten what a real HTML page without JS/CSS frameworks looks like. For those, it might be beneficial to discover how things were done at the beginning.
Thanks for mentioning the art. This is something that couldn't be done alone, as it requires both a creator and a spectator. From this perspective, feeling that this HTML web page has an influence on a different audience is exactly what modern art (not to be confused with programming art) is about.
P.S. I am not associated with the original post above.
It's super zoomed out on my phone, it doesn't have a mobile viewport. And if you do want to read text, you have to zoom in more than the width of the full page so you have to constantly scroll left and right.
This is a failure or regression of mobile browsers. We once had automatic line wrapping (Opera Mobile did it best back in its Presto engine days) which provided readable size paragraphs and avoided the need for horizontal scrolling. The onus of adapting the presentation to the medium shifted to the websites, while browsers lost agency.
I'd like to see how that worked. In my mind I'd guess such a feature could have been great for one column layouts, like in this website, but I can't imagine how it would be for the then-traditional layouts of a left sidebar navigation column and a right area for content.
Page starts zoomed out. Each element is limited in width. Double tapping on an element (e.g. a paragraph) zooms in on said element, making it full width. Further zooming in causes the text to reflow to the viewport width. It's difficult to describe, but it used to work fine.
This sets the width to a mininum of 800px, no matter what phone model or browser you use. I'm a little confused how you can can claim this "Works well on any device" when apparently it was not tested on a phone. I, too, closed the tab before I even had a chance to learn about your product.
Update: Not OP, but I'm on a Pixel 8a with Firefox.
This is a software website, and we don't expect many visitors from mobile devices. However, I'll check if this issue can be resolved without using CSS.
I think this is a classic case of familiarity blind spot. It's easy to think of your users as people similar to you, but that's not necessarily the case. Statistically mobile phone users outnumber non-mobile users online nearly two to one, some statistics put the estimate even higher.
This is a misleading reference to statistics without context. It's not a B2C website, and in fact, most of our audience accesses it from Linux devices rather than mobile Firefox.
Anyway, even if someone does visit using mobile Firefox, it only takes one zoom-in/ zoom-out to adjust. So it's not really a webpage code issue, it's more about how Firefox renders pages on mobile devices.
This whole interaction is weird to me. Multiple commentators here have confirmed that your site is broken due to a, let say, somewhat unorthodox technical choice you've made. Rather than fix it, which would've probably taken less time than the thread here, you're trying to convince everyone else that they're holding it wrong. As an aside, it's not surprising that nearly none of your users access your webpage from mobile when it's broken on mobile.
> As an aside, it's not surprising that nearly none of your users access your webpage from mobile when it's broken on mobile.
I doubt their lower mobile visitor numbers are due to the UX on mobile. They may have a lower conversion rate from mobile visitors but it sounds like people don’t visit much on their phones. A given user won’t know it’s broken on mobile before loading the page on mobile.
Additionally, it is a marketing page for a B2B SaaS for web application security. With that context, only if they said anything other than “most of our audience accesses it from Linux devices” I would have reason to think they’re lying. I get the feeling that their business isn’t hurting for mobile users. (When I visited on my phone I figured it’s pointless unless I’m on something with a real keyboard once I saw what’s on offer.)
It is not broken on mobile. There is simply nothing to be broken.
What commenters above are probably suggesting is that there is no adaptive version for mobile, but no one had promised one.
One small, but important correction, it's a B2B on-prem web application, and this is exactly the reason why any devices except those that can run the web server itself are not the target audience.
> Anyway, even if someone does visit using mobile Firefox, it only takes one zoom-in/ zoom-out to adjust. So it's not really a webpage code issue, it's more about how Firefox renders pages on mobile devices.
No, it requires constant zooming and panning to be able read anything. And this has nothing to do with Firefox, Chrome and other browsers behave exactly the same. It is absolutely an issue with your website.
I feel like CSS is unfairly coupled to JS frameworks. It may be reasonable to say that CSS 3 is unnecessarily complex, but clean "semantic" HTML and a basic presentational style sheet is an amazing combination that isn't related to the ball of mud that modern development has become.
The idea to make a website without CSS/JS came to me when I was picking up my mechanical watch from the watchmaker. He used some analog machines to calibrate the movement, and it gave me a sense of trustworthiness that I want to convey through tirreno website.
Thank you. That is a bug and I will investigate. CloudFlare does inject JS into the outgoing HTML for email address obfuscation in the footer. I may need to remove that.
Sponsored content via a justfucking website. Bold move
Anyway, I am firmly in the "self-hosting modern Sentry is crazypants" camp, but https://telebugs.com/alternatives/glitchtip reads like a hit piece, and not a serious "but, why?"
Cleaning out the wordy, "oh so edgy" embellishment (probably authored by AI, ironically), here's a ChatGPT summary:
HTML is simpler, faster, and more reliable
The author rails against “bloated, over-engineered” JavaScript frameworks and build tools, pointing out that plain HTML loads instantly and “just fucking works” without constant updates or breaking changes
Frameworks add needless complexity and cost
You don’t need to manage hundreds of dependencies, CI/CD pipelines, hydration errors or “tree-shaking” when all you really want is a button or a bit of text. HTML has done this flawlessly for decades
Native browser features handle interactivity
Modern HTML alone supports expandable sections (<details>/<summary>), native dialogs, form controls of every kind (date pickers, sliders, color inputs, file uploads), and even creates global JS variables from element IDs—no framework required
Deployment is trivial
“Just drag, drop, and you’re done.” No container orchestration, no multi-step build process, no DevOps magic - HTML is ready to serve straight from any web server
Universality and longevity
Everyone “knows HTML” - from your grandparents’ wartime hand-coded tables to your dog’s Fiverr gig. It’s been powering the web since the beginning and will outlast any trendy framework
A call to rethink our tooling addiction
With AI able to spit out pixel-perfect HTML in seconds, clinging to heavy frameworks is framed as an outdated habit. The author challenges readers: stop overengineering and embrace the elegance of raw HTML
This link has been posted a million times, and I'm always surprised by the reactions. Yes, for anything that is data driven, plain HTML is great. Maybe sprinkle some markdown on top of it but that's all you really need.
But is that the only use for the web ? Are we pretending that the internet is only a collection of articles ? How do you end up with Figma, Soundation or Tinkercad with just plain html ?
No you (probably) don't need nextjs with greensocks for your blog, but there are valid reasons why fancy frameworks or javascript might be needed. I think saying that plain HTML is all you need is as silly as saying that you should always use the latest framework in your project.
"AI's out here, a gift from the heavens (or at least from Sam Altman's nerd fortress) ready to write your shitty little to-do app in five seconds flat. It can churn out pixel-perfect HTML, debug your fuck-ups, and probably even wipe your ass if you ask nicely. But no, you're still humping your frameworks like they're the last lifeboat on the Titanic."
Personal opinion is that AI will reduce the need for higher abstraction software libraries. ORMs for instance could go away. We will see wildly different software paradigms as the need for human understanding drops
I don’t think it’s quite that simple. Taken to the logical extreme, everything above pure machine code is “abstraction”, but I don’t expect AIs to produce good machine code any time soon.
Even if you consider trainability (amount of code etc), Python is a higher abstraction than C and I don’t see that going away either.
A more nuanced view is that libraries that exist to reduce boilerplate will likely see less use, whereas libraries that exist to simplify a problem domain or similar (automatic memory management language, crypto libraries, parallelisation abstractions) will stay, at least whilst we are relying on humans to review AI generated code.
i'm not sure i agree. maybe if you're "vibe-coding", but not if you're using AI as an assistant. a good abstraction makes it hard to write bugs, so telling AI to use a certain library (which i know to be high quality) is a good way to constrain the types of bugs i have to look for when reviewing the code.
Or it could make abstractions even more important and useful. If it's able to identify common but nuanced patterns across the entirety of github, it could build libraries and frameworks that satisfy them. Then it would fine tune itself based on those tools, and start using those abstractions going forward.
That would improve the consistency and reduce the complexity of software everywhere in a way that gaggles of human engineers across thousands of computers never could.
It would be beneficial for the AI too, as the fewer things it has to keep track of, the more efficiently and accurately it will be able to generate correct applications on top of it. This would cut costs, hallucinations, and allow smaller local models to perform better.
> Personal opinion is that AI will reduce the need for higher abstraction software libraries.
I'm not sure we should be excited by that. Instead of building more powerful high level abstractions we're giving up and hope to build better software by churning out tons of one-off spaghetti code.
this negativity around ai software is misplaced, and will be on the wrong side of history. the trend is ai built software that will be better than human built. vibe coding is just early adoption
its more fundamental than this, ai can certainly take an orm and replace it with generated sql. it can do the same for react components into html (still early days for this though).
Same is true on Firefox: works fine on mobile, but doesn't work at all on desktop. Especially weird as the mobile week picker is just a date picker that ignores the picked day and returns a week it seems; surely the same could've been implemented for desktop.
Even in a humorous context, cursing and insults land much better if they're used more sparingly. At some point in the essay they became distracting, and by the end I found them tiring.
We have great base tech on the web because people loved it when it was part of a trendy js framework, and wanted it in the base platform.
If the web wasn’t so amenable to frameworks & polyfills HTML wouldn’t have gained all the nice things in HTML5. We can be grateful for the explosion of ideas & the standards process that (mostly) keeps the best ones.
How much of that is down to browser bare-bones defaults before the page defines its own styles, IIRC bare HTML doesn't define what the client must do because at that level it's not defining a presentation.
I could see a browser making a change to have their defaults for an undefined style to something else, other colors and fonts or closer to reader mode, with an options toggle or flag to restore old behavior. I doubt many browsers would bother as unstyled pages are so rare for most of the web.
Theoretically if pure-HTML documents without CSS/JS got more common, end-users could just apply ther own 'themes' to HTML documents through their browser.
I am a data engineer and coming from scientific background.
And guess what works most of the time, the simplest (not naive or buggy) solution to your problem that takes into account the human factor, the consumer of your solution. That poor being currently being ousted from the binary garden of Eden by AI cops.
I would like this if it actually stuck to its own philosophy but for some crazy reason just HTML needs googletag manager and telebugs to look after it. Webdevs just can't leave shit alone can they?
Wait, this actually says to use the implicit ID mapping on the global object? That hasn't been good advice since about 1999!
edit: I checked and wow, it really does. Good grief, did an AI write this? Use getElementById or querySelector or querySelectorAll or any other remotely modern web API method instead.
Genuinely curious (as someone who didn't know about the implicit ID mapping until today): given that IDs are global, why is doing this any worse (or in any way different) to using getElementById? I.e. why is it bad advice?
This SO answer does a good job covering the reasons why, or all the reasons at least that I recall learning it was a bad idea. There may be more, but I'd probably have to go spec diving to find them.
Offhand these days I would expect asynchronous loading and rendering both to pose additional concerns. You may not be able even to guarantee whether or not the element you're trying to reference by ID exists at the time of reference. Oh, you can synchronize on DOMContentLoaded or something like that, but that's not going to do anything good for performance. And for that matter, you'd probably have to toggle a TypeScript compiler option I've never heard of, to get this sort of thing to even sort of fly - and there again, the API methods dating from this millennium will be mostly the ones where the type system is able to offer some guarantees.
What if instead of just using html, instead we use 20 JavaScript frameworks that talk to an electron server to call a series of microservices to determine which sql lite docker instance to call.
Then, sql lite returns a connection string to aws to pull XML containers of html that are converted to JSON and sent back to the front end to convert to html and render the page.
Maybe we can use lazy loading and some sliding panels on the page that slide in with fully rendered bmp images that are 20MB each despite only appearing in a 16x16 icon.
Oh darn this is just the standard webdev JavaScript bro tech flow? Guess I need to keep memorizing leetcode until I get my next genius JavaScript main idea to add another layer to this.
Fuck I hate this moronic regressionist mindset. If your project is too insignificant to benefit from a framework, then just don't use it? It has nothing to do with the technology, but everything to do with your piece of shit usecase.
Relax, it's just some 24yo edgelord discovering a world exists outside what they learned at React Bootcamp and turning against The Frameworks to feel clever.
While there are some valid points hiding deep in the sewage flowing across the page, it also misses a core point: The web (HTML/CSS/JS) is by now good enough to make actually decent UI that doesn't look like it's escaped from the 90s and is holding Geocities hostage.
As is, the page mostly screams "I don't want to learn anything new".
Yeah, if the point they're making is that you can make modern websites with just HTML, the website looking as it does really undermines that. Show off some flair if you want to convince me! I think the site this one is based off [0] argues for simplicity in a much less muddled way.
The site is beautiful in that it is fast, flexible across multiple screen shapes, readable, and accessible. If only more web sites would make these choices!
Back when monitors were 4:3 at 640x480, these plain HTML sites were readable and scrollable. It is 2025. Our ultrawide, ultrasmall, ultraresoultion screens make this a chore to read without playing with zoom levels.
What’s a real chore to read are all those “modern” sites with dark gray text on light gray background, 8pt font, and text constrained to a tiny 4inch wide column in the middle of the monitor. The fact that browsers had to all go implement a separate “reader mode” so that web sites can even be readable again is damning.
I’m not entirely sure this form of satire lands the same way it used to now that screaming and insults are considered a normal form of discourse, especially in TV politics.
This form of banter reminds me of Maddox from the early 2000s, which funnily enough is still active at https://maddox.xmission.com/
I agree its relatively played out at this point. Really this page is just a showcase of HTML features for web developers who don't have much experience with HTML, and I think the insulting attitude and comedic approach may hold reader's interest than a more dry technical presentation of the content.
“without a clear indicator of the author's intent, any parodic or sarcastic expression of extreme views can be mistaken by some readers for a sincere expression of those views”
I think you need to stop telling people what you think. There is a risk you might be wrong and you come across as ignorant. Case in point: I didn’t build my career around front end technologies. Frankly, I am certain you have no clue what I do.
Don’t bend yourself backwards over it. All I’m saying is: if your sense of humour is repulsive, good luck. If it’s a satirical thing, give me a clue.
You’re making stuff up. You should try your luck as a non sci-fi writer. Thanks for your psychoanalysis. Don’t think too much. It doesn’t seem to work anyway…
You have your answers at the fingertips and yet you choose to make shit up. Like I thought, you’re an ignorant person who has a desire to judge others. You do live in a bubble, indeed.
Software is in a constant state of revolution and counter-revolution. It’s one of the things that keeps this job interesting.
reply