I evaluated Bullet Train last year when building an MVP for a client. Ended up using Jump Start Rails instead. Main reasons:
1. The hybrid approach to iOS and Android apps with JSR were better than what BT had to offer
2. There was a lot less to learn about the mental model of how JSR was built via Bullet Train. It was basically pay, pull down, configure, and get going with JSR. BT has things like SuperScaffolding, an abstraction layer on CanCanCan, etc. I didn't want to have to ramp up on those to decide whether they were better than the alternatives.
YMMV of course. JSR is a paid app and IIRC BT was at the time too... but looks like maybe not anymore?
Yes, this is true that we lean heavily into Tailwind CSS by default. However, when I implemented our "new" component system in 2021, I designed it so that there was a path forward for Bullet Train on vanilla CSS or Bootstrap if anyone wanted to implement it. I don't have any plans to do it myself, but people (including Tamik, the original theme author for Bullet Train) have expressed an interest. I'd love to see it happen. You can get a sense for how this would be possible from our theme docs at https://bullettrain.co/docs/themes.
That's the nature of how these things go. People that like Tailwind praise it. People that think it's fundamentally bad design avoid it and don't say too much, or are drowned out by the people praising it.
People who just write SCSS don't even think about it.
> Why fight the stream if there's no good reason for it?
Why jump tool chains when you already have more than enough on your plate to keep up with?
I watched a conference presentation last week from a front-end person who talked about FE design. He pulled up a slide on bootstrap and said "if you use bootstrap, everything will end up looking like twitter. your login page won't be able to be creative, you'll just look like every other login page".
I had to push back at the end of the presentation with some BS support. I don't use it much any more, but the obvious misinformation about bootstrap continues in 2023, and it's bothersome. FWIW, the presenter said "oh yeah, you're right, and it can be used well, but some people just use the defaults".
Separately, my experiences with tailwind have been less than exciting. Perhaps if I spent the $300+ on 'premium tailwind components' I'd be more on board?
> easily interoperable between stacks so not really hard to pick up and useful if your project already uses it.
And if I don't use it? I get a fair amount of pushback from colleagues sometimes for not jumping on the 'newest' things. Spoiler: I don't deploy many projects with docker either. Is that 'fighting' it? Or just using other established/tested/documented tools and proceses to get a job done?
No, that's not true; a 2023 book giving advice like "don't use borders" is definitely not in any way a seminal source of "good design".
Besides, I'm not saying I think it's a fundamentally bad design, I'm saying those voices are drowned out by the people on-board with it - for a great example, consider how you just came into the conversation, squished the nuance I was discussing, and gave hyperbolic praise to their book just because you like their tool.
Millions of engineers are now more empowered to make design decisions - and given more convenient tools. The price - ignoring how CSS was designed to work, unreadable mess of classes in the markup, a bootstrap-like cookie cut approach to everything, and yes, the color purple.
The book included some useful rules for people new to interaction design.
These can be applied without the use of tailwindcss.
Use of the framework tailwindcss has nothing to do with the book.
The framework itself goes against the intended use of css. It ignores the power of the cascade and leads to a pile of incomprehensible css repeated over and over again.
It is convenient and unreadable at the same time.
Handy if you don’t want to learn css and use it properly and completely unacceptable if you do.
I have. It's essentially a write-only DSL for CSS that, were you to group it via @apply or similar, you have reinvented CSS classes. In fact I had a huge thread discussion on HN about this:
What I really think you're saying is that Tailwind is a huge time saver when it comes to design, and compared to your past experiences translating designs to CSS it felt like a net win.
A lot of people disagree with Tailwind's design philosophy on both the developer and consumer side of the code (i.e. DX and UI), so it's questionable what "real project" and "time saver" really mean; ironically, I question that your definition of "real project" even included a team with design chops.
I like Tailwind, but I like it precisely as a non-frontend person working on side projects: it lets me iterate quickly without a deep knowledge of CSS (while at the same time providing an introduction to modern CSS).
I can see how that would also be a benefit to a "SAAS starter pack" where you have a small team wearing many hats, probably people with a familiarity with CSS but not experts. The code base in these early stage startups and side projects is going to be small and you want to move quickly. Tailwind is great at that.
However if you have a frontend team of CSS experts to draw upon, the benefits of Tailwind are fewer and the downsides are greater - your CSS people will not enjoy having your classes named things like "px-2 py-1 rounded border bg-blue-800 text-white font-bold hover:bg-blue-500" rather than just "btn btn-primary". They can iterate fast anyway and they will probably leave more maintainable HTML and CSS/SCSS in the long run.
However I'd still be interested if any large teams (with correspondingly large code bases) have made Tailwind work for them.
> ironically, I question that your definition of "real project" even included a team with design chops
“No, you have never worked on a real project!” :)
Both can be real projects, without quotation marks. I’m constantly surprised that there are so many different ways and processes to build a website; and people who think theirs is the best.
Indeed, personally I would never open a conversation with that, but I believe this is someone gussying up their personal hobby project where they learned how to use a CSS framework into a "real project" while they denigrate someone else.
If we're going to discard some projects as real, a pretty easy filter is "were multiple people required to build it". People who need Tailwind to provide their design system like Tailwind, but they are usually working on very small-scale projects they're unlikely to maintain and upgrade like a project with real users, real design, and multiple engineers would. And a pretty easy proxy for the latter type of shop is "do you have people who aren't even front-end engineers doing your design", and that commenter was displaying all those signals to me.
Anecdotally, I can tell you that Tailwind is heavily favored by shiny designery startups. Many of the best designed websites these days are built with Tailwind, and design-oriented engineers are reaching for it first.
Back in 2018 I was arguing against utility classes and vetoing their use in projects I was involved with in favor of thoughtfully architected SCSS. By now in 2023 it's clear Tailwind has earned its place in high-end UI development.
Your first example implies "The New York Times" uses Tailwind. Besides that being hilarious, you click the link and immediately see there is a big subheading "Events"
I have never heard of NYT "Events", so I checked out their page:
> Do you believe that [The New York Times Events doesn't] have teams with "design chops"?
Yes, yes I do.
Not really going to bother with the rest, you're joking if you think these top corps meaningfully rely on this 2-year-old CSS framework. I exactly believe that you're linking me to things thrown together quickly by a resource-strapped team, the "Events" example merely affirmed it
Edit: I sort of bothered
* GitHub Next - splash page
* Shopify - marketing page
* Google IO - marketing page
* Microsoft .NET - marketing page
* Netflix Global Top 10 - marketing page
* New York Times Events - extremely basic
* OpenAI - Attention grabber, but... the homepage didn't even use full width of nor center content in my 1440p display. Not exactly a UI-driven success
* Mashable, The Verge - Pretty bad websites.
This is my point. People use Tailwind to slap together something good looking and simple. They don't use it to build applications because you make your own design system for applications.
I agree. The main uses of Tailwind are people making template-based pages, or putting up informational offerings in front of service-oriented businesses which give people APIs to build their own apps on.
I don’t think anyone is typing out every link at this point.
Html is split into components or views or partials. Links are inside loops etc.
You save time every time you don’t have to think about coming up with a new class name or how it might affect the hierarchy.
I totally understand it feels weird to begin with but on a major project you never worry that your css tweaks might affect some other obscure part of the site.
1. The hybrid approach to iOS and Android apps with JSR were better than what BT had to offer
2. There was a lot less to learn about the mental model of how JSR was built via Bullet Train. It was basically pay, pull down, configure, and get going with JSR. BT has things like SuperScaffolding, an abstraction layer on CanCanCan, etc. I didn't want to have to ramp up on those to decide whether they were better than the alternatives.
YMMV of course. JSR is a paid app and IIRC BT was at the time too... but looks like maybe not anymore?