On HTML
Although not as mature as a lot of other disciplines like science or architecture, web design now has established codes. Often referred to as best practices vaguely agreed upon across various sub specialties. Accessibility, layout, frontend, content, and of course design have co-evolved with the internet itself, shaped by constraints of browsers, bandwidth, and human cognition.
Roughly speaking I consider websites on a spectrum going from: one page only highly customized all the way to massive web platform with encyclopedia-like site maps. I work at both ends of that spectrum. It would also be hypocritical to not say that my heart belongs the crafted, expressive edge of the spectrum. But I work at GitHub, on the other side. It's a paradox I live with: favoring the handmade while making a living in the industrial.
The creative aspect is only one facet. Its definitions often depend scale. Design quality often inversely correlates with scale. It’s never realistic to painstakingly polish every page. Companies invest in design where it matters: the homepage, events, high-stakes conversions. Elsewhere, you see design in glimpses like a well-set type, an cool footer, an success micro-interaction.
When it comes to UX it’s all about navigation. Where do all the links go? How many navigation layers can a user tolerate before confusion sets in? Modern tech stacks and organizational silos compound. No amount of UX audits can reverse entropy. The mess is expected. UX at scale is like public health — responsive, imperfect, always playing catch-up.
Web design today is (tentatively) being abstracted away. No-code tools, site builder, and vibe coding promise ease and speed. Yet the quality of both code and design is not there. These tools often treat HTML and CSS as leaky implementation details, trying to bypass them instead of embracing them. Until abstractions handle those holistically (not just visually), the need for foundational fluency persists.
The only thing I know for sure is that everything is still rendered in HTML, styled with CSS, structured in the DOM. AI still generates HTML. It doesn’t bypass it. Even the most advanced tools must output valid, performant, accessible markup. This isn’t just legacy crap. It’s infrastructure. The web has always been layered — from raw HTML to whatever React monstrosity is trending today. Each layer adds theoretically power, but also dependency on what lies beneath.
Abstractions are not replacements, they’re translations. And the best translations are fluent in the original language. That’s why the basics I learned in 2011 (like the box model quirks) are still relevant today. My daily work still involves negotiating padding, type scales, and easing curves. The context has changed, but the core hasn't. The tool fuss fueled by VC money is hype more than true need, which makes my job somehow political. React and Figma imposed themselves. I don’t hate either but that their adoption came with cultural and workflow baggage that can’t be ignored.
As long as the web remains a document-based medium abstractions and tools will come and go, but HTML will persist. It’s not a bottleneck. That’s what keeps the web open, interpretable. The rising use of AI, headless CMS, or design-to-code automation still rely on the same foundation. As the web remains accessed by browsers and is fundamentally about linked documents (vs apps), HTML will remain the lingua franca. Even new tech like WebGPU or WASM doesn't remove the DOM, it merely works beside it.
At least this will be true as long as the internet is for humans...
I wrote this very quickly, combining a bunch of notes from the last 6 months. It's feels oddly satisfying but my limited coding skills make me feel like a fraud as I upload this post.
← Index Published on 2025-05-23