Yo! Podcast #008 – Adam Wathan – Tailwind CSS, Refactoring UI

Yo! Podcast #008 – Adam Wathan – Tailwind CSS, Refactoring UI

We chat about SaaS vs once-off payments, Pantera vs Slayer, why he uses Gumroad, the advantage of multi-tier pricing and of course his rapidly growing CSS Framework, Tailwind CSS.

Published by Rob Hope on November 12, 2019

Adam Wathan (@adamwathan) is 1 part metalhead, 2 parts online education juggernaut. Over the past few years, Adam has distilled his obsessive development research into several online courses and books, achieving millions of Dollars in sales. We rap about SaaS vs once-off payments, Pantera vs Slayer, why he uses Gumroad, the advantage of multi-tier pricing and of course his rapidly growing CSS Framework, Tailwind CSS.

The conversation topics, episode links and text transcription are found below – hope you enjoy the interview!

Yo! LogoWhat is Yo!??? Yo! is a celebration of great design and development online. The Yo! Newsletter curates quality new resources each week while the Yo! Podcast spotlights the incredible people building these resources. Subscribe on your favorite streaming platforms:


Conversation Topics:

  • 00:58 – What on Earth is a Beavertail?
  • 01:28 – Do you think the university education system is broken?
  • 04:57 – Do you feel you make more impact than the average university lecturer?
  • 06:49 – Would you call yourself a builder or a teacher?
  • 07:01 – Intermission: No Context
  • 07:37 – Seeing Pantera and Slayer at the same show
  • 08:24 – Why are you using Gumroad for payment processing and product delivery?
  • 14:03 – Intermission: Yo! Podcast soundtrack now on Spotify
  • 14:29 – Would you recommend freemium pricing for online courses?
  • 17:25 – What is the best medium for online courses? Video? eBook?
  • 20:26 – Is it vital to have multiple pricing tiers?
  • 27:44 – Intermission: True, False, Maybe
  • 28:29 – Has the Refactoring UI book made more than a Million Dollars?
  • 28:49 – What makes a great partnership?
  • 30:25 – How do you decide what side projects to abandon?
  • 35:04 – Intermission: AJ water break
  • 35:18 – In a month period, how much do you work on your previous courses?
  • 36:22 – What’s your work day look like?
  • 39:19 – What are the best resources to learn Tailwind CSS?
  • 41:08 – Do you think Tailwind CSS will catch up with Bootstrap CSS marketshare?
  • 42:50 – Is it still worth marketing on YouTube? Medium?
  • 46:04 – Intermission: Donate a Coffee
  • 46:19 – Is a Subscription Model right for all products?
  • 49:27 – What advice do you have for taking the leap?
  • 55:45 – Which was the best Batman?
  • 58:13 – Bonus: That one time I didn’t check my email


Transcription:


Audio-to-text transcription by Speechpad <3

---

Rob:

Yo, Adam, welcome to the show, dude.

Adam:

Hey, thanks for having me.

Rob:

So I was chatting to some Canadian dude the other day, and he says if I ever go visit, I should eat beaver tails. What an earth is that about?

Adam:

You know what? It's funny that I haven't even actually had a beavertail. But I think my understanding of it, and someone will correct me if I'm wrong, is it's basically like a pastry, like the sort of thing that you would get at a fair, or like, an amusement park. But yeah, junk food.

Rob:

So after some research, I learned Canada is the world's most educated country. Over half of its residents have college degrees. Do you think the university system is still broken?

Adam:

Interesting. Yeah, I think it sucks. I don't have a college degree, so... And I've been to two post-secondary institutions. I think there's a lot of things that...a lot of careers that people kind of want that I don't think are best served by learning, sitting in a classroom, and like, doing assignments and stuff like that. Especially like, web development is a good example of this. I wish that the training and education for web development was more like what it is for becoming an electrician or something, where there's some classroom elements, but a lot of it is just you go out in the field and work with other people more experienced than you, and build real things, and learn from them.

And I think there's also a bunch of other problems, like specifically, where we are...I think they have similar systems in the States. I don't know what it's like in the rest of the world. But we sort of have two classes of higher education. There's like, university, and there's college, which I think in the U.S. is kind of like college and community college. And I went to university first, and university is considered much more prestigious, right, and those are like your four-year degree programs, and college is like, a two-year diploma program, typically. And all throughout school all throughout high school and everything, everything is set up to sort of brainwash you to believe that going to university is what smart people do. That's like...you should be proud and consider it a success if you get into university, but college is okay as a backup plan sort of thing. And like, even when you're in high school, you have you have university math and you have college math, and like, college math is supposed to be easier and university math is supposed to be harder, and you choose the course based on what educational institution you want to go to at the end of the day.

So I found that, like when I went to college for software engineering, I learned way more and way more practical things than I did when I went to university for computer science. And it costs way less money, and you're there for way less time, and there's more co-op work opportunities and stuff like that. So, I don't know. The whole system, to me, is just kind of...it just kind of encourages people to spend lots of money for this status of having this piece of paper, when maybe that's not actually the best way to get a job in the field that you actually want to get a job in. So, yeah, I don't know. It's not great. It's okay. I wish more high schools and stuff would not kind of get people believing that one option is necessarily better than the other. I think it'd be better if they were evaluated sort of on what your goals are. I think university is great if you are just interested in learning, but not great if you're interested in being trained, you know what I mean?

And I also think there's lots of options out there that don't necessarily require that at all. Like, I wish they taught anything about entrepreneurship in high school. Because I didn't know anything about it. Like, I didn't know that one option was invent your own job, then you don't need a piece of paper because you don't need anyone to hire you.

Rob:

Actually thinking back, I had a final exam for Delphi, and I did it on a piece of paper. It was like a 30-mark, one question, program a traffic light.

Adam:

That was the whole question? So, no more detail than that?

Rob:

Blank page.

Adam:

Yeah. Oh, my God.

Rob:

So you're the author of "Test-Driven Laravel," "Refactoring to Collections", "Advanced Vue Component Design", and more recently, "Refactoring UI." Do you feel you make more impact than the average university lecturer?

Adam:

Hmm, interesting question. I think probably in a lot of ways, yes, for the sorts of people who buy my products, I think. Because the stuff that I try and teach is so much more specific and focused, I guess. Like, I would even say a lot of...even though I had a pretty decent experience in college when I went back a second time, and you know, went for software engineering instead of computer science, I would say that still the vast majority of my learning was self-directed from other people's books and courses and stuff. Like, things that were really crucial in my learning journey were things like Uncle Bob's books, for example, or like, Gary Bernhardt's "Destroy All Software," online screencasts and stuff like that. I learned way more from that stuff than I did in college. Like, I learned a bunch of things in college, and sometimes it's interesting when I notice that I know something that a lot of other web developers don't know, you know what I mean? Like, because that's the sort of thing they taught us in college bit masking or like array linearization in C, or you know, some other obscure thing. But for the most part, yeah, I think the most valuable things I learned were stuff that I learned online, from people making the sorts of things that I make.

So, I bet it's true that a lot of the stuff that I've done has had a bigger impact on the people who've purchased it, than what they learned in school. And I try to say that in a modest way, but I'm also trying to be realistic, too. And I think it's probably true.

Rob:

Would you call yourself a builder or a teacher?

Adam:

I like, to think of myself more as a builder, for sure. But yeah, it is interesting that I make a living teaching stuff, at the moment, anyways, so...

Rob:

Gret. So, I want to break into a little intermission I like to call "No context." So, simply shoot back either of the two options I give you, no context needed at all.

Adam:

Yeah.

Rob:

Honey or maple syrup?

Adam:

Neither.

Rob:

Haha! It's got to be either.

Adam:

Honey.

Rob:

Les Paul or Stratocaster?

Adam:

Stratocaster.

Rob:

Fender or Marshall?

Adam:

Marshall.

Rob:

Open source software or recurring revenue?

Adam:

Recurring revenue.

Rob:

WWE or IPF?

Adam:

IPF.

Rob:

Clandestine or Left-Hand Path?

Adam:

Left-Hand Path.

Rob:

And lastly, Slayer or Pantera?

Adam:

Slayer.

Rob:

Dude, I did a deep dive in your Twitter, and I discovered you saw both Pantera and Slayer in 2001. What the fuck?

Adam:

Yeah, that was my first real concert that I ever went to, actually. It was awesome.

Rob:

Being a guitarist, to see Dimebag, I mean, do his thing must be a huge highlight to you.

Adam:

Yeah, big time. Especially at the time, you don't really realize how big of a deal that's actually going to be in history, you know what I mean? Like, that was the last time they ever played in Canada, that.

Rob:

Really?

Adam:

And now he's dead, so no one's ever going to see him play, you know what I mean? Like, I think they did...I think Damageplan might have played in Canada, but...

Rob:

Not the same.

Adam:

Yeah. Who cares, right?

Rob:

Okay, rad. So, I just want to deep dive into the execution of your courses. You know, break down different mediums, and hopefully, the listeners can take something into their own products.

Adam:

Sure.

Rob:

So, all your courses use Gumroad for payment and product delivery. Why them? And you know, with this volume you guys are getting now, why not something custom, maybe integrated with Stripe, just to shave off a tad of the commission?

Adam:

Yeah, good question. So I think this is a common developer mindset.

Rob:

Yeah.

Adam:

I could do everything myself, whatever. Okay, a couple reasons that I prefer to use Gumroad versus rolling something myself. And for history's sake, I used Gumroad for my first product, then I used Stripe for my second product, quickly added Gumroad as well for the second product, and then I've used Gumroad ever since. So I did try that, for that exact same reason.

Rob:

Awesome.

Adam:

Main thing, information for reference, Stripe is 2.7% plus 30 cents, Gumroad is 3.5% plus 30 cents. So just a little bit more, percentage-wise. Plus you pay $20 a month for your Gumroad account.

Rob:

For the pro features.

Adam:

Which is nothing. It sounds like that might be substantial until you recognize that PayPal is very, very expensive compared to Stripe. So, PayPal advertises 2.7% plus 30 cents, I think, as well. But that's only for transactions between two people in the same country, in the local currency of that country. So if I was based in the U.S., this might change the math a little bit. But because I'm in Canada, a very small percentage of our sales come from people in Canada, because it's such a small country population-wise compared to the U.S., right? Most of our sales are from the U.S. and Europe. So immediately, that means with PayPal support, we end up paying closer to 4%, sometimes more than 4% for PayPal transactions, plus the 30 cents. So by using Gumroad, every single transaction that happens with PayPal, I actually save money on than if I used PayPal directly myself.

Rob:

Whoa.

Adam:

This ends up being fine because Gumroad gets a better rate from PayPal than regular people do anyways. So they're not losing money on it, and they're making a little bit of money on the percentage that they get from Stripe.

Rob:

Interesting.

Adam:

Even just there, just looking at the pure math, the fact that by using Gumroad allows people to pay us with PayPal, that open up a huge potential market that wouldn't otherwise use a credit card, which is honestly almost all of Europe. Like, nobody there uses credit cards for everything...for anything, sorry. So many people don't even have credit cards. It's just, like culturally, it's not the same as it is in North America. So it's important to have PayPal support, and by using Gumroad, PayPal support is cheaper. And then the other factors are in Canada, I have to collect sales tax from other Canadian customers, right? So if someone from Ontario buys my course, I have to charge them 13% in sales tax. And I don't have this all built out online because it's very, very complicated, because it's different rates for different provinces and stuff like that. And I also don't want people from Canada to feel like they're paying more money than other people are, necessarily.

So what I end up doing is people pay say they buy my "Test-Driven Laravel" course for $249. They pay $249, and then every quarter, I have to go through every single Stripe transaction, find the Canadians, find their postal code, figure out what province they're from, reverse calculate what amount of that $249 should have been sales tax such that some number times 1.13 comes out to $249. Then I have to give that money to the government. So actually, I'm making less money on every sale coming from Canada than I would if they had bought from Gumroad. Because with Gumroad, they act as a merchant of record, which means they are technically like a reseller of my product, and they're paying me a royalty.

So when someone buys from Gumroad, they get a receipt that says Gumroad LLC. Their invoice says you bought this from Gumroad, not from Adam. And then I get a weekly payout from Gumroad. And then for my own bookkeeping purposes, the only thing I have to keep track of is those weekly payouts from Gumroad. So I have 52 entries in a spreadsheet, that's all my bookkeeping for the whole year. Whereas if I do things like I did for my "Test-Driven Laravel" course, I had thousands and thousands of Stripe transactions that I'm individually responsible for determining the location of the customers and how much sales tax they should pay. So the administrative overhead is just absurd compared to what it is with Gumroad.

And then on top of that, you get all these features that are built into Gumroad, that I would have to build myself otherwise, like coupon codes and all that sort of stuff. And even just the delivery of the files I don't have to pay anything for bandwidth because all that stuff is hosted on Gumroad. So I haven't done the math to know for sure, but like, I would be shocked if I make less money using Gumroad than I would using Stripe and PayPal directly. Not even accounting for all the time that I would lose and all the administrative junk. So yeah, going forward I will never use that stuff myself, or I will never do it myself, ever.

Rob:

So the next one's super selfish, but I think it's going to be good for context in the lessons. But I'm working on a landing page masterclass course for 2020 over on One Page Love, and I'm banging my head against the wall about pricing. What are your thoughts on a free pricing tier for an online course?

Adam:

Yeah.

Rob:

Let's go freemium, where like, there's a free version of the course diluted, six chapters, but there's a comprehensive course at a premium rate.

Adam:

I think it probably could work. I haven't done it before. I think I'd prefer to have a more clear separation between stuff that's free and stuff that's paid. And there's stuff that's free, and it's just free no strings attached, and then there's stuff that's clearly commercial, and like, if you want it you pay money for it. I think that feels simpler to me. But again, I haven't tested it and I've never done something where there's an explicitly free version. Like, I've certainly, all my courses you can...like, there's free content, for sure. But I've never really positioned it as the free version of the course or whatever. It's like you can get access to, you know...enter your email and I'll send you a link to watch the first six lessons for free, or something like that. Which I think works really well. Yeah, more like a teaser than an actual free edition.

Rob:

Okay, a teaser.

Adam:

It depends I guess what job you want the free stuff to do. I would be more inclined to just put together some separate free content, like a really good blog post or something, and use that to kind of build some authority around that topic, and have people who want more or want it in a different format to go do the paid thing. Like, a lot of my stuff, like my Vue course, for example, a lot of the ideas in that course are already on the internet for free in my...I've wrote this really big guide about one of the main topics in the course. But I think the reason people pay for the course is because people want to learn in video form, not necessarily because there's content that isn't in that post. Like, of course, there is a lot of content that's not in the post... But still I think generally, most people who do educational content that I know of, if you really wanted to, you could basically piece together most of the ideas that's in the commercial products by just listening to every podcast interview they've done, reading every blog post they've written, you know what I mean? Just kind of like collecting all the information yourself.

So it's usually not the case that there's hyper-gated, secret content. It's just you're paying for the convenience, and you're paying for the delivery mechanism, whether like I really like watching videos, or I think they're higher bandwidth, so I learn more than I do from the written one. Or there's like a Slack channel where I can ask questions, you know? There's a lot of other value adds. But...

Rob:

You know, when is the right time to make video content versus written course content? You know, "Refactoring UI" could have maybe been a super long video...

Adam:

Okay, so there's a couple pieces to it. I think video content is great for learning lots of stuff. Like, programming stuff, I think video content is awesome. I learn so much more watching videos than I do reading stuff because you learn things that the person wasn't even trying to teach you. And I think the same could have been true for "Refactoring UI" and like, design stuff. But I also think there's a smaller potential market for video stuff because so many people just don't feel like they have room in their life to actually watch it. Whereas like, reading an e-book, there's so many more situations you find yourself in where you can pass the time doing that. Like, you're waiting at the doctor's office, you can read the e-book. You can't really watch a video course quite as easily, necessarily.

I think written content has a lot of advantages over video content in the sense that it's searchable, and like, highlightable, and copy and pasteable and stuff like that, right?

Rob:

Yeah.

Adam:

But I think video content is easier to charge a higher price for, which can be really important if you don't have a huge audience and you need to make sure that you're going to get a good return on your time invested, you know? Even if that means you're only going to sell a few hundred copies or something. But with "Refactoring UI" we felt like we were going to be able to sell thousands of copies of it, so it was okay to sort of do a written thing and not worry about the pricing as much. Although we did, definitely, charge like a premium price tag for it because we were worried about that a little bit. Like, we do want to make sure that we maximize our return on it. So e-books typically have, like...there's like a market rate for it, right? It's like $29, or maybe even $49 is sort of the most someone is sort of conditioned to be willing to spend on a book or an e-book.

So what we did is we bundled three screencasts with the book and offered that for $79, which is a little bit more money than you can really, realistically easily charge for a book, and people are more willing to pay it because they don't have this voice in the back of their head saying are you crazy? Like, you're paying $79 for a PDF? Even though, like of course, that's like the wrong way to evaluate whether something's worth buying, you know what I mean? Like, if it saves you an hour of time or helps you get a client that pays you an extra $100 because the results are better designed than they would have been before you read the book it's paid for itself, obviously. But again, there's just something about the delivery mechanism that just reduces the price.

So by being able to sort of add a couple bonuses here and there, it sort of gets people out of that mindset of evaluating as purely an e-book, it makes it easier to charge what you think the content is actually worth.

Rob:

Quickly on the pricing tier again, is it vital to have three tiers, or two?

Adam:

I think both options can work. I think the important thing is to have multiple tiers if you can. So we did two for "Refactoring UI." At one point we were planning to do three, and right when we were about to release it, we actually only planned to do one, which was just going to be the $149 tier. But then we got a lot of feedback from people complaining about the price, and that kind of scared us, so we introduced the cheaper tier with a lot of the bonuses cut out.

The way to think about it, right, is your goal with tiers is to give people who would be happy to pay you more money the opportunity to pay you more money. So, if you write a book that's, like...and you're going to sell it for $49, well now the most someone can pay you is $49. So even if there's 15% of your audience out there who would have been happy to give you $150 they don't have any way to do it. Ideally, what you want to do is figure out a way to add some additional content or perks so that lets you raise the price without necessarily tripling the effort, right? Because that's, of course like, now you're not really getting a ton of benefit from it. Like, because you're charging more, but you're working way, way, way harder.

So for my stuff where I've done, like... Like, my first book, where I did three tiers, the book is for sure the heart and soul of sort of the product. And then there's a second tier that includes the book plus videos, and the videos are all based on chapters in the book. I just recorded...I took the examples from the book and recorded them in screencast format. So it is more work because I had to make the videos and stuff like that, but I didn't really have to invent new ideas or anything like that. People are paying just to get that same content in a different format where they think they might learn stuff that they're not going to learn reading the book, or where they might absorb it in a different way because they prefer video content or whatever. So that was another week of work probably, but that's not that much, really. And again, it was mostly mechanical work. It wasn't creative work because I didn't have to invent new content.

And then the third tier, I included the source code to an application that I built, that I already had built the year before, where I just happened to use a lot of the ideas that I espouse in the book, because that's kind of where I really fine-tuned a lot of the things that I ended up teaching in the book.

Rob:

That was KiteTail.

Adam:

That was Nitpick CI, actually. So that was no work, really, because I just threw the source code in a zip file and just attached it, right, and charged an extra $100 for it. Which is totally worth it to the people who paid for it, but I didn't have to put a ton of extra effort into it.

Rob:

Yeah, win/win.

Adam:

And then for the "Advanced Vue" course that I did, I did two tiers on that. But I kind of did it the opposite way, where instead of coming up with new stuff to be able to charge more, I kind of just...I thought about it as more like a one-tier product. It's like, $139, here's all the videos. But then I cut a bunch of videos and kind of put together more of like a basics version of that course, or kind of like an essentials version that didn't have as much of the content. Charged less for that, and mostly used that as a price anchoring mechanism, right? So I think that's $99? So I think there's a $99 option and a $139 option, and the $139 one, you get twice as much content, you know? So it just helps people look at the two options and think, well, yeah, this $139 is a good deal. And almost everyone bought that one, barely anyone bought the other one. So it wasn't really meant to be a real option, it's more just get people to look at the $139 price a little bit less biased, and like, think, okay, this is what it costs for less videos, this is what it costs for more, instead of just thinking like, oh, this is too expensive. It sort of clears that thought from your brain a little bit and just helps you just focus on the value that you're getting.

Rob:

Totally.

Adam:

Yeah. And then for "Refactoring UI," we wanted to just do the one tier, but we ended up doing something similar to the Vue course for that same reason, just to help people see past that gut reaction on the pricing. And also offer an option for people who just really didn't care about the bonus content and wanted to save a little bit of money. I think a mistake that people make with tiers is... Again, the goal is to give people the option to pay you more money, right, for the most part. So you don't want to tier down, you always want to tier up. So if you have a product...like I had my "Test-Driven Laravel" course, and that's only a single-tier. Originally, I planned to do more tiers that just had less content, and offer them at a lower price. But then it occurred to me if I think this is the course, why should I be giving people the choice to pay me less, you know what I mean? Just like, keep it all as what it is, and people can pay the price or don't pay. And I think I probably made more on than that, because of that.

Rob:

What a great takeaway. So you know, I gave a talk in Berlin in June. I was speaking at WordCamp Europe, and my talk was about landing pages and just understanding what makes them converts and so on. And afterwards people would go up to me from the audience, and they would say, "Rad talk," or so on. And then I would ask them a question about my potential landing page masterclass. Like, it couldn't have been a better pool of data I'm getting here. This is someone who's just watched me talk about landing pages, now I'm talking about a class I'm about to sell them. I would give them a few options, and every single one of them said, "Please do not make a free course, because I need to be accountable." Like, I need to pay for it so I finish it." Because I said "Hey, I'm thinking of just putting out on YouTube 10 chapters. I'll make money through a sponsor or affiliate income, or I'm just going to charge." And they were like, "No, please don't put it up for free. I will never watch those videos."

Adam:

Yeah, that's interesting. Yeah, I think that makes sense. Like, I know a lot of people will do courses where they sort of bring people on in cohorts so that there's a weekly call where people can go and do like a Q&A based on the content that they worked through that week or whatever. And that kind of gives you a little bit more accountability, too, because it's not really like a consume at your own pace thing. Although, of course you still have that option, but there's something nudging you to sort of keep up with other people and stuff like that. And I think charging money for something versus making it free is another good way, in general, to just get people to take it a little bit more seriously and get them to actually work through the content.

Rob:

I want to break into a second intermission I like to call "True, false, or maybe." All you need to do is shoot back either of those three words, true, false, or maybe. You got it?

Adam:

Got it.

Rob:

A user interface is like a joke. If you have to explain it, it's no good.

Adam:

True.

Rob:

Designers should code.

Adam:

True.

Rob:

Laravel is the most exciting development on the internet in the last five years.

Adam:

I don't have an answer for what is more exciting, so maybe, maybe.

Rob:

Okay. You literally audited an iPhone SE in the past month.

Adam:

True.

Rob:

Everyone should be working on their products in public.

Adam:

Mmm...false.

Rob:

License plates in the Canadian Northwest Territories are shaped like polar bears.

Adam:

Maybe?

Rob:

People are still buying PDFs.

Adam:

True.

Rob:

And last question, "Refactoring UI" book has made more than $1 million.

Adam:

True.

Rob:

So, trust me when I say I'm the last person who wants to talk about money. But I'm super interested what $1 million gets you in Canada nowadays. Can you even buy a house for $1 million?

Adam:

You can buy a house for $1 million for sure, as long as you're not in downtown Toronto or something. Yeah.

Rob:

So your good friend and "Refactoring UI" partner, Steve Schoger he was on the show. And whenever I dug deep, he would pause and say, "Nah, I must give Adam the credit for that."

Adam:

Okay.

Rob:

You know, you two seem like a great team. I want to know if the factors outside of a design development duo are the secret sauce for a quality partnership?

Adam:

Okay.

Rob:

You both have kids, you both drink beers, you both dig a good dose of heavy music...

Adam:

It's hard to say. Me and Steve are actually, like...we have a lot in common, but like, we're so different in so many ways, too. Like, I don't know that we would have been super good friends in high school, or like, outside of work. I think work stuff is kind of like what connects us, and we sort of discovered that we do have a lot of things in common outside of that, too. Like, we're both big fans of early Green Day records and stuff, and have stories to tell there. And you know, we both played instruments, and like, he went to school for audio engineering, and I ran a studio, you know? So there's all sorts of cool little similarities there. But at the same time he like, loves traveling, and I hate traveling. He like, loves being in, like...in the city, where it's like, it's busy and there's all sorts of crazy stuff going on, and I just want to live the most boring suburban life ever.

So I think we're very different in a lot of ways, but very compatible when it comes to work stuff. And we have enough in common outside of it that it's not just like this pure mechanical work relationship either. So I think we're just kind of fortunate enough to get along and have some things in common, but also just be really compatible on the work side.

Rob:

Rad. So right now, you're developing Tailwind CSS full time. Quite a journey to get there, for sure. Darshan from Product Disrupt asks, "How do you decide which product to continue building on, and which to stop?"

Adam:

Good question. There hasn't been that many things that I feel like I've abandoned, I guess. Like, there's definitely been a couple. And I think the thing that they have in common is they've been SaaS ideas. And I always get kind of intimidated the further I get into a SaaS product because I know that it's a lot, a lot, a lot harder to get something like that off the ground, and like, get it sort of past that critical point where it's actually has some momentum and sustainable.

Rob:

The valley of death.

Adam:

I think, generally, what's happened is, I don't think I've ever started building something and then canned it with the plan, like with the thought I'm done with this, this was a bad idea, I'm never going to work on this again. But I do try to evaluate all my ideas, sort of in order of what I think is the most guaranteed to the least guaranteed, in terms of getting some return on the time invested into it. So I'm always trying to work on the idea that I think has the biggest, most guaranteed chance of success. So for me, that was like...I did the "Refactoring to Collections" book, and then there was a bunch of different things I could do after that. But I knew people wanted the testing course, so I did the testing course. And then after the testing course, I started working on this KiteTail SaaS app, which was sort of meant to be like my own, personal Gumroad replacement.

Because at the time, Gumroad was sort of not really being actively developed because they had just laid everyone off. And I know Sahil, who runs the company, was just sort of like, feeling like he had failed because they didn't grow the way that they wanted to, or weren't able to raise another round. And it's just kind of like, things went quiet on that front for a while, while he sort of tried to reframe the situation, and like, look at things in a positive light. And during that period was when I was right in the heat of building and selling all my stuff. And I thought you know what, I love this platform, but I feel like one day it's just going to stop working because it feels like no one's working on it. So, I started working on a replacement for that.

Eventually...like, a couple factors. One Gumroad started being actively developed again, and I started talking to Sahil a lot and kind of like, rekindled my confidence in the platform. And now it's awesome, and it's awesome to see how much stuff they're developing. Like, I can send him a DM with an idea for a feature, and they'll build it within two weeks. It's amazing. So now it's like, okay, I don't want to build this horrible payment-taking platform, where I have to deal with all these fraud concerns and all this stuff. So I kind of put that on the back burner for that reason. And also, because I had this idea for this Vue course, and I had to sort of evaluate, okay, I can only really spend my time on one thing. So should I work on this SaaS thing, which is sort of targeted at people who want to sell stuff online, which isn't really my audience? Like, I definitely have people who follow me for that reason, or other developers who sort of have aspirations of making courses and stuff like that. But for the most part, people follow me because they, especially at that time, because they're excited about learning stuff inLaravel and in Vue, and you know, these days, it's a lot more because of Tailwind CSS and stuff like that.

So, yeah, I had to decide okay, do I keep working on this SaaS app that is going to be hard for me to find customers for? Or do I just work on this Vue course idea that came to me one day, where you know, there's this really exciting sort of topic in the Vue community that I think I'm one of the first ones to be talking about, people seem to be really responding well to the content. I could do a course about this, and guaranteed, it's going to work out. So like, that whole course, from like, idea to launch, I think was six or eight weeks. So I just put everything on hold and worked on that because I knew that was the most guaranteed thing. And then after that was when me and Steve sort of started working hard on "Refactoring UI." And again, that was like, this is the most guaranteed thing, you know what I mean? Steve had built a huge audience, people were begging him to put out some sort of course or book. So like, why work on a SaaS app that has no guarantee of success at all, when I could work on this thing that's definitely a sure thing?

Rob:

Got you. So, just say in a month period, how much do you work on your previous courses in a month?

Adam:

Including "Refactoring UI," that's probably...I would say not including "Refactoring UI," I probably spend a total of 30 minutes a month, maybe, answering emails from people who forgot what account they logged in with, or need me to transfer their access to a different GitHub account. Like, customer support stuff. I don't do anything in terms of updating content or anything like that. Like, I consider the products done.

Rob:

That's incredible.

Adam:

And then with "Refactoring UI," that's a little bit more support because there's still quite a bit of activity on that. Like, my other stuff has slowed down a lot more. But with "Refactoring UI," I probably spend 30 minutes a week, or an hour week at most on Help Scout just answering support tickets.

Rob:

Ain't so bad. I mean, it's not exactly passive income because of the initial investment, but it is quite passive at 30 minutes a week.

Adam:

It's passive in the sense that it's not like trading time for money.

Rob:

Totally. Something they didn't teach us at school.

Adam:

Yeah.

Rob:

So, what's your day today like right now? You know, is it full-time Tailwind? And how do you start your day and end your day?

Adam:

So right now, me and Steve are working on this Tailwind UI project, so that's what I'm spending most of my time on. Which is meant to be kind of like a more opinionated, sort of component, template layer on top of Tailwind. So, me and Steve are designing and building a lot of examples. So here's 15 navbars built with Tailwind, there's like, 15 account settings pages, or like, site footers, or heroes, or feature sections, right? So just building up this big directory of sort of blocks, that you can sort of...

Rob:

Components.

Adam:

...snap together to put together a site with Tailwind, and customize to your heart's content. But yeah, it's kind of designed to serve as sort of like an inspiration gallery, but where everything is right there in HTML, so you can just grab it and use it.

Rob:

Beautiful.

Adam:

So, I'm spending a lot of time working on that. So me and Steve, we'll usually chat on Zoom or something for usually about an hour a day, kind of working through things together. And then he'll work on some stuff on his own, I'll work on some stuff on my own. I feel like I don't have a really solid routine, in terms of how I divide my time. Like, some weeks I have to record a podcast episode for Full Stack Radio, so that'll take up some time one day. Then I have to edit that at some point...

Rob:

I have that, too.

Adam:

Some days I have to do administrative garbage for the business. Like right now, I'm in the process of filing taxes for my business, so I was just on the phone for half an hour getting a copy of a tax form. And I try to keep on top of the Tailwind issues, so I'll look at that at least a couple times a week. I'll usually kind of batch through that, and try and close out five or ten of them at the same time. Right now I'm also working on some features for Tailwind. I haven't really been working on Tailwind itself for the last few months because I was kind of working on this Tailwind video course. I was working on a free course that I kind of just put in the documentation, for people who prefer to learn that way. So, I've been working on that. And I've kind of been bouncing back and forth. So I'll do a new course module for that every other week or so, and then the next week I'll work on stuff with Steve. So, it's kind of all over the place. And I think I need to do a better job at planning that stuff and defining what I want to get done each day.

Rob:

A roadmap.

Adam:

Because I feel like I do a lot better when I know, like... I used to do this thing at the beginning of the week, where I'd sort of like write up, okay, if I got this, this, and this done this week, I could call this week a success no matter what else I did this week. And that was working really well, but that doesn't come naturally to me. I have to sort of force myself into that sort of routine, so it's easy to sort of fall off the wagon. And right now, I think I'm in kind of a little bit of chaos land. But, yeah.

Rob:

I got a question here from Jake Hawks [SP] and he says...

Adam:

I think the documentation is the best place to learn most stuff. Because I think I've tried really hard to make the documentation kind of a combination of just how does the tool work as well as sort of best practices guides, you know? So there's a lot of content in there about how I think you should use it, not just how it works, what the classes are, what sort of the configuration API is. Like, it's a lot less mechanical than that, and than most other documentation sites, I think. So it's worth a read because a lot of it reads more like a tutorial, and sort of like gives you opinions on stuff. I think the video course is even more in that direction. You'll learn a lot of stuff about how I organize the classes, or why I use multiple elements versus one element for some particular problem or whatever. And I also did a talk at Laracon this year, called Tailwind Best Practice Patterns, which covers a lot of more opinionated stuff, too. So I think those would probably be the resources that I can recommend with the most confidence because I've created them myself.

Rob:

Gotcha.

Adam:

But there are a lot of other stuff out there, too. Like, there's like a video course on Egghead, that a guy, Simon Vrachliotis made. But this was like...he made it way early in the Tailwind days, before Tailwind 1.0, so things have changed a bit. But that's another resource. And there's lots of articles and stuff out there, too. But the docs, the Laracon talk, video course would be the top three that I would recommend.

Rob:

Got you. So I was studying the State of CSS report 2019, and you know, even though Tailwind's pretty new, the satisfaction rate was pretty high, at about 83%. Got a question here from Dennis, "Do you think Tailwind will eventually catch up to Bootstrap?"

Adam:

I don't think it will quite catch up to Bootstrap because I think the landscape has changed a little bit since when Bootstrap first came out. I think Bootstrap was really like a game-changer. It was almost like the first CSS framework, in a lot of ways, it felt like, you know? They kind of created the category. And that gave them a huge boost in terms of visibility that I don't think anybody else is ever going to be able to compete with. And then I think on...

Rob:

First mover advantage.

Adam:

Yeah, yeah. And then on top of that, I think the ecosystem has fragmented a lot in terms of just the way people build things. So now, something like Tailwind isn't just, like "competing" with other CSS frameworks, it's also competing with completely different CSS ideologies, like style of components or other CSS and JS tools. And I think a lot of those tools are really promising and make a lot of sense if you're building something that's a full-on React application, for example. So I don't think anything really has the potential to ever achieve Bootstrap status. But I do have optimism that Tailwind is going to be considered a pretty kind of standard and common choice for people who are still building stuff where they're using traditional CSS files Global CSS.

Rob:

Okay. So, where is YouTube right now? I know you're live streaming a ton, you really enjoy it. But YouTube's a bit of a wild place right now to create content.

Adam:

Yeah. I mean, I don't really think of myself as a YouTube creator, really, for sure. I definitely treat YouTube as more like an archive of my video content that I've put out for free. So, I don't really think about YouTube too much, but I do think that there's still a lot of potential there. I think this generation that we live in, like even me personally YouTube is the first place I look to learn anything. Like, I needed to sew a button onto my shorts that fell off the other day, and I'm like, I don't know how to sew. So the first thing I did is I go on YouTube. I'm like, how do I sew a button onto some pants? How do I repair a button? Find a video, follow it, pants fixed, right?

I think YouTube is still...I think there's still a lot of potential there for people. I think in general, though it's a good idea not to invest all your eggs in one basket, you know what I mean? It's good to kind of be present in a bunch of different places. Maybe one thing works better than others. I think ultimate is to control yourself. Like, there's certain people I know that have done a really good job at just building a really good newsletter, where they have a really captive audience. And they can just send their stuff directly to someone's inbox. There's no risk of YouTube changing some rules that screw up their channel or whatever, right?

Rob:

Some algorithm.

Adam:

So I think, ultimately, you want to own the means of distribution as much as you can. And the next best thing to that is to just not be beholden to one place.

Rob:

Absolutely. So if I'm not mistaken, you and Steve wrote a top-five Medium article of all time. Is Medium still an avenue for marketing nowadays?

Adam:

Good question. I don't know where it sits these days, but yeah, last year when we were kind of keeping on top of it, we had this Seven Practical Tips for Cheating at Design post that was the fifth most clapped post of all time or whatever. Which was really, really cool. These days, I don't really...I think Medium is sort of on the way out. I think they are in desperation monetization mode, and sort of scaring away all of their readers, you know?

Rob:

I agree.

Adam:

So I wouldn't personally ever put content on Medium, basically ever, at this point. I think back in the glory days of Medium, and even when we were posting our stuff to Medium, I think we were a little bit over the peak of like, Medium's sort of impact. But I think, like back in the day when, yeah, they were just burning through investor money and they didn't have to make any money or throw up these stupid paywall models in people's faces, I think it was a really good way to spread a message or to spread some content around because it did have a lot of discoverability and stuff built into it. But these days, I think it's basically seen as this like, awful place, and everyone just says post it on your own blog, you know? And I definitely agree with that.

Rob:

You've dabbled in SaaS income, but you've mainly got these products that are once-off purchase, you know?

Adam:

Yep.

Rob:

So for me, on my side, I don't have anything going that's got subscription. It kind of kills me Google sends me about 85,000 people per month, just organic traffic, and I'm not turning them into customers. Do you feel that not all products need to have subscription?

Adam:

At a grand scale, I definitely think subscription models, they're the right fit for certain things and not the right fit for other things. Like, I don't think any of the stuff that I've done so far would make sense as a subscription thing. I think when you're asking someone to pay you on a recurring basis, that introduces so much friction into the purchasing process that isn't there when it's a one-time purchase. Like, there's no such thing as impulse buying a subscription, you know what I mean?

Rob:

Yeah.

Adam:

Whereas a course or a book, a lot of people buy them aspirationally. Like, I'm sure there's lots of people who have bought my stuff and haven't even read the book yet, you know? And it'd be great if they did because I think they're going to get a lot out of it, but like, they're also not unhappy because of it.

Rob:

For sure.

Adam:

Whereas if you start paying a subscription for something, and you forget to cancel it and you see it show up on your credit card and you didn't even use it that month, it kind of makes you resent the person who sold it to you. Which I think is not great. I think one-time sale products have a lot of advantages over subscription products for people, in certain phases of their sort of entrepreneurial career. Like, they are a lot more front-loaded in terms of revenue. So like, you have a big launch, you make a bunch of money, and then it sort of trails off. Whereas SaaS is the opposite, or recurring revenue in general. Like, it kind of builds up slowly over time. So I think one-time sale stuff can be a really good way to quickly put a bunch of money in the bank and be able to sort of afford to own your own time so you can invest time in things that are maybe long-term plays, like recurring revenue stuff. But of course recurring revenue is recurring revenue. Like, that's the ideal for sure.

So, but yeah, I think too one-time sale stuff can be recurring revenue in sort of a different way. Like, "Refactoring UI" still does about $60,000 U.S. a month in sales. And it's a one-time sale product, but it consistently does $60,000 a month. So it's like me and Steve have a SaaS business with $60,000 in MRR, you know what I mean?

Rob:

Nice.

Adam:

We don't really think about it that way, but like, in terms of what ends up in the bank account every month, it is the same. And I think there's good examples of people who have done a really good job at taking one-time sale stuff and creating systems around it to sort of make them sell for the long-term, you know? Like, Brennan Dunn is a good example. I know he's done a lot with his "Double Your Freelancing" stuff to make the revenue on that a lot more consistent, even though it is a one-time sale thing. So I think even though subscription stuff is considered like the holy grail, and everybody wants to have recurring revenue and start a SaaS or whatever, I don't think that's the only path. And I think you're probably doing entrepreneurship on hard mode if that's the only option that you're willing to explore.

Rob:

The second to last question we just got from Candace, and she says, "Adam, you've successfully taken the leap, you're working for yourself. What advice could you give me just to start going in the right direction of eventually getting there?"

Adam:

Okay, big question. A couple important pieces of advice. One would be build an audience. I think that's, like...I think that's the most important asset you can have, especially if you're trying to...if you want to take this path of being able to do some sort of one-time sale or informational product, and use that as maybe a way to help bankroll investing in building a SaaS business or something, eventually. I think having an audience is beneficial no matter what. And I think having a big audience of people that trust you can make up for a lot of other mistakes or so-called deficiencies in your, say, marketing strategy. You know, if you have a huge audience of people who think you're awesome and have gotten a lot of value from you, you're going to make more money on a one-time sale product than someone who has 100th the audience size, but has done everything right in terms of all their email marketing, and like, their landing page optimization and all that stuff. Like, all that stuff is helpful, right? But I think the audience size and the audience's opinion of you as the person they're following can make up for any mistakes that you make anywhere else. So I think that's your highest leverage thing.

So, ways that you can build an audience, I mean, if I had to distill it down into the simplest sentence possible, it's just be helpful on the internet. So, write blog posts. That's one way to be helpful on the internet. Live streaming is another way to be helpful on the internet. Creating YouTube videos that's being helpful. Answering or helping people who have questions on Twitter is a way to do it. Creating an open source library is a way to be helpful on the internet. I don't think you have to necessarily be inventing content, either. Like, hosting a podcast where you're not the person delivering the value, you're just the person asking good questions and curating the guests that you have is a great way to build an audience too, even though you're basically curating value being delivered from other people. Like, that's what I do with my podcast, and that's helped me a lot. So I think just being helpful on the internet, and being worth following, you know? Like, you want people to be able to answer this question why should I pay attention to what this person is doing? Or why should I give this person the opportunity to sort of inject anything into my stream, you know?

And I think it's short-sighted to think that that has to be in the form of writing blog posts or creating videos. Like, all that stuff works, but you can be a lot more creative in the ways that you be worth following. But at the core of it, yeah, be worth following. And try to be as selfless as possible with that stuff, too. Like, you want your signal to noise ratio to be very good when it comes to the stuff you're putting on the internet. If you're delivering a lot of value on Twitter, but like, 75% of your tweets are you complaining about how you got a flat tire and now you have to sit at the shop nobody gives a shit, you know what I mean?

Rob:

Yeah, just ranting.

Adam:

Don't be selfish with the stuff that you share. Just try and focus on...

Rob:

Adding value.

Adam:

...adding value. I think that's the best way to build an audience. And once you have an audience, it's a lot easier for you to sort of notice what your audience is following you for, you know? And that'll give you ideas for... You know, it seems like people think that I know a lot about this topic. And I guess I do, but I didn't realize that I knew more about this than other people. So maybe there's an opportunity here for me to create some commercial product to help other people learn this. You know, there's been so many things for me that I sort of take for granted, that I know a lot about that other people don't. You just kind of assume that anything you know, everybody knows. But that's totally, totally not true.

Rob:

Interesting.

Adam:

And then the other thing is just work in public. So it's all kind of related, but part of building an audience is just yeah, being worth following, being interesting. If you are working on something interesting, letting other people sort of follow your journey on that can be interesting to a lot of people. Like, developers love to watch other developers program and solve problems and stuff like that. And the developers doing the work, sort of, it's easy to assume that that's not true. Like, Taylor Otwell, who created Laravel, he open sourced a codebase a while ago to a SaaS app that he built but never launched. And people were so excited about it, you know what I mean? Because wow, we get to study how this person we respect builds applications. And he ended up taking it down because some people were complaining about things, and it was just not worth the hassle. But I think that's just something that comes along with having a huge audience of people.

But yeah, even for me, like when I was working on KiteTail, which is the SaaS app that I never finished, and probably am not going to ever pick up ever again. I built a little custom CSS framework for building that site. And in all the live streams, I live streamed every line of code that I wrote for that app, basically. And the goal was thinking, okay, well people follow me because they care about test-driven development, they care about Vue Laravel stuff. So I'm going to build this Laravel and Vue app. I'm going to do it all in public, people are going to watch. It might not help me get more customers for the SaaS app, but it will help me if I do another course. It helps me to just stay engaged with my audience, whatever. And then it turned out the most common question I got on the live streams was "What CSS framework is this," "What CSS framework is this?" It never even occurred to me that anyone would care about what I was doing with the CSS stuff. But because I was live streaming all my work and building it in public, I was able to pick up on the fact that people were excited about that. And that CSS framework ended up being Tailwind CSS, and now that's the thing that I'm the most well known for and spend all my time on. I never would have even done it if I wasn't live streaming myself building the SaaS app that went nowhere.

Rob:

Fuck, that's such a good reply. That's it, dude. I saved this one, this is my most important question for you. So, you had a recording studio called the Batcave.

Adam:

Yeah.

Rob:

Then on YouTube, you uploaded a video of you jamming to Decrepit Birth cover, and in the background is a Batman poster on the wall. Are you a Tim Burton and Joel Schumacher Batman, a Christopher Nolan Batman, or a DC Universe Batman?

Adam:

I think the Christopher Nolan Batman movies are the best Batman movies. Although the Tim Burton ones hold a special nostalgic place in my heart, too.

Rob:

Amazing. Adam, thank you so much. I've queued the hardest track I could find on the Epidemic Sound service. Okay, yeah, thanks for being on the show, dude.

Adam:

Thanks for having me, man. I really appreciate it.


Hope you enjoyed the Yo! Podcast interview!