> 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.
I made this point at the time but Tailwind Labs' business model shouldn't exist. It irks people because they wanna blame AI for it but they were coasting and should be happy it lasted this long.
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.
I don't agree with "nor should it be" - the market decided it was clearly needed. And this isn't unique to Tailwind. For decades, companies in many ecosystems (like .NET, JS, etc) have made lots of money selling component libraries that save developers and companies a lot of time. And I even bought UI.sh in April, and it really was great until the models just natively got much better.
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.
"nor should it be" is connected to "being worth millions". It's not that it isn't worth money, but it's more of a lifestyle business than the sort of thing that will drive a tech company with employees, marketing, and conference budgets.
I’m not sure what their valuation was but single digits millions sounds totally reasonable for a company you’re describing. Just to hire 10 engineers you’ll need to be in low millions
Just for reference, in the .NET ecosystem there are multiple vendors selling UI component libraries for sums ranging from lower three digits to upper three digits per dev, per year. This was generally considered good value (might no longer be great value post-AI)
As an engineering leader back in the day (2000-2015) I considered it terrific value to license Telerik and others. In fact, it looks like Progress has acquired a large catalog of the most common .NET dev tools over the past ten years.
I think that “lots of money” needs to be put in perspective when thinking about software that’s used by developers. When you compare the size of the market for these kinds of tools compared to a truly massive market for something like an office suite, it looks pretty puny.
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.
Hey do you have any opinion on the current utility of ui.sh? I wanted to buy it but I'm a bit wary of it just not being useful and they don't have a preview of a single skill.
> I happily paid for Tailwind UI because it was worth it.
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.
"The market" for Tailwind only existed due to ignorance and obfuscation fueled by hype for web dev jobs.
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.
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.
Tailwind’s business model was entirely legitimate, pre-AI. Humans can only hold so many ideas in their heads, and panes in their IDEs. Shorthand class names let them stay in their render hierarchy while drawing from a logical and consistent design library, without going to another file for styling… or (the hardest thing in CS) choosing good semantic class names!
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.
It sounds like your criticism is about their product, not about their business model.
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.
Most of my clients over the years have been very successful businesses in industries and niches that I never imagined could support a multi-million dollar enterprise. A lot of the time I was surprised that the entire business model was even a thing.
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.
That was certainly not overnight. The biggest disruption they personally did was offering a better alternative to Bootstrap. More customization, JIT compilation that allowed for custom class interpretation without any added CSS, proper flex consideration, removing unused library classes in the production compilation step, etc.
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.
Nonsense. There have been perfectly good free date picker widgets available for every era of web development, going back to clunky server-rendered html templates.
Seriously. I always wonder who makes these comments, then I remember I'm old and there are people who don't remember every era of the web. Although, it's still incredibly weird to essentially claim that Tailwind solved date pickers.
You have to remember the biggest appeal of tailwind is that it throws away the entire cascade of css. The people that reach for it are choosing it because it offers less functionality, and is therefore simpler to reason about. I hesitate to say they don't understand css, I'm sure some of them do, but in my experience the devs that reach for it are the same who deride css and make statements such as "I have better things to do than learn css"
Indeed, I don't know what to make of such a bizarrely nonsensical assertion. Age and lack of experience doesn't really explain it, because all the poster needed to have done was make the simplest sort of web search. It's so wrong, it's... not even wrong.
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.)
Your analysis is fundamentally flawed because you’re conflating the Tailwind’s business model, which is based on the actual realities of the market, and your ideal for how frontends should be developed.
There are millions of Single Page, and other “complex” web apps. You not liking it does not invalidate anything.
It's not really a moral argument that there shouldn't be a business model but more an opinion that you might now consider verified as a correct one that the business model just wasn't there. I agree that there probably never was one.
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.
I think many of the purchases of Tailwind UI were basically donations with extra steps. Many, myself included, wanted to support their work. The prebuilt components were nice, but you can find open source components and/or commercial ones on places like ThemeForest for about $20.
I come to similar conclusions when scanning dev newsletters and I fail to skip over an ad link. Based on the value proposition presented in the one-liner I wonder they exist then wonder whether I really understand "tech industry" as it currently is ...
I agree that a CSS library is not really worth a big business. But nobody has woken up: AI makes writing tailwind classes more convenient than ever and that’s what people seem to do.
> the frontend industry not being able to come to terms with CSS
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
This sort of critique could be made about almost any industry or individual business. The whole premise of almost any industry is lubricating some friction between the idealized and the reality.
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.
There is some slight irony in them continuing to make these statements for me. Mostly because Tailwind is still incredibly around (and worth investing in, hence Shopify acquiring them) and AI isn’t anything close to offering a drop in solution. That is to say, AI will implement tailwind when building as there isn’t a good alternative, and otherwise just references these docs for the user so that they don’t have to visit the website, so it’s not like it’s being used less.
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.
> and worth investing in, hence Shopify acquiring them)
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.
> the site docs garnering traffic (beyond potential tailwind labs conversions) is more of an indicator of a code or design smell than anything
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.
I think their business model was sustainable, but depended on SEO. AI made it so people would either use the LLM generated tailwind syntax, or the "AI Overview" at the top of the Google search results and never land on the official tailwind documentation site. Less visits on the official docs meant less people would see the paid offerings, which means less people would buy.
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.
As a Tailwind Plus customer I found it very hard to use their templates. I'm not and was not a React developer, so maybe I wasn't the target customer, but as a solo builder the products were too opinionated and too specific to make want to reach for them. I felt like I had to "learn" the template.
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.
I don't really agree that ML killed their business. I paid for their product early on before it was even done but they never really developed their product. I held out hope to the end of a year and ended up never using my purchase.
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.
I agree. I also paid, but the components themselves were hard to use and required quite a bit of work to integrate into our product. For example, most components had a new (slightly different) button and parts of the components didn't have clear boundaries from what I remember.
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.
I remember that HN discussion, but it seemed to me from the outside that after that post they got Google as a sponsor and I just had assumed the community was rallying together for them a bit.
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.
Right, and as a consequence lots of very important software (orders of magnitude more important than tailwind) does not have full-time employees. Good for them if they can manage it, but it's a gravy train.
Given how hard it is to build any form of financially sustainable model around an open source project I think we should actively celebrate anyone who manages to build a model that works, not dismiss it as a "gravy train".
> The docs are the only way people find out about our commercial products, and without customers we can't afford to maintain the framework.
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.
Noob question, I recall https://news.ycombinator.com/item?id=49491791 mentioned how the kernel source code and diffs were being crawled excessively. All else being equal, won't all the AI crawling agents mean traffic to docs should at least be stable(presuming changes happen all the time)?
And also the fact that agents are solving anubis level 5 challenges Tailwind would not be able to figure out how much traffic is from people vs bots. So that would mean the traffic should be up...
I used to gripe a lot about how Tailwind docs didn't play well with doc aggregators like devdocs.io, or even implement basic browser search engine integration when I was using it regularly. It now makes sense why they wanted to keep their docs scoped to their domain.
They had a very successful economic mechanism design for many years. It's one that thousands of businesses have relied on for decades.
Create great free product, create rich tutorials and docs, people look them up and you can sell variety of services from there.
Then ai companies stole the data, put a $20 pricetag on it and wiped out all those businesses essentially overnight.
I think maybe they should have kept building Tailwinds CSS, release new versions, then charge a subscription to teams for their agents to access latest changes in their documents.
In other words, the documents for the latest versions are hidden behind a pay wall.
While everyone else migrates to something else because v4 eventually becomes legacy and the only way to get modern features is to use something open and available. Charging for access to new versions only gives you short-term runway at the expense of giving your entire user base a very good reason to leave.
If people can't get paid to pay their rent and eat to write and support code, how is it relevant what the consumers of the code freeriding get? If the AI machine requires ongoing fuel to improve, they can pay for it.
They don't get paid to write more of it, but maybe we had enough tailwind and invisible boot of market is giving those people a gentle kick to force them to do something else.
Serious question: is there a need to reach for tailwind if you are building a new site? Won't using vanilla CSS while taking advantage of the latest features be pretty good, since humans are not manually making edits (which removes many of the pain points of maintaining CSS), while simplifying dependency and the build pipeline?
Yeah, Tailwind is great as long as you have some way to reuse markup, like React. You don't have to care about class names and whether CSS defined somewhere else affects styles of a current component at all. That last point makes sense for LLMs as well: all the styles that affect the current file are automatically in context since styling is local. Admittedly, there are other ways to achieve this but the ergonomics of Tailwind are just good. Having nice defaults and good training data is an added bonus.
Vanilla CSS can take advantage of features like that "cascading" part that Tailwind goes entirely against.
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.
is there a need to reach for compiled languages if you are building a new program? Won't using vanilla assembly while taking advantage of the latest instructions be pretty good, since humans are not manually making edits (which removes many of the pain points of maintaining assembly), while simplifying dependency and the build pipeline?
Because what makes it useful , like media queries, can't be put in style attributes. Frankly this whole discussion is just as silly as claiming flex has nothing over table layout.
This is a good discussion: do LLMs change the calculus for DRY?
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.
So you enjoy reviewing your entire code base and relying on an extremely detailed regression suite just to make simple changes? I don't think AI changes good engineering at all, it just changes who or what is doing it.
It definitely changes some aspects of good engineering.
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.
I disagree about your last statement. That only covers the initial creation/generation phase. It ignores the engineering aspect of maintaining that design through the entire lifecycle of the product. How do you evolve that table design?
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.
> 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.
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.
LLMs seem to work well with tailwind which I assume is because there was a lot of tailwind in the training data. As a human I never found tailwind to be particularly easy to work with anyway (mostly because I can't be bothered to learn another CSS framework) so I was constantly checking the docs when manually writing code. But I do like the rigidity it forces, which is probably a good thing for AI coding as well.
Believe me, I try all the time. But HTML and CSS are not made for the modern web.
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.
What's "funny" is that newer/modern CSS is often very clunky to write in Tailwind, or unsupported entirely unless you build your own selectors, but AI doesn't understand those well or how broad their support is, so getting AI to write good/modern CSS outside of Tailwind is pretty difficult. I suppose someone could make a new library that is for AI tools that focuses on the latest and greatest in CSS, but there's no market for it any more because AI would just steal it and generate UIs with it.
Personally I still find it really helpful to have a proven framework to rely on so that I can be confident I'll have a reasonably consistent looking UI across a range of browsers, browser versions, screen sizes, and OS even versions.
Bootstrap was/is popular for the same reason. One framework and your site looks decent on almost any device. The downside is a bit like LLM work in that it all ends up looking like a Bootstrap site unless you’re a good designer.
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
Writing CSS in a way that will scale up with the size of your project and team is just as hard as it's ever been, you still have to come up with a convention for doing that, including taking into account what newer features bring to the table. Having to manually edit it was never the pain point.
As someone that hates Tailwind, I think there is actually a use case here. If you are fluent in CSS reaching for Tailwind is probably a mistake. But for better or for worse there are lots of developers who can write HTML and JavaScript (or more likely React) who will not, and do not want to, learn CSS, for them things like Tailwind is a godsent.
I do think Tailwind is overused, but it obviously has some legitimate use case.
Not really. Every single button that gets rendered has thirty class names attached to it instead of one. It really bloats markup with duplicated classes.
Only if you are using a framework like React, where you create generic Button and other components.
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)
What's the insult? Tailwind is specifically for people who don't like writing CSS because it avoids various ways CSS works and comes with predefined styles.
I quite like Tailwind. I've had great experiences with it, especially on projects where the skill level of contributors was highly variable.
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.
They are buying the people and the brand. Even Adam admitted that AI impacted dramatically their business. Selling UI templates in the current era is likely a dead end, even with a brand as strong as Tailwind.
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!
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.
Holy shit I had no idea there was a YouTube series, nor that he had a YT channel.
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.
I instruct my agents to build UI exclusively with bootstrap 5, jQuery, and HTMX.
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.
I've been thinking the same about the future of frameworks. Many of the complexities in today's frameworks exist for "developer experience", given that's less and less relevant by the month, it will be interesting to see the tech stacks chosen going forward.
I was a hardcore tailwind user and my projects still use it. That said, in the last 6 months, I haven't touched it. I just let my agents style things as they want. ... and they just use plain CSS.
I really appreciated tailwind, but it solved problems that fewer people face these days.
Really happy for Adam and the rest of the crew - they made a great product for a prior era, and hopefully this is a soft landing for them given their revenue stream dried up.
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.
I hope Adam (and other Tailwind team members) got handsomely paid as part of this acquisition.
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.)
I thought Laravel would've been the one to scoop them up, but I'm glad they landed with Shopify. Adam's a solid dude and what him and his team have done to commoditize web design is to be lauded.
To think it started as a side project and grew to the scale it did. Very impressive work.
When I was at Shopify we used Tailwind along with our internal component library to great effect. Tailwind is a great css framework, but their business model is doomed by AI. Tobi acquihiring them for making a great product is a good result.
As a lifetime access purchaser of Tailwind UI and a user of their recent oatmeal template, the news that they’re winding down tailwindui hurts a little.
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.
I bought Tailwind UI when it first launched and then ended up using it for a product that had a lot of success several years later and would consult the included components anytime I was going to build something in my app but now with AI I haven't done that in the last couple years at all because the AI just handles it... It's crazy to think how much AI changed this sort of business model
Worth noting, Tailwind was canadian, and Shopify is also canadian. I like that this was the outcome. The labs business was obviously no longer needed in this era of AI, and I'm glad Tailwind will continue to get proper backing from Shopify to evolve further.
As someone who built their entire platform on Tailwind and has been running gpt-6-astra for the last 5 days straight working on the migration away from it because it leaves an irrecoverable pile of slop when your project becomes large enough... Heed my warning.
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.
I'm probably going to catch heat for this, because people (I did too, I won't lie) have a visceral reaction to the Javascript for styling, but... StyleX.
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.
Happy for Tailwind as this was possible the best outcomes possible for them at this stage. It is clear that most of the frameworks for software are going to struggle significantly because of AI. Especially CSS frameworks. No one cared about writing CSS code by hand before AI and now with AI, no one needs to care about frameworks as well. AI writes it for you so I don't care whether its tailwind or plain css.
I had to create special checker/linter to analyze my code base ( and asked AI to loop it through it as some kind of test ), so as to avoid AI (mis)using tailwind class here and there. that was 2025, AI and linter both improved quite a lot since.
> 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.
> 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.
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.
tailwindcss is an anti-pattern that breaks fundamental rule of software engeneering - separation of concerns. just learn how to use CSS - it will benefit you in the long run. i suspect they will be "paywalling" more and more features in the future.
HTML and CSS are not a separation of concerns in anything I've ever built. They're both representing the layout/design. I don't want them separate.
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.
Expected move and good to hear. Gives Tailwind some extra maintenance years. But like with all these sugardaddy takeovers, the next expected move is “Tailwind is now independent again“.
I thought the narrative by Lütke et. al. was that the clankers could do everything by themselves!
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.
Ugh. I remember how much Tailwind Labs has struggled for funding and it sucks to see Shopify get them. It also sucks to see they're discontinuing their paid products permanently, effective immediately -- they're not making them free, they're taking them away. You simply can't get them now. I understand why this had to happen but it is sad to see.
Usually when stuff like this happens, it means that Tailwind's developers are moving to work on Shopify instead, which means Tailwind CSS itself goes into maintenance mode. That's what usually happens when a dependency is picked up by a company with a huge, "more interesting" product -- the dependency starts to depend on the more interesting product for attention, and stops receiving attention on its own merits. It grows only to support the more interesting product.
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.
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.
> 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.
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.
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.
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.
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.
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.
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.
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.
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.
Yeah, that's why most businesses form.
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.
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.)
There are millions of Single Page, and other “complex” web apps. You not liking it does not invalidate anything.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
They had a very good run for such a project.
[1] - https://adamwathan.me/tailwindcss-from-side-project-byproduc...
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.
Being a bit silly with the analogy: it's like we've discovered gunpowder and now entire classes of fortification are deficient.
I've done several Tailwind projects and rarely did models from various providers need to reference Tailwind documentation.
Then ai companies stole the data, put a $20 pricetag on it and wiped out all those businesses essentially overnight.
In other words, the documents for the latest versions are hidden behind a pay wall.
https://en.wikipedia.org/wiki/Free-rider_problem
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.
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.
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.
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.
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.
They can now.
https://www.checklyhq.com/blog/agentic-rewrite-nodejs-to-go/
You could still develop frontend in the old way. Most browsers are very good at supporting old websites. But on one wants that.
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.
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
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.
With AI I guess you could skip it, but I like to understand the code.
I do think Tailwind is overused, but it obviously has some legitimate use case.
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)
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."
Tailwind is a design library for people who don't want to learn or write CSS. They don't technically need it.
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.
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!
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.
Bring back the series!
https://www.youtube.com/@SteveSchoger
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.
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.
I really appreciated tailwind, but it solved problems that fewer people face these days.
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.
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.)
To think it started as a side project and grew to the scale it did. Very impressive work.
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.
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.
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).
> 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.
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.
In case it wasn’t clear
But I guess that the cycle of life: products gets purchased and slowly die.
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.
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.
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...)
You are making quite an assumption here.
Bootstrap was a twitter os library that is still in development today.
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.