Just use HTML
135 comments
·May 12, 2025mbgerring
ninetyninenine
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.
ffsm8
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.
agos
CSS is really great, and I've felt this way since it was introduced - but the lack of tooling around it today is anachronistic
xnorswap
Somehow this site is both plain HTML yet also blocks the Firefox reader button, rendering it unreadable.
( Edit: Browsing to https://justfuckingusehtml.com/index.html shows the reader button, I guess Firefox has a really dumb heuristic for when it shows. )
Retr0id
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.
uallo
You may be able to debug it with https://github.com/mozilla/readability
null
throwanem
Readability's heuristic is intentionally opaque as a defense against targeting by advertisers and others who abuse the web.
Retr0id
I can understand making it difficult for a webpage to "opt out" of reader mode, but why make it hard for willing developers to "opt in"?
throwanem
That would require exposing Readability in the web API.
xnorswap
Why not just always show it?
throwanem
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.
frizlab
Reader works in Safari
reconnecting
We made tirreno website [1] with only HTML 4.01 and 1 transparent pixel, no CSS or JS. Works well on any device. Easy to update. Highly recommended.
bambax
| <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.
reconnecting
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.
Mashimo
Might be art, might be fun. But you also claimed it's easy to update.
But now you have to write <font size="5" face="Helvetica"> every time you create another one of those elements.
And if you want to change the font you would need to search and replace in different .html files.
It does not seem easy to update.
pfg_
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.
noisem4ker
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.
Gualdrapo
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.
Etheryte
Impossible to read on mobile unless you pinch zoom way in and then pan back and forth across the page. A bit bold to say that it works well.
reconnecting
Interesting, as the webpage has a viewport meta tag.
May I ask what your phone model is?
uallo
<meta name="viewport" content="width=800, initial-scale=0">
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.
Mashimo
> Easy to update.
How does updating the font or color work? Search and replace on multiple HTML files?
bradly
Nice! I'm working on a private Recipe bookmarking site that currently has no JavaScript and minimal CSS.
reconnecting
It's says 'Your browser is not supported. Please upgrade your browser to continue.'
bradly
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.
bdcravens
I have no idea if this is satire, or if you're a younger developer who "found" the techniques we ran away from screaming 20 years ago.
<table border="0" width="720" cellpadding="0" cellspacing="0" align="center">
<td height="1" width="100%" bgcolor="#575677">
<img src="spacer.gif" alt="" width="1" height="1" border="0">
</td>
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.reconnecting
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.
InMice
You don't need to swear at me about it, thanks.
Tade0
I think this style of writing tries to emulate what passed as "cool" in the early 2010s or so.
Matthew Inman of "The Oatmeal" is to me a leading representative of it.
throwanem
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.
Tade0
Ah, of course, how could I forget the pioneer of this style in tech and his work?
I didn't notice that link as I found the Telebugs ad off-putting and closed the tab.
I believe he mellowed out since.
mdaniel
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?"
I'll keep my Rails commentary to myself
obsolete_wagie
"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
daxfohl
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.
ratorx
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.
woodrowbarlow
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.
obsolete_wagie
once AI reaches a certain level of accuracy, it will seem foolish to make it use abstractions built for humans
garylkz
and once the "accurate" AI accidentally wrote bugs, it will seem even more foolish for humans to debug the binaries built by AI.
dsego
> 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.
obsolete_wagie
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
netdevphoenix
> We will see wildly different software paradigms as the need for human understanding drops
Isn't an LLM basically another abstraction layer? Unlike React or EF Core, it can talk back
obsolete_wagie
I think of LLMs as a compiler of language into code, it can generate lower level code than we would normally build
mrkeen
LLMs reinforce what the majority is already doing, because that's what it's trained on. I'd like ORMs to go away but LLMs aren't going to do that.
obsolete_wagie
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).
Retr0id
What percentage of this was written by an LLM? (Asking out of genuine curiosity, parts of it are triggering my LLM-detector while others feel human)
Swoerd
[dead]
baal80spam
I loved web 1.0, but try to sell it to a customer.
bdcravens
Unfortunately many sites are little more than web 1.0 inflated with a consulting boondoggle.
graemep
You can sell HTML plus CSS in many cases.
JKCalhoun
I could live with it ... if only there was a significant left margin.
sam_lowry_
I would have added a section about tab index.
Tab indices is lost sacred knowledge.
Places like GitHub, GitLab and even Zed homepage break Vimium by adding "shortcuts" without even thinking to implement proper tab indices.
kyrylo
Stop reinventing the wheel. The web was doing just fine before your bloated frameworks crawled out of the sewer.
nartho
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.
simonw
TIL (from "Choose a week to question all your life choices") about:
<input type="week">
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...Weird that it's supported by mobile Safari but not desktop Safari (according to the support table). And not in Firefox yet.
wcoenen
Note that these are ISO 8601 weeks, which may not match the expectations of users everywhere. E.g. the US has a different system.
https://en.wikipedia.org/wiki/Week#Other_week_numbering_syst...
jeroenhd
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.
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.