S3 E9: The Tailwind Revolution: How Adam Wathan Built an Open-Source CSS Empire via Tailwind CSS
Adam Wathan has been obsessed with computers since he was a kid. In fact, he was introduced to computers by his 1st grade librarian.. and his first programming project was using Q-Basic, following a tutorial on how to make a pro wrestling simulator.
During his time in university, he wasn't enjoying the programming curriculum and ended up dropping out to play in his band, and working odd jobs to support his music career. During this, he got into the production side of music, and started a home studio to record local bands. Four years after he quit programming, he started tinkering with the same framework used to make Winamp - called reaper - and fell in love with pogromming all over again. At this point, he tried school again, but post internship, he decided to go straight into the field without finishing his degree.
These days, he is married with a young family. Besides staying busy with that, he still finds time to play games with his remote friends, and occasionally trains for powerlifting. He met his business partner, Steve, in college, and hacked on side projects together. These side projects led to the creation of a mini CSS framework, which Wathan started using throughout other projects, growing it into something he was quite proud of. In fact, while live-streaming some coding, he was surprised by the influx of people asking what it was... and where they could get it. He decided to open source the framework in 2017, and it has steadily grown and grown in usage - to the tune of millions of downloads a month.
This is the creation story of Tailwind CSS and Tailwind Labs.
Sponsors
Keep Optimising Podcast (https://keepoptimising.com/)
Links
- https://adamwathan.me/
- https://tailwindcss.com/
- https://tailwindui.com/
- https://www.reaper.fm/index.php
- https://en.wikipedia.org/wiki/QBasic
Leave us a review on Apple Podcasts
Amazing tools we use:
- If you want the best publishing platform for your podcast, with amazing support & people - use Transistor.fm
- Want to record your remote interviews with class? Then, you need to use Squadcast.
- Code Story uses the 1-click product ClipGain, sign up now to get 3hrs of podcast processing time FREE
Credits: Code Story is hosted and produced by Noah Labhart. Be sure to subscribe on Apple Podcasts, Spotify, Pocket Casts, Google Play, Breaker, Youtube, or the podcasting app of your choice.
Current Sponsors:
Checkout our Stacklist! https://stacks.codestory.co/
Hosted by Noah Labhart | Technical Founder & Startup Mentor.
Our Sponsors:
* Check out Perplexity and use my code CODESTORY for a great deal: https://www.perplexity.ai
Advertising Inquiries: https://redcircle.com/brands
Privacy & Opt-Out: https://redcircle.com/privacy
[SPEAKER_00]: as a web developer, CSS is the only thing that's like a constant between every web developer and every ecosystem, you know. [SPEAKER_00]: PHP developers, Rails developers, React developers, few developers, dot net developers, like all of them have to write CSS. [SPEAKER_00]: That's like the one thing that everybody has to write. [SPEAKER_00]: Like not even HTML is really as universal, but bootstrap is used in every possible type of web project. [SPEAKER_00]: And tailwind is the same way.
[SPEAKER_00]: It's been pretty amazing to be able to work in that part of the stack, that slice of technology that has the absolute biggest market share. [SPEAKER_00]: My name is Adam Wadden, I'm the creator of Tailwind CSS, and I run Tailwind Labs.
[SPEAKER_01]: This is Code Story, a podcast bringing you interviews with tech vision analysts, who share in the critical moments of what it takes to change an industry and build and lead a team that has your back. [SPEAKER_01]: I'm your host Noel Adhart, and today, I'll add them later, create a one of the most popular CSS frameworks around by simply coding online. [SPEAKER_00]: All this and more, on Code Story.
[SPEAKER_01]: Adam Wathen has been obsessed with computers since he was a kid. [SPEAKER_01]: In fact, he was introduced to computers by his first-grade librarian, and his first programming project was using cue basic, following a tutorial on how to make a pro wrestling simulator. [SPEAKER_01]: During his time in university, he wasn't enjoying the programming curriculum and ended up dropping out to play in his band, working odd job to support his music career. [SPEAKER_01]: During this, he got into the production side of music and started a home studio to record local bands.
[SPEAKER_01]: Four years after he quit programming, he started tinkering with the same framework used to make the famous WinApp, called Reaper, and he fell in love with coding all over again. [SPEAKER_01]: At this point, he tried to school again, but post-internship he decided to go straight into the field without finishing his degree. [SPEAKER_01]: These days, he's married with a young family. [SPEAKER_01]: Besides staying busy with that, he still finds time to play games with his remote friends and occasionally trains for powerlifting.
[SPEAKER_01]: He met his business partner Steve and college and hacked on side projects together. [SPEAKER_01]: These side projects led to the creation of a mini CSS framework, which Adam started using throughout other projects, growing it into something he was quite proud of. [SPEAKER_01]: In fact, while live streaming some coding, he was surprised by the influx of people asking what it was and where they could get it. [SPEAKER_01]: He decided to open source the framework in 2017 and it is steadily grown and grown and grown in usage, to the tune of millions of downloads a month.
[SPEAKER_01]: This is the creation story of Tailwind CSS and Tailwind Labs.
[SPEAKER_00]: me and my business partner Steve Schoker run talent labs and kind of our main product is talent UI, which is a commercial component library for talent CSS users. [SPEAKER_00]: So it's a bunch of HTML templates for variety of UI components that you can copy and paste into your projects and tweak kind of as much as you want. [SPEAKER_00]: Stephen I've been friends for a number of years, we sort of got introduced by a mutual friend that I met in college because he was a designer and I was a developer and he was always kind of looking for people to hack on side projects with and not same with me.
[SPEAKER_00]: We started working on a bunch of little side projects together. [SPEAKER_00]: The first thing we started working on was like a resume building app. [SPEAKER_00]: I guess he had been designing one in the spare time and I had been building one of my spare time just like by coincidence. [SPEAKER_00]: We got like 40% of the way through that and then moved on to the next project. [SPEAKER_00]: People tend to do with side projects I think. [SPEAKER_00]: But at one point we wanted to build this tool.
[SPEAKER_00]: The idea was like link sharing between team members at a company. [SPEAKER_00]: So something I was found myself on to do it where I was working is like I had some blockross and interesting article and I wanted to like share it with the other people on my team and have a place where people could sort of like discuss them and stuff like that. [SPEAKER_00]: I couldn't find any good tool for that and I thought we should try and make something for that. [SPEAKER_00]: So we started building this little app at some point I decided to take like a week off work to really like push the prototype forward and just see where we could get.
[SPEAKER_00]: What ended up happening is I spent like that whole time working on sort of the foundational bits of the code base, like in this case it was lots of CSS stuff because [SPEAKER_00]: Normally, I was like using bootstrap for everything back in the day, but they were just about to release bootstrap for, and bootstrap for had dropped the less CSS framework for SAS. [SPEAKER_00]: I didn't like SAS. [SPEAKER_00]: I really liked the last. [SPEAKER_00]: So I was disappointed that I were dropping and I wanted to keep using less, and I also wanted to keep using bootstrap, but I had to kind of make a decision, either, keep using bootstrap and switch to SAS, or I keep using less and build something myself, and there's like enough little things that I would have changed about bootstrap if it was my project.
[SPEAKER_00]: small myself. [SPEAKER_00]: So I started building out this little mini CSS framework for myself just for this project. [SPEAKER_00]: And the project didn't end up going anywhere. [SPEAKER_00]: I did find that I was carrying those like CSS sort of less files with me from side project to side project tweaking them a little bit here and there and over like the next couple of years they kind of turned into something that I felt like pretty good about. [SPEAKER_00]: At this point, Steve and I were working on another project called CiteTale, which was supposed to be like a checkout as a service project for people selling digital goods.
[SPEAKER_00]: So in my case, I was like trying to sell like licenses to courses that I was creating and I basically wanted a tool where you could come into your credit card information and it would basically send like a web hook back to whatever your app was to let you know that a payment came through and then you could sort of fulfill that payment however you want it. [SPEAKER_00]: So idea was to sort of make it so people didn't have to worry about failure states or any of the weird validation issues or anything like your app doesn't have to deal with payments, it only has to be able to respond to successful payments.
[SPEAKER_00]: So we were building that and I was using the CSS thing again and continuing to refine it and I was live streaming all my work. [SPEAKER_00]: and thinking that people were going to be interested in like a bunch of the backend TDD stuff we're doing or sort of like developing UIs with UJS and stuff. [SPEAKER_00]: But what kept coming up that people were most excited about was that I was using this CSS thing that people hadn't seen there. [SPEAKER_00]: Everyone was like, what's that CSS framework?
[SPEAKER_00]: What's CSS tools are you using? [SPEAKER_00]: I want to use this on my project. [SPEAKER_00]: and it never occurred to me that this would be something that people would be super excited about. [SPEAKER_00]: But that's what kept coming up over and over it's like, man, you kind of released this. [SPEAKER_00]: You got to release this. [SPEAKER_00]: And a buddy of mine, Jonathan Ranink was working on a redesign for his sauce up that he runs. [SPEAKER_00]: He said, I want to try this like utility CSS thing that you're doing.
[SPEAKER_00]: He was like, do you have anything that you can give me as a starting point? [SPEAKER_00]: I was like, well, kind of a hack on this little framework thing, maybe we can kind of work on it together and use that as sort of a forcing function for making sure that I build it in a way that is reusable on multiple projects. [SPEAKER_00]: So we started hacking on that together. [SPEAKER_00]: That's what eventually got released as Tailwind CSS. [SPEAKER_00]: I decided to open source it basically just because of the interest from the people on the live streams and on Twitter and stuff like that.
[SPEAKER_00]: That was back in the end of 2017 and that's been steadily growing and growing and usage since then. [SPEAKER_00]: And now like, you know, it gets millions and millions of downloads a month. [SPEAKER_00]: That's a pretty popular CSS framework.
[SPEAKER_01]: Let's dive in a little more into the first version, you know what we would call the MVP, but really that first version that you and your friends are hacking on, right? [SPEAKER_01]: And you started bringing it to life. [SPEAKER_01]: How did you go about building it? [SPEAKER_01]: How are you approaching it? [SPEAKER_01]: I kind of understand the tools that you're using, but if there's something specific framework wise or even methodology wise, kind of taken to that a little bit. [SPEAKER_01]: And what sort of decisions and trade off did you have to make while you were building it?
[SPEAKER_00]: We started off, we were trying to build it as a CSS framework on top of the last pre-processor. [SPEAKER_00]: One thing that we were realizing as we were trying to support both of our needs on these two different projects was that we really needed to make the framework very customizable. [SPEAKER_00]: Making that happen with the last was quite hard, so we were basically building like a meta framework on top of a pre-processor using a very limited set of features like the CSS pre-processors.
[SPEAKER_00]: So we had to sort of come up with a lot of clever hacks that were sort of like really pushing some of these features to their limit in terms of what we were trying to do with them, to generate some of these like different styles based on people's configuration options and stuff. [SPEAKER_00]: And it got to a point where it was just like so hard to keep in our heads, however, it was working and there's not like any like testing frameworks for like SaaS or last, you know what I mean?
[SPEAKER_00]: So it's hard to have like a test suite to verify that your stuff even [SPEAKER_00]: Eventually, another friend of mine David Hempel turned me on to trying to rebuild the whole thing with POSSS, which is a tool for parsing a string of CSS into an abstract syntax tree, and then you can walk that tree and manipulate it. [SPEAKER_00]: At first, I didn't really understand how you could use that to build the CSS framework, but the trick ended up being in CSS, you have these like at rules, right, like at media, like media queries, or at import, for importing things, or at chart set.
[SPEAKER_00]: But the interesting thing is like post CSS can parse anything that looks CSS-ish it doesn't have to like be using Valencia's keywords. [SPEAKER_00]: The trick was to like create our own custom at rules, so it made these rules like at tailwind and basically we can crawl the CSS and every time we find an instance of like at tailwind utilities, for example, we can inject a bunch of generated CSS that's like generated in JavaScript. [SPEAKER_00]: And by doing all this work in JavaScript, well now we can use all the JavaScript tooling that exists in the world, right?
[SPEAKER_00]: So we use just as our testing framework, and I can write all this code in JavaScript, test it out, puts the stuff that I want. [SPEAKER_00]: And all of a sudden, I had so much more power because I wasn't trying to like abuse these preprocessor features. [SPEAKER_00]: I had like full programming language, and I had all this extra confidence because I could actually test everything and make sure the things were working. [SPEAKER_00]: So sort of in the 11th hour before we released it, I ended up rewriting the whole thing with POSAS.
[SPEAKER_00]: That was huge for us because it gave us so much more confidence in the code. [SPEAKER_00]: And we released that like the V0 on one that's here, I think it was like Halloween night, 2017. [SPEAKER_01]: You know, you kind of rewrote it in the 11th hour. [SPEAKER_01]: Was it a scramble? [SPEAKER_01]: Obviously, you were trying to hurry before you released it, but the rewriting in the 11th hour stories are typically stress induced or stress induced. [SPEAKER_00]: It wasn't really a stressful one, it was kind of like the opposite, it was.
[SPEAKER_00]: We didn't really have like a release day in mind or anything. [SPEAKER_00]: Like we knew we wanted to get it out like soon-ish, but it's not like a work project. [SPEAKER_00]: It's like an open source thing, right? [SPEAKER_00]: So it's not like the same sort of pressures, but it was one of those rewrites. [SPEAKER_00]: I think there's like two types of rewrites. [SPEAKER_00]: There's like the frantic, stressful, everything's broken, I've got to fix it rewrite and then there's like the, I just had this eureka moment and like unlocked all this new potential and like, I'm just going to go on this coding frenzy and like, [SPEAKER_00]: do all this amazing stuff right fast.
[SPEAKER_00]: It was like more of that one. [SPEAKER_00]: I don't know if you've ever had those experiences where it's like, oh my god, I know how to do this now and like time just melts away and you're just like in the zone, you know? [SPEAKER_00]: And there's no real stress to it. [SPEAKER_00]: It's more just like I don't want to do anything else. [SPEAKER_00]: I don't want to go to the bathroom. [SPEAKER_00]: I don't want to drink water. [SPEAKER_00]: I don't want to eat. [SPEAKER_00]: It's just like, oh, I'm so excited that like I've unlocked this new potential.
[SPEAKER_00]: I just want to keep pushing it. [SPEAKER_00]: So I did all that in like two days, but not because I needed to because it was
[SPEAKER_01]: So we're we're at Halloween 2017. [SPEAKER_01]: So walk me through how you progress the product. [SPEAKER_01]: How did you mature the product from that point post release in 2017? [SPEAKER_00]: So I just kind of kept hacking on it for a few months, adding sort of the new stuff. [SPEAKER_00]: And then it kind of went stagnant. [SPEAKER_00]: It wasn't really actively developed for most of 2018. [SPEAKER_00]: I would say it was, I had a new stuff here and there, but we were busy working on work projects and other stuff like that.
[SPEAKER_00]: And this was one of us just still an open source project. [SPEAKER_00]: So not a ton was happening. [SPEAKER_00]: And then towards the end of 2018, Steven I, my business partner, released this book for Factor and UI, which is like a book that helps teach design to develop for us, basically. [SPEAKER_00]: and it was like a million times more successful than we expected going into that my plan after releasing that book was to start working on a SaaS idea with another friend of mine. [SPEAKER_00]: The book ties in with Tailwind really well like Tailwind is like a sort of a design system driven CSS framework in this book was really about like designing with constraints and there's this a lot of sort of like connecting threads between the two things and the book was like super successful and Tailwind was like growing a popularity and [SPEAKER_00]: All of a sudden we had this huge bank roll, like all this capital in the bank that I could spend time doing stuff and I thought, you know what?
[SPEAKER_00]: This talent thing is like, it's the highest impact project I've ever worked on in terms of the network who use it and then I'm who of like getting value from it and love it. [SPEAKER_00]: I just went and started working on this like SaaS app with the partner of Swiss working on it with, I would just be letting it sit. [SPEAKER_00]: And there's no guarantee that it ain't SaaS project is gonna work out, you know, like most of the time they don't. [SPEAKER_00]: It's a really hard thing to get like a SaaS app off the ground and actually get customers to stuff.
[SPEAKER_00]: So I thought, you know what, I'm just going to like not do that. [SPEAKER_00]: And instead, I'm going to take the whole year and just work full time on this CSS framework and like the surrounding ecosystem. [SPEAKER_00]: And just like see how far I can push this in terms of growing the community and improving the tool. [SPEAKER_00]: Basically, as of January 1st, 2019, I went full time on the framework and that's when we started working towards the 1.0 release. [SPEAKER_00]: It took a lot of what we had learned, based on how people were using the earlier versions, and made the necessary breaking changes that we wanted to make, based on new information that we had about this decision was bad.
[SPEAKER_00]: We should do it this way instead. [SPEAKER_00]: How did a bunch of new features and stuff build like a whole new website built out of all new documentation? [SPEAKER_00]: Recorded most of like a free video course and I never told him to be finished but I have to come back and do soon. [SPEAKER_00]: Really just like kept pushing and growing and growing and that's when the framework really started to take off. [SPEAKER_00]: I would say like 2020 this year has been like the year where it's like really been like the most activeity and growth but that kind of all started with like what I invested in the last year.
[SPEAKER_00]: There's lots of precedent for people being able to start businesses around this sort of tool. [SPEAKER_00]: There's like theme forest that probably makes millions of dollars selling bootstrapped themes every year. [SPEAKER_00]: This is like the official bootstrapped theme store. [SPEAKER_00]: So I thought, you know what? [SPEAKER_00]: Absolute simplest version of any sort of business around this would just be selling themes and templates that are built using this tool. [SPEAKER_00]: And [SPEAKER_00]: Being able to say they're like official, I think would give us a big advantage over any third party stuff.
[SPEAKER_00]: And as long as the framework is big enough and popular enough, then some percentage of those people are probably going to be a potential customers. [SPEAKER_00]: And if these other theme shops can exist and make money, then probably there's a good chance that we can do that too. [SPEAKER_01]: Okay, so you progress the product, you went full time and working on the project, just totally cool. [SPEAKER_01]: It's a dream for that to happen. [SPEAKER_01]: How did you go about building your roadmap?
[SPEAKER_01]: How did you go about setting out? [SPEAKER_01]: This is the things I'm going to build into tailwind. [SPEAKER_01]: How did you figure out what was the most important thing to build? [SPEAKER_00]: I don't really have like a system for that, I guess it's mostly just a combination of intuition and my own personal needs and just paying attention to the community, so there's a lot of features that were introduced just because like the demand was for them was really high. [SPEAKER_00]: People constantly opening the same GitHub issue over and over again, or people asking in our like discord server the same questions, so just like keeping my finger on that policy and being the one who like sees all the issues get open and sees all of discussions, kind of just gives you a good sense for what like people are missing.
[SPEAKER_00]: So that's like one way that I would prioritize stuff and then the other thing that happens the most and this is where like fast feature development happens is when I'm building a site And I need something that tailwind doesn't have then that you know that gets added to the framework that day basically [SPEAKER_00]: And there's some things that are harder than others, you know, there was like a major feature that I've wanted to add since 2017 that I literally just built last month. [SPEAKER_00]: Now that we have a routine, I'm basically and I was able to like pair program with someone for a week and like really get deep into it.
[SPEAKER_00]: We're finally able to get that done. [SPEAKER_00]: So, some things happen really fast, some things happen really slow, but generally what gets added is driven either by stuff that I need myself that I find is missing or stuff that the community is asking for. [SPEAKER_00]: You know, it's not really any more complicated than that for us. [SPEAKER_01]: Well, you mentioned team and I want to dig into that a little bit. [SPEAKER_01]: How did you go about building your team and, you know, what did you look for in those people to say, to indicate that they were the winning horses to join you?
[SPEAKER_00]: So it was like end of February when we first released the product, like launch day, you know, things are like really, you're overwhelmed, like so much customers, support coming in, so much stuff you still want to do. [SPEAKER_00]: It just feels like there's no way they're going to be able to do everything yourself. [SPEAKER_00]: And that was at that point. [SPEAKER_00]: I was like, Steve, should we just like try and build a real company here instead of just being like these two guys who put out products once in a while?
[SPEAKER_00]: You know, trying to do things in a way where we can each spend more time doing the things that we love, and, you know, less, but the things we don't want to do because there's so much just like reactionary work to do. [SPEAKER_00]: If you're trying to stay on top of that all the time, it's hard to do the sort of R&D sort of work that is what really has driven the success of things long-term, you know. [SPEAKER_00]: So we needed to come up with a way to be able to stay on top of the reactionary stuff while still being able to invest in the sort of forward-looking stuff.
[SPEAKER_00]: So we decided you know what we should we should start trying to grow the team trying to bring some people on board So at first we were just planning to bring on one person to start and we were also looking at bringing on another partner And we got really far with those negotiations, but it just didn't end up panning out [SPEAKER_00]: It just sends up being really hard to negotiate equity and stuff with another person when you already have a business that you own, that's doing millions of dollars in revenue.
[SPEAKER_00]: It ends up just being really hard to come up with something that feels fair from both sides of the table. [SPEAKER_00]: You know, learned a lot from that process for sure. [SPEAKER_00]: The first person that we hired was Brad Corns. [SPEAKER_00]: He's just a tailwind community member. [SPEAKER_00]: So I knew of him because he had built the VS code tailwind and tell us that's plugin, which is like a really popular tool people use for getting like auto complete for all the tailwind class names as they're typing and lots of interesting features like that.
[SPEAKER_00]: And I talked to him a handful of times over the years and he kind of been involved in the community since very, very early. [SPEAKER_00]: And he was always hacking on like these really sort of like bleeding edge ideas and really Exploratory experimental stuff with like new technologies and he just seemed to always like no Of every like upcoming feature and everything before I didn't even heard of it and he had already prototype things with it [SPEAKER_00]: he was doing like really high quality work and was just like super into the framework and I was just really impressed with having that he had done.
[SPEAKER_00]: So when I was just originally just brainstorming like man who could we reach out to see if they'd be interested in working with us, he was like the first person that came to mind. [SPEAKER_00]: So I messaged him and he was like yeah that sounds awesome. [SPEAKER_00]: So Steve I never talked to him before so he hopped on a call. [SPEAKER_00]: It wasn't really like a formal interview but just like got to know him a little bit better and made sure that like where he wanted to go with what he was
[SPEAKER_00]: we all felt really good about that and we just kind of sent my offer. [SPEAKER_00]: That was like the least bureaucratic hiring process of all time. [SPEAKER_00]: Like just first person we asked one hour phone call, send it off or now he's working with us. [SPEAKER_00]: You know what I mean? [SPEAKER_00]: Like probably like any like hiring manager's dream situation, you know, we were super happy we were bringing Brad on but then we also realized that we needed some help in other areas because we had a lot of like ambitions around other stuff that we wanted to do and [SPEAKER_00]: We just wanted to try and push it a little bit harder.
[SPEAKER_00]: I wouldn't say we would have done any differently in hindsight But I would say that it was a little bit chaotic to be basically going from two people to our ended up being five people in like one month You know, I think like probably would have been smarter to space things out more But we did manage to do it and now we have the team in place So I'm grateful that we're still not still in like the onboarding phase [SPEAKER_00]: But what we did is we posted like a real job posting because I couldn't think of anybody else that I knew That I would have thought would have been good for the role that we were looking high or someone for so I put together like what I thought was a really good quality job posting that went into a lot of detail about who we were looking for I was very specific about projects that were going to be working on soon was very specific about like if you had already been working with us here Some projects he would have worked on in the last six weeks like just [SPEAKER_00]: really try to paint this like crystal clear picture of what it was going to be like to work with us, included the salary and everything, just try to make it as appealing as possible to the best possible candidates.
[SPEAKER_00]: He posted that just like basically through Twitter and we got 900 people applying to that job. [SPEAKER_00]: which is the benefit of having really big audiences in general like Steve has like 90,000 followers on Twitter and I have like 70,000 followers on Twitter and we both been like building this really engaged audience for a long time through our sort of like public work and stuff that we'd put out there. [SPEAKER_00]: So I was a huge advantage for us. [SPEAKER_00]: So we got an incredible amount of applications.
[SPEAKER_00]: I had to figure out a way to sort of weave that down. [SPEAKER_00]: That was probably the hardest part.
[SPEAKER_00]: we ended up finding someone in that group of people who was someone I talked to like once but didn't really know anything about and definitely wouldn't have come to mind otherwise which was a robin malfa who's a developer from Belgium who works with us now. [SPEAKER_00]: and he's like this incredibly talented reactive developer and so that hiring process took like two months just of interviews and like take home code tests and pair programming sessions so like really make sure like we're hiring the right person for that job like we're really diligent about it and I think um [SPEAKER_00]: I'm really happy with how that went because now that Robbins on the team, like he has lived up 100% to like the expectations that he had in terms of he is exactly who we thought we were hiring.
[SPEAKER_00]: So I feel like we did like a really good job in vetting that stuff and that worked out well. [SPEAKER_00]: During that process, we also hired another person, which is Simon Rackley, Odis, which is a guy from Australia. [SPEAKER_00]: Originally, he reached out when he saw the job posting was like, man, this is like the job of my dreams, but I know you're looking for someone who's closer to North America because you want to do a lot of collaborating, and I'm an Australia. [SPEAKER_00]: how can we make that work?
[SPEAKER_00]: But we knew him. [SPEAKER_00]: We'd met him in Australia. [SPEAKER_00]: Me and Steve both did because we spoke at a conference there like the previous year and he's been like super into the tailwind community since day one as well and we just had a lot of faith in him as a person. [SPEAKER_00]: So we kind of just designed a role for him and talked him about it and he ended up joining the company too. [SPEAKER_00]: So we ended up hiring two people out of that public job posting process, although only one of them was for that actual role.
[SPEAKER_00]: We ended up, you know, ended up with five people on the team total, including Steve and I. [SPEAKER_00]: It was like maybe like 70 days where all three people started. [SPEAKER_00]: things are going pretty good but it was pretty crazy kind of getting all that stuff sorted out and getting settled into like a mode where we can actually focus on work again instead of just hiring. [SPEAKER_01]: But it sounds like it happened really quickly but but I hear some common threads that a lot of these individuals were people that you knew and were actively involved in what you were doing already and then some other people who were just really good culture fits but also really talented and it can help you take the product to the next level.
[SPEAKER_01]: Is that right? [SPEAKER_00]: Yeah, and actually, you know what, every single person we hired, like, even Robin, who's the guy that we found just through the hiring process was actively involved in the community too, and that was like a big part of why we felt confident in hiring him.
[SPEAKER_00]: can't have, you know, like Robin is a young guy who has a lot of time to work on open source and like answer people's questions and discord and like enjoy that and that's how he likes to spend his time. [SPEAKER_00]: Dad gives us a lot more information about him than we can get from someone who doesn't have time to do that sort of thing, which is like an unfair advantage, but also as like the person doing the hiring, like you want to be as confident as possible. [SPEAKER_00]: For us, it's definitely been great that we've been able to just hire people out of a community.
[SPEAKER_00]: If you can make the time to do that sort of thing, it's a huge advantage as someone looking for an opportunity with a company that is very sort of community driven. [SPEAKER_00]: And what do they say? [SPEAKER_00]: The best jobs never are posted publicly. [SPEAKER_00]: Posting a public job posting is basically a last resort and I totally think that's true for us as well. [SPEAKER_01]: So as you step out on the balcony and you look across all you've built with Tailwind, what do you most proud of?
[SPEAKER_00]: to open source work. [SPEAKER_00]: Honestly, I love that we've been able to build a free open source CSS framework that is installed millions of times per month. [SPEAKER_00]: I hear from so many people who are like every time I go back to a project that was built with anything else. [SPEAKER_00]: I miss telling so badly. [SPEAKER_00]: People are just like so happy with the experience and the people who use it are so passionate about it. [SPEAKER_00]: It's like saving them so much time and making them so much happier and enabling them to stuff that they couldn't do before.
[SPEAKER_00]: That's definitely the thing that I'm most proud of. [SPEAKER_00]: For me, the business side of things is cool, but I'm not really that motivated by trying to build a big business or trying to make as much money as possible. [SPEAKER_00]: You know, like obviously you need to make money to be able to spend your time working on this stuff that doesn't make money. [SPEAKER_00]: But I've read this like Walt Disney quote a long time ago, which was like, we don't make movies to make money.
[SPEAKER_00]: We make money to make movies. [SPEAKER_00]: And that like really resonated with me, like I was like, yes, like that's how I feel about the work that we do like in a perfect world if we could just somehow have money magically appear in our bank account without ever actually selling anything or charging money for things I would just make everything free, you know, because I don't [SPEAKER_00]: care about like convincing people the buy things or trying to like maximize how much money we make on things, whatever.
[SPEAKER_00]: I care about like being able to have the biggest impact on the biggest number of people with the tools that we make. [SPEAKER_00]: So I think of us as like a very open source company who has commercial products because like that's the only way to keep working on open source stuff. [SPEAKER_00]: Like in a perfect world I would just be making like free tools for people all day and that's all we would do. [SPEAKER_00]: That's definitely the stuff that I'm most proud of and tell and especially because I think it has like such an outsized impact on people's day-to-day experience at their work doing the sort of work that tell when it enables.
[SPEAKER_00]: as a web developer, CSS is the only thing that's like a constant between every web developer and every ecosystem. [SPEAKER_00]: You know, if you're a PHP developer, then someone building like a Rails library doesn't help you. [SPEAKER_00]: But PHP developers, Rails developers, React developers, few developers, dot net developers, like all of them have to write CSS. [SPEAKER_00]: You know, so it's like the one thing that everybody has to write. [SPEAKER_00]: Like not even HTML is really as universal as CSS because, you know, [SPEAKER_00]: HTML.
[SPEAKER_00]: People use different templating languages and stuff like that. [SPEAKER_00]: But Bootstrap is used in every possible type of web project and tailwind is the same way. [SPEAKER_00]: So it's been pretty amazing to be able to work in that part of the stack where it's like that slice of technology that has the absolute biggest market share across all web developers. [SPEAKER_00]: So the potential for like [SPEAKER_00]: having a high impact there is like so huge compared to what would be working on like any other smaller slice of the stack.
[SPEAKER_00]: So you know, here from so many people who are like, I was useless with CSS until I started using tailwind and now it's taught me CSS or I couldn't make anything that looked good and now like I can or it's crazy to think that like [SPEAKER_00]: some thing that started is just like a bunch of CSS files I made just for myself that I never would have released to the world if I hadn't been live streaming work on something completely different is now like what we built a multimillion dollar business around with a team of five that has like you know thousands of thousands of people using it every day so it's pretty crazy So what does the future look like for your product and for your team?
[SPEAKER_00]: Right now, we're still in this early access phase of the commercial product. [SPEAKER_00]: We're just kind of finishing up the last bunch of component examples to be included. [SPEAKER_00]: Then we're going to start just like working on some other sort of supplementary products. [SPEAKER_00]: So we want to start building an official tools or like UI kits for different JavaScript frameworks that are backed by tailwind at the end of the day. [SPEAKER_00]: So like react UI kits that are built using tailwind, view UI kits.
[SPEAKER_00]: at an abstract level that sort of theme marketplace sort of business that essentially we kind of run. [SPEAKER_00]: On the team side, we want to keep things really small, long-term. [SPEAKER_00]: I don't ever really want to be more than 10 people I don't think because I want to be able to still spend most of my time doing a actual development work, not just management, sort of leadership work, but I know like we could definitely use some more help on the design front because Steve's the only designer at the company
[SPEAKER_00]: I'm sure he would appreciate having some help there, but my help is kind of by like the end of the next year. [SPEAKER_00]: Maybe we have, like instead of just like basically the one product that we have now, maybe we have like four products, and maybe we have a team of instead of like the five that we have now, definitely no bigger than seven at that point. [SPEAKER_01]: Let's switch to you, Adam. [SPEAKER_01]: Who influences the way that you work? [SPEAKER_01]: You know, CEO, CTO, architect, person, really, anyone.
[SPEAKER_01]: Name a person that you look up to and why. [SPEAKER_00]: For me, the obvious answer, which I bet you is pretty common on this show, probably. [SPEAKER_00]: As I'm a huge fan of the base camp, 37 sick goals, guys, like DHH and Jason Freed, and Ryan Singer, too, who I think is sort of an unappreciated voice there, sometimes compared to Jason and David. [SPEAKER_00]: DHA, especially, is probably the guy that I've admired the most for a long time, even just as a programmer before even wanted to start a business.
[SPEAKER_00]: It's sort of attitude around how he built things and the sort of trade-offs that he made and focused on really resonated with me. [SPEAKER_00]: Like, basically any problem I ever run into, like, they've written about it with their kind of take on it. [SPEAKER_00]: That's some point, you know? [SPEAKER_00]: And it's always like a take that I respect. [SPEAKER_00]: I've always really appreciated their sort of like no bullshit approach to things, not like a very like analytics driven or like trying to harvest emails or trying to like growth hack like very much just like build great stuff, talk about it and public like share your opinions on things, [SPEAKER_00]: They kind of follow the golden rule, but for business, they try to build a business that they would want to interact with, which I think is like, sounds so obvious, but it's something that's easy to forget.
[SPEAKER_00]: You know, like, if like this tactic for like getting new email subscribers, like, okay, like throwing up a mode on your website to collect new email subscribers when someone's scrolling. [SPEAKER_00]: Technically, like you get more email subscribers if you do that. [SPEAKER_00]: So the data says that we should do it, but as a person visiting websites, like, do you appreciate it when sites do that? [SPEAKER_00]: No, so like the answer is no, [SPEAKER_00]: I really just kind of appreciate the way that they sort of sort of view things and I've had the privilege to be able to have deep conversations with David Jason and Ryan many times over the years and they've really helped me with specific questions.
[SPEAKER_00]: I've had about my stuff, so... [SPEAKER_00]: Usually, like, they say like, you never meet your heroes, you know what I mean? [SPEAKER_00]: But like, um, because they're never as like, greatest you think they are in real life. [SPEAKER_00]: But all three of those guys have been like wonderful to me in the conversations that I have with them. [SPEAKER_00]: So, yeah, it's still a big fan and still play cause tension in everything that they do. [SPEAKER_01]: So, if you could go back to the beginning, what would you do differently?
[SPEAKER_01]: Or where would you consider taking a different approach? [SPEAKER_00]: There's been like a couple things. [SPEAKER_00]: I got the course of my sort of entrepreneurial career that
[SPEAKER_00]: I kind of got started by, I wrote this book, Refactor in the Collections, which was like teaching functional programming principles to PHP developers. [SPEAKER_00]: I wrote that in like evenings and weekends when I was working for an agency. [SPEAKER_00]: And I wrote and did that whole thing over like maybe three months from start to launch. [SPEAKER_00]: And it made like 60 grand or something in the first week. [SPEAKER_00]: Then like slow down significantly after that, like most of these things like the heaviest revenue days are right at the very beginning where we're going to launch this.
[SPEAKER_00]: but I decided to take a leap of faith and quit my job to start working on other kind of chorus and book type projects. [SPEAKER_00]: And I think like in hindsight, I'd definitely glad that I did that, but I can also see how like, I felt like an obvious thing to do at the time, although like someone risky, but it feels even riskier to me looking back than I did at the time. [SPEAKER_00]: I guess what I'm trying to say is like, I'm so glad that I did that and I would give that advice to other people, like don't wait until you have like, [SPEAKER_00]: 250 grand in the bank.
[SPEAKER_00]: It's almost better to take the opportunity as soon as you've reached like the minimum threshold for that opportunity to be viable and use like the pressure of only having like a limited runway to like force you to be productive and like kind of get to the next step, you know. [SPEAKER_00]: But the next product that I worked on after that it took me like a year and a half before it was done and I like released it in early access like a year before it was done. [SPEAKER_00]: And that whole year was a incredibly stressful because I kept feeling like I'm in debt to my customers.
[SPEAKER_00]: I need to like get this thing done because I had already like pre-sold it basically. [SPEAKER_00]: I couldn't like change the scope of the project so I couldn't like cut out lessons from the course and stuff like that. [SPEAKER_00]: And that just meant that I just had to keep grinding on it. [SPEAKER_00]: And I was like so burnt out and ruined by the end of that. [SPEAKER_00]: That was like a really important lesson to learn, which was like basically I try to not pre-sell things anymore.
[SPEAKER_00]: In the last, I absolutely have to. [SPEAKER_00]: We did it with Tailwind UI, but it hasn't been the same sort of pressure as it was for the course. [SPEAKER_00]: So far, it's been not a big deal, especially having a team and like some support of people to like help me get through it. [SPEAKER_00]: As soon as I finished that course, I went on vacation with my wife for a little bit and took a break and came back and had another idea for another product and I tried to do the exact opposite way.
[SPEAKER_00]: It was like from idea to launch on like six weeks and it made the same amount of money basically. [SPEAKER_00]: that was like a lesson that I learned was just like don't let things drag on like take advantage of like motivation why you have it and like be ruthless about cutting scope and making things fit into the time frame that you have and try to avoid trapping yourself in situations where like you can't change that. [SPEAKER_00]: Other than that I think I probably would have like maybe hired sooner like Steven I had put out the book we didn't hire anyone else after like tell what [SPEAKER_00]: I could definitely see how we could have got help sooner and benefited from it because it's definitely been awesome having a team.
[SPEAKER_00]: So far we've gotten pretty lucky that we haven't screwed anything up too badly. [SPEAKER_00]: So maybe the worst is still to come. [SPEAKER_01]: last question Adam. [SPEAKER_01]: So you're getting on a plane and you're sitting next to a young entrepreneur who's built the next big thing. [SPEAKER_01]: A entrepreneur, a builder, a coder who's just jazzed about what he or she is building. [SPEAKER_01]: I think it's going to be a game changer. [SPEAKER_01]: They can't wait to show it off to you to the world.
[SPEAKER_01]: What advice do you give that person having gone down this road a bit? [SPEAKER_00]: Think the number one thing is basically don't wait until you're done building something to start trying to put it out into the world. [SPEAKER_00]: For me, the highest impact thing that I've done in terms of my own success has been working in public. [SPEAKER_00]: Again, the classic example of that for my own career is that tailwind CSS, the framework wouldn't have existed if I wasn't live streaming work on like another app.
[SPEAKER_00]: I think a lot of people want to wait until something's perfect before they put it out there, but you're just severely decreasing your chances of success. [SPEAKER_00]: Like people want to build something and then they want to market it when it's built. [SPEAKER_00]: The reality is marketing is something that's finished. [SPEAKER_00]: Obviously, you can do it. [SPEAKER_00]: Lots of companies continue to market products that exist. [SPEAKER_00]: There's this phase before something's done where there's so much interesting stuff to talk about, so much interesting marketing potential that you don't want to waste that.
[SPEAKER_00]: A good example of that, like an hour kind of technical space, right, is people are like a allergic to what they think of as marketing and advertising, right? [SPEAKER_00]: I think it's like sleazy like salesy stuff, but marketing is really just about getting your ideas out there and getting people to know what they are and getting people to trust you and getting people to be excited about like what you're doing and want to take a look at it. [SPEAKER_00]: And there's lots of ways you can do that that don't feel like sleazy marketing tactics.
[SPEAKER_00]: You know, like the way that we've done things a lot in the past has been working openly, sharing what we're working on as working on it, asking questions on Twitter when I'm like, I can't decide like how to name this config option for this feature. [SPEAKER_00]: Like, what do you guys think and like involve in people in the community or when I solve some really hard problem, like writing it up and sending out an email to like our email list that's like, [SPEAKER_00]: Here's a story of how I fix this weird line-hide bug that everyone is going to be able to relate to and learn something from.
[SPEAKER_00]: I think like teaching is like the best form of marketing and there's so much opportunity to teach when you're early in the building phase of something and encountering lots of problems and coming up with solutions to them. [SPEAKER_00]: Like any time that you solve like a tricky problem and don't share how you did it is a huge waste of marketing opportunity. [SPEAKER_00]: So I think if I just distill it down into like one thing, it's basically like work in public, talk about what you're doing like from the day that you even start thinking about doing it.
[SPEAKER_01]: Adam, thank you for being on the show today, thank you for being on Coach Story and telling the creation story of Tailwind. [SPEAKER_00]: Yeah, thanks so much for having me, I really appreciate it. [SPEAKER_01]: And this concludes another chapter of Coach Story.
[SPEAKER_01]: code story is hosted and produced by no lab part. [SPEAKER_01]: Be sure to subscribe on Apple Podcasts Spotify or the podcasting app at your choice. [SPEAKER_01]: Support the show on patreon.com slash code story for just five to ten bucks a month. [SPEAKER_01]: And when you get a chance, leave us a review, both things help us out tremendously.
[SPEAKER_01]: And thanks again for listening.
Podbean