Rendered at 16:26:29 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
gibbitz 2 days ago [-]
Tailwind is the latest bootstrap. These frameworks were designed to allow people with no skill in design/UI to produce something that passed for attractive. Since most clients are more concerned about time and cost than quality and originality, this approach effectively killed bespoke landing pages and led a lot of UI devs to move away from hand-coding styles to glomming on class names and using a "best practice" framework even though they were capable of writing the CSS from scratch. Now LLMs have trained on this boring cookie-cutter UI work so no one should be surprised that this is what comes out.
homebrewer 1 days ago [-]
And for some reason you're describing it as it's a bad thing. I don't care much for tailwind, but bootstrap is still used for intranet applications, and is an excellent pick in that category. Why waste time writing CSS, reimplementing what has been done millions of times before you, when working on an application where function has strict precedence over form? I'd rather listen to users who fill hundreds of forms daily, understand where they struggle, and spend effort on optimizing their workflow than on pointless eye candy.
(In my experience, it's never been "this doesn't look as good as the latest version of Discord", or whatever.)
gibbitz 1 days ago [-]
Muzak isn't what most people choose to listen to. I'm not bemoaning the use/existence of the tool, I'm bemoaning what it did to the internet and taste making. We accept boring competence in web design like we accept weird outlet placement in our homes. The signal it sends is that it doesn't matter and as a result many in this thread (and web users in general) believe it. We've been bemoaning the death of the internet lately. AI gets a lot of displaced credit for this, but the Internet died because we stopped bringing creativity. Not just in look and feel, but in content, business ideas etc. In many cases we let walled gardens limit our ability to be creative for convenience (Facebook pages vs VPS hosting for example). The internet stopped being for consumers and started being for businesses. Developers get easy frameworks/platforms so that businesses get a low price point and the customer gets what they get (as though this wasn't to serve them to begin with). If they pay for it, it must be good, right? Why do something new?
rcxdude 7 hours ago [-]
I would personally like a little more consistency and a little less creativity in my UIs, TBH. Most UIs should be boring and effectively invisible, because if I'm paying attention to the UI, it's a distraction from the task or content that I actually care about. The web and electron have hastened a trend which I intensely dislike of every single application looking and acting completely differently for what is fundamentally the same thing. It's not that this variation doesn't matter: it's actively bad. (Not that UI design doesn't matter. Good UI design is important. But part of what makes UI design good is consistency and that's what web designers seem to actively dislike)
(more precisely, I long for the days of a standard and customizable UI toolkit. I should be the one who can adjust what the UI looks like, not hundreds of different designers with different concepts of how to 'stand out')
ryanbrunner 1 days ago [-]
I like predictable UI even if it's a little "boring" because given the choice between utility and style, I'll choose utility every time. It is possible to make stylish things that also have very high utility, but it's a lot harder than favoring one, and I will always favor utility.
Take the author's example in this article - he calls out two things more than anything - a single sentence "pitchy" description of the product, and plan cards that look and feel extremely samey from site to site. I'd argue that both of these "downsides" are an upside for me as a consumer:
- Having a one sentence quick summary of what a product does allows me to make a quick decision about whether I'm interested in reading more about this product.
- Consistent plan cards lets me leverage my shared understanding of how plan cards work to instantly answer questions like what the monthly / annual pricing is like, what tiers are available, etc, that a bespoke presentation would require me to think about.
If I come to a landing page for a product, I'm more interested in answering questions like "is this a product I would like" and "how much does it cost" than appreciating the design of a page.
JimsonYang 1 days ago [-]
Bingo!
People mustve forgotten about the bootstrap era
timr 1 days ago [-]
Well there you go. If you want to differentiate yourself today, just use bootstrap!
ceritium 1 days ago [-]
My trick, I just use bootstrap, ask Claude for a custom Styles following a style, palete etc. Much better experience than buying and adapting and existing bootstrap theme
trueno 8 hours ago [-]
i feel like this isn't a tailwind problem it's the homogenization of component libraries like shadcn daisyui etc. all remarkably boring,
pair that with the field of ui/ux thinking landing pages that say nothing at all and you get a million webpages that look the same. every sass does this. in fact, every saas had a slop feeling to it because of this before AI took off. before chat friggen jippity and now claude and gemini were ubiquitous, i was regularly rolling my eyes at every. single. saas. website.
all the examples in OP don't look like a tailwind specific thing to me at all. they look like a broader boring internet-webdev equivalent to live laugh love pinterest home interior designs that predates the AI slopfest. this is the web styling VC's have been demanding from the startups they've invested in for many years now.
as far as tailwind goes, it's more like a utility set of classes but i see no reason why you can't get creative with it. feel like it's catching strays here simply because everyone's vibe coding and it's a common path for trained models to choose but that really says not a lot about tailwind and a whole lot about how people are choosing to use tailwind. it's not like tailwinds providing a breadth of components or is locking in certain stylistic elements. it's just that everyone's making the same choices because everyone's slopping their front ends.
avindrag 2 days ago [-]
> Tailwind is the latest bootstrap
Bootstrap ships components. AFAIK you need another library if you want that in Tailwind.
elicash 2 days ago [-]
Here's the discussion we had about bootstrap 10 years ago:
But the point of the comment is that both Bootstrap and Tailwind are facilitators when you don't know/want/care about getting your hands dirty with CSS. Tailwind happens to be a little less abstract than Bootstrap, but still you're not fiddling with "low level" CSS.
That abstraction is what brings the "sameness" factor in play, though.
crooked-v 2 days ago [-]
You absolutely have to know how CSS layout works to do anything even marginally complicated with Tailwind. It's not a replacement for building flexbox layouts or dealing with Z-indexes or knowing how to compose elements for different viewport sizes. All it's actually separating you from is (most of) the "Cascading" part and having your styles separate from you elements.
stackghost 2 days ago [-]
>Bootstrap ships components.
I haven't used it in ages, but it used to be that Bootstrap also shipped drop-in CSS that would give you decent-looking styles on all the common elements, so a single minified style sheet would give you that classic "2010s startup" look.
alexchantavy 2 days ago [-]
I miss that 2010s startup look
girvo 2 days ago [-]
That lobster font we all used for our startup names was legendary
gfat 2 days ago [-]
lobster.ly
youngtaff 1 days ago [-]
Bootstrap was originally built so internal Twitter apps had a decentish UI
iamsaitam 1 days ago [-]
What a bunch of nonsense. Tailwind doesn't come with components.
ffsm8 1 days ago [-]
You're technically wrong, because you're not precise enough •́ ‿ , •̀
But yeh, they aren't the thing we're talking about here.
crooked-v 2 days ago [-]
Writing CSS from scratch sucks. I'm glad we've left those days far behind.
wild_egg 2 days ago [-]
Modern CSS is actually really quite pleasant.
ryanbrunner 3 hours ago [-]
It's great for document formatting. For app layout, it's very easy for the cascading aspect to shoot you in the foot if you're not careful (which is why even the most purist CSS writers will tend to layer abstractions or rules on top of it, even if it's only convention based ones without technology like BEM.
emodendroket 2 days ago [-]
Also let's not pretend like typical efforts were not buggy as hell with oversights or tricks that didn't work in every environment.
tptacek 2 days ago [-]
These pages look fine. I'm not seeing the problem. Most landing pages don't need to be creative statements; in fact, I'd wager the majority are hurt by creativity; real creativity is risky! Which of these applications want an artistic statement on their brochure pages?
xkcd-sucks 2 days ago [-]
Brand differentiation, not art
tptacek 2 days ago [-]
Quick, pull up VictoriaMetrics.com and Honeycomb.io. Tell me how the design differentiates the brands. Sell me on the idea that anybody picks one over the other based on these web designs.
anon7000 1 days ago [-]
That’s not the point. The point is that when I visit a website that exactly matches XYZ pattern, and am encountering sites exactly like it multiple times every day, I’m left wondering whether the sites are trying to say something new and interesting. What ends up happening: the many slop variants have poisoned my opinion on all of them. I can instantly identify certain AI slop Claude designs, and I instantly remember the many flashy, yet buggy sites I’ve encountered.
The “vibe” of a product is absolutely important. Do logstash and datadog have similar vibes in their log viewers? Fuck no. I can instantly tell I’m using something related to that tool because of its design language. That helps it stay sticky. If you’re datadog, you don’t want users thinking the product feels and looks exactly like all the other log viewers. You want them to think it’s unique and the best or whatever. Marketing sites extend that, and are absolutely a component of the “vibes” you get from a product before doing a strict engineering breakdown.
alabut 1 days ago [-]
Terrible examples - they're both ugly. The honeycomb one is particularly bad because it's covered up with a cookie popup on the left and the chat widget on the right.
Yes they both have the same overall structure as the Stripe landing page but if you can't tell the difference between the level of execution of those three, then you're just arguing for mediocrity.
alt187 1 days ago [-]
Probably at the very least the one for artists and DJs, you don't think so? You'd rather take your car to the sweaty, unkempt mechanic with his hands coated in motor oil, who you've never seen without his overalls, or the clean mechanic who wears a nice business attire with the classy shoes and tie? I rest my case.
ryanbrunner 1 days ago [-]
Artists and DJs are a separate category than what the original article is talking about, and I'd agree that there's more need for creativity in those cases (although I have definitely seen websites for people in more creative fields that have thrown usability and legibility out the window in pursuit of annoying "gee whiz" overly designed sites.
The mechanic is a separate argument - the article is talking about uniqueness of design and creativity, not cleanliness / orderliness. These sort of Tailwind designs are exceptionally clean and orderly, they're just predictable and not unique. To apply the article to your analogy, I wouldn't particularly care if my mechanic had the same coveralls that most mechanics wear as opposed to some unique design of coveralls.
joseda-hg 1 days ago [-]
I dunno, I know plenty of people that would make a case for first guy, y'know "A combat ready unit never passed inspection, and a inspection ready unit never passed combat" and all
I know plenty of DJ's that are surprisingly tech averse, whatever art is on their pages, is more of a testament to who they hired as a designer than their own artistic acumen
tptacek 1 days ago [-]
I think it would be extremely funny to have a DJ site that uses a Tailwind SAAS product template.
Barrin92 2 days ago [-]
>I'd wager the majority are hurt by creativity; real creativity is risky!
yes, and who wants creativity and risk when everything can look like the interior of a McDonalds. I'd much rather look at someone's terrible and scuffed attempt at designing their own page, because it at least signals that there is a human who isn't afraid to try something out rather than the Instagram filter version of a webpage.
tptacek 2 days ago [-]
There are times and places where I want to see a lot of humanity and imperfection in transactions, and there are times I don't. You're dunking using McDonalds as an example, but there's a reason they all look like that, and it's one of the most successful businesses in the world.
If you're building the application equivalent of JP Graziano or La Chaparrita Taqueria, make it human, scuffed up even. I'd like JP Graziano less if it looked like a Cheesecake Factory. Right there with you. But if you're building a tool, for developers, one that will mostly be used to conduct some kind of business? Boring competence wins hands down. Users and customers are scouting for competence. Most of the time, their antennae are not in fact up for individual artistic expression.
Barrin92 2 days ago [-]
> Boring competence wins hands down. Users and customers are scouting for competence. Most of the time, their antennae are not in fact up for individual artistic expression.
but even that doesn't really hold any more. The great slopification has made it so that people don't even associate that kind of thing with reliability. Instead it's gotten a kind of ca the year 2000 "thing out of a Chinese factory" vibe to it. Even on practical grounds you might as well give it your own shot now because that stuff is poisoned.
As a concrete example, if you wanted to make a Github competitor ten years ago you tried to look like Github, now you're better off trying to look like sourcehut or codeberg because you don't look like the thing that dies every five minutes.
tptacek 2 days ago [-]
It's not my argument that competent web design is a reliable signal, only that nobody is looking for incompetent design when they're shopping for a used Camry or a new rotary sander.
When Stripe or Braintree or Paypal deliberately mess up their designs so they can signal their humanity to customers, I'll check back in with this idea. Maybe companies will start introducing dumb bugs into their code, too, because if it's too perfect everybody will know a robot wrote it.
emodendroket 2 days ago [-]
Everyone says that but in aggregate they don't act like they believe it. Having "personality" means some people will love it and others will hate it, rather than everyone finding it acceptable and moving on to the actual content.
WatchDog 2 days ago [-]
For all the complaints like this that I see about AI generated websites, the complaints rarely come with counter examples of what a good human generated alternative should look like.
The authors blog design is perfectly functional, and I'm not suggesting that it needs any changes, but it also isn't a particularly impressive piece of web design.
port11 21 hours ago [-]
In a way, Httpster would be a counter-example; but then some would claim that over-design landing pages are annoying in other ways.
You can either please the Greeks or the Trojans, I guess.
crooked-v 2 days ago [-]
I'm a fan of vaporwave and dithering, myself.
Raed667 2 days ago [-]
Not every landing page needs to be a creative exercise, since bootstrap we have landed on common patterns that reduce cognitive load and that is a good thing
cadamsdotcom 2 days ago [-]
The unstated assumptions are a) a cookie cutter site is always vibecoded b) cookie cutter marketing site always means the person left it to last and thus did not invested deeply in their product.
Deeply flawed unfortunately.
For example - and I know it may not map cleanly back to software, but it’s worth thinking about - some of the best food is served in restaurants with plastic chairs and tables where the decor is an afterthought.
vitamark 1 days ago [-]
Tailwind, IMHO, doesn't bring any real value to the developer or the codebase.
It's just a weird way to write CSS right in the classes. We have a tool for that, it's called "writing CSS", and it actually has classes that allow sharing style choices across various components (which somehow is marketed as feature of TW)
In other words, I don't see how Tailwind is just "I want to write my CSS in obscure way in the wrong place".
pennomi 1 days ago [-]
Code locality has some advantages and some disadvantages.
A “perfect” website has things cleanly separated out between style, logic, and DOM, but that does cause cases where you might have to edit three files every time you change a single widget of your website. Neglecting to do that can leave dead or incorrect code just because the issues do not inherently present themselves to you.
Yes, a perfectly principled programmer would do it right… but have you worked with other people before? They’re not necessarily very reliable.
ryanbrunner 1 days ago [-]
I'd argue that it's impossible to have locality in all aspects. If your style, logic, and DOM are separated almost certainly you have a separation in domain - you're going to have styles, logic, and DOM concerned with "widgets" in your product and if they're separated by whether they are style or logic that means they can't be correlated by their "widgetness".
Really the decision comes down to whether it's better to separate based on style/logic/dom or on the business domain, and I think at least for web apps, separation by domain wins out in most cases.
Induane 1 days ago [-]
There are a couple of things:
1. Locality of behavior - the classes are the description of the style once you know tailwind, and they live where the thing they're styling is. I can look at a template and know pretty well how it is going to look without having to go lookup a sites personal bespoke CSS and match what's written there to the markup.
2. It's the same classes as you move from project to project. I have tons of small one-off apps I maintain, all using tailwind and I don't have to figure out the custom CSS classes and their meanings. It is a knowledge set that reduces friction between projects and I really need things that reduce cognitive load like that.
3. No dead CSS. There are tools to help with this in regular CSS but I just don't have to think about it with tailwind and that's nice. I work on my templates and the CSS is updated and minifed on the fly without extra steps (or unnecessary CSS).
4. Easy to build a personal component library that doesn't also require relevant CSS to be bundles with it. For me this one is pretty great. Thanks to template engines (for me it's Django's, but Jinja or others are grand too) I have a simple place to pull components (really just template partials) and widgets I've made and they just work because the underlying classes are the same. There are some exceptions around color schemes and the like but now all my little components take a colour scheme arg and voila, no proballo.
I think the key here is that a description of the visual is embedded in the markup. That lets the actual mark-up delivered to the front-end describe pretty much the whole kit. With server-side rendering ( I use HTMX ) I can even write unittests that responses contain expected markup, including CSS classes (I built a few helper assertions that all of my test suites use) which gives me some interesting checks.
I really ultimately don't think there is one correct way to do things. The things I value may be utterly irrelevant to another developer.
vitamark 7 hours ago [-]
I see the point, but really this is solved better by having a solid foundation of UI components (might be an existing UI-kit or own thing, a piece of CSS anyway), and then you can use the same-ish classes over many sites.
What I find with any site is that without a good foundation you're bound to repeat same styles over and over, and with one you don't get any point with Tailwind.
FullGrinder 2 days ago [-]
Attributing this to tailwind is pretty dumb imo. You could make this case for something like shadcn.
nih567 6 hours ago [-]
These kinds of posts sound like they're written during a midlife crisis. Go out and get some fresh air, my friend. Enjoy the good sides of life.
SkiFreeWin3 2 days ago [-]
Anyone have good lines to include in a prompt to direct LLMs from their default tailwind/Linear/etc. design modes on the first shot?
finjo 2 days ago [-]
I know this may be a bit dismissive, but I think the need to ask that is the problem. AI can definitely build a design for you. But is no substitute for design skill.
The best way to figure out how to prompt an LLM is to develop design skills so you know what to tell it.
SkiFreeWin3 2 days ago [-]
I totally hear what you’re saying.
I’ve been in the industry a long time. Even before LLMs, I think web design would get stuck in cycles. So I just want it to spit out something that looks novel and interesting, which pushes me to coach it even better.
finjo 2 days ago [-]
Oh definitely. I don’t think bad design is something created by LLMs. LLMs just amplify the problem.
edoceo 2 days ago [-]
I include either "use reset.css" or "use bootstrap" on the prompt. And even say "use fontawesome 6" and it follows.
Same as you have to be explicit about instructions to humans.
Even humans use their default assumptions w/o clear directions
0x62 2 days ago [-]
Not a prompt, but the Tailwind team have a separate product under development that aims to solve this problem: https://ui.sh
simonw 2 days ago [-]
"No dependencies. Vanilla HTML/JS/CSS".
asp_hornet 2 days ago [-]
This might sound like a joke but it’s a surprisingly good take. RSCSS provides a great set of principles to structure and isolate against unintended change. Open Props can be added for design tokens and Open UI has some great examples of components.
onlyrealcuzzo 2 days ago [-]
It'll just rewrite tailwind badly...
JimsonYang 1 days ago [-]
Tbf when you dont care about ui-as most backend devs do- Claude creating UI is perfect
Imo UI is bifurcated. Its either not impressive(most websites) or there was immense effort put into it(like posthogs site).
So for a small project where im focusing on shipping speed and feature building, yeah tailwin is being used because I dont want to do motion design rn
t1234s 2 days ago [-]
I still prefer bootstrap
ZeroGravitas 1 days ago [-]
> despite Tailwind being incredibly customisable I can instantly tell when a site is using Tailwind.
People used to say this a lot about Bootstrap.
Someone set up a bootstrap or not? guessing game and the real surprise was that you not only failed to spot some bootstrap sites you also guessed a lot of non-bootstrap sites were bootstrap because they all used the same modern UX paradigms.
1shooner 23 hours ago [-]
And I don't really believe them. Are they claiming to identify every site using tailwind-compatible utility classes, and within that set, they all look similar?
I think what they're actually experiencing is that they can instantly tell a default Tailwind site with reused components, which is not much of a claim at all.
finjo 2 days ago [-]
I don’t think tailwind or its templates are the issue (and believe me, I am the furthest thing from a tailwind advocate).
Just shipping a tailwind template is lazy and trite. But LLMs are made to optimize for the lazy and trite. They can only choose the lowest-common denominator.
LLMs don’t really know how to give designs personality. Most of the time I see attempts to improve the situation that basically just boil down to vibe-coded slop that’s prettier. I’m sure better designs exist, but the ones that do exist are almost certainly about the person who drove the LLM, not the LLM itself.
insumanth 1 days ago [-]
I honestly don't think this is bad. For anyone who is not a frontend engineer / designer, using tailwind gives good defaults and better LLM support.
Frameworks were always about lowering the bar for entry with cost to genuine new design. The alternative is worse than this. I honestly prefer this over a backend engineer using WordPress / static site generators / other no-code platforms.
distalx 2 days ago [-]
I think we only notice this 'sameness' because we're swimming in it all day. I recently helped a non-tech friend with a vibe-coded site for his cafe. He had the pure enthusiasm of a kid showing off a drawing. He didn't care that it looked like a thousand other Tailwind sites.To him, the magic was simply that he had nothing, and now he has a website.
I think it's slop to many of us, but to a general user, they just aren't seeing it as slop.
LogicFailsMe 22 hours ago [-]
So the immediate counter here is to tell the coding agent to scrape the style off a website with layout you like and build from there. But also, I have 99 problems etc...
srdjanr 1 days ago [-]
These all look fine to me, and I don't think I'd assume they're AI generated.
There definitely is a distinct AI "design" look, I just don't really see it here.
mcapodici 1 days ago [-]
Tailwind (and CSS frameworks in general) is like VB6 in the day. Very useful if you want to get your app done and have a consisent enough look.
ookblah 2 days ago [-]
uh, that aesthetic was there long before tailwind, they didn't have a monopoly on rounded corners and that spaced out look lol. Much more ability to adapt than say trying to re-skin a bootstrap template back in the day.
the entire industry has always been converging toward "cookie-cutter" ui, and tailwind is just this cycle's flavor and now on steroids with AI. Honestly for 90% of the stuff out there that's literally fine and probably better. There was a time when being extra creative in FE work was rewarded. If your product is very brand dependent then yeah maybe try to find your "voice" but for the vast majority of them, esp dev focused, they just need to work on other things and not try to re-invent solutions to solved problems.
i know we all like to pretend our meticulously engineered button and drop shadow animations are actually moving a needle, but you're optimizing the last few percent at that point. most saas FE devs should be solving other problems like the UX and performance and not worry about more creative landing pages.
uproarchat 2 days ago [-]
And then there's folks that see the prevailing trends, do their best to make something similar because it looks "pro" and get accused of being slop. Sometimes I want to just make an abomination of HTML 2.0 humanslop for the authenticity :)
queenkjuul 2 days ago [-]
I don't really think it's tailwind. I use tailwind for everything, and it doesn't look like this. They're utility classes, you can do absolutely anything you want with them. LLMs just choose to do this.
The big gradient fonts came from Apple Keynote, i thought. At least that's where i first saw templates like that.
I agree there is a "sameness" that you get from tailwind.
Tailwind has a unique benefit in that you can change the CSS of the page and just that page. There is no chance that you make a change that breaks the rest of the site because you wrote a rule wrong. In some environments/applications this is a big deal.
But honestly that's the only credit i'll give it. The class names are still confusing to me and you do get more flexibility with CSS. And i'd rather be writing classless css and targeting custom HTML elements anyway.
jvidalv 1 days ago [-]
This is completely wrong, all this pages are mine and are Tailwind:
My point being, quick AI slop landing pages and products will share the same vibes, but at the end Tailwind is just a collection of css classnames, allowing you to build and create as much as cool and unique pages as with plain css if you put the effort.
WreckItRob 1 days ago [-]
Unfortunately, I actually think you back up the authors point.
tosh 1 days ago [-]
ty, imho good examples for how you can achieve a distinct look
the problem is not tailwind, the model output just reflects the training material that most likely overindexed on tailwind templates with lots of fonts and text sizes and outlines, I'm sure future training runs will be better
saberience 1 days ago [-]
These pages all look like Claude AI designs though, so I think you're proving the original point?
dudeWithAMood 2 days ago [-]
What backend are all these slop apps using for the paid tiers?
crowcroft 2 days ago [-]
Tailwind just happens to be a common way to write CSS.
If Tailwind didn't exist people would just be writing the same article about {{ insert most common css tool here }}
Most people create generic similar looking websites, and most people that making a new website today use Tailwind. Correlation is not causation, and linking the two in any meaningful way is just a pointless discussion.
crooked-v 2 days ago [-]
Tailwind is just the latest iteration of people trying "real" CSS, discovering that it still sucks, and coming up with something with better abstractions than the last iteration of attempts to replace CSS.
Everything else is just people using a default configuration instead of building their own.
(In my experience, it's never been "this doesn't look as good as the latest version of Discord", or whatever.)
(more precisely, I long for the days of a standard and customizable UI toolkit. I should be the one who can adjust what the UI looks like, not hundreds of different designers with different concepts of how to 'stand out')
Take the author's example in this article - he calls out two things more than anything - a single sentence "pitchy" description of the product, and plan cards that look and feel extremely samey from site to site. I'd argue that both of these "downsides" are an upside for me as a consumer:
- Having a one sentence quick summary of what a product does allows me to make a quick decision about whether I'm interested in reading more about this product.
- Consistent plan cards lets me leverage my shared understanding of how plan cards work to instantly answer questions like what the monthly / annual pricing is like, what tiers are available, etc, that a bespoke presentation would require me to think about.
If I come to a landing page for a product, I'm more interested in answering questions like "is this a product I would like" and "how much does it cost" than appreciating the design of a page.
pair that with the field of ui/ux thinking landing pages that say nothing at all and you get a million webpages that look the same. every sass does this. in fact, every saas had a slop feeling to it because of this before AI took off. before chat friggen jippity and now claude and gemini were ubiquitous, i was regularly rolling my eyes at every. single. saas. website.
all the examples in OP don't look like a tailwind specific thing to me at all. they look like a broader boring internet-webdev equivalent to live laugh love pinterest home interior designs that predates the AI slopfest. this is the web styling VC's have been demanding from the startups they've invested in for many years now.
as far as tailwind goes, it's more like a utility set of classes but i see no reason why you can't get creative with it. feel like it's catching strays here simply because everyone's vibe coding and it's a common path for trained models to choose but that really says not a lot about tailwind and a whole lot about how people are choosing to use tailwind. it's not like tailwinds providing a breadth of components or is locking in certain stylistic elements. it's just that everyone's making the same choices because everyone's slopping their front ends.
Bootstrap ships components. AFAIK you need another library if you want that in Tailwind.
https://news.ycombinator.com/item?id=11287413
(The underlying webpage is no longer around. But the HN discussion is.)
That abstraction is what brings the "sameness" factor in play, though.
I haven't used it in ages, but it used to be that Bootstrap also shipped drop-in CSS that would give you decent-looking styles on all the common elements, so a single minified style sheet would give you that classic "2010s startup" look.
https://tailwindcss.com/plus
But yeh, they aren't the thing we're talking about here.
The “vibe” of a product is absolutely important. Do logstash and datadog have similar vibes in their log viewers? Fuck no. I can instantly tell I’m using something related to that tool because of its design language. That helps it stay sticky. If you’re datadog, you don’t want users thinking the product feels and looks exactly like all the other log viewers. You want them to think it’s unique and the best or whatever. Marketing sites extend that, and are absolutely a component of the “vibes” you get from a product before doing a strict engineering breakdown.
Yes they both have the same overall structure as the Stripe landing page but if you can't tell the difference between the level of execution of those three, then you're just arguing for mediocrity.
The mechanic is a separate argument - the article is talking about uniqueness of design and creativity, not cleanliness / orderliness. These sort of Tailwind designs are exceptionally clean and orderly, they're just predictable and not unique. To apply the article to your analogy, I wouldn't particularly care if my mechanic had the same coveralls that most mechanics wear as opposed to some unique design of coveralls.
I know plenty of DJ's that are surprisingly tech averse, whatever art is on their pages, is more of a testament to who they hired as a designer than their own artistic acumen
yes, and who wants creativity and risk when everything can look like the interior of a McDonalds. I'd much rather look at someone's terrible and scuffed attempt at designing their own page, because it at least signals that there is a human who isn't afraid to try something out rather than the Instagram filter version of a webpage.
If you're building the application equivalent of JP Graziano or La Chaparrita Taqueria, make it human, scuffed up even. I'd like JP Graziano less if it looked like a Cheesecake Factory. Right there with you. But if you're building a tool, for developers, one that will mostly be used to conduct some kind of business? Boring competence wins hands down. Users and customers are scouting for competence. Most of the time, their antennae are not in fact up for individual artistic expression.
but even that doesn't really hold any more. The great slopification has made it so that people don't even associate that kind of thing with reliability. Instead it's gotten a kind of ca the year 2000 "thing out of a Chinese factory" vibe to it. Even on practical grounds you might as well give it your own shot now because that stuff is poisoned.
As a concrete example, if you wanted to make a Github competitor ten years ago you tried to look like Github, now you're better off trying to look like sourcehut or codeberg because you don't look like the thing that dies every five minutes.
When Stripe or Braintree or Paypal deliberately mess up their designs so they can signal their humanity to customers, I'll check back in with this idea. Maybe companies will start introducing dumb bugs into their code, too, because if it's too perfect everybody will know a robot wrote it.
The authors blog design is perfectly functional, and I'm not suggesting that it needs any changes, but it also isn't a particularly impressive piece of web design.
You can either please the Greeks or the Trojans, I guess.
Deeply flawed unfortunately.
For example - and I know it may not map cleanly back to software, but it’s worth thinking about - some of the best food is served in restaurants with plastic chairs and tables where the decor is an afterthought.
It's just a weird way to write CSS right in the classes. We have a tool for that, it's called "writing CSS", and it actually has classes that allow sharing style choices across various components (which somehow is marketed as feature of TW)
In other words, I don't see how Tailwind is just "I want to write my CSS in obscure way in the wrong place".
A “perfect” website has things cleanly separated out between style, logic, and DOM, but that does cause cases where you might have to edit three files every time you change a single widget of your website. Neglecting to do that can leave dead or incorrect code just because the issues do not inherently present themselves to you.
Yes, a perfectly principled programmer would do it right… but have you worked with other people before? They’re not necessarily very reliable.
Really the decision comes down to whether it's better to separate based on style/logic/dom or on the business domain, and I think at least for web apps, separation by domain wins out in most cases.
1. Locality of behavior - the classes are the description of the style once you know tailwind, and they live where the thing they're styling is. I can look at a template and know pretty well how it is going to look without having to go lookup a sites personal bespoke CSS and match what's written there to the markup.
2. It's the same classes as you move from project to project. I have tons of small one-off apps I maintain, all using tailwind and I don't have to figure out the custom CSS classes and their meanings. It is a knowledge set that reduces friction between projects and I really need things that reduce cognitive load like that.
3. No dead CSS. There are tools to help with this in regular CSS but I just don't have to think about it with tailwind and that's nice. I work on my templates and the CSS is updated and minifed on the fly without extra steps (or unnecessary CSS).
4. Easy to build a personal component library that doesn't also require relevant CSS to be bundles with it. For me this one is pretty great. Thanks to template engines (for me it's Django's, but Jinja or others are grand too) I have a simple place to pull components (really just template partials) and widgets I've made and they just work because the underlying classes are the same. There are some exceptions around color schemes and the like but now all my little components take a colour scheme arg and voila, no proballo.
I think the key here is that a description of the visual is embedded in the markup. That lets the actual mark-up delivered to the front-end describe pretty much the whole kit. With server-side rendering ( I use HTMX ) I can even write unittests that responses contain expected markup, including CSS classes (I built a few helper assertions that all of my test suites use) which gives me some interesting checks.
I really ultimately don't think there is one correct way to do things. The things I value may be utterly irrelevant to another developer.
What I find with any site is that without a good foundation you're bound to repeat same styles over and over, and with one you don't get any point with Tailwind.
The best way to figure out how to prompt an LLM is to develop design skills so you know what to tell it.
I’ve been in the industry a long time. Even before LLMs, I think web design would get stuck in cycles. So I just want it to spit out something that looks novel and interesting, which pushes me to coach it even better.
Same as you have to be explicit about instructions to humans.
Even humans use their default assumptions w/o clear directions
Imo UI is bifurcated. Its either not impressive(most websites) or there was immense effort put into it(like posthogs site).
So for a small project where im focusing on shipping speed and feature building, yeah tailwin is being used because I dont want to do motion design rn
People used to say this a lot about Bootstrap.
Someone set up a bootstrap or not? guessing game and the real surprise was that you not only failed to spot some bootstrap sites you also guessed a lot of non-bootstrap sites were bootstrap because they all used the same modern UX paradigms.
I think what they're actually experiencing is that they can instantly tell a default Tailwind site with reused components, which is not much of a claim at all.
Just shipping a tailwind template is lazy and trite. But LLMs are made to optimize for the lazy and trite. They can only choose the lowest-common denominator.
LLMs don’t really know how to give designs personality. Most of the time I see attempts to improve the situation that basically just boil down to vibe-coded slop that’s prettier. I’m sure better designs exist, but the ones that do exist are almost certainly about the person who drove the LLM, not the LLM itself.
I think it's slop to many of us, but to a general user, they just aren't seeing it as slop.
There definitely is a distinct AI "design" look, I just don't really see it here.
the entire industry has always been converging toward "cookie-cutter" ui, and tailwind is just this cycle's flavor and now on steroids with AI. Honestly for 90% of the stuff out there that's literally fine and probably better. There was a time when being extra creative in FE work was rewarded. If your product is very brand dependent then yeah maybe try to find your "voice" but for the vast majority of them, esp dev focused, they just need to work on other things and not try to re-invent solutions to solved problems.
i know we all like to pretend our meticulously engineered button and drop shadow animations are actually moving a needle, but you're optimizing the last few percent at that point. most saas FE devs should be solving other problems like the UX and performance and not worry about more creative landing pages.
The big gradient fonts came from Apple Keynote, i thought. At least that's where i first saw templates like that.
Tailwind has a unique benefit in that you can change the CSS of the page and just that page. There is no chance that you make a change that breaks the rest of the site because you wrote a rule wrong. In some environments/applications this is a big deal.
But honestly that's the only credit i'll give it. The class names are still confusing to me and you do get more flexibility with CSS. And i'd rather be writing classless css and targeting custom HTML elements anyway.
https://berrus.app/ (game) https://josepvidal.dev/ (my site) https://fescims.com/ (mountaineering community)
Even my mobile app for the mountaineering community is tailwind (Yes, there is Tailwind for ReactNative): https://apps.apple.com/us/app/cims-mountain-challenges/id674...
My point being, quick AI slop landing pages and products will share the same vibes, but at the end Tailwind is just a collection of css classnames, allowing you to build and create as much as cool and unique pages as with plain css if you put the effort.
the problem is not tailwind, the model output just reflects the training material that most likely overindexed on tailwind templates with lots of fonts and text sizes and outlines, I'm sure future training runs will be better
If Tailwind didn't exist people would just be writing the same article about {{ insert most common css tool here }}
Most people create generic similar looking websites, and most people that making a new website today use Tailwind. Correlation is not causation, and linking the two in any meaningful way is just a pointless discussion.
Everything else is just people using a default configuration instead of building their own.