Shopify acquires Tailwind
Posted by EdwinHoksberg 3 days ago
Comments
Comment by simonw 3 days ago
> But the reality is that 75% of the people on our engineering team lost their jobs here yesterday because of the brutal impact AI has had on our business. [...]
> Traffic to our docs is down about 40% from early 2023 despite Tailwind being more popular than ever. The docs are the only way people find out about our commercial products, and without customers we can't afford to maintain the framework.
Comment by dlisboa 3 days ago
Tailwind's business model existed due to a massive inefficiency in the frontend industry not being able to come to terms with CSS or native components. They surfed the wave of JS frontends becoming ever more complicated. If it wasn't AI and just a human awakening to that fact, realizing that the complexity of modern frontends and Tailwind are not an absolute necessity, they'd have lost business just the same. There are dozens of different ways of writing frontends that have nothing to do with Tailwind.
Providing ready-made UI components and templates has never been a million-dollar business, nor should it be.
Comment by atonse 3 days ago
I happily paid for Tailwind UI because it was worth it. I paid for ui.sh and got plenty of my $130 (or whatever) value. The market spoke in a good way initially, and now it's sending a different message.
They've just got to do the next thing, which is find an AI-resistant steward of the project now.
Comment by bdcravens 3 days ago
Comment by ryanbrunner 3 days ago
Comment by abirch 2 days ago
Comment by matsemann 3 days ago
Comment by pigpop 2 days ago
Comment by iohvvbhdyh 3 days ago
Comment by coffeebeqn 3 days ago
Comment by bdcravens 2 days ago
Comment by win311fwg 2 days ago
Comment by djmips 3 days ago
Comment by wongarsu 3 days ago
Comment by eitally 3 days ago
Comment by everfrustrated 3 days ago
Comment by win311fwg 3 days ago
The business was worth something. But, as the earlier comment questions, was it worth millions? Or was that the free money, tech hype talking? Maybe in a more normal market it would have only been a simple mom and pop.
Comment by joleyj 3 days ago
Developers are also very fickle and the one constant is change. Sometimes it seems like change for changes sake alone.
I’m not saying that any businesses easy just that it seems to me after seeing a lot of companies come and go, but this is one of the more difficult markets to capitalize on.
Comment by PaulHoule 3 days ago
Bundling is one reason who can’t have nice things. Like in my opinion Excel is a lot worse than the others but if customers are thinking about a “suite” they are still going to buy Office to get Word and PowerPoint and can’t save money by switching to a different CSV wrangler or financial analysis tool.
Comment by shermantanktop 2 days ago
Of course it’s got quirks and unfortunate relics of its long history, but I reach for it willingly, and I can’t say that about the rest of the Office suite.
Comment by sneak 2 days ago
Using something free and paying for a product are entirely different things.
Comment by Pedro_Ribeiro 3 days ago
Comment by what 2 days ago
Comment by 00ze 3 days ago
Completely artificial market built on propaganda and low interest rate money printing. Same as the rest of SaaS. Nothing about the tech industry since the '08 crash has been organic investment. Was 100% collusion between government and private interests to manipulate public opinion.
> They've just got to do the next thing, which is find an AI-resistant steward of the project now.
Good luck with that:
https://www.openui.com/blog/oui-1
Aside; all the leaked emails, chats, and going back further in time, telegrams, letters, travel logs on display in court yet the myth the economy is an organic free market this whole time persists
Such belief is nought but a quirk of biology that allowed humans to latch onto the idea Benevolent but Punitive Sky Wizard watches out for them; total cope. In Wealth of Nations Adam Smith called it the "invisible hand" and later came to realize he was wrong. He reconsidered and concluded the avarice of man will not be stopped by philosophy of national unity.
Comment by atonse 3 days ago
That gives the Tailwind folks a more steady stream of income.
Comment by vlyan 3 days ago
Comment by steve_adams_86 3 days ago
But what if people were already selling them, and tailwind showed up, did it better, and people went directly to them to buy what they were offering?
Why shouldn't that exist?
The folks over at Tailwind offered curated, hand-built components that were readily adapted and tuned to your own needs. They did an excellent job making it so you could pick and choose what you wanted, then theme all of it from your tailwind settings with ease. It was excellent.
Sure, similar things existed for less or at no cost. I was content to pay for this, though. It made my work meaningfully simpler at times. It paid for itself.
> Tailwind's business model existed due to a massive inefficiency in the frontend industry not being able to come to terms with CSS or native components.
I don't agree. The pain it addressed on my team was more so that very few people I worked with understood CSS, but tailwind was easy enough for them to work with (particularly in a React context). It was a useful tool in a context where a lot of the people didn't fully understand the tool. They could just pick and choose components and they'd slot into the app well enough. It addressed real pain there.
They surfed a wave for sure, but I think it was mostly that a non-trivial number of people working on the frontend don't understand HTML and CSS very well. That's not their fault at all.
Comment by notahacker 3 days ago
They also offered an Open Source CSS framework with the explicit goal of making it easier for you to style your own components. There was always some tension between "make abstraction layer whose adoption depends on users finding it easier to make your own components with than vanilla CSS, which is not unusually hard" and "sell pre-made components". Particularly when there's an abundance of alternative FOSS components/libraries out there[1] in vanilla CSS or even full blown CMS templates for people not wedded to the idea that Tailwind makes things easy for them. Much easier to sell templates or even "premium components" when your USP is integrating them with a backend them rather than merely providing the layer of syntactic sugar supposed to make component styling easy...
They also happened to have the misfortune of designing it in a way which is particularly easy for AI which doesn't have to tradeoff time spent making design decisions and figuring out how to achieve those from the docs vs dollars spent buying components to minimally tweak.
[1]tbf, I always thought the Tailwind creators' designs were more tasteful than the average CSS mixin library even though I didn't think the same about the syntax...
Comment by weird-eye-issue 2 days ago
Do you have an example?
Comment by Sankozi 2 days ago
Aim of many styling solutions is to completely remove brittle CSS files .
Comment by echelon 3 days ago
We wouldn't need doctors if we had a box you could walk into that cured all ailments.
We won't need software engineers once you can crudely specify requirements and have a machine turn them into rigid requirements with a solid data model, flexibility to extend, infrastructure to run, and monitoring and recovery to maintain reliability.
A lot of things change when technology evolves.
Comment by slopinthebag 2 days ago
Comment by AberrantJ 2 days ago
Comment by echelon 2 days ago
Comment by slopinthebag 2 days ago
my point more broadly is that if you have an incomplete spec, any entity implementing it either needs to be omniscient or make assumptions about the intended behaviour of the system. if constraints or invariants aren't part of the spec it might be difficult or outright impossible to make the right assumptions.
so while LLMs might be writing all of the code in the future, someone will still need to create the spec + verify it. and often the spec is not really possible to know until implementation begins...
ive been using astra on a project that isn't even that complex in the grand scheme of things, and it still fails to make the right assumptions. of course i could just give it a full complete spec right?! except i didn't know what the right assumptions were either until implementation anyways. so to some extent they were unknowable to me, and thus unknowable to the llm no matter how powerful.
I do think in the future humans will probably write very little code themselves, but the work will be all about specification + verification and that means system design, which is the stuff I care about anyways. maybe I won't develop rsi when I get older :)
Comment by 4dd3 3 days ago
im not swe by trade, in fact I would love it if what you said was true because I could consolidate various kinds of businesses into one holistic infrastructure and demolish all the competitors.
Aint happening tho!
Comment by btown 3 days ago
Of course, enterprises eventually hit a wall in the covered functionality, need customizations and library management, and an official consulting team is there to help - no different than any open source model throughout history.
That they were more vulnerable than most to agentic coding doesn’t make it a bad idea.
Comment by wise_young_man 2 days ago
Comment by yoavm 3 days ago
The business model of having a popular product with great documentation, which leads free users to additional paid services, seems like a very valid business model.
Even the criticism you have for their product is along the lines of "the product only worked because they identified a problem in the market; If someone else identified it, this product wouldn't even be needed!". Which is, well, true, but also true for almost any other successful product.
Comment by monooso 3 days ago
My point is that just because you find the success of Tailwind Labs surprising does not mean that it "shouldn't" be a multi-million dollar business. Neither you nor I get to decide that.
Comment by sparklingmango 3 days ago
Yeah, that's why most businesses form.
Comment by xixixao 3 days ago
Comment by nonethewiser 3 days ago
Yeah but its not. Hence the huge layoffs. If they don’t want to find another software development job maybe they could work at a New Jersey gas station. New Jersey protects their gas station attendants.
Comment by xixixao 2 days ago
Comment by yCombLinks 2 days ago
Comment by achierius 2 days ago
Comment by nonethewiser 2 days ago
Comment by onion2k 3 days ago
Arguably many websites and apps desperately need a good component library because it's very clear the UI sucks without one. Lots of people spending a few thousand dollars on their UX is not unreasonable at all, so the best-in-class library (whether that's Tailwind is a separate point) should be able to make a lot of money.
You could easily level the same argument at any library: "This thing is simple so it shouldn't be worth millions." That's just the wrong way to look at how selling works. If you make something that solves a lot of people's pain point (Tailwind) you're going to make a lot of money until someone else sells something that makes it even easier (AI). That is a tale as old as time, and the fundamental basis of how startups disrupt incumbents in an industry.
Comment by what 2 days ago
Comment by 14u2c 2 days ago
Comment by antonvs 1 day ago
Comment by onion2k 2 days ago
However, I think the real information in your comment is that there are people making websites and web apps who aren't frontend developers. They're likely fullstack who are much more backend focused, and who do the frontend more out of necessesity than enjoyment. Tailwind enables those people who aren't experts in frontend to make things for the web without the necessary expertise to write CSS themselves.
That's why it's valuable - the point of Tailwind is that it solve the pain point (not knowing CSS) with money instead of time. But now people can solve it with AI instead.
This is a poor analogy, but maybe we should consider CSS as a lower level language than Tailwind, similar to JVM bytecode to Java. There are plenty of people who will tell you that a real Java developer understands the bytecode, but that doesn't stop people writing code in Java without knowing the lower level.
Comment by tshaddox 3 days ago
Depends what you mean. I think it’s totally reasonable for a small team with a great reputation to offer a well-made component library and make millions of dollars from it. But I would never expect that to be a reliable source of recurring income, and certainly not enough to support a team of well-paid engineers, designers, marketers, etc. indefinitely.
To be honest, I wonder if AI is even the right thing to blame here, or just a timing coincidence. Is it not the case that they simply sold their UI library to roughly everyone who was in the market for a high-cost component library?
Comment by listless 3 days ago
Comment by danvayn 3 days ago
Beyond this, you should really be thanking things like Shadcn for the “date picker disruption”. It is a component library which arguably could’ve existed without Tailwind ever existing.
Comment by rgbrgb 3 days ago
Comment by stickfigure 3 days ago
Comment by sodapopcan 3 days ago
Comment by paradox460 3 days ago
Comment by ryanbrunner 3 days ago
You're right that Tailwind throws away the cascade, or at least enables developers not to have to think about it (under the hood, Tailwind 4 uses pretty modern cascading features like layers), but people aren't reaching it because of a lack of understanding, they're reaching for it because as front-ends get increasingly componentized, the cascade becomes less and less of a benefit and more of an obstacle to be worked around, and something that gets that obstacle out of the way becomes more attractive.
Comment by stickfigure 2 days ago
I'm not universally pro-AI. I meticulously review every line of backend code, and still do hand edits. I review FE commits less carefully but still keep an eye on it to make sure AI doesn't go off the rails. But there's only so much trouble you can get into with CSS and the problems are the kind of bite-sized problems that LLMs excel at.
I don't think it matters at this point what you use for styling. If you like tailwind, the AIs use it just fine. If you like SASS, or raw CSS, the AIs are also just fine.
I'm not sure there's really a human job here anymore.
Comment by ryanbrunner 2 days ago
That would be my gut instinct - you ask your agent to change a CSS rule, and your agent would feel the need to find all usage of that rule to avoid introducing unexpected changes. Does that happen? (I'm operating purely on assumptions here because I regularly use tailwind where changes are kinda definitionally local).
Comment by bvrmn 2 days ago
Comment by krainboltgreene 3 days ago
Comment by paradox460 3 days ago
Comment by sodapopcan 2 days ago
Comment by sodapopcan 2 days ago
Comment by abanana 3 days ago
Comment by burnte 2 days ago
It doesn't anymore. There are tens of thousands of businesses that have only been able to exist for a short time due to gaps in the market and technology. Video rental, started with video tapes, died with DVDs and didn't really make it into the bluray era. Owning DVDs came down to $20, no reason to drive across town and rent one for $6. But then Redbox was able to slip into that gap, putting lots of discs in a vending machine, those are cheap and they went everywhere! It was a buck a night! But then streaming killed that DEAD. Had tapes been cheap from the get go Blockbuster never would have existed, but studios decided to ignore that revenue for ages.
Comment by jt2190 3 days ago
There are millions of Single Page, and other “complex” web apps. You not liking it does not invalidate anything.
Comment by bdcravens 3 days ago
Comment by baxtr 3 days ago
Comment by murukesh_s 3 days ago
Neither creating a VSCode wrapper and putting an LLM with tools and valued billion dollars (cursor). But thats the demand and supply.. As long as AI was not there Tailwind would have continued it success journey - until a new tiny(at least initially)/shiny/minimal framework comes along
Comment by jillesvangurp 3 days ago
Selling to developers just is very hard. The reality of course is that this competes in a space full of other people's OSS attempts at solving the same problem. That just puts an upper limit on what you can charge and who is going to even consider paying at all. And whatever that is, it was nowhere close to what they needed it to be.
AI made the whole proposition less valuable. I actually like tailwind as a solution. But it was always a short cut for people who didn't want to reinvent all the low level CSS hackery on every project they did. It's why I like and used it as well. But I stopped doing these things manually at this point. AI coding tools will happily spit out the raw CSS as well. And the irony of course is that because of tailwind's popularity, generating it was easy as well.
Comment by _heimdall 3 days ago
Selling off the shelf, tested components and themes isn't a bad business. I'd firmly put it in the lifestyle business category, I just wouldn't expect it to sustain multiple high paid engineers on fulltime salary and benefits.
Comment by bedroom_jabroni 3 days ago
Comment by dzonga 3 days ago
react was not facebook's product. rails was not 37signal's product. Kubernetes was not google's product.
blaming AI is not facing the reality of how tech products / open source is financed in our industry.
Comment by mexicocitinluez 2 days ago
No, it wasn't. It's a CSS utility library. I've been writing CSS for 15 years. I didn't choose Tailwind because I couldn't come to terms with CSS or native components.
Comment by ajkjk 2 days ago
People are reacting foolishly to the word shouldn't here. It's not a "moral" shouldn't; it doesn't meant anything like "shame on them for existing". It's a technical criticism: the only reason this business was ever viable is that the rest of the ecosystem is in such a sorry state that it became worth spending money on this thing that should have been trivial.
A similar claim would be: Jquery shouldn't have existed, because browsers could have done a not-terrible job in the first place to the point that its existence was necessary. They didn't, so it did exist, but it shouldn't have had to.
Comment by tcmart14 3 days ago
Its crazy, but there is clearly money to be had in this.
Comment by froggertoaster 3 days ago
People pay for aspirin, not vitamins, and Tailwind is aspirin.
Comment by xbar 3 days ago
Ready-made UI components and templates have been million-dollar businesses for a lot of companies for a long, long time.
Finding space in a development ecosystem to provide a set of purpose-built tools is a common and healthy software business pattern.
Comment by nonethewiser 3 days ago
Comment by deaton 3 days ago
Comment by barapa 3 days ago
Comment by vendiddy 2 days ago
Tailwind saved me time and the pain of writing CSS so I paid for it.
Comment by jmull 3 days ago
Tailwind provides an actual simplifying layer for the (over-)complicated practice of front-end web development.
By being well-though-out, well-designed, and very well documented, it actually made web app styling easier/simpler (without hiding or otherwise making it hard to drop into CSS as needed). And it slotted right into the place most web apps have for a CSS/class mechanism.
The paid templates extend the approach to components. The business model is that the credibility they establish with the free high-quality CSS/class system makes people willing to pay for the templates, which then goes over well because the templates are good and useful, saving a lot of development time. BTW, their templates solves a different problem than native components -- I suspect you're dismissive of their business model due to not actually understanding it.
Of course, it's all moot now. AI can generate the components now at the same time it's doing everything else, so no reason to pay for their templates. (Plus, tailwindcss probably doesn't build the credibility as much anymore either because devs aren't using it (their AI might be, but without the direct contact it doesn't have a chance to build that open-the-wallet credibility.)
Comment by what 2 days ago
So the AI can do a better job than the average front end web developer? Maybe you should take it a step further from “no reason to pay for templates”…
Comment by jmull 2 days ago
Looking ahead, maybe LLM subscription prices will eventually have to go way up to justify the huge valuations AI companies have. So maybe this could change, but it won’t be until anyone making a living from template has had to move on, so we aren’t going back to when that was a thing.
Comment by cannonpalms 2 days ago
Comment by llm_nerd 3 days ago
Having said that, sure they were utterly doomed. For that matter, Shopify is utterly doomed as well. Businesses like that will continue to exist, but in no universe is it a $230B space.
Comment by fitsumbelay 3 days ago
Comment by cush 3 days ago
What does this even mean?
There’s nothing wrong with a company taking something complex and making it simple, and they absolutely deserve to be paid for making millions of developers lives easier
Comment by solarkraft 3 days ago
Comment by epolanski 3 days ago
Comment by sevenseacat 2 days ago
Comment by vyyy 3 days ago
Comment by danvayn 3 days ago
If you think about it, the site docs garnering traffic (beyond potential tailwind labs conversions) is more of an indicator of a code or design smell than anything. That’s just my 2 cents as a guy who used to look up their docs constantly to confirm a pattern I was implementing, as tailwind classes were never really as self-evident as tailwind labs liked to believe they were IMO.
Like it just doesn’t make total sense to me to compare library documentation traffic hits to traffic hits that happen in other industries here, or with other products or companies. They aren’t even a traditional SaaS company, not that there really Is one either. Their service or income flow is defined by things like offering Enterprise support or a component library at a premium — things that aren’t simply dictated by or shown through documentation traffic trends; things that were encroached upon by plenty of other things besides AI.
Comment by jrochkind1 3 days ago
I have nothing against Tailwind, but I think a company with $5 billion in cash reserves and the general context of Shopify may buy a company like Tailwind for community goodwill, to stabilize the technology that they use for their own business model, to acqui-hire the principals, and various other reasons other than Tailwind's business model.
> On the commercial side, we'll no longer be trying to grow the business around Tailwind. All existing customers will of course maintain their access to products like Tailwind Plus and ui.sh, but we're closing sign ups for new customers to focus on Tailwind CSS at Shopify.
Comment by spbaar 2 days ago
Comment by argentinian 3 days ago
Comment by camdenreslink 3 days ago
It's possible they could have explored other marketing channels (youtube?), but it seems like the death of SEO for this sort of content lead to the main issues.
Comment by mrsilencedogood 3 days ago
Comment by esskay 3 days ago
The reality was that a big chunk of their initial audience came from Laravel, and as other players emerged and made what was Tailwind UI irrelevant it all seemed to compound into them panicking and making some rather silly business decisions. At one point they had a sizeable team and shipped nothing for a good 8 months, and when they did it was a couple of beautiful but completely impractical landing pages. They just didn't convert it to a sustainable business.
Oh and to add to it, they alienated their paying customers by dropping support for basic js based components in favour of making the entire ui library reliant on heavy js libraries, killing off any interest from most of the Laravel customers who'd been their initial target audience.
Comment by porker 2 days ago
Comment by nonethewiser 3 days ago
I hear the contrary a lot but Im not convinced anyone actually believes it.
Comment by wredcoll 3 days ago
Comment by ryanbrunner 3 days ago
Comment by tessierashpool 3 days ago
Their funnel depended on SEO, and LLMs took SEO out of the equation. What you said about the value of pre-built components might also be true but can't be determined from a situation where consumers suddenly all stopped learning that the pre-built components exist. Occam's Razor says it's the funnel.
Comment by sodapopcan 3 days ago
I've heard this before, but it's really no different than vanilla CSS. My guess is that people started pointing this out is that Tailwind got more non-frontend people digging into styling more where they were hit with how much shit there is in CSS.
Comment by eudamoniac 3 days ago
I love tailwind and will continue to use it, but it isn't perfect in this regard...
Comment by sodapopcan 2 days ago
I also like Tailwind, though I don't really use it anymore.
Comment by nsonha 2 days ago
Is this supposed to be a plus? When you have indirections they're supposed to provide some abstraction and the abstraction might or might not provide the utilities you desire, but there is a point to it. A near 1:1 mapping is completely useless and just a different syntax for the sake of it.
Comment by sodapopcan 2 days ago
Comment by bradly 3 days ago
They used different technologies for different templates and some even use a 3rd party CMS service that I had no interest in using. Their JavaScript components were non-native, so if I wanted to use any of the interactivity I had to write from scratch.
I think they had an opportunity to grow with AI and with the amount of code that is now being written.
Comment by threatofrain 3 days ago
Compare that to shadcn, which had visible growing pains and yet reached rocketship fame. Shadcn is evidence that developers were hungry for yet another library, and it's also evidence that users were willing to tolerate rough code on the ride to maturity.
I don't believe Tailwind's component libraries deserved to win.
Comment by matthijs 3 days ago
Besides that, quite quickly there were many other free, and arguably better, alternatives available (like flowbite, preline, daisyui, etc) that I ended up using instead.
Comment by elicash 3 days ago
But I guess not.
Too bad, they seem like such good people. Not that they're dead or something but I don't think this was their ideal end state for Tailwind.
Comment by f311a 3 days ago
I can't recall any other OSS project that makes so much money and has nothing to do with infra/cloud.
They were making around $1M a year back when they complained about the revenue. A lot of Linux distros can only dream about such an amount of money.
Comment by simonw 3 days ago
Comment by dlisboa 3 days ago
They had a very good run for such a project.
[1] - https://adamwathan.me/tailwindcss-from-side-project-byproduc...
Comment by tempfile 3 days ago
Comment by simonw 3 days ago
Comment by tempfile 2 days ago
Comment by simonw 2 days ago
Comment by tempfile 1 day ago
Comment by simonw 1 day ago
Just because others have worked nine years without success doesn't mean you shouldn't get credit when you put that work in and are successful.
Comment by esskay 3 days ago
Comment by Vinnl 2 days ago
Comment by Waterluvian 3 days ago
Being a bit silly with the analogy: it's like we've discovered gunpowder and now entire classes of fortification are deficient.
Comment by tessierashpool 3 days ago
Tailwind had a solid funnel and a good product. Now they only have a good product. That's enough to kill a business.
If (or more likely when) Google loses money because LLMs are replacing search, that's a story about moats.
Comment by Waterluvian 3 days ago
Comment by CodingJeebus 3 days ago
Comment by elwell 3 days ago
Comment by ghm2199 3 days ago
Comment by samtheprogram 3 days ago
I've done several Tailwind projects and rarely did models from various providers need to reference Tailwind documentation.
Comment by simonw 3 days ago
Comment by ghm2199 3 days ago
Comment by KronisLV 3 days ago
In lieu of everything else, I'd say that in circumstances like that it's time to adapt to the state of the world and be the jerks that advertise in CLI.
Comment by danielvaughn 3 days ago
Comment by keybored 3 days ago
Comment by ernsheong 2 days ago
Comment by pyrale 2 days ago
That entitles you to fork the project, not to expect the maintainer to do what you want.
Comment by RA_Fisher 3 days ago
Comment by binary0010 3 days ago
Then ai companies stole the data, put a $20 pricetag on it and wiped out all those businesses essentially overnight.
Comment by autoexec 3 days ago
Comment by binary0010 3 days ago
Company creates a free core product, possibly open source, etc.
Company creates rich help docs and other useful resources.
Customers who use their core free product are frequently engaged with the company and it's helpful resources.
Said company offers additional services such as coursework, cloud services, analytics, etc.
Since customer knows and trusts the core free product, and knows the company is trustworthy, they may be inclined to purchase something.
Now, few coders use these learning resources (ai fetches it for them), they do not know anything about the company and they never engage with the company to see their additional offerings.
Therefore the company now has to advertise by spending heavily on Google/meta/etc. to a cold audience that doesn't even know who they are, because everyone using their system/sdk/library/etc. doesn't know anything about them because ai just steals all their resources and regurgitates it to the coder.
Comment by what 2 days ago
This isn’t the problem. The problem is that you don’t need to pay for (or care about) their services when an LLM can easily replicate them.
Comment by aurareturn 3 days ago
In other words, the documents for the latest versions are hidden behind a pay wall.
Comment by lekevicius 3 days ago
Comment by toomuchtodo 3 days ago
Comment by Muromec 3 days ago
Comment by aurareturn 3 days ago
Comment by CodingJeebus 3 days ago
Comment by ceejayoz 3 days ago
Comment by simonw 3 days ago
Comment by fg137 3 days ago
Comment by ryanbrunner 3 days ago
If you're building something where your unit of organization looks more like a "page" than super fine grained elements, Tailwind will just make things messy and a higher-level library or writing your own CSS would be a better approach.
I don't think this changes much with AI - right now most models are not terrific at maintaining a huge degree of context in larger projects, so I could absolutely see an agent implementing CSS that works well in isolation but breaks due to the cascade. Maybe that changes in the future, but right now if anything I think Tailwind is well suited to AI because it enforces a certain locality to the changes you're making (i.e. you can reasonably assume that a `text-red-500` class on an element isn't going to break things elsewhere and wll do what it says on the box).
Comment by _heimdall 2 days ago
Buttons should be `button` tags. Links should be `a` tags.
Comment by ryanbrunner 2 days ago
This isn't really straightforward with the HTML `button` tag so `a` tags that appear like buttons are common. I'm not really proposing something out of the ordinary here, nearly every high level component library that has a built in "button" will support applying them to `a` tags and most likely have that as their primary example of a button.
Comment by quectophoton 2 days ago
Regardless of how that specific one looks like, I wouldn't like if it were replaced by a <button>.
Comment by lemagedurage 3 days ago
Comment by prophesi 2 days ago
[0] Things have probably changed, but Svelte 5 was a litmus test for how recent the data cutoff was for an LLM model. Meanwhile React _especially_ has no reason to change how the framework is used by coders. Thus there's years of scraped tutorials and sites for how to throttle a function or what-have-you in React.
Comment by queenkjuul 2 days ago
Comment by vazark 3 days ago
Comment by eudamoniac 3 days ago
CSS modules are also a solution to the above, but, once you get rid of cascading, and you have one stylesheet per component, it is again unnecessary to have the one stylesheet in a different file from the one component. There's no benefit to splitting a component and its styles into two files; it just makes it more annoying to edit. So we move the styles essentially inline, with either Tailwind or CSS-in-JS.
Comment by sassbadger 3 days ago
Comment by tiborsaas 3 days ago
Comment by ikrenji 2 days ago
Comment by IslandRebel 2 days ago
If someone knows what they are doing and is allowed to make a decent UI library, you can have very clean, efficient styling without libs.
Comment by tiborsaas 2 days ago
Comment by gherkinnn 3 days ago
Comment by benoau 3 days ago
Comment by gherkinnn 3 days ago
Comment by vlyan 3 days ago
Comment by zelphirkalt 3 days ago
So at least that part is not so amazing.
Comment by dalmo3 3 days ago
Comment by gherkinnn 3 days ago
>inb4 the web should be reserved for text documents and hyperlinks and user styles rule and running anything close to applications on the web was a mistake
>inb4 TUI
Comment by albedoa 3 days ago
Comment by slopinthebag 2 days ago
Comment by zelphirkalt 2 days ago
Comment by albedoa 3 days ago
Comment by lucumo 3 days ago
People like to feel superior to others, so dunking on people using a popular technology tickles some pleasure centers. Considering another viewpoint gets in the way of that, so other viewpoints are ignored.
Comment by andix 2 days ago
Comment by _heimdall 2 days ago
Comment by _heimdall 2 days ago
Comment by davidw 3 days ago
grid dup 1.0 scale wind-x drop cols-4Comment by wuhhh 3 days ago
Comment by cute_boi 3 days ago
Comment by invalidusernam3 3 days ago
Comment by ngokevin 3 days ago
Comment by vehemenz 3 days ago
Comment by paulhebert 2 days ago
I used it for months at s previous job and spent a lot of time googling “how do I write X CSS property in Tailwind”
Comment by vehemenz 2 days ago
Comment by hakunin 3 days ago
1: https://www.zolkos.com/2025/12/03/vanilla-css-is-all-you-nee...
2: https://www.joshwcomeau.com/css/subgrid/
3: https://railsdesigner.com/custom-elements/ (more Rails specific)
Comment by bsimpson 3 days ago
I recently had to help out on a vibe coded project that inherited Tailwind (I think from Figma). It was a short assignment so I didn't dig that deep, but I don't understand the value prop of Tailwind. There was no obvious improvement over what I've been used to; in fact, it seemed a lot messier.
Comment by hakunin 2 days ago
Comment by bsimpson 2 days ago
Comment by hakunin 2 days ago
Comment by mock-possum 2 days ago
Comment by threetonesun 3 days ago
Comment by paulhebert 2 days ago
(Any complex grid model for example. If you haven’t used grid template areas try them out! They are by far my favorite way to do complex responsive layouts)
Comment by marcosdumay 3 days ago
If you are styling a site, there's no competition at all. But if you are styling a single interaction-heavy page, it's a lot less work to put all the formatting inline instead of thinking about a descriptive structure and write your CSS around it.
Apparently a lot of people design entire sites one page at a time.
Comment by miiiiiike 3 days ago
Comment by runarberg 3 days ago
I do think Tailwind is overused, but it obviously has some legitimate use case.
Comment by pjmlp 3 days ago
I am a big advocate of classes, not inline styles spaghetti.
The only contact I had with it was due to FE teams jumping into it, however every couple of months is something else anyway.
Comment by keithnz 3 days ago
Comment by Xelbair 2 days ago
Tailwind is just conceptually bunch of css inline styles repackaged as classes for performance boost. It was always just shifting complexity around, but offered an immediate perception of productivity gain, because you could just make a quick edit here and there.
Comment by armandososa 2 days ago
a) it helps you codify your design system in utility classes. It makes it easier to keeps things consistent.
b) LLMs understand it better than plain css or other css-in-js systems where you're constantly wrestling control back. I mean, you still wrestle, but less.
Were I work I have to deal with an 8-years old codebase and we've switch several times from plain css, css modules, styled components, radix and now tailwind. I would be mad if I still had to write all those classes manually, but it's not the case anymore thank God.
Comment by stephbook 3 days ago
Styling radio buttons, working date inputs, forms that POST automatically, typeahead and server-side validation (eg username already taken.)
You spend all your time reinventing the wheel and then it's buggy and looks like a dog. To say nothing of the inevitable poly fills and Cross-Browser issues.
Comment by _heimdall 2 days ago
Tailwind does ultimately compile down to CSS. Anything you can do in Tailwind can be done in CSS.
Comment by zelphirkalt 3 days ago
What problems specifically do you see with server-side rendering?
Comment by BrandoElFollito 3 days ago
Two different worlds and often two different kinds of developpers
Comment by zelphirkalt 3 days ago
Comment by BrandoElFollito 2 days ago
Having a separate backed and frontend allows for separation of duties: the client is responsible for the user-facing content and the backend deals exclusively with data flows. This allows to have several independent clients, machine to machine connections etc.
Whatever arrives to the server is untrusted, and the API (or other interfaces) only verify raw data (a JSON for instance) and there are excellent (backend) frameworks for that.
Mixing the visual content with the data is possible (Django does that for instance) but from a security perspective less efficient (again - separation of duties). It also requires to possible double the work to have an independent API.
In other words, if you separate the two you do not care about security on the front at all, and the one who builds the back can focus on their expertise.
Comment by Callumk77 3 days ago
Comment by dlisboa 3 days ago
A major point of components is having a single place where you can change design and behavior across your entire codebase. With LLMs you can with very good accuracy tell them to change the look of "all buttons that are confirmation buttons in modals but not in the login modal". Doesn't matter if there are 10 such buttons or 1000, it'll take a few seconds for them to accomplish it.
I'm slowly forming the opinion that nowadays having copy-and-pasted "components", with their whole HTML just repeated over and over, is now a much less worrying thing in a codebase. Even a bloated CSS can be quickly fixed by a LLM.
And like you said: you eliminate the build phase entirely and frontend development ergonomics goes back to how it was in the early 2000s.
Comment by nightski 3 days ago
Comment by dlisboa 3 days ago
I'm not a huge AI person but it's obvious a host of great tools we've built to deal with our challenges would not have been significant if we had LLMs.
A very crude example: to translate code into a different language someone would need to write a tokenizer, a parser, an AST and finally a translator. All significant engineering challenges, taking days to finish. Nowadays you can tell an LLM to do that in minutes.
Staying on topic: we could easily argue that CSS wouldn't have existed if LLMs existed and could create table layouts from pasted images in a chat window.
Comment by skydhash 3 days ago
Do people do that on a regular basis? The most recurring case of building the above is when someone wants to include a language into a project and they usually don't bother with a translator. The second case is when transpilling (ex. LESS to CSS) and that's more akin to macro and other preprocessing tricks than a full blown translation.
> we could easily argue that CSS wouldn't have existed if LLMs existed and could create table layouts from pasted images in a chat window.
All current UI and Document conceptual models include styles (either as direct properties or separate models) and some does include named styles. The novel aspect of CSS is the Cascading concept, not the styling part. And cascading is obvious when we consider that there was supposed to be user stylesheets for documents. I read epub and user stylesheets (created from UI) is crucial.
Comment by dlisboa 3 days ago
They can now.
https://www.checklyhq.com/blog/agentic-rewrite-nodejs-to-go/
Comment by nightski 3 days ago
Sure an LLM can update every table in your project every time you make a change, just as a human could. It also can make mistakes and burn significantly more tokens doing so. Or, it could update one component with a one line change and be done. Easy to verify, less change for mistakes.
Engineering is a discipline and does not change dramatically with the advent of outsourcing it to agents.
Comment by raincole 3 days ago
You could still develop frontend in the old way. Most browsers are very good at supporting old websites. But on one wants that.
Comment by zelphirkalt 3 days ago
Comment by Philip-J-Fry 3 days ago
Comment by dlisboa 2 days ago
I have never seen a single website where performance downgrade was caused by HTML.
However I’m not advocating for it, just making the case that it’s very hard to do worse than we’re currently doing with front end development.
Comment by hamdingers 3 days ago
Yes it makes it insanely easy to refactor duplicated logic into shared and tested modules. Why would you go the other way?
Comment by dlisboa 2 days ago
If one wants to do server side rendering with HTML templates like the old days there is no real “components” way of doing it (although declarative Shadow DOM is coming along). Partials are not the same thing.
In that scenario some repetition can give you the benefit of keeping a clean stack with no client side rendering.
Comment by stefan_lec 2 days ago
Comment by dlisboa 2 days ago
Comment by paradox460 2 days ago
Comment by lemagedurage 3 days ago
Comment by grumple 3 days ago
Comment by insin 3 days ago
Comment by pier25 3 days ago
Comment by mb2100 3 days ago
Comment by 6DM 3 days ago
Comment by throwaway219450 3 days ago
Comment by ouraf 2 days ago
Comment by paradox460 3 days ago
CSS is really good these days. Scope rules and the new selectors available mean you actually have to work hard to mess things up like you did in previous eras
Comment by shepherdjerred 3 days ago
(Abstractions are still very useful to LLMs)
Comment by pmdr 3 days ago
Comment by theturtletalks 3 days ago
Comment by madrox 3 days ago
Comment by paulhebert 2 days ago
(I much prefer the scoped CSS model)
Comment by manlymuppet 3 days ago
Comment by TechSquidTV 3 days ago
Comment by goatking 3 days ago
Try using Tailwind with server-side rendered frameworks like Rails or vanilla HTML, and you will find yourself repeating the same stuff over and over again. Basically anytime you want e.g. a <button>, you have to repeat all the inline css for it. (There are plugins for Rails that adds "components", but I found it very clunky)
Comment by robertoandred 3 days ago
Comment by davidpapermill 3 days ago
With AI I guess you could skip it, but I like to understand the code.
Comment by vehemenz 3 days ago
I can't be the only one who has no idea what this means. Do you mean high-abstraction classes that are bound to the DOM arbitrarily, and are difficult to change later? We've had 25+ years to see how that doesn't scale.
Do you mean Tailwind-style functional CSS written by hand? What would be the point of that?
Comment by bvrmn 2 days ago
Comment by TZubiri 2 days ago
I think there's a lot of technologies that are in the category of categoric mistakes to use, but popular enough and inert enough that they don't get dropped. There might be lots of different explanations depending on the technology, a lot have a reason the moment they are released.
Many third party tech becomes de facto standard at some era, then those features get incorporated into more mainstream tooling like browser css, and at that point the third party tooling exists only because of inertia and adds little value, but increasing supply chain and complexity risk.
Another example on this category is Axios which was essentially a cleaner DX for XMLHTTPRequests in client side javascript before Fetch, and later a polyfill for it. Nowadays it's a blunder to include it, but it ended up in stackoverflow answers and training sets, so it's "safe" to include. Developers that are on the bleeding edge drop it, but those that are catching up and reading tutorials or classes from the previous era, or using llms, use the previous era cutting edge technique, because they aren't evaluating all the parameters of a choice, they are just going with whatever someone else is using, which causes a coalescing around certain central technologies like React, Kafka, Redis.
Regarding Redis, my understanding is that it was popular during one era where databases were used to store state because we didn't know any better and people were moving fast and breaking things, so it was developed as a sort of hack to move things from a database into memory. But nowadays people just use it wherever (because it really is the most blank microservice you can think of, you can slap it anywhere), and people implement it off the bat.
There's lots of more specific reasons why bad third party deps persist. In python there's a library called python-dotenv, which is a categorical mistake to include, but people do it because they come from Node where it is a standard practice. But there's the standard nuance that in Node, it is a built in, but in python it is a third party dependency from a random dev (no offense to the dep dev, only to the users of the dep). It literally is replaceable by calling Open(), write(), and close(), but there it is with a lot of downloads waiting for the day it is targetted and hacked to capture millions of .env files. Personally to me it would be strike 1 of 2 if someone imports it, but there you go.
Yes, there's no reason to import tailwind, it adds nothing, the idea of:
red-color { color: red}
big-text { font-size: 14px}
<p class="red-color big-text"></p>
Is as laughably low quality, the application of a technique in form but not substance, similar to Getters and setters in Java, effectively making every property of a class public, but formally implementing the private keyword and access through functions. 100% a categoric mistake to implement.
I've written elsewhere of a phenomenon where devs avoid lerning a base technology, and rather end up learning a tech on a higher abstraction that ends up being a 1-for-1 of the lower tech, but it gave them the hope that they could avoid doing that learning, and they only drop into that realization by piecemeal ala "we did it not because it was easy, but because we thought it would be easy", and the only cost is that they learned the non-portable version of that technology and now they are vendor-locked professionally into that technology so they will spread it to the next repo, company, job posting and so on.
There's analogues in biology of inert viruses or parasites that don't materially cause damages, but their lifecycle depends on the host. Although to some extent, by competing for resources they always cause SOME damage, but it is important to notice that not all viruses or damages are highly damaging, that's a rare situation of very extreme pathogens, it isn't very beneficial to kill or damage your host. In fact many may be commensal, but there is a tendency to harm.
In conclusion, I think tailwind and such pre-ai slop-deps are more popular because they are inert viral parasites rather than because they provide value.
Comment by svachalek 2 days ago
Comment by paradox460 2 days ago
https://pdx.su/blog/2023-07-26-tailwind-and-the-death-of-cra...
Comment by draw_down 3 days ago
Comment by micromacrofoot 3 days ago
Comment by Waterluvian 3 days ago
Much like saying, "there's never a need for Scratch, it's just a way for my kids to code fun things without worrying about semicolons."
Comment by micromacrofoot 3 days ago
Tailwind is a design library for people who don't want to learn or write CSS. They don't technically need it.
Comment by chinathrow 3 days ago
Comment by micromacrofoot 3 days ago
Comment by chinathrow 3 days ago
Comment by micromacrofoot 3 days ago
Comment by dwoldrich 2 days ago
Yours is a reasonable meaning assuming you meant the computing sense, but the more common understanding of the word would skew towards personal insult the way you used it.
Unfortunately people can't read your mind over the internet and unicode does not convey intent.
The cascade was a mostly mistake except for interesting applications like dark mode, imo. It does not scale easily for large orgs and its original usecases were tailored for balancing user/publisher/content creator presentation concerns. The market has spoken and the content creators rule.
Comment by arvinsim 2 days ago
It's ironic because standard software development practices advocate isolation.
Comment by micromacrofoot 2 days ago
Comment by GeneralMaximus 3 days ago
That said, Tailwind is not as powerful as plain old CSS. It's a bit like training wheels for CSS—you gain some guardrails and prevent newbies from messing things up too badly, but you also give up the power modern CSS affords you.
E.g. I invite you to look at some of Ahmed Shadeed's (https://ishadeed.com) layout tutorials, or whatever you find on the CSS-Tricks/Masters.dev homepage today. It's bonkers what you can do with modern CSS!
Tailwind gives you access some of what's possible with CSS today, and they keep adding support for new features, but it's impossible to express everything CSS is capable of using only utility classes. At some point, you need to write some actual real CSS code.
So personally, it's a tradeoff for me. If I really want the full power of CSS, I use plain old CSS. If I'm willing to trade power for the convenience of Tailwind's built-in design tokens and guardrails, then I pick Tailwind.
Both approaches are good and valid. The right choice is context dependent. With And with LLMs in the mix, it's not that hard to port a Tailwind codebase to plain CSS, or vice versa, so picking the wrong thing doesn't have as high a cost as it used to.
Comment by pil0u 3 days ago
I hope Adam and the team are well and good with this decision. Tailwind is regularly debated here for various reasons, using it helped me have a better understanding of CSS, HTML and design, and made me a better software engineer. Thanks for building and sharing Tailwind!
Comment by dawnerd 3 days ago
Comment by spiderice 3 days ago
Given the past 3 years, I will never understand how people can be so confident making statements like this
Comment by keybored 3 days ago
Can’t believe that the thing that got permanently stale after a month is being put into question. The heresy of it all.
Comment by shunia_huang 2 days ago
Comment by imafish 2 days ago
Comment by ane 2 days ago
Comment by chairmansteve 2 days ago
The only thing left is my Roku box, and it seems to be starting on the road to crappification.
Comment by smithcoin 2 days ago
Comment by dakolli 2 days ago
The billion dollar AI companies saying desgin is dead are still hiring 100k retainer designers to do their landing page.
You simply have terrible taste if you think otherwise.
Comment by vlyan 3 days ago
Comment by elwell 3 days ago
A bold claim
Comment by davidpapermill 3 days ago
We use Claude for design of document templates a lot, and whilst we've built a fantastic pipeline for doing that well, asking Claude to then design anything outside of our guardrails isn't effective.
So I could imagine folks prioritising high quality design of all kinds choosing templates that would guide Claude.
I look at a large number of startup websites and it's very clear which ones are using Claude the excessive CAPS headings alone give it away. They look OK but the Claude aesthetic does leave me wondering whether this is a real business or one person using Claude to build a LP.
Comment by keybored 3 days ago
Even the bossman admitted that AI fired his employees, not the boss.
I guess that’s why people talk so much about leadership this leadership that. I’m learning that leadership is when you are the captain of the ship and the ship goes down you man the lifeboat and mourn your sailors over what the Sea did to them.
Comment by evanelias 3 days ago
What exact outcome would correctly align with "good leadership" in your view? It sounds like you think the CEO/cofounder should have "gone down with the ship" here -- how does that help anyone if it means the entire company would have failed?
Comment by keybored 2 days ago
Comment by shimman 3 days ago
Comment by popupeyecare 3 days ago
Bring back the series!
Comment by mijustin 3 days ago
Comment by testycool 3 days ago
And a recent video is about designing a dashboard with Ai, which is exactly what I been needing from him specifically.
I remember reading the book 6 years ago and I loved how easy it was to understand.
It's also where I first learned about dense UI and was amazed at a before/after example of one. You can clearly see that uncommon common sense he has about UI/UX.
Thanks for mentioning this.
Comment by potato-peeler 2 days ago
[1] - https://www.statista.com/statistics/1118859/mobile-apple-ios...
Comment by lemonberry 2 days ago
That said, I prefer vanilla CSS. Modern CSS is great.
Comment by potato-peeler 2 days ago
This is on iOS 13.6
I have no idea why tailwind needs or does something which makes it utterly unusable. I miss the days when many websites used to offer simple html versions of their apps, like gmail (https://techcrunch.com/2024/02/22/google-is-killing-gmails-b...)
Comment by jedberg 3 days ago
The ones that are successful provide other services that are still hard to do, like hosting at scale, or running the open source at scale.
Basically, running something at scale is what DevTools companies need to do to survive. Hosting the open source and the data is one type of running at scale, or helping companies run the open source in their own infrastructure is another way to help them run at scale.
Comment by dabinat 2 days ago
Comment by petcat 3 days ago
Every app is fast, responsive, progressive, small, and most importantly: it fits in my brain and I can maintain it. No build step or really any tooling at all.
Comment by jjice 3 days ago
Comment by petcat 3 days ago
(I still read and review code)
Comment by SparkyMcUnicorn 3 days ago
Otherwise, it's really simple to do all the things you mentioned without the complexity/heaviness of jQuery. Something like this:
``` const $ = s => { const r = {}; const els = [...document.querySelectorAll(s)]; r.text = t => (els.forEach(e => e.textContent = t), r); r.on = (ev, fn) => (els.forEach(e => e.addEventListener(ev, fn)), r); // ... return r; }; ```
Comment by petcat 2 days ago
Or I can just use jQuery.
Comment by mrweasel 2 days ago
If you like the syntax and functionality of jQuery, or if you're just use to it now, there's very little reason to no use it, and speed and size certainly isn't a reason. 15 years ago, maybe, but not in 2026.
Comment by tao_oat 2 days ago
Comment by queenkjuul 2 days ago
Comment by abanana 3 days ago
I recall scripts ending up as little as one-third the size of vanilla JS, when rewritten using jQuery (where the website was otherwise using jQuery anyway).
Comment by alexcroox 3 days ago
Comment by mrits 3 days ago
Comment by kyleee 3 days ago
Comment by sgt 3 days ago
Comment by eudamoniac 3 days ago
If you are using mostly agents and don't actually need to have it in your brain, then I'd probably go with strict TypeScript at the very least for verifiability purposes
Comment by simonw 3 days ago
Working on an open source project for 9 years and then getting a sizable bonus in an acquisition that keeps the open source project alive seems like a decent scenario to me.
(I don't think there are any investors involved here.)
Comment by PaulHoule 2 days ago
(2) Tailwind is part of the CSSSlop ecosystem that includes of course the original Bootstrap, SASS, Emotion and many similar things that never really worked from an ecosystem perspective because learning the specifics on one CSSSlop framework never means you don’t have to completely understand CSS. CSSSlop just forces you to learn more things and face more cognitive overload.
Now that CSS includes most of what CSSSlop did, you can just use CSS and that’s a good thing. And if AI can answer questions about CSS and save you from trying to find answers in splogs or learning to navigate 50+ spec documents to find definitive answers, isn’t that a good thing?
Comment by cindyllm 2 days ago
Comment by jjcm 3 days ago
Tailwind at this point is a coding language and a brand with no direct product. It's a great acquisition when you want mind share and developer love, and are OK with there being no revenue involved. Shopify is a solid match for that.
Comment by ngmc 2 days ago
Comment by radicalriddler 3 days ago
Glad they got their exit, Adam deserves it, but I don’t know why they can’t see the value in preset UI templates. AI sucks at building UI, it sucks a little less when it’s got codebase references to build upon and reference.
Comment by admiralrohan 2 days ago
Comment by satvikpendem 2 days ago
Comment by zyf 2 days ago
Comment by techscruggs 3 days ago
I really appreciated tailwind, but it solved problems that fewer people face these days.
Comment by sceptic123 3 days ago
Comment by rramon 3 days ago
Comment by nozzlegear 3 days ago
Comment by gfat 3 days ago
Comment by elwell 3 days ago
Comment by mermadicsolutio 3 days ago
Tailwind can still be massively popular, but if an AI agent can look at the docs/examples and generate 80% of what you'd otherwise pay for, that popularity doesn't translate into customers anymore.
Feels like we'll see this happen to a lot of "we already figured this out for you" developer products.
Comment by nickjj 3 days ago
It has for me at least.
I had a solo business for 10 years selling tech video courses (learning Flask, Docker, etc.). It was enough to pay the bills, but for the last few years it has nose dived. For 2026 YTD it has generated $20 / month in revenue but it costs almost triple that to host the courses so I've been losing hundreds of dollars a year, for years. All while watching LLMs cannibalize ~600 free in-depth blog posts and YouTube videos only to re-sell that information to anyone willing to pay.
It completely flipped my life upside down to where for 20 years I was able to sustain myself doing contract work + courses to having to take full time work. All of this started when AI became popular.
It's all related to a massive loss of traffic to my site which was the entry point to both contract work and the courses. Both sides of the business have been crushed.
Comment by dtucjucj 3 days ago
Comment by bbg2401 3 days ago
> On the commercial side, we'll no longer be trying to grow the business around Tailwind. All existing customers will of course maintain their access to products like Tailwind Plus and ui.sh, but we're closing sign ups for new customers to focus on Tailwind CSS at Shopify.
Comment by cube00 3 days ago
You've got to wonder how long that model can continue if no new customers are allowed in.
They've even removed the Plus splash page so clicking Plus on the homepage or going to /plus takes you to a login page with no detail about what it was.
Comment by leftnode 3 days ago
To think it started as a side project and grew to the scale it did. Very impressive work.
Comment by tylergetsay 3 days ago
Comment by aarondf 3 days ago
Comment by sikozu 3 days ago
Comment by aarondf 3 days ago
Comment by francislavoie 3 days ago
Comment by flossly 2 days ago
So thanks Shopify for taking them under your wings.
X-mas wish: that the Servo project gets a proper patron (looking at you, Huawei and Samsung).
Comment by devy 2 days ago
PS: I like how Adam dissing on the famous Claude Speak "load bearing" with a strike-through!. Subtle, but EVERY PUN intended, hah!
https://tailwindcss.com/blog/tailwind-is-joining-shopify#~te...
Comment by jp_sc 3 days ago
Comment by reassess_blind 14 hours ago
Comment by weird-eye-issue 3 days ago
Comment by nullbio 3 days ago
It's not that Tailwind itself is bad. It's good. But agents are notorious for re-inventing the wheel without hard constraints that prevent them from doing it - and when I say hard constraints, I don't just mean an AGENTS.md file or a skill they can ignore. As such, I found that design consistency was near impossible and a constant firefight. It worked at first, but when my project got sufficiently large, it became worse and worse.
I initially tried combatting this with a spaghetti-soup of linter rules, but it wasn't very effective to maintain. So I'm biting the bullet and moving on to greener pastures.
Comment by mehagar 3 days ago
Comment by nullbio 3 days ago
It came on my radar a few months ago when I first started noticing this rot problem. Then recently I saw that it was getting quite hyped and people have been singing its praise for solving this exact problem. So I'm giving it a shot.
Can't say for certain whether it will work out well or not yet, but based on the feedback I've been seeing from others, I'm hopeful.
i.e. https://dev.to/adioof/stylex-won-css-in-js-because-ai-agents... (not my blog).
Comment by psygn89 3 days ago
Comment by perardi 3 days ago
Comment by Varelion 3 days ago
Comment by LoganDark 3 days ago
Comment by weird-eye-issue 3 days ago
Comment by game_the0ry 3 days ago
Comment by LoganDark 3 days ago
Furthermore, I already have specific experience with Tailwind Labs neglecting their other libraries that aren't Tailwind CSS itself, probably because they were only meant to support their paid products (which now will no longer exist! so maybe those other libraries will just stop getting updates altogether). Headless UI was something I wanted to rely on heavily, but it's not built to be flexible enough and basic issues from 2021 or earlier haven't been resolved or seemingly even reviewed.
Now that they have Shopify, I'll be surprised if Tailwind CSS continues to receive any more attention than Headless UI did all those years ago. This acquisition puts Tailwind CSS in exactly that position.
(Edited to fix "Spotify" typos...)
Comment by hbn 3 days ago
I don't see why they'd put Tailwind into maintenance mode when they just purchased a pretty major building block in the modern web stack.
Comment by game_the0ry 3 days ago
You are making quite an assumption here.
Bootstrap was a twitter os library that is still in development today.
Comment by LoganDark 12 hours ago
Comment by moralestapia 3 days ago
Comment by recursivedoubts 3 days ago
Comment by ecshafer 3 days ago
Comment by hackernud3s 2 days ago
Comment by hoppp 3 days ago
Shopify gets to control a large portion of the CSS UI market that AI so eagerly generates. Good for them
Comment by kimos 3 days ago
Comment by fsuts 2 days ago
What’s the commercial argument for shopify buying a css library. What’s the synergy and business benefits.
Is it just the hire of the tailwind devs with some fanfare?
Comment by danybgoode1 2 days ago
Obviously I have no data on conversion rates or overall efficiency whatsoever, but would imagine lots of marketers are on this already no?
Comment by codegeek 3 days ago
Comment by vehemenz 3 days ago
Comment by kingkandu 2 days ago
I don't think Shopify needs to exist anymore sadly.
Comment by bingemaker 3 days ago
Comment by Cameri 3 days ago
Comment by ActionHank 3 days ago
Comment by GreenWatermelon 3 days ago
This is beautiful. Art, even. And it speaks to my very soul.
Comment by aecorredor 1 day ago
Comment by roshanabdullah1 2 days ago
Comment by guywithahat 3 days ago
Comment by dandano 2 days ago
Comment by iamgopal 3 days ago
Comment by nsonha 2 days ago
Comment by croes 3 days ago
Comment by sergiotapia 3 days ago
Tailwind was created to mitigate HUMAN problems, and HUMAN risks. Are these same problems experienced by an agentic workflow? I'm not so sure. The calculus is different.
Comment by XenoCyber0 2 days ago
Comment by latortuga 3 days ago
Comment by dawnerd 3 days ago
Comment by redundantly 3 days ago
Comment by idkithought 3 days ago
In case it wasn’t clear
Comment by ouraf 2 days ago
At least some of them got an escape plan before going bankrupt
Comment by lstodd 3 days ago
This time is now. Your bickering about how to more efficienty bloat a page is... pitiful.
Comment by mattgreenrocks 3 days ago
Sad to see ui.sh go away, however. Is there something else like it out there? Especially the brand kit skill.
Comment by shevy-java 3 days ago
R.I.P. Tailwind.
Edit: To clarify, I mean being assimilated by Shopify is awful. I understand that the Tailwind devs were neutered by AI skynet slop taking over before - that is also awful. That's actually two awful news we get here in one news entry.
Comment by spiderfarmer 3 days ago
Comment by n738 3 days ago
Comment by redanddead 2 days ago
Mr Lutke is kinda weird lately in Canada. Wonder why the tailwind guys are getting involved with him
Comment by aobdev 2 days ago
The only thing that remains to be seen is how these affect those tools going forward (and who's next)
Comment by dave_sid 3 days ago
Comment by phplovesong 3 days ago
Comment by sikozu 3 days ago
Comment by cyrilng 2 days ago
Comment by VinnyBarreca 2 days ago
Comment by Hoasi 2 days ago
Comment by egorfine 3 days ago
But I guess that the cycle of life: products gets purchased and slowly die.
Comment by SamDc73 2 days ago
Comment by internet101010 2 days ago
Comment by Topology1 2 days ago
Comment by AtNightWeCode 3 days ago
Comment by drbscl 3 days ago
Comment by grohan 2 days ago
Comment by vachina 3 days ago
Comment by 40four 3 days ago
Comment by boringg 3 days ago
Comment by biinjo 3 days ago
All joking aside, I don't think most of us consider Shopify as a small company. I personally hope that Tailwind stays around after this acquisition. I was there when Shopify bought Remix and that project is as good as dead in the water now.
Comment by Onewildgamer 3 days ago
Comment by xyst 2 days ago
Sad to see this company bailed out by a racist tho
Comment by kaikayy 3 days ago
Comment by zem 2 days ago
Comment by thih9 2 days ago
Comment by ntcho 2 days ago
Comment by otherayden 3 days ago
Comment by sodapopcan 3 days ago
Comment by BatteryMountain 3 days ago
Comment by alexnewman 3 days ago
Comment by Zarkex01 3 days ago
Comment by dcchambers 3 days ago
Comment by nish__ 3 days ago
Comment by grzes 3 days ago
Comment by stasomatic 1 day ago
Comment by hbn 3 days ago
You end up having to keep them synchronized anyway, messing with your HTML is frequently gonna break your CSS. Tailwind is infinitely more pleasant to write than a separate CSS file that has to be kept in sync with the HTML.
Comment by jrhey 3 days ago
Comment by panzi 2 days ago
Comment by ndgold 2 days ago
Comment by dakolli 2 days ago
1. Are sloplords.
2. AI companies that sell the idea that AI can replace your designer, are still paying 100k retainers to designers for their landing pages lol.
3. People will probably replace backend engineering before they ever replace design, because they will want to seem more human.
4.Handmade watches, and handmade luxury clothing is one of the biggest markets on earth, almost as large as tech itself. I really don't think that urge for the handmade, made by someone with wonderful tastes is ever going to disappear.
Also, no great designer used tailwindcss. This is made by and for slop lords. Which is most of HN, you people have no taste.
Comment by whatthe12899 3 days ago
Comment by devenquan 2 days ago
Comment by runtime_lens 2 days ago
Comment by eboy 2 days ago
Comment by DonLawrence 2 days ago
Comment by EtienneDeLyon 2 days ago
Comment by dotinvictim 3 days ago
Comment by throwaway613746 3 days ago
Comment by colesantiago 3 days ago
And even if they were a charity, the sponsors... well I don't think you would like them either.
They were 'captured' before Shopify bought them.
Comment by pier25 3 days ago
Comment by colesantiago 3 days ago
Money > Principles
100% every time
Comment by fnwbr 2 days ago
Comment by colesantiago 2 days ago
From OSS, to family, health, employees to everything that requires money.
This is how I know you've never been in a leadership position which is why you don't understand this.
If so, why didn't you and pier25 buy Tailwind Labs to save them from being bought by Shopify and Tobi? (who is apparently being called a Nazi by those who hate him)
As they say with this Tailwind situation:
Money talks.
And you're in no position to execute any principles if your business has gone bust.
Comment by pier25 2 days ago
Maybe nazi is not the right word but he has some pretty radical political views such as ending universal suffrage.
https://www.cbc.ca/news/canada/shopify-ceo-endorses-idea-to-...
Comment by yodon 3 days ago
Comment by lekevicius 3 days ago
Comment by Zarkex01 3 days ago
Comment by 219283751 3 days ago
Turns out that clankers generate beige static websites that use 100% CPU, so some assistance is needed.
We now have proof that the above is true, since Lütke adheres to the principle that any non-clanker usage has to be justified. Let us assume he justified the purchase.
Comment by fchicken 2 days ago
Comment by lofaszvanitt 3 days ago
Why would anyone need any kind of framework for CSS?! It's the inherent human need to control something, to package water and sell it as magical water.
I've never understood the whole idea. Bootstrap: the hard-to-remember, horrible shitshow forced on frontend devs. And people thought there couldn't possibly be anything lower than that. Then Tailwind arrived. Apparently, frontend joes are so below average in brain capacity that they need their shiny thing covered in stickers saying "modern" and "state of the art", otherwise they feel dirty, like they haven't taken a shower in a week.
It's like building a framework to simplify the SQL dialect. In reality, there's zero need for it, because SQL is so simple and easy to understand that you'd have to be a moron to use some kind of framework for it. The same applies to CSS. Tailwind is an abomination, a horrible mess, just like all the other pointless CSS 'frameworks'.
These aren't frameworks. They're just some semi-psycho control freak's projection of control over something that doesn't need controlling.
Let's just say it out loud: Tailwind is being rewarded for turning tons of frontend joes into complete idiots by telling them the tale that their shiny thing is the new standard, when all it ever was was an experiment in the gullibility of inherently moronic people.
Comment by moritzwarhier 2 days ago
Years of people deploying web apps and using (My-)SQL without prepared statements provide a counterexample to this. One can argue about ORMs, but stating SQL would need no abstraction layer around it seems questionable to me :/
Comment by vehemenz 3 days ago
If you want to build a case against Tailwind that's actually compelling, you should start by understanding what it is first. Only then can you compare it to other frameworks and methodologies.
Comment by lofaszvanitt 2 days ago
Comment by paradox460 2 days ago
https://pdx.su/blog/2023-07-26-tailwind-and-the-death-of-cra...
Comment by lofaszvanitt 2 days ago
Comment by n738 3 days ago
Comment by vehemenz 3 days ago
Comment by NoDodgeQuestion 3 days ago