Live data from Hacker News

Unpopular Opinion: Bootstrap is a better front-end framework than Tailwind

news.ycombinator.com

1–10 of 39 posts

Unpopular Opinion: Bootstrap is a better front-end framework than Tailwind

#1
Tailwind is the hot topic these days, and 9 out of 10 developers will probably suggest (or even force!) you to use Tailwind over Bootstrap. However, here are some logical and rational reasons why Bootstrap is actually the better framework:

1. Easier learning curve. Bootstrap 5 doesn't assume deep expertise in frontend design. The fact that backend developers can implement it easily without learning arcane concepts like state management or virtual DOM is highly underestimated.

2. Highly Utilitarian. While tailwind markets itself as a "utility first" framework, Bootstrap offers real utility without all the extra fuss. Navbars, modal popups, utility classes for colors and accents like `bg-primary`, `bg-secondary`, etc.— are all built-in and ready to use. How much more utilitarian could you get?

3. Creativity within Uniformity. This point is more about psychology than technology. One of the biggest criticisms of Bootstrap is that "most Bootstrap-built sites look similar". But this is a subjective opinion and ignores the fact that creativity doesn't always equate to reinventing the entire wheel. You can still be creative with configuring a wheel's spokes, tyre colors, tube pressure, etc. on an assembly line - In fact, such creativity is ideal when it helps increase productivity while delivering a standardized, user-friendly experience.

PS: Which one feels simpler and more utilitarian to you?

- Tailwind: `Click me` - Bootstrap: `Click me`

Re: Unpopular Opinion: Bootstrap is a better front-end framework than Tailwind

#2
> bg-sky-500 hover:bg-sky-600 active:bg-sky-700 text-white px-4 py-2 rounded-lg

What fresh fucking hell is this? I can't say I've had the (mis)fortune of being forced to work with Tailwind (I've seen the name enough to know it's something vaguely "CSS framework"-adjacent though).

Seriously, though what kind of crack induced nightmare state was required for someone to think up such an abomination, implement it, and then make it public for the world to see?

Furthermore, who in their right mind saw that and said "yep this is fine"?

Re: Unpopular Opinion: Bootstrap is a better front-end framework than Tailwind

#3
post #2

> bg-sky-500 hover:bg-sky-600 active:bg-sky-700 text-white px-4 py-2 rounded-lg What fresh fucking hell is this? I can't say I've had the (mis)fortune of being forced to work with Tailwind (I've seen the name enough to know it's something vaguely "CSS framework"-adjacent though). Seriously, though what kind of crack induced nightmare state was required for someone to think up such an abomination, implement it, and th…

Not a tailwind geek myself but I think how they justify is "better to have a little extra spaghetti in your html code than create a truck load of spaghetti in your app.css stylesheet."

The alternative to using tailwind here is to define the specific style elements for each one in the css stylesheets yourself with something like this:

.bg-sky-500 { background-color: blue; }

Tailwind proponents argue that they avoid this "stylesheet hell" by picking ready pre-defined tailwind classes like bg-sky-500, etc. Plus they also argue that this workflow will increase productivity by standardizing "style mindsets" of your dev team who all will think "blue" means "sky-500" (for example).

Maybe it has use cases in deep or professional design work but for most backend or full-stack devs, bootstrap is definitely better than meddling with this structure.

Re: Unpopular Opinion: Bootstrap is a better front-end framework than Tailwind

#4
One advantage I've noticed for Tailwind:

- If you just paste an outerHTML from the dev tools, AI coding agents can immediately figure out what it will look like; debug styles; etc.

I personally preferred PicoCSS for a long time. Pico was nice, but it injected a lot of CSS var noise into the dev tools and I started fighting with the breakpoints.

More recently, I've been just doing handcrafted CSS with a bit of OpenProps.

Re: Unpopular Opinion: Bootstrap is a better front-end framework than Tailwind

#6
Sure Bootstrap is better, for you.

Your postscript explains why: using the same "btn-primary" as every other user of the framework hints that you're not building something with its own visual identity.

For the rest of us, we throw that "bg-sky-500 hover:bg-sky-600 active:bg-sky-700 text-white px-4 py-2 rounded-lg" (or whatever color and shape matches our brand) into a component with a variant=primary property and call it a day. What developers actually see on a day-to-day basis is .

Re: Unpopular Opinion: Bootstrap is a better front-end framework than Tailwind

#8
Better is subjective, but I will say:

Bootstrap seems to create less CSS soup, but more HTML soup. And Tailwind vice versa.

For an admin panel or something back office, I agree that Bootstrap seems simpler.

But for something user facing and working with a designer? Tailwind is easier to customise.

Re: Unpopular Opinion: Bootstrap is a better front-end framework than Tailwind

#9
I've worked with both for years at this point. Imo they each have their sweet spot depending on what kind of page you are building.

Bootstrap is a huge time-saver when you are mostly fine with the defaults it ships. Extending it means writing a CSS file, which brings up the ancient problem of "gosh dang what's again all the places where this class/subselector is used?". Even changing colors is usually a trial and error effort, because different components use different variables as their basis. If you ever were to change font sizes, you will quickly notice that paddings etc. also need adjustment, so it's not as trivial as one might assume.

Tailwind's pain & gain come from the other direction: It's super easy to have every element look the way you want, but you also have to specify it for every element, which means high chances of missing something resulting in inconsistent appearance. It's not enough that I can abstract out the component, because the font size and line spacing must be visually(!) consistent with the , so those two are semantically linked together, but tooling can't help me reliably with ensuring that. Tailwind is, in comparison to CSS also way more limited in what can be expressed. Take something like this as an example of what is not expressible in tailwind:

``` .component { .listitem { p { color: red; } } .listitem.special { p { color: blue; } } } ```

Re: Unpopular Opinion: Bootstrap is a better front-end framework than Tailwind

#10
Fine I’ll chime in… The main advantage tailwind has is that utility css can be composed without needing to worry about hierarchy. This is not true for bootstrap.

This makes tailwind much more predictable for component based UI architecture, in your example you would define a component so that verbosity of css is explicitly defined once where it’s used, not buried within a bootstrap framework somewhere.

If you’re not using a component based architecture, then tailwind is much more verbose, but still useful, as copying/pasting tailwind HTML is insanely easy and reliable. This is not true for bootstrap.

Bootstrap has it’s place, it’s good for cases where you’ I don’t care about the details of how it looks. But with component based architectures, tailwind is a much more flexible and better abstraction in my opinion.

Post reply on HN