Hacker News new | ask | show | jobs
by tonyennis 954 days ago
OP Here. This got more engagement than expected, some of the bits I've picked up in discussion:

"Recommends skipping build step then mentions Tailwind": We use static-tailwind, a version with no build step, in development.

"Recommends hyperscript, a new non-js syntax" - Agree this isn't perfect & would prefer something which uses js. Was going to use Alpine but also have found that to be quite brittle in production. Nor do I love any of the libraries on unsuckjs.com, which has a good collection. We're working on something here which we'll launch at some point.

"OP should look at the recent Rails updates" - Been using Rails for 10+ years - everything we build is on top of Rails - I'll write a post on HTML First Rails at some point. I think they'll get there but currently all the named libraries (Turbo, Hotwire, Strada, Stimulus etc) are 1. Rails specific, and 2. Have a high learning curve. One of the points of HTML First is to avoid framework lock-in.

"This is a blog spam post written by an author that has no credibility in the space": Brutal

8 comments

> We use static-tailwind, a version with no build step, in development.

https://github.com/tonyennis145/dumb-tailwind/

Is it this? (A 3.9 MB CSS file?)

My personal gripe with build steps is not the build step itself, rather the unreliability of the JavaScript ecosystem and the often head-scratchingly opaque error messages.

Build steps such as a hypothetical `css-compile` don't address limitations of browsers, but limitations of network connections that may struggle to download (and frankly, at 3.9 MB, devices that struggle to parse) large amounts of CSS and JavaScript.

Even if browsers can download multiple files at once, they can't download files they don't know about, which is why ES modules in the browser haven't taken off as a way to eliminate the build step.

Personally, I am happy to see someone else thinking about cutting down stuff and simplifying. Similar posts have started popping up more frequently and as a fan of simplicity, reliability and maintainability I am very happy! Don't get discouraged.
I like this. I share a philosophy similar to this: hew close to the grain of the material. It's heartening to see articles like this. I've created many expressions of my ideas on this in code over the years: Brutal.JS, VanillaView, Bang/Good.html and I recently created one that is even simpler and I'm very happy with. It's similar to a unification of these ideas with Custom Elements. You can check it out here: https://github.com/00000o1/-
> We use static-tailwind, a version with no build step, in development.

So you do use a build step for production? Or are you shipping a bunch of unused styles?

It looks like the latter, and loaded blocking as well.. I get it, convenient, but that's not really great for the argument.

https://html-first.com/stylesheets/tailwind-full.css 68kb of blocking unused css.

In total ~100kb of blocking scripts and styles. Most frameworks would optimize this for you out of the box..

Congrats on the big post!

Though I do think some of your ideals are worth challenging either because I think you're making an incorrect assumption or holding too close to some particular dogma, it's always good to hear people pushing for simplicity in the space. Keep pushing :)

Well, also, you make some claims that could be interesting then provide zero proof or even discussion at all.

The entire world: interesting in eng being more productive and interested in more maintainable software. So the first 2 sections are interesting.

You then chase them with a list of assertions with zero discussion as to how they make eng more productive, or lead to more maintainable software. Also without even a hint of why people eg prefer not defining styles inline (protip: fun at first. Now try changing one of them... have fun reviewing 3000 inline bits of css.) Like the industry settled on certain things for a reason, and you don't even attempt to engage with that reason.

You also cite dhh when you like his reasoning and ignore him when you don't. about which, well...

"list of assertions with zero discussion as to how they make eng more productive" - this is fair. Initial versions of the post had much more of this but I felt it added noise to the core principles. I will be following up with some more posts and real world examples though. "Like the industry settled on certain things for a reason" - In my experience An industry "settling" on something hasn't been a great indicator of its effectiveness. Industries tend to settle on practices that increase the value of its practitioners and increase barriers to non-practitioners. The legal industry, for example, is still remarkably expensive, laborious and bureaucratic, and while outsiders recognise this, there are few people within the industry who seek to change it. Thanks for the feedback
Never read the comment section!
Do you believe someone in the future will actually create a complex web application using pure HTML+CSS+Javascript/Typescript?

Is that even possible at this point?

Thanks.