A yellow caution sign placed on a tiled floor indicating a wet or slippery surface. The sign bears the words “CAUTION,” “ACHTUNG,” “ATTENTION,” and “CUIDADO” above a symbol of a person slipping.

Tailwind: A Cautionary Take For Anyone Relying on an Open Source Project

Posted in:

I’ve been listening to Adam Wathan’s podcast, Adam’s Morning Walk, since it came across my timeline in mid-November. Each episode is a recording of him talking about whatever he’s been working on or thinking about lately while walking his dog. Funny enough, I’m usually doing the same thing.

If you’re not familiar with Adam, he’s one of the original authors of Tailwind CSS, which is a massively popular open-source framework for utility-first CSS that can be used to rapidly build custom user interfaces. I have been on teams that used Tailwind CSS before, but I haven’t really used it myself since I rarely do CSS-related work these days. Some estimates have detected that nearly 1M sites use the framework.

I’m not deeply familiar with the history of the framework, so I spent some time this morning reading some of the posts in Adam’s journal. His year end reviews were especially interesting. The posts started in 2018 and ended after 2020 (get back to it, Adam), but in just the second post he talked about how he had decided to work full-time on Tailwind CSS.

The more I’ve heard from people using Tailwind CSS, the more I’ve realized it has the potential to be the highest impact project I’ve ever worked on in terms of fulfilling that goal.

So starting in 2019, I’m going to be working full-time on Tailwind CSS.

Blogging is great! How cool is it that you can go back in time and understand someone’s mindset as they have a potentially life-changing realization. Especially when the reflections are around getting to version 1.0, which is the loneliest number.

From what I’ve gathered, Adam and Steve Schoger (another co-creator of Tailwind CSS) steadily built a business on top of the framework aimed at helping to fund the maintenance of the open source project. One of the first large products they built was Tailwind UI. This eventually evolved into what’s known as Tailwind Plus today and provides a ton of additional components, templates, etc. for someone to build a site faster using Tailwind CSS. These products have largely funded his team’s time to work on and maintain the open source framework.

Trouble in the Water

In his first podcast episode, Adam had shared that revenue was way down. He mulled over some possible ways to improve and rebound, but the cause was pretty clear: AI. The primary way people discover and purchase the premium products and resources built by his team was by visiting the documentation to learn how to use the framework. But with more and more people turning to AI tools for contextual answers to their questions, the documentation site has seen a significant reduction in traffic.

Earlier this week, Adam shared that he unfortunately had to lay off 3 of the 4 engineers on his team. He discussed this and reflected in this week’s episode, aptly titled We had six months left. I really appreciated his transparency and self reflection, especially in such a challenging time. The comment he left on GitHub sharing the news has also blown up on social media and made him a beacon for “open source entitlement“.

As more and more people caught wind of the situation through their timelines, a huge number of companies took note and offered monetary support. In less than 48 hours 28 new partners and supporters have been added to the project’s website.

This outpouring of support is amazing! But what a shame it took 3 people losing their jobs for companies relying on an open source project to step up and provide funding.

It’s really disheartening to watch maintainers of an open source project go through something like this. I understand that not every project is sustainable or has strong real-world use cases, but Tailwind clearly isn’t one of those cases.

The fact that there was a problem with funding wasn’t well known until recently. Adam was also clear that Tailwind is not actually in jeopardy yet (even before the recent outpouring of support), the business was just unsustainable without a round of layoffs.

Everything is OK…this time. But next time it may not be. This is not a new problem in open source.

How Can We Prevent This in the Future?

Even some of the most successful open source projects have been abandoned or failed for reasons both directly and indirectly caused by a lack of financial support. Needing to favor paid work over open source work so that they can actually pay their bills, burn out caused by the inability to hire more maintainers as the project scales, a lack of deserved recognition, etc..

It’s easy for me to recognize and talk about the value in open source (I’m very fortunate that maintaining WordPress is part of my job). And if you’re reading this, you’re likely involved with or have a deep appreciation for open source. But the hidden costs of open source are often inconspicuous and easy to miss, even to those directly participating in a project licensed as such.

It’s also so easy to lose sight of the fact that maintainers are just people. Yes, there are often opposing or conflicting motivations at play, and everyone will never 100% agree with the chosen direction or best path to get there (especially in larger projects). But if someone didn’t truly care about open source, they wouldn’t have released their project under a FOSS license or spend their time maintaining one. In fact, in many ways it’s exponentially easier to use a closed source license instead.

After listening to Adam’s most recent podcast episode, I found myself posing different questions.

  • Should maintainers have to build a business around an open source project just to be able to maintain it?
  • Why do maintainers need to waste so much time advocating for themselves when that time would be so much more productive if it were spent doing what they’re good and passionate about?
  • Should there be a classification similar to a type of public good once an open source project reaches a certain threshold to ensure it’s adequately maintained?

I don’t truly know how we can prevent more situations like this in the future. And there’s likely no “one size fits all” solution. The catalyst is almost always different and is often unpredictable. In this case, AI indirectly caused this crisis. AI is a significantly disruptive innovation, and some side effects will be unpredictable. Shifts in how we work, behave, live, learn, and even discover.

So What Now?

When a project loses 3 full-time, paid maintainers, it will inevitably take longer for pull requests and issues to get the attention they need. Those that require a significant amount of resources may never gain any traction at all. Support requests may go unanswered. And releases will likely take longer overall. This affects every single user in some way.

I encourage you to step back and think about the tools that you use. Are they open source projects themselves? Or do they rely on open source directly? If so, what is that tool worth to you or your business? I’m guessing it’s not $0, even if you don’t directly profit from your use of those tools. Do you know any open source maintainers? How are they doing? Do they need your support? Even just 5% of your resources can make a huge difference.

But as consumers of open source, we need to do a better job of raising awareness about the benefits of open source to others. We need to advocate on behalf of those maintaining the projects we depend on by speaking up within our companies about sponsoring these tools. And when we have the means, we need to support them ourselves, even when what we can offer is just a drop in the bucket.

Open source maintainers need our support, and it’s the right thing to do. So let’s answer the call.

Discover more from Jonathan Desrosiers

Subscribe to get the latest posts sent to your email.

Leave a Reply

Your email address will not be published. Required fields are marked *

To respond on your own website, enter the URL of your response which should contain a link to this post’s permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post’s URL again. (Find out more about Webmentions.)