You Need Tinker Time with Adam Wathan

December 14, 2023

Ian & Aaron are joined by Adam Wathan, founder of Tailwind, to discuss everything from the upcoming Tailwind Catalyst UI kit to hiring to a hypothetical Tailwind marketplace & more. Sponsored by LaraJobs & Screencasting.com. Sent questions or feedback to mostlytechnicalpodcast@gmail.com.

Transcript

Ian
00:00:01 – 00:00:09
Right. Tell everybody we're here back again with Aaron and a special guest, Adam Wathan. Welcome.
Adam
00:00:10 – 00:00:13
Greetings, gentlemen. Thank you for having me on.
Aaron
00:00:13 – 00:00:16
You ready to talk about who knows what? We have no idea.
Adam
00:00:16 – 00:00:20
We probably not even tailwind. I probably have notes than you guys do.
Ian
00:00:20 – 00:00:24
So Exactly. Everybody comes out here with all these notes. So fun.
Adam
00:00:24 – 00:00:27
Hey. It's a serious podcast, man. It's a
Ian
00:00:27 – 00:00:36
it's a important opportunity. Yeah. Dude, I love that mindset. An opportunity to come on the podcast. Boy.
Ian
00:00:37 – 00:00:45
I don't know. Before we get too deep, I wanna check-in on you guys. Aaron, how's the babies? Adam, you have a little baby, still pretty little. Right?
Ian
00:00:45 – 00:00:47
What? 4 months old or something?
Adam
00:00:48 – 00:00:50
4 months yesterday. Yeah. Yep.
Ian
00:00:50 – 00:00:55
There we go. Look at that. I'm right on it. You are well formed. Yep.
Ian
00:00:58 – 00:01:00
Aaron, so how's it going?
Aaron
00:01:00 – 00:01:08
Yeah. They freaking kicked our butts this weekend is how it's going. Nice. So, you know, we have a million people helping us. Right?
Aaron
00:01:08 – 00:01:15
We've got we've got the night nurse. We've got the au pair. Turns out everybody gets the weekend off except mom and dad. So
Adam
00:01:16 – 00:01:17
That's not worse. Friday.
Aaron
00:01:17 – 00:01:20
I know. This Friday was the first
Adam
00:01:20 – 00:01:31
I need people's help the most on, like, Christmas day, so that's when you need to work then. You know? Like Yes. Oh, the kids have a day off because it's like a holiday? You don't have a day off.
Adam
00:01:31 – 00:01:33
Yeah. Turns out school
Aaron
00:01:33 – 00:01:36
also closed on the weekends. That's how they get sick.
Adam
00:01:36 – 00:01:41
Care of my kids when there's, like, a virus in our house? Unfortunately, that that is when you are most needed.
Aaron
00:01:43 – 00:02:02
Man, it was it was brutal. So, you know, we had the night nurse every night up until Friday because it's, like, prohibitively expensive. You know, it costs a fortune. And so now we've shifted to, I think, 3 or 4 days a week, which is like, oh, we can still survive, but also still have money to eat and stuff. So nice, good compromise.
Aaron
00:02:02 – 00:02:22
Friday night was the first night she didn't come. And then, of course, Saturday is, you know, when the au pair gets the whole weekend off, and there's no school. So we just get totally owned Friday night, you know, waking up every 3 hours because there's 2 of them. So it's not like an adult can, you know, skip a feeding and we can do every other one. We're both waking up every 3 hours to feed these babies.
Aaron
00:02:23 – 00:02:40
And then I got to get up and, you know, Jennifer stays with the little kids. I got to get up and entertain 22 year olds all day long. It was brutal. And then we did it again on Sunday, like, no night nurse, no au pair, just me and Jennifer and his man, rough weekend. So
Adam
00:02:41 – 00:02:53
yeah. Sometimes I fantasize about, like, a work schedule that's actually where there are is no such thing as a 2 day weekend. There's just one day, twice a week, you know? Yeah. Where I'm off, like, Saturday Wednesday,
Ian
00:02:53 – 00:02:55
you know, and then Right. Split up.
Adam
00:02:55 – 00:03:02
And then selfishly, like, on any given one of those days, no matter how hard it's going that day, at least you can tell yourself, tomorrow, I'm back
Ian
00:03:02 – 00:03:04
in the office. Tomorrow I'm back in
Adam
00:03:04 – 00:03:08
the office. The reverse. Yep.
Ian
00:03:10 – 00:03:12
Do you guys have au pair or anything, Adam?
Adam
00:03:13 – 00:03:33
No. We we had a nanny helping us, like, for a while, and she just finished up with us. So we are trying to find someone else, we have someone who is interested that might be starting in January. So hopefully yeah. I don't know.
Adam
00:03:33 – 00:03:49
That was, like, a condition for me of having 3 kids because Katherine, she just wants, like, an infinite number of babies. Right. And I'm like, I don't know. Like, there's I love kids, but they demand a lot of you. And, yes.
Ian
00:03:51 – 00:03:56
Yeah. For sure. And it doesn't stop. It just keeps it changes, but it doesn't really end.
Aaron
00:03:56 – 00:04:13
But it's gotta get more fun. Right? Like, I I I honestly different ways. Hard as the as hard as the 2 year olds are, I think I enjoy that even more than brand new babies. Like, from a, like, life is easy perspective, brand new babies, you just kinda feed them and you plop them down and they just kinda lay there.
Ian
00:04:13 – 00:04:14
Yeah. Our our 2 year old
Adam
00:04:14 – 00:04:21
is the easiest of of the household. You know? Yeah. Cool. She just sits there smiling and googling and drooling on things and whatever.
Adam
00:04:21 – 00:04:22
Yeah.
Ian
00:04:23 – 00:04:23
And you
Aaron
00:04:23 – 00:04:25
can, like, put them in a container. You know, you can put them
Adam
00:04:26 – 00:04:26
in the There's, like, there's,
Ian
00:04:26 – 00:04:26
like, at
Adam
00:04:26 – 00:04:34
least 6 months, honestly, of, like, very straightforward stuff. And then they start eating, like, solid foods and start crawling, and then it's, like,
Aaron
00:04:34 – 00:04:35
they get mobile. Yeah.
Adam
00:04:35 – 00:04:42
And then like my 2 year old, my thing is about the same age as your older kids, maybe like a little bit younger. Her birthday is in April.
Aaron
00:04:43 – 00:04:43
May.
Adam
00:04:44 – 00:04:47
Yeah. Yeah. So she's at, like, peak terror mode.
Ian
00:04:47 – 00:04:48
Yes. Right.
Adam
00:04:48 – 00:04:54
Totally unreasonable in every way, but capable of even opening the baby gates that lock now.
Ian
00:04:54 – 00:04:55
You know what I mean?
Adam
00:04:55 – 00:05:01
Like It's a genius. It's a yeah. Unstoppable hours.
Aaron
00:05:01 – 00:05:24
We've reached the the, strongly held opinions about inane things. Like, our our daughter now only wears her brother's pajamas, refuses to put on her own pajamas. And so she always has to wear like, they're always wearing each of them is always wearing Simon's pajamas because she just doesn't wear hers anymore. And it's like, okay. I don't it doesn't matter, and so I'm not gonna fight you.
Aaron
00:05:24 – 00:05:26
But it's like, why this?
Ian
00:05:26 – 00:05:39
Yeah. Yeah. I don't know. It doesn't it gets easier sort of. Like, they don't really put strange things in their mouth at some point and stuff, but then it does transition into, like, they have friendships that go bad and like real stuff.
Ian
00:05:39 – 00:05:47
Right? They have like, oh, are they sad temporarily? Are they like actually depressed? I'm worried about or they wanna go here and there. But, like I feel like this
Adam
00:05:47 – 00:05:51
guy is going to sleep, like, between, like, ages 7 10, you know, where it's
Ian
00:05:51 – 00:05:53
kinda like is about. Right? They
Adam
00:05:53 – 00:06:02
they're at their, like But there's still of independence, but they're still kids. Like, they can still just, like, bump into somebody at the playground and be best friends pretty quickly. Right.
Ian
00:06:02 – 00:06:05
You know what I mean? But
Aaron
00:06:05 – 00:06:07
And they still like you. They still wanna hang out with you. Right.
Adam
00:06:07 – 00:06:10
That seems No. That's what I'm more excited about. You
Ian
00:06:10 – 00:06:14
know? Yeah. Yeah. All that stuff. Like yeah.
Ian
00:06:14 – 00:06:25
The real, the real world pro this is like, overall is really nice when they're big, because yeah, there's just so much. It's nicer. And you grab a, I mean, we have like with my oldest, I have like political conversations. Right. Or I have like deep discussions.
Ian
00:06:25 – 00:06:50
And, like, even with the younger ones, it's still, like, we're you know, we have actual conversations and we play basketball and we do fun stuff and whatever. That's all great. But there is, like, oh, the real worldness part of it is stressful, that they are they are humans with these same feelings you have and, fears and desires and all these things. Like, they have all those things because they're just actually their own little people. What have we gotten ourselves into?
Adam
00:06:50 – 00:06:51
Yeah. I don't know, man.
Aaron
00:06:51 – 00:06:59
I just I just pounded at Celsius, and now I'm I'm all amped up. But I don't know. I don't know if I have energy for that right now.
Ian
00:06:59 – 00:07:07
Especially when you go over the 22 because that we talked about this on the show before. 3 plus, it it is it's complicated. There's a lot going on.
Adam
00:07:07 – 00:07:23
Everyone said, like, going from 2 to 3 was harder than going from 1 to 2, and I didn't really believe it. And I still can't tell if it's true, but, like, the thing that I sort of underestimated was that when you have 2, there was all these times when, like, you had to, like, solo parent, and that felt like a thing because it's, like,
Ian
00:07:23 – 00:07:23
I gotta
Adam
00:07:23 – 00:07:25
take I gotta work both these kids by myself.
Ian
00:07:25 – 00:07:26
But
Adam
00:07:26 – 00:07:36
now it's like, what felt like solo parenting before is like normal every day 247 now because, like, someone's taking care of the baby. You know what I mean? Yep. Exactly. Yes.
Adam
00:07:36 – 00:07:38
Exactly. Yeah. Yep. Yep.
Ian
00:07:38 – 00:07:53
And then that stays because, like, oh, the one has soccer, but the other 2 don't have anything to do. Or it gets even worse than that. The one has soccer and the one has ballet and the other one's got just the school thing at school. And now you're just like, well, how the hell are we gonna do that? Like, there's only 2 cars and 2 of us and, like Alright.
Aaron
00:07:53 – 00:07:56
We gotta talk about something else. You're bumming me out, man.
Ian
00:07:56 – 00:08:01
Making this a parent podcast. It's awesome. It is awesome. It is awesome. But it is it is a lot of work.
Ian
00:08:01 – 00:08:03
It's a lot of work. There's a lot of work. Businesses and everything else going on.
Aaron
00:08:03 – 00:08:04
That I am exhausted.
Ian
00:08:05 – 00:08:09
Yeah. Exactly. Especially Yeah. Where you're at, super exhausting. Yeah.
Ian
00:08:09 – 00:08:14
Oh, man. Alright. So what do we got going on? What what oh, man. There's so much to talk about.
Ian
00:08:15 – 00:08:19
I I don't know. I mean, I don't know if you have a list, we could start with your list. I I Yeah. Well, your list is so serious.
Adam
00:08:19 – 00:08:31
Very selfish, but I I'm talking about lots of things. Like, I've talked about whatever you guys are curious to talk about. Things that I am prepared to talk about. 1, this stupid UI kit project I've been working on for the last 7 100 weeks.
Ian
00:08:31 – 00:08:32
We gotta get into that.
Adam
00:08:32 – 00:08:34
About that for sure. Every day for
Ian
00:08:34 – 00:08:35
an hour.
Adam
00:08:35 – 00:08:53
Drop some dark depressing rabbit hole discovery on me. The other thing is hiring. I'm always up for talking about hiring because that's the other stress thing that's on my mind all the time. Yeah. And then just, like, stuff that we're planning to do in the new year.
Adam
00:08:53 – 00:09:05
You know? Always a big infinite list of things. I talked I don't know if you guys listened to me in Ben's podcast, so we kinda talked about this idea of, like, a tailwind marketplace and trying to figure out what we could change in our companies.
Ian
00:09:05 – 00:09:06
So Yeah. I really want to talk about that.
Adam
00:09:06 – 00:09:31
We could focus more on, you know, the high value stuff that we do and not so much on, like, trying to commercialize it, which, whatever, we've got to do what we've got to do, but it'd be kind of nice if there was a way out of that, for a way to not feel like anytime we're working on Tailwind, we're, like, letting something else, like, stagnate. You know what I mean? Mhmm. So, yeah, that's Yeah. Those are some things floating around.
Adam
00:09:31 – 00:09:35
Grab something, you know, if you want, or we can talk about anything else you can ask.
Aaron
00:09:35 – 00:09:38
I'd say we start with UIKit. What do you think? Yeah.
Ian
00:09:38 – 00:09:45
Let's go with UI kit, because that'll feed nice into the other one. Yeah. Especially the marketplace stuff, I definitely wanna talk about. And so so catalyst. Right?
Ian
00:09:45 – 00:09:51
That's gonna be your UI kit. Yep. And I know it's been yeah. What? A year you said you've been working on it.
Ian
00:09:51 – 00:09:52
Right?
Adam
00:09:52 – 00:10:00
I'll say, like, the initial the the plan, you know, like, having it on the road map has been multiple years.
Ian
00:10:00 – 00:10:00
Right.
Adam
00:10:00 – 00:10:30
You know? There's always been this, like k. We started doing the templates, and even, like, a year before we did the templates, me and Steve, like, kinda decided we wanted to do those because we wanted to solve this problem of, like we wanted to be able to build more opinionated stuff, stuff that, like, didn't fit into Tailwind UI and and also stuff that could be, like, sort of done where, like, if something, like, went out of style design wise, instead of having to go and, like, update 500 components, like, make the whole thing go fresh, we could just do, like, well, that one's old. We'll just make a new one now. You know, it's a new website template, and it's like
Aaron
00:10:31 – 00:10:31
looks like
Ian
00:10:31 – 00:10:32
today's website.
Adam
00:10:32 – 00:11:02
So that, like, felt, like, really freeing, and we started with all the marketing sites, stuff like that, but we always knew we wanted to kinda solve the same problem for application interfaces. And a big part of that was because of this, like, inherent trade off we have to make in Tailwind UI. Where in the Tailwind UI components, like, everything is meant to just be, like, you hit one button and everything you need is in your clipboard. Right? So it has to be this copy and pastel snippet, which means, like, a form can't be, like, importing a button component from somewhere else or importing an input component from somewhere else.
Adam
00:11:02 – 00:11:08
It just all has to be effectively in mind in this, like, one big snippet, which is nice because, like, having this super
Ian
00:11:09 – 00:11:09
lost you.
Adam
00:11:09 – 00:11:27
So if you look at Tailwind UI, anytime there's a button, it's like the same HTML and classes duplicated a 1000 times throughout Tailwind UI. Right? Which is kinda crappy because it kinda sends the wrong message about how you're supposed to use Tailwind. You know? So the UI kit is, like, our attempt at, like, okay.
Adam
00:11:27 – 00:11:57
Let's go the total opposite set of trade offs. Let's make, like, the most, like, connected, fully componentized thing ever, and offer that to people in a way that they can still customize it. So you just kind of download a zip file, drop all the components into your project, if you want to change the border radius, you open the file, change the border radius instead of a bunch of configuration and stuff. So that was kind of the plan. Started working on it properly in, like, May, demoed, like, the first version of it at our connect thing in June.
Adam
00:11:58 – 00:12:01
Since then, deleted every single line of code and started over again.
Ian
00:12:01 – 00:12:04
Oh. Because you just learn things
Adam
00:12:04 – 00:12:14
from building it that you can't predict ahead of time. Right? Dude. So change, like, the entire structure of the APIs. Like like, one one example is, like, initially, we started with k.
Adam
00:12:14 – 00:12:52
Let's, like, have a component, like, an input field that that generate that shows, like, a label and the input and all that stuff, and it's just, like, one little thing you drop on this in your code and add some props, and it just renders it. But there's so many limitations that you get there. Like, say you have 2 inputs where one of them you want, like, the actual field to be shorter because it's just for, like, putting, like, a credit card CBC code or something, so you don't want it to be, like, full width. How do you do that? You know, you can't if the whole thing is, like, one component, even if I let you put a class on there, we say, like, max width excess or something, now it's, like, applying the max width to, like, the the label, the description, and the input, but you actually just wanted it applied to the input.
Adam
00:12:53 – 00:12:58
So now do you have a prop called, like, label classes, description classes, input classes? All of a sudden, this is
Ian
00:12:58 – 00:12:58
gonna go
Adam
00:12:58 – 00:13:00
horrific. So we trashed the
Ian
00:13:00 – 00:13:00
whole thing.
Adam
00:13:00 – 00:13:11
It was built at all as, like now it looks like HTML. You know? It's not any more condensed than HTML. It's just, like, more opinionated. So that's, like, one example of a thing.
Adam
00:13:11 – 00:13:34
Something that we got, like, trapped in today that's been a nightmare is have you guys ever heard of forced colors mode on computers? No. It's a Windows thing where Thankfully, what? Need, like, really high contrast UIs to, like, be able to see stuff. And, no one really cares about this if you look around the Internet and turn it on in dev tools because every site breaks.
Adam
00:13:34 – 00:13:53
But, like, we kind of are held to a pretty high standard because we're selling code, you know, so we kinda have to consider all this stuff. And this kinda just Right. It's like an accessibility consideration, like anything else that we do. Yeah. So trying to support, like, force colors mode, like, basically, you forget about it constantly, and then you go and enable it.
Adam
00:13:53 – 00:14:05
Like, all your checkboxes disappear because, like, they're built with just, like, background colors and SVGs and stuff, and it's like, oh my god. So Yeah. Trying to get all that stuff working. And then you notice so when I disable my checkbox, it still disappears. Fuck.
Adam
00:14:05 – 00:14:06
So I gotta go
Ian
00:14:06 – 00:14:10
figure that out. So, you know, we're working on working
Adam
00:14:10 – 00:14:28
on that stuff today. Keep finding, like, every component you think is done, you go back and you find something that makes it not done. We're also working on, like like, dialogues for the last, like, 2 weeks trying to get, like, the transitions right and checking every single site I could find on Earth. And you think you're good and I hope Caleb Horsey
Aaron
00:14:28 – 00:14:28
is listening
Ian
00:14:28 – 00:14:31
to this because he's just starting down this path right now.
Adam
00:14:32 – 00:14:54
It's, yeah. I don't know, man. It's, I think, like, we're gonna release something next week because it's been we've wanted to release it every month for, like, the last 4 months, and I just want it out by Christmas because, like, I feel like everyone in the company is gonna quit if that doesn't happen. Because it's just been like, it feels like it's just like The grind.
Ian
00:14:54 – 00:14:54
I don't know.
Adam
00:14:54 – 00:15:13
It's a grind. So get something out, and then at least, like, every new improvement and component we make, we can, like, ship as soon as it's done. Because right now, it feels like we have to build up to, like, some substantial critical mass of something worth releasing. Right? And I think even what we released this month is not gonna be, like, as big as I wanted it to.
Adam
00:15:13 – 00:15:31
It's gonna be missing a lot of stuff, honestly, because everything's just been so much harder than I expect. But I think it's still the right thing to do is just get something out there. So it's probably gonna have all your form stuff like input, text area, radio, select, checkbox. It'll have, like, regular drop down menus. It'll have, like, little toggle switches.
Adam
00:15:31 – 00:15:43
It'll have, tables is, like, the thing I really want to include that hasn't really been started yet, so that's gonna get done by, like, Tuesday if next week if you want that in there, but also have, like, dialogues.
Ian
00:15:43 – 00:15:44
Right. Perfect.
Adam
00:15:44 – 00:15:54
And then we've got, like, a long list of stuff that'll be coming after that, like application layouts and combo boxes and all that sort of stuff. So Right. Gonna keep working on things
Aaron
00:15:54 – 00:16:08
For people that aren't familiar Mhmm. With with Catalyst, where does this what's the, I guess, where does this fit into the tailwind empire, and what's the business model here? Is this just totally free and open source? Is this a paid package? Like, what are you thinking here?
Adam
00:16:08 – 00:16:46
It's just part of Tailwind UI all access. So, like, last year, we sort of really, like, went all in on this, like, buy this all access thing from us, one time, lifetime access, you get everything that we ever make. You know, that feels like it fits under that umbrella anyways, and this is one of those things. So just like our templates, if you already have a license you get any new templates to be released, This is the same sort of thing, so it is it's paid in the sense that, like, it's part of paying for like the Tailwind premium sort of access package. Right.
Adam
00:16:46 – 00:16:47
You know?
Ian
00:16:47 – 00:16:47
Gotcha.
Adam
00:16:47 – 00:16:55
We'll sell it individually too, but, like, no one buys the stuff from us individually. Everyone just buys the Right. Call access thing. Yeah. Yeah.
Ian
00:16:56 – 00:17:12
Yeah. That makes sense. Well, I mean, this is a kind of an awesome thing to be adding as, like, usually you buy these all access things and you get, like, one new little color scheme 2 years later, whatever. Like this is like a pretty humongous thing to to add to what you're getting there. So that's pretty huge.
Adam
00:17:12 – 00:17:31
Yeah. I mean, thankfully, a business model seems to work in the sense that, like, the business is, like, very flat and steady, you know, for years at this point, even though we have to find new customers every single month. So until that stops working, it feels like I'll just keep keep doing it that way. It never ever stops working. I don't know.
Adam
00:17:31 – 00:17:36
Hopefully, someone's built something better than tailwind to that point anyway, so won't matter.
Ian
00:17:38 – 00:17:40
You won't care. You'll be you'll be happy to hang it up.
Adam
00:17:40 – 00:17:41
Yeah. I'm just, like, pulling it
Ian
00:17:41 – 00:17:46
in my head. You know? Like, we'll be even faster. Yeah. We we don't have to
Aaron
00:17:46 – 00:17:48
go that far. You could just play guitar in your office.
Ian
00:17:48 – 00:18:14
You could just log off. We'll we'll say that. Yeah. I mean, I I think I mean, I how do you feel about the, like, that since you guys conceived this, definitely, but even since you've started building it, I feel like this landscape has changed a fair amount, with other packages and everything like that. And, Like, I guess, how do you see that fitting in here?
Ian
00:18:14 – 00:18:41
I mean, part of it to me is like my external take on it at least is like exactly like what you just said, all the stuff you just said is the stuff that people actually don't do in, like, these open source versions a lot. Like, maybe they're using radix. So, like, the core is fine. Like, the core has some core accessibility stuff and all that, but then like all this stuff that you have to do on top to actually truly make it really accessible or just work well in all these different scenarios. Like that's the stuff then that next layer does.
Ian
00:18:41 – 00:18:49
And so to me, it's like, well, I'm gonna buy a tailwind one because it's just somebody went insane thinking about every weird edge case.
Adam
00:18:50 – 00:18:50
Yeah.
Ian
00:18:50 – 00:19:04
That's kind of the value prop in the large part. And obviously, like, it's always designed nice and everything. Although I do think there's more competition in the design, nice space than there used to be. Right. So, but in the obsessiveness, I think, I think you guys are still first place in obsessiveness.
Ian
00:19:04 – 00:19:07
Right? So I do think that kind of pays off. Right? Yeah.
Adam
00:19:07 – 00:19:29
For better or for worse, I do think that is a character trait of mine. Yeah. I I think, it's just us trying to do our take on it. You know, there's definitely a bunch of other ones out there. I think, for the reasons you said, I I I think just, like, having that official stamp on it will be enough to have Yeah.
Adam
00:19:29 – 00:19:43
To drum up a a bunch of people who are interested in checking it out and, you know, supporting the the stuff that we do. Tie that in with, like, the whole, like, all access thing, I think, pushes people over the, you know, whatever.
Ian
00:19:44 – 00:19:44
Buy.
Adam
00:19:44 – 00:19:48
Them to buy, you know, usually. So And
Ian
00:19:48 – 00:19:57
you guys are, like, your paid professionals working on it. Right? Like, it's not like somebody's side thing or something like that. Like, this is part of your core offering, and you're gonna maintain it and
Adam
00:19:58 – 00:19:58
Yeah.
Ian
00:19:58 – 00:20:00
Improve it and all that stuff.
Adam
00:20:01 – 00:20:16
Yeah. Yeah. Like and and I don't think we need to, like, be the thing everyone uses or to dominate or anything. It just has it just has to do well enough that we can, like, keep doing the things that that we wanna do, which honestly, like, if I could focus entirely on just Tailwind, I'd prefer to do that. You know?
Adam
00:20:16 – 00:20:43
But at the same time, like, building this thing, we've made so many improvements to Tailwind just from building this and noticing opportunities to improve in. And, like, that's the other thing that's made this take longer, I think, because I've been trying to be disciplined about every time we actually, like, see something that's like, oh, man. This would be easier if I just did this thing in Tailwind. Like, I can either put that in this as never ending list of to dos, or I could just, like, stop, go over, like, fix it in Tailwind or improve it in Tailwind,
Aaron
00:20:44 – 00:20:44
and then come
Adam
00:20:44 – 00:20:53
back and start using it. So we're using all sorts of, like, classes and features of Tailwind that aren't released as part of Catalysts. We have to release a new version of Tailwind at the same time.
Ian
00:20:53 – 00:20:54
Right.
Adam
00:20:54 – 00:21:00
So, like, the classic one everyone has always wanted is, like, some utility to set width and height at the same time for, like,
Aaron
00:21:01 – 00:21:02
avatars and height. Love that.
Ian
00:21:02 – 00:21:07
So that's, like, size 4, size 5. Finally.
Adam
00:21:07 – 00:21:22
Or, like, something to target, like, child elements. We added, like, native thing for that too. The forced color stuff wasn't in there before, so now you're like, oh, I have to change the color of this in forced colors mode. Like, I can do that, whereas you couldn't before. So
Ian
00:21:22 – 00:21:23
Mhmm.
Adam
00:21:23 – 00:21:34
Stuff like that. So lots of improvements coming to Tailwind. That's kinda, like, the thing that scares me about working on just Tailwind on its own. It's, like, it's no longer extracted, you know? Right.
Adam
00:21:36 – 00:21:59
So it's probably good that we build these things, but, man, it is hard not to feel like you're letting something stagnate. And this year, especially, has felt like that, because this has been a focus for so long now that, like, we really haven't, like, released anything since, like, before the summer. You know? And that's, like, not normal for us, because this project is just so
Ian
00:22:01 – 00:22:16
hard. Yeah. When you get into these big software projects, they just take a long time and a lot of, like, mental energy from everybody in the team. And, like, I mean, we've always had that here. UserScape where it's like, we have a few products, like, obviously, help spot's the big one, but we have, like, the Lara jobs job board, and we've had other little sasses.
Ian
00:22:16 – 00:22:32
And it's like, where we do Lara Con online even. Like, I would do Lara Con online and, like, we kinda maintain help spot and support customers. We do Laracon online, and then it's, like, 3 months go gone by, and I'm like, oh, we didn't, like, grab the ship, the new help spot version. We didn't do anything with Lara jobs at all. Like, you know, like, it just goes by.
Ian
00:22:32 – 00:22:38
You're like, oh, months months have gone by, and we didn't do anything on any of the other products because we're just Yeah. Just getting the zone on something else.
Adam
00:22:38 – 00:22:42
The world notices that, or do you think you just notice it?
Ian
00:22:42 – 00:22:52
I think it's just me noticing for the moment. I mean, occasionally, it does. Like, occasionally, you miss something that's like, oh, that's kinda big or whatever. I mean, very occasionally, but, yeah, I think the vast majority of time, it's just
Aaron
00:22:52 – 00:22:53
because everybody else
Ian
00:22:53 – 00:22:54
busy with their own stuff.
Aaron
00:22:54 – 00:23:03
Else is doing the exact same thing. Yeah. Everybody else has their head down with their stuff for Yeah. 3 months at a time, and then they look up. They're like, oh, wow.
Adam
00:23:03 – 00:23:03
Oh, what's
Aaron
00:23:03 – 00:23:05
going on? Right. Yeah. Nobody Yeah.
Ian
00:23:05 – 00:23:08
Nobody notices anything. That's kinda true to some degree. Yeah.
Adam
00:23:08 – 00:23:17
Yeah. So we are saving up all these releases for the end of the year. So they'll be, like, catalyst, they'll be 1013.4, that we have this UI 1 point 8 or whatever the hell it is, and then they'll be
Ian
00:23:17 – 00:23:22
you should do that before Christmas? I feel like you should really wait till after.
Aaron
00:23:23 – 00:23:24
You think so?
Ian
00:23:24 – 00:23:28
I don't know. Because, you know, if something goes wrong or whatever, problems,
Adam
00:23:29 – 00:23:31
like I
Ian
00:23:31 – 00:23:32
don't don't know. It's just like you were gonna have
Aaron
00:23:32 – 00:23:35
go wrong? What's gonna go wrong for CSS? No way.
Ian
00:23:35 – 00:23:41
Guys. I know. This is the genius of the Tailwind business model. It's just whatever. Nobody's nobody's sites down because of it.
Adam
00:23:41 – 00:23:44
Like Yeah. Exactly. It's not like we're launching a SaaS or something that Right.
Ian
00:23:45 – 00:23:46
People are using There's some
Adam
00:23:46 – 00:23:50
tailwind gonna use it over that time for real stuff either. So,
Ian
00:23:50 – 00:24:00
yeah. Well, yeah, less over catalyst for sure. Even like the tailwind, but it's like, even if tailwind itself had some regression, it's like, whatever you can just roll back to the previous one. Like, yeah. It's not like the end of the world.
Ian
00:24:00 – 00:24:03
So not Yeah. We'll have too big a deal.
Adam
00:24:03 – 00:24:04
A couple days.
Ian
00:24:05 – 00:24:09
Oh, we have 2 things. Yeah. If something obvious is hugely broken. Yeah.
Adam
00:24:09 – 00:24:10
Yeah. I mean, there's
Aaron
00:24:10 – 00:24:27
that magical week between Christmas and New Year's that this, like, tailwind and catalyst are all perfect for where it's like, hey. I'm not really working, and I wanna play around with some stuff. Let me play around with the new tailwind and the new catalyst. And I feel like that's a good way to capitalize on that deadbeat
Ian
00:24:27 – 00:24:29
for a little bit. Projectweed. Yeah. Yeah. Exactly.
Adam
00:24:29 – 00:24:32
And if people find bugs, they're not, like, angrily finding them,
Ian
00:24:32 – 00:24:34
you know, because it's just, like, well, I'm
Adam
00:24:34 – 00:24:39
just gonna gonna go eat that gingerbread house over there now. You know? Right. Yes.
Ian
00:24:39 – 00:24:47
Gonna move on. Yeah. Yeah. I know you guys were talking about this on, hackers incorporated, which is Adam's podcast. If you, don't listen, definitely check that out.
Ian
00:24:47 – 00:25:08
But, the idea of like having real world projects, whether it's a SAS or catalyst or whatever it is, tailwind keeps moving forward. So you have like that, those real world use cases and yeah, I think that, I mean, I think Calis is like perfect for that. Like you've obviously found tons of stuff in there. Yeah. More than if you were building a SaaS or something like that.
Ian
00:25:08 – 00:25:28
I think really. Because like you're just so down into every corner components you wouldn't necessarily need yourself. Right? Like I'm not gonna build this box, whatever thing, because I don't need it in my app, but you're gonna build it for catalyst because Mhmm. Just an expectation of that there's bread crumbs or whatever UI component that you might not necessarily inherently use.
Ian
00:25:29 – 00:25:42
So, yeah, having that, mean, tailwind has so much in it that you guys have extracted from your own ideas and other people's ideas and whatever, along the way, it's unbelievable. Like when you first released it, it was like, oh, it's done. It's cool. Mhmm. It's, like, 10 times bigger now.
Ian
00:25:42 – 00:25:46
It's like there's everything in there. And then apparently, lots of stuff still missing.
Adam
00:25:46 – 00:25:52
Still lots of stuff missing. Yeah. It's Still a lot. So still don't have text shadows. You know what I mean?
Aaron
00:25:53 – 00:26:01
Yeah. That's fine. I kinda wanna hear about headless UI. Like, where does that fit in with catalyst? Because headless UI is, like, that's a sleeper hit.
Aaron
00:26:01 – 00:26:03
That's one of my faves. I love headless UI.
Adam
00:26:03 – 00:26:17
Yeah. So originally, because Catalyst is gonna be react only, we thought, let's just use something else instead of headless UI because Yeah. The only reason we built headless UI is because we wanted to support Vue for tailwind UI. Mhmm. And and at the time, there just wasn't all these options that there are now.
Adam
00:26:17 – 00:26:53
Like, I think all that existed was, like, reach UI, and it had, like, some limitations on our side where, like, it was hard to style with utility classes. That was, like, the other thing. Like, a lot of anything that did exist kind of wasn't built with Tailwind in mind. So, like, you could style things with custom CSS and stuff, but not by just, like, slapping utilities on things. And also, Tailwind was missing features to, like, do things like arbitrary variance and stuff where I could, like, target a child element with this data attribute on it because we didn't have the sort of, like, just in time version that it became now.
Adam
00:26:53 – 00:27:23
So we built headless UI to sort of be like a a headless UI library optimized for styling with Tailwind, basically. And, we kind of built everything that we needed it to have for all the stuff we put in Tailwind July, and that's always been, like, the driver of adding new stuff to to it. I think if we had, like, a bigger team, we probably would have just, like, put more effort into building it out for the sake of building it out, but that just never happened because there's so much to do with just Tailwind itself. Yeah. So we're working on Catalyst thinking, okay.
Adam
00:27:23 – 00:27:42
Well, now there's, like, Gradics, there's React ARIA components, there's all these things out there. We should just, like, let that be someone else's problem because we got enough problems and, build And yet. Using one of those. Yeah. So we started going down that road, and all those libraries are all really well done.
Adam
00:27:43 – 00:28:06
But what I was finding is that the catalyst code was, like, more complicated than I wanted it to be because we had, like, conveniences and opinions that we had about how we wanted catalyst to work that wasn't just, like, automatically handled by the underlying libraries. Like, we wanted to be able to do things like if you have a field set, you can put disabled on the field set, and it'll disable all the elements inside of it.
Ian
00:28:06 – 00:28:07
The way,
Adam
00:28:07 – 00:28:29
like, a native HTML, field set works. But a lot of these libraries, like, don't even have a field set component, so we have to build a field set. And now we have to, like, make that disabled thing cascade through all the other components. We have to create our own, like, react context and, like, and all those other wrapper components read from this context. And it was just like death by a 1000 cuts where, like, again, it was nothing that's really the fault of any of these other libraries.
Adam
00:28:29 – 00:28:53
Like, they all do what they're supposed to do and do them well, but because of the APIs we wanted to sort of layer on top, the catalyst code was getting too reacty to me. Like, I wanted it to just look like just a bunch of components with class attributes on it. I didn't want there to be a lot of if statements and React hooks and use effects and, like Yeah. That's stuff that people are gonna be afraid to touch, I think, unless you're, like, a super React expert.
Ian
00:28:53 – 00:28:54
So we
Adam
00:28:54 – 00:29:25
eventually just got to, like, one API that we were trying to implement where it was just like, we can't even, like, figure out how to work around this and get it to work the way we want. So what are our options here? We either, like, throw out all of the conveniences we wanted to layer on top and just commit to just embracing someone else's API and just, like, styling that API, or we just, like, double down on headless UI, migrate everything to headless UI. And now anything we want Catalyst to do, find a way to bury it in headless UI instead. You know?
Ian
00:29:25 – 00:29:26
Hell, yeah. That's what
Adam
00:29:26 – 00:29:47
I'm talking about. So that's what we have been doing, and and it was pretty scary decision, but it's actually worked out a lot better because I was always afraid of, like, what is this what message does it send to people if we're, like, not even using headless UI for our own things? Yeah. And does that mean we should need to go and update all of Tailwind UI to use, like, something else? But then, like, what about Vue?
Adam
00:29:47 – 00:30:08
Because, you know, people are using a new version of Tableau. And there is no good Vue library that we can use or whatever. So it's actually worked out for the best because now I feel like we're actually continuing to improve and develop Headly Swy for, like, a good reason, not just out of, like, obligation. You know what I mean? Yeah.
Adam
00:30:08 – 00:30:31
Yeah. So, yeah, I'm actually really excited about it. It kinda, like, really reinvigorated my passion for that project because I kinda, like, took for granted, like, the the advantages of controlling the whole stack there. Like, now a catalyst is just being built in this mono repo where we have like a fork of headless UI in there and catalyst just next to each other. And it's like, oh, headless UI needs to do something.
Adam
00:30:31 – 00:30:43
Just open the headless UI file and edit it, and it works right away. It's not like we need to publish a new version of headless UI or anything. So instead of, like, having to be like, okay, well, you know what we should do? I guess we'll open an RFC on radix or react or whatever and try to Wait
Ian
00:30:43 – 00:30:45
for 3 months. A good idea.
Adam
00:30:45 – 00:30:51
You know? It's whatever. That's, like, not their problem or fault. You know? But if we can just, like, hey, Robin.
Adam
00:30:51 – 00:30:52
Can you just, like, make this work?
Ian
00:30:53 – 00:30:57
5 minutes later, it works. You know? Awesome. Oh, yeah. So
Adam
00:30:57 – 00:31:06
yeah. So I I'm excited about that. I think we'll do, like, a redesign of website and stuff too. But yeah. So there'll be a new release coming out of that, which will have, like, all these form components.
Adam
00:31:07 – 00:31:27
So now headless UI will have, like, a text input and a regular checkbox and button and all that stuff purely just so you can, like, get all the IDs and ARIA described bys and all that stuff automatically. So that would be cool. We also added, like, the dialogue or sorry, the drop down positioning stuff. So classic.
Aaron
00:31:28 – 00:31:29
Yeah. Float UI or
Ian
00:31:29 – 00:31:29
whatever it was.
Adam
00:31:29 – 00:31:45
That's good then now. I kind of was stubborn about that originally because I thought, okay, it's headless UI. It has no opinions about styling. If you want something to be, like, anchored, like, install the library that does that, wrap the headless UI component with that, and just wire it up. But it's actually, like, a pain in the ass to do.
Ian
00:31:45 – 00:31:48
Yeah. So we're just, like, going all in on, like, you know
Adam
00:31:49 – 00:31:52
Agreed. Maximum convenience. Yeah. Yeah. You know?
Adam
00:31:52 – 00:31:52
Yeah. Yeah.
Ian
00:31:52 – 00:31:53
For sure.
Aaron
00:31:54 – 00:31:55
So as you're building out
Ian
00:31:55 – 00:32:06
Like I was just gonna say, like, with a drop down, like, I only ever want the drop down dropping part near the drop down part. Like, you know what I mean? Like, it's not even like, it's just like, that's just how you want that. Yeah. Right.
Ian
00:32:06 – 00:32:09
I always want that. Nobody does. If you like resets the window, you want
Adam
00:32:09 – 00:32:11
it to flip to the other side so that there's room for it.
Ian
00:32:12 – 00:32:15
Nobody wants it to show in the far right corner when you click a thing that looks at a drop down.
Adam
00:32:15 – 00:32:21
And you can still do that. Like, we built it in a way that's backwards compatible. You have to opt into it with, like, one little prop. So
Ian
00:32:22 – 00:32:24
Yeah. So if you do do what you can. Yeah.
Aaron
00:32:24 – 00:32:33
So as you're building out headless UI features and stuff for Catalyst, that's all React. Is the Vue version staying up to date? Is Robin just doing both at the same time when he does it?
Adam
00:32:33 – 00:32:57
Not right now, but we will get them to parity. Right now, like, we're changing it so aggressively and rapidly in every 5 seconds that it's, like, doing it in 2 places would just be silly. Yeah. But once it's, like, stable, then we'll definitely get them to parity. We'll probably do a release for the React one first just because I don't think we'll have time to update the Vue 1 before next week.
Adam
00:32:59 – 00:33:04
But we will go back and, like, port all that stuff over for sure. So that'll be cool.
Ian
00:33:04 – 00:33:16
Speaking of, like, your employees working on this stuff and everything, I know like 3 or 4 months ago, just you and me talked, and you were looking at hiring people. Yeah. Like, did you end hiring anybody, or you just the core team's been working
Adam
00:33:16 – 00:33:38
on this? I spent a lot of time drafting job postings and thinking about what roles we needed and stuff like that. And I felt like it was stressing me out even more because it was, like, a big distraction from this catalyst stuff. So I just decided, like, forget about everything until this catalyst stuff is done, because even trying to bring people on now, they wouldn't make a move anymore. In
Ian
00:33:38 – 00:33:39
the middle and
Adam
00:33:40 – 00:33:48
yeah. So we're gonna do a bunch of hiring in January, I think. Like, I think I wanna hire probably 3 people before the summer.
Ian
00:33:48 – 00:33:49
Wow.
Adam
00:33:49 – 00:34:02
So yeah. Right now, we're we literally have 2 and a half employees right now, like, 2 full time, one part time operations guy, and then there's, like, me, Steve, and Jonathan. You know? We're the partners. Wow.
Adam
00:34:02 – 00:34:02
I
Ian
00:34:02 – 00:34:09
guess that's so funny because you're gonna have this whole thing done, and then you're gonna add 3 people, but it's gonna be built. Not that it's done, but you know what I mean?
Adam
00:34:09 – 00:34:14
But there's so much more to do. Core. You know? So always more to do.
Aaron
00:34:15 – 00:34:19
Wow. I really thought y'all were bigger. So just Robin, Jordan, and Peter?
Adam
00:34:19 – 00:34:22
Yep. That's it. This whole whole team.
Aaron
00:34:22 – 00:34:23
Y'all are doing a lot.
Ian
00:34:24 – 00:34:26
Yeah. It's crazy. Yeah.
Adam
00:34:26 – 00:34:48
We were bigger, but 2 guys left in the summer. And, like, we've always hired so slowly that, like, there is, like, inevitable employee churn, you know, as people just wanna do new things in life. And most companies are, like it's like people are coming in and out on this, like, kind of normal pace, so it, like, stays stable. But for us, like, we only hired our first people, like, two and a half years ago. You know?
Adam
00:34:48 – 00:34:52
So this is, like, the first customer to churn. You know? If you
Ian
00:34:52 – 00:34:53
had to put it that way.
Adam
00:34:53 – 00:34:56
And no one's been, like, brought in, like, on the other side. So
Ian
00:34:56 – 00:35:00
Yeah. Yeah. That's that's
Adam
00:35:00 – 00:35:01
so funny. We got a higher
Ian
00:35:01 – 00:35:24
in here. Just hard. It it always just takes I mean, we we had a person leave in whatever, Well, it was last year, and it I mean, like, it took, like, 6 months to replace because, like, when you're small, it's like, yeah, making time, like, do the job description, do the search, interview everybody, and you have all the stuff you're working on, and it's like, well, I know. Yeah. Just getting into that's gonna take then then nothing's gonna literally get done for for 2 months while I go down that road.
Adam
00:35:24 – 00:35:33
So brutal, dude. I I could these are, like, not Twitter safe, like, spicy takes, but, like, a tweet that I've always wanted to to tweet is, like
Ian
00:35:33 – 00:35:34
It's a safe place here.
Adam
00:35:35 – 00:35:41
Is, like, getting fired from your job is actually, like, less inconvenient for you than, like, you quitting your job is
Ian
00:35:41 – 00:35:43
for your employer. You know?
Adam
00:35:44 – 00:35:46
Like, it's easier and less work for you to find
Ian
00:35:46 – 00:35:47
a new job than this
Adam
00:35:47 – 00:35:50
for, like, your employer to find someone to replace.
Aaron
00:35:50 – 00:35:51
I dare I dare you
Ian
00:35:51 – 00:35:52
to take that.
Adam
00:35:52 – 00:36:02
It would be so over. Oh, I would I would be nuclear for sure. I mean, at least on the podcast, there's, like, some, like, tone of voice and, like, some context and whatever. Yeah.
Aaron
00:36:02 – 00:36:03
Hey. We're having fun here.
Adam
00:36:03 – 00:36:03
We're just
Aaron
00:36:03 – 00:36:06
having fun, aren't we, guys? We're laughing. We all a joke.
Ian
00:36:06 – 00:36:07
We won't we won't clip that one.
Adam
00:36:07 – 00:36:17
It's just it's it is just like, you get a you gain a different perspective on, like, how the economy functions, like, when you start employing people, I think.
Ian
00:36:17 – 00:36:17
Yeah.
Adam
00:36:17 – 00:36:38
Like, the amount of work that it is to find people and, like like, you know, people people get angry on Twitter sometimes about, like, oh, I didn't I didn't get the job, but they didn't send me, like, a detailed list of, like, feedback about, like, why I didn't get it. Like, what what a waste of my time. Like, think about the fact that I interviewed, like, 50 people. Like, technically, 49 of those interviews were a waste of my time. Yeah.
Adam
00:36:38 – 00:36:40
You know what I mean?
Ian
00:36:41 – 00:37:16
This is this is a thing where, like, I mean, this is it is changing a little bit, but I still think there is, especially for a smaller company, there is this value of, like, people who stay at their jobs for a reasonable amount of time, you know, like, I think it's like hard to bring in somebody like in a tailwind lab situation of like, like somebody who's had 4 jobs in the last 6 years or whatever. Right? Like, that's like a person that's, like, hard. Like, you know that, like, you're gonna be back on that grind in a year or 2, like, hiring that role again. Like, you know, when when you know you have, like, a good salary and it's a good job doing pretty cool stuff, like, you know, that's, like, that's a tricky thing.
Ian
00:37:16 – 00:37:26
It's not always true. It's not like, sometimes somebody has that background and then stays 10 years, right, or whatever. But, yeah, that is the a little bit of, an element I sometimes Yeah.
Adam
00:37:26 – 00:38:00
It's, it's hard, man. Hiring is a hard thing, but gotta do it. I'm looking forward to doing it. I think I got a good plan. I think, like, the thing I've identified that took me a long time to identify is, like, I can solve my anxiety and dread around hiring by, like, hiring someone who's good at hiring, not to be, like, a recruiter or an HR person at the company, but just, like I'm sure, Erin, like, where you work, there's plenty of people who are just, like, engineering manager who has to interview people and hire people just for their job, you know?
Adam
00:38:00 – 00:38:23
They and those people have way more experience hiring people than I have, you know? Just because I, like, own a company doesn't mean, like, I have any clue how to do any of this stuff. There's plenty of people who are just, like, employed managers who are, like, really good at this stuff. So I'd like to, like, look for someone to be sort of, like, an engineering lead type person at the company that can, like, you know, contribute at at that level too.
Ian
00:38:23 – 00:38:26
I think that would be really helpful. So Yeah.
Aaron
00:38:26 – 00:38:30
Yeah. And on on the other side, y'all are both employers. I am an employee.
Ian
00:38:30 – 00:38:35
This is why it's so easy to get hired y'all because it's hard to hire people.
Aaron
00:38:35 – 00:38:38
So if you put in just, like, a little bit of effort
Ian
00:38:38 – 00:38:41
Extra work. Yeah. Just a little bit of GitHub, link
Aaron
00:38:41 – 00:38:48
to a blog post, link to Twitter, link to a video. I for.
Ian
00:38:48 – 00:38:48
Mhmm.
Aaron
00:38:48 – 00:38:57
Link to GitHub, link to a blog post, link to Twitter, link to a video. I can do these things that you're hiring for. I've already proven it. I would love to meet with you. It's like, oh.
Adam
00:38:57 – 00:38:57
Super easy.
Aaron
00:38:57 – 00:38:58
That helps.
Ian
00:38:59 – 00:39:17
Yeah. It's too easy. Yeah. But I do I've I say this people all the time, but I think people don't really understand it that, like, the even the tiniest extra effort, honestly, like, it just stands out. Like, it just those people just stand out so far above, like, everybody else, the other 95% who, like, here's a resume, and, like, that's it.
Ian
00:39:17 – 00:39:22
Like, the people who do a cover letter and have put a little effort in just, like, pop right out.
Aaron
00:39:23 – 00:39:31
Did y'all see Taylor tweeted recently about hiring somebody for video at Laravel? And people replied to the tweet with, I would love to.
Ian
00:39:32 – 00:39:39
Like, what? That that that you just shot? Yeah. That's just your shot by saying replying and saying I would love to work with Laravel?
Aaron
00:39:40 – 00:39:51
Yeah. No, dude. Put together a specific video that's like, here's, you know, clips of all the videos I've done. Here's a message for you, Taylor. Send it as one link to your inbox and not, like, 80 links of
Ian
00:39:52 – 00:39:52
Yeah.
Aaron
00:39:52 – 00:39:57
Hey. Here's some random crap that I've done before, but, like, specifically, here's the thing you're looking for.
Ian
00:39:57 – 00:40:03
Especially with video, like, make an edit. Like, here's an edit of the things I've done. Yeah. Make a video. Like, here's the thing I've done.
Ian
00:40:03 – 00:40:05
Yo. Come on. I think
Adam
00:40:05 – 00:40:28
to be fair, it is sometimes hard to, like, have an intuition for, like, what someone wants to see until, like Yes. Yeah. You've been in a position of, like, hiring people because now I feel like I could get any job I wanted to because, like, I know exactly ins and outs, like what pain everyone that I like hiring. You know what I mean? But I didn't have that intuition before.
Adam
00:40:28 – 00:40:29
Yeah. You know,
Ian
00:40:30 – 00:40:43
I think there's a difference too, which is this also does stand out to me when hiring. But it's like, if you do that extra little leg work though, of even finding out who the company is and like, because yeah, if you're applying to like Microsoft, right? Like you're not, it's not a specific person.
Aaron
00:40:43 – 00:40:44
I'm bending the needle. Yeah.
Ian
00:40:44 – 00:40:58
It's gonna go through HR and 3 other layers before like the manager even sees it. So it's a little different game there. So if you're like applying the tailwind, it's like, you know, oh, there's Adam. I know him specifically. I can like read his Twitter thread.
Ian
00:40:58 – 00:41:16
I can see what he's been complaining about. Right. And then probably he's hiring this job for, and like, like there's no excuse not to tailor that, more specifically. And also if it's these companies that you know really well and admire, like a tailwind, like Larabelle, whatever these, like, Internet famous company you're applying to it, Like, yeah, you gotta put in that extra effort there.
Aaron
00:41:16 – 00:41:19
Didn't Robin do something awesome when he applied forever ago?
Adam
00:41:20 – 00:41:47
Yeah. I mean, he put together, like, a really good little website job application thing that kinda outlined a bunch of Yeah. His experience, and and also even, like, she shared a bunch of his, like, opinions about things that, that were sort of, like, risky in a way, but, like, good because, like, if his opinions happen to, like, be compatible with ours, then, like, that's exciting for me. Right. Because it's like, oh, man, I'd love to bring someone on who I don't have to worry that I'm gonna, like, have to, like, fight with about things.
Adam
00:41:47 – 00:42:19
You know what I mean? Yeah. But, yeah, he put together, like, a good a good page with a a bunch of bunch of stuff, and he'd already been, like, really active in our community Discord answering questions for people. And, and then, like, when we did the interview process, we did, like, the thing that, like, I've always done that I have actually really, like, liked how it's worked out is, we do, like, a pair programming interview, but we pick, like, a problem that neither of us have any idea how to do. So it's not like this, oh, I'm waiting to see you do what I think you should do.
Adam
00:42:19 – 00:42:28
Right. So for me and Robin, it was like, okay. Let's see if we can build, like, an SVG charting library, and let's do it in Svelte. Like, neither of us have ever used Svelte or ever built a charting library.
Ian
00:42:28 – 00:42:29
Oh, wow.
Adam
00:42:29 – 00:42:51
So it's just like, let's just try and learn it together. And he was, like, probably the the person that stood at the most when we were interviewing that just I felt like I never felt like I was waiting for them to, like, understand something that I had just understood. You know? It was just like we were, like, programming at the same pace and, like, understood exactly what to do next at the same time. So it just felt, like, really fun and productive.
Adam
00:42:51 – 00:43:00
It it never felt like I was, like, having to try and get someone to, like, you know, register, like, what this bug was or whatever.
Ian
00:43:00 – 00:43:01
Right. So
Adam
00:43:01 – 00:43:02
that was great. That's cool.
Aaron
00:43:02 – 00:43:02
That's a cool process.
Ian
00:43:03 – 00:43:13
Yeah. Yeah. Now now you could just sit there, pair chat GBT ing, like Svelte and SVG and Svelte and have it produced. That's true. Yep.
Ian
00:43:14 – 00:43:15
But yeah.
Adam
00:43:15 – 00:43:26
So I was hiring. Gonna do some of that in the new year. I think hire, like, I think the role I'm thinking is, like, engineering lead because I feel, like, too small to have a director of engineering. You don't have a lot of people to direct, really. Yeah.
Adam
00:43:26 – 00:43:29
But someone who can help me out there that's, like,
Ian
00:43:30 – 00:43:32
just a really formalize some stuff too, maybe. Like
Adam
00:43:32 – 00:43:50
Yeah. Like, someone who, like, is happy to, like, be responsible for, like, mentorship and coaching and that sort of stuff. Like, that stuff stresses me out. I'm not really good at that stuff. Well, so I'd like to have someone to help with that and who I can help who can help with hiring and it's just like really technically talented too.
Adam
00:43:50 – 00:43:55
Sounds like a lot of things, but I think there's people out there that are like that.
Ian
00:43:55 – 00:43:55
They're out there. Yeah.
Adam
00:43:55 – 00:43:56
I think if I
Ian
00:43:56 – 00:43:57
find one, so
Adam
00:43:57 – 00:44:16
Some, like, engineering manager from Heroku or something that's, like, wishes they got to, like, write more code, you know? I think that's, like, the pitch for a lot of these people. Like, you kind of took this management track because actually you are good at that, but now you're just doing administrative stuff all day. And here, that would be, like, 10% of your day, you know? Right.
Adam
00:44:16 – 00:44:28
And you'd still be doing a lot of work. I mean, you'd hire, like, another designer, I think. But I think I really wanna find, like, a technical designer this time, someone who can, like, design and code and
Ian
00:44:28 – 00:44:30
Yeah. That seems like a big advantage.
Aaron
00:44:30 – 00:44:32
Like a like a Hugo over at Tuple. I mean, obviously Yeah.
Ian
00:44:32 – 00:44:34
Someone has sort of bridge
Adam
00:44:34 – 00:44:55
the gap between pure design and pure implementation because I feel like I play that role the most here now, and I don't trust even my own, like, skill set there. You know? And then probably just, like, another person just to be an engineer on the team, especially since, like, we're gonna be maintaining headless UI, like, pretty hardcore going forward.
Ian
00:44:55 – 00:44:59
Yeah. There'll be a bunch of stuff there, I'm sure, over the next 6 months with Yeah.
Aaron
00:44:59 – 00:45:00
Between that and Catalyst. Yeah.
Adam
00:45:00 – 00:45:29
Yeah. It's tricky to know, like, what to look for in people, but I think, like, for us, like, both Robin and Jordan, they can just, like, switch between working on Tailwind or working on headless UI or working on whatever, you know? So that That's cool. I think there's people like that out there. And I'd rather hire, like, just a bunch of people who can cover for each other than have, like, a headless UI team and a tailwind CSS team because then you miss all these opportunities that sit in, like, the intersection of, like, the 2 projects when you actually know how they both work.
Adam
00:45:29 – 00:45:29
Right?
Ian
00:45:30 – 00:45:38
And your guys' stuff is pretty it cuts across each other a lot, so it's not, like, totally nuts because they're, like, totally different products and nothing to each other at all. There's overlap there.
Adam
00:45:38 – 00:45:42
CSS animations and, like, database query optimization.
Ian
00:45:42 – 00:45:43
Right. Right. Yeah. It's
Adam
00:45:43 – 00:45:48
Yeah. I think of, like, our company is, like, the back end of the front end. It's, like, all we do. It's, like, we write
Ian
00:45:48 – 00:45:49
That's the way
Adam
00:45:49 – 00:45:58
I put it. Yeah. We write node code to generate stuff you use to build UIs, basically. Yeah. So you kinda have to know what you're doing, and you have to be performance minded and stuff like that.
Adam
00:45:58 – 00:46:00
But yeah.
Aaron
00:46:00 – 00:46:03
Because Tailwind is basically a JavaScript project at this point. Right?
Adam
00:46:03 – 00:46:05
Yeah. Yeah. You spit out It's a JavaScript
Ian
00:46:05 – 00:46:06
program, you know? Like Yeah.
Adam
00:46:07 – 00:46:08
Yeah. Yeah. At one point,
Ian
00:46:08 – 00:46:12
you guys were gonna rewrite it in Rust or something. Did that ever happen or not happen?
Adam
00:46:12 – 00:46:37
We rewrite we rewrite part of it in Rust. So that's gonna be released in the beginning of the year, but, like, the not the next version because it was gonna be the next version, but now we're doing this sort of interim release to add all the features that we needed for Catalyst. Yep. But, basically, we the main thing we did is we took, like, the part of Tailwind that looks at all of your files and tries to find all the class names, and we rewrote that in Rust. Because the only way to make that fast in JavaScript was a giant regular expression.
Adam
00:46:37 – 00:46:58
It's actually multiple regular expressions that run run through each other. I love that. And it's horrific. Like, if you need to add, like, oh, we need to oh, like, a a situation we that's currently unsolved is we added this child selector variant. So now, like, you can do, like, asterisk, colon, underline, and that'll, underline any child elements.
Adam
00:46:59 – 00:47:06
And the JavaScript, like, regex parser is just like, oh, classes that start with asterisks. I don't know about those.
Ian
00:47:06 – 00:47:09
You know? And that's, like, where do I put an asterisk
Adam
00:47:09 – 00:47:27
in this regex for, like, that Oh, yeah. K. Donate. So we rewrote that whole thing in Rust, and it's just written, like, a very classic parser in Rust. So it's just, like, go through every character, maintain a bunch of state, like, keep track of things, and it's all doing, like and, like, I don't even know.
Adam
00:47:27 – 00:47:53
Robin and Jordan did this mostly, but it's, like, reading characters in, like, binary format so that there's no, like, conversion of types and anything to do, like, optimally fast. So the code is, like, very readable compared to the regular expression, but it's still, like, a 1000000000 times faster. And if you write the exact same code in JavaScript, it's, like, brutally slow. The other nice thing about Rust is that, like, it is actually multithreaded, and this is, like, a perfectly parallelizable task
Ian
00:47:53 – 00:47:54
where it's, like,
Adam
00:47:55 – 00:47:57
okay, let's just, like, read all the classes on
Ian
00:47:57 – 00:48:00
every table. All these files. Yeah. Yeah.
Adam
00:48:00 – 00:48:04
So that's, like, way faster, which is cool. And also that
Ian
00:48:04 – 00:48:05
real programming stuff there.
Adam
00:48:05 – 00:48:13
Yeah. The other thing it does is, you know how in tailwind right now, you have to, like, specify the paths to, like, all your templates?
Ian
00:48:13 – 00:48:14
Mhmm. Mhmm.
Adam
00:48:15 – 00:48:30
So in Rust, we're able to write an algorithm that just, like, looks through your whole project and finds anything that might be a template, And we're able to do that in Rust faster than we can look up those files, like, with you specifying them by hand in JavaScript. Really?
Ian
00:48:30 – 00:48:31
With the. Yeah. That's awesome.
Adam
00:48:31 – 00:48:42
Yeah. And Robin had to write a bunch of crazy stuff. We had to come up with some, like, heuristics, and we had to, like, make sure we're not wasting time looking at, like, bitmap files and JPEG files and stuff.
Ian
00:48:42 – 00:48:42
Make sure
Adam
00:48:42 – 00:48:53
we're not looking in, like, gitignore files. Because, yeah, you can still opt into that stuff, but, like, by default, we're trying to, like, look in in sensible places. So now,
Aaron
00:48:53 – 00:48:57
yeah, yes. Ignore vendor and node modules and stuff like that Yeah. By default?
Adam
00:48:57 – 00:49:22
Yeah. But you'll if you have, like, a library pulled in that has tailwind classes in their templates, you'll be able to, like, tell it about that. And I even would like to find a way to make those, like, almost, like, auto discoverable, like the way that the stuff in Laravel works. Or maybe, like, if you have if you publish a UI library that uses Tailwind, maybe there's, like, a file that you put in the root that kinda just says, this is where my templates are. And then we can, like, look at your package dot JSON file and be like, okay.
Adam
00:49:22 – 00:49:41
You've got 7 dependencies installed. I'm gonna go look at those dependencies at node modules and see, like, just those 7 folders instead of, like, the 10,000,000 folders that are in node modules, and then we can see Right. Do any of these notify us about templates? And so, yeah, this is what I mean. There's, like, lots of work to do.
Aaron
00:49:41 – 00:49:42
That's cool.
Adam
00:49:42 – 00:49:56
But, yeah, that's, like, the visual template. I just want it to be as simple as possible because right now, it's, like, JavaScript configuration files, plugins, there's things you do in CSS, there's all those configuration you have to do. There's, like, at tailwind stuff. What the hell does that mean? You know?
Adam
00:49:57 – 00:50:24
So, like, tailwind 3 dot 5, which might be tailwind 4, depends on what happens. My dream is, like, you install Tailwind with NPM. You don't even have to use, like, post CSS or anything, as long as, like basically, I'm gonna, like, make PRs to every popular framework to, like, auto detect the presence of Tailwind and configure it for you. Don't have to specify your paths. And then in your CSS file, you'll just do at import Tailwind CSS at the top.
Adam
00:50:24 – 00:50:47
And that's like saying, use Tailwind in my project. And Right. My dream is also that all configuration will happen in CSS. So if you wanna override the colors, you just, like, override some CSS variables in your CSS file instead of, like, doing it in JavaScript. Or if you want to, even if you wanna tell Tailwind about some paths to look for templates, I wanna come up with, like, a CSS syntax for that too.
Adam
00:50:47 – 00:51:08
Because, like, the fact that it's in JavaScript is, like I don't know. It's fine, but it's weird in some situations. Like, in the rails world, everyone uses our, like, standalone CLI, which is, like Yeah. We bundle node into, like, an executable. So they don't even have a nodemodules folder or a package dot JSON file or anything, but they've got this, like, tailwind dot config dotjs file for some reason.
Adam
00:51:08 – 00:51:14
You know? Whereas if I could just, like if all you're doing is, like, chain specifying, like, a font custom font you wanna use and, like,
Ian
00:51:15 – 00:51:17
putting some in for this demo. Everybody regularly does.
Adam
00:51:17 – 00:51:19
Your CSS file. You know? Yeah.
Aaron
00:51:19 – 00:51:22
And if we compute Their JavaScript story is so wonky over there.
Adam
00:51:22 – 00:51:40
It is. When it's in JavaScript, we have to be able to, like, execute that JavaScript file, you know, which that's hard in Rust. And I don't know how much Rust stuff will actually even do, but I don't know. It just kinda feels simpler. I I see tailwind in my head now as more like Sass than it is like Bootstrap.
Aaron
00:51:40 – 00:51:41
You know?
Adam
00:51:41 – 00:51:53
It's like a tool for processing your CSS. So kind of just thinking about it that way, it helps clarify, like, where some things should be, how some things should work. Anyways
Ian
00:51:54 – 00:52:05
I like it. I definitely hate when I have, like, just one random tailwind class somewhere just, like, I'm outputting it in some PHP code somewhere for some crazy reason, and it's, like, well, now I have to, like, remember like, it's like Yeah. I have a blank slate of work.
Adam
00:52:05 – 00:52:10
Oh, and then it adds, like, my event listeners folder to the town of convenience. Yes.
Ian
00:52:10 – 00:52:13
Yeah. I gotta, like, go in there. Yeah. Exactly. Right.
Ian
00:52:13 – 00:52:25
So that'll be I'm definitely looking forward to that. Alright. Let's do some business y stuff. So I know on the other podcast we're talking about, and we've talked about this in the past, having a marketplace. Give us your rundown of the idea of a marketplace.
Ian
00:52:25 – 00:52:30
I got some thoughts there myself, but, like, what's the idea behind the tailwind marketplace? What's that mean?
Adam
00:52:30 – 00:52:45
K. Two motivations. So one is, like, right now, our business model kinda, like, puts us in competition with, like, people who love building stuff with Tailwind often, which is, like, unfortunate. You know? I wish there was, like, more alignment there.
Adam
00:52:45 – 00:53:13
So if there's people out there, like, making awesome Tailwind templates, it's kinda like there's not a lot of incentive for me to, like, help offer them distribution or tweet about how cool this is or whatever because it's, like, in the back of my mind, I'm like, am I telling someone to buy this instead of, like, buy something from us? Like, that's silly. You know? But at the same time, it's like, well, that sucks because if I wanna build a big community, I should be able to, like, spotlight some of the stuff people are doing.
Ian
00:53:13 – 00:53:14
Embrace everybody. Yeah.
Adam
00:53:14 – 00:53:25
And And and we do that with anything that isn't competitive, generally. Right? Like, if someone builds an awesome site with Tailwind, like, you know, the Shopify home page comes out with Tailwind, like, all over, like, promoting that.
Ian
00:53:25 – 00:53:25
Yeah.
Adam
00:53:25 – 00:53:44
So I'd like to be able to do that with basically everything. Mhmm. I also kinda feel like it'd be interesting if we could incentivize the community to build stuff, just to see what that would do to the community. Does that attract, like, more designers and stuff like that into the community that aren't really there right now. Like, Tailwind
Ian
00:53:44 – 00:53:44
Right.
Adam
00:53:45 – 00:54:00
In some to some people has this reputation of, like, it's a CSS framework for back end developers who, like, don't know CSS or whatever. Right? Right. And I'd rather it be, like, something that people who are really good at design embrace to build really cool stuff too. Like, that that is common.
Adam
00:54:00 – 00:54:01
You know?
Ian
00:54:01 – 00:54:01
Yeah.
Adam
00:54:02 – 00:55:08
But you see, like, ecosystems like Framer where there's just, like, people building Framer templates and stuff because Framer has, like, a theme store where you can publish that stuff, and people make a little bit of money doing that, and everybody kinda wins, which is cool. So the idea of the marketplace is, like, can we spin up, like, a page on the Tailwind CSS site that showcases, like, our templates and stuff, but also showcases, like, templates from, like, trusted partners where we've kind of, like, vetted their code enough to be able to feel like anything this person makes is gonna be, like, pretty solid. And probably just set it up where, you know, there's some, like, percentage split between the sale so that, like, we don't have to feel like it's necessarily competitive. So that that was, like, my main motivation is just, like, do setting something up that, like, makes me feel like I can promote stuff other people are doing without it just being, like, objectively stupid to do, you know, because I want to do it, but I wanna feel good about it. I don't wanna feel like I'm shooting myself in the foot by doing it.
Adam
00:55:09 – 00:55:24
Right. And then, like, the other side of it is, like, if that could actually work and take off in any way, like, the the the big side of that is, like, a theme forest or something. Right? As, like, an example of, like, this sort of thing being a thing that works. Yeah.
Adam
00:55:24 – 00:56:05
But there's also plenty of examples, I think, of it not really working. But if it did work a little bit even, it'd be nice to just feel like there's new design stuff coming out while we're focused on, like, the Tailwind CSS stuff and the open source stuff instead of having to be, like, put all that stuff on hold while we do the tailwind stuff for 6 months and then do some UI stuff. And that's that's really felt like more stressful this year because of how long this catalyst project has taken. Historically, it's been like 2 months working on a tailwind release, 2 months working on a template, 2 months working on a tailwind release, 2 months working on a template. And that pace has felt fine, but this year has just felt too slow.
Adam
00:56:07 – 00:56:20
But I I don't know. I'm curious what you guys think because I I'm still pretty skeptical that it would actually work well enough to even be a drop in the barrel compared to, like, how well our stuff actually does.
Ian
00:56:20 – 00:56:21
Yeah.
Aaron
00:56:22 – 00:56:22
Yeah.
Ian
00:56:23 – 00:56:32
I mean, my yeah. That was my concern, was so I think you could tweet about cool stuff, and that would have zero impact on your revenue, But I get none. So it's
Adam
00:56:32 – 00:56:33
like you're not the other
Ian
00:56:33 – 00:56:47
cool tailwind UI thing that was somebody else's whatever component library or definitely just a pure template. Like, you could just talk about that. I mean, yeah, I I wouldn't talk about every day all the time, but if you, like, tweet it out once and, like, hey. This is really cool. Like, that's not gonna ever impact you.
Ian
00:56:47 – 00:56:54
I don't think. You know? So you could just do that and feel fine about that without even any of this other stuff. But there could be some revenue there. I mean, I don't know.
Ian
00:56:54 – 00:56:59
Bootstrap, I I get the impression. I never get the impression, like, they made tons of money with their Yeah. Their theme stuff
Adam
00:57:00 – 00:57:00
Interestingly, they
Ian
00:57:01 – 00:57:01
the marketplace.
Adam
00:57:02 – 00:57:06
They do, publish, like, the numbers of
Ian
00:57:06 – 00:57:07
Oh.
Adam
00:57:07 – 00:57:11
Templates that have been sold. They don't say, like Oh, okay. Right. The numbers.
Ian
00:57:11 – 00:57:12
That's close enough. If you
Adam
00:57:12 – 00:57:21
look at, like, their most popular temp dashboard template that sold 22100 copies. Right? And that's at $39, and they're getting, like, 30% of that. You know?
Ian
00:57:21 – 00:57:25
Yeah. So that's, like, a day sales or whatever. Yeah. Call it,
Aaron
00:57:25 – 00:57:27
you know, whatever. 5 that's $26,000.
Adam
00:57:27 – 00:57:33
$25,000 total. You know? Whereas, like, I don't know if I wanna share exact numbers, but that's, like, nothing.
Aaron
00:57:35 – 00:57:36
You know? This doesn't really matter.
Ian
00:57:36 – 00:57:40
Like, can only deny. That exact number is nothing. It was 0.
Aaron
00:57:40 – 00:57:42
It was 0. We don't need the exact
Ian
00:57:42 – 00:57:50
number to know. Yeah. You know? Well, so this is the other thing. I think what's kind of interesting to me, and I don't want to rehash what you talked about the podcast too much, but I kind of feel like it's similar.
Ian
00:57:50 – 00:57:52
You talked about how Tailwind had a job board.
Adam
00:57:52 – 00:57:53
Yeah. Mhmm.
Ian
00:57:53 – 00:58:23
And that didn't work out totally. And I think this is kind of the same thing because to me, it's like you have a huge audience, right? And you could have sold a bunch of jobs, I think. But the thing is the thing you'd have to do to accomplish that. And I feel like that's the same trade off here is like, if you just wanted to turn the tailwind Twitter feed into like jobs all the time and marketplace stuff all the time, and you wanted to do the newsletter into that and you wanna change the website instead of having 2 links to components, it's like go to tailwind UI that you guys get all the profit from.
Ian
00:58:23 – 00:58:39
Instead, it goes to, like, the job board or the marketplace. Like, you could have, like, super pushed these things. So the same thing with the marketplace and probably sell a reasonable amount, but I don't think that it'll sell nearly as much as you do tailwind UI. Yeah. So, like, that's like where it gets to be a weird trade off.
Ian
00:58:39 – 00:58:56
Like, are you gonna start? I don't think you're gonna steal money from tailwind UI because the other designers, I think it's because if you have to give up real estate on your SEO empire, which is kind of how the whole thing runs. Yeah. For these other initiatives, like, that's a bad trade off is kind of the
Adam
00:58:56 – 00:59:07
issue, I think. Yeah. It's tough. I kinda feel like the better version of the same thing is, like, pay people a lot of money to design us templates.
Ian
00:59:07 – 00:59:21
That's what I was just gonna say. That's what I think it should be. I was like, why don't you just pay people and like, because also the best designers and stuff, it's like, well, I could do this tailwind theme, you know, for a website or whatever. But like, that's a lot of risk. Like, they're going into business.
Ian
00:59:21 – 00:59:23
Right? They're like, well, I I have to
Adam
00:59:23 – 00:59:23
do this thing.
Ian
00:59:23 – 00:59:25
I have to market it. What if it doesn't work?
Adam
00:59:25 – 00:59:25
Yeah.
Ian
00:59:25 – 00:59:39
Blah blah blah. Like, even in the tailwind UI marketplace, if you had that or the tailwind marketplace, it's like, well, number 74th, is that like, I'm actually gonna sell a lot through there. Yeah. Whereas if you're a, if you're like, Hey, I'm gonna give you 20 grand up front. And then Yeah.
Adam
00:59:39 – 00:59:40
I was gonna
Ian
00:59:40 – 00:59:42
give you some percentage. What maybe you could do
Adam
00:59:42 – 00:59:46
The percentage is complicated because of the all access. Yeah. But I was gonna say,
Ian
00:59:46 – 00:59:47
like Well, the even if
Adam
00:59:47 – 00:59:58
you look at this Bootstrap template, the most popular one, back of the napkin math, the person selling it made $60, you know? That's to be the most popular template on the Bootstrap theme store.
Ian
00:59:58 – 00:59:58
Right. Like,
Adam
00:59:58 – 01:00:06
I could just pay people $50 guaranteed. You know? Right. And that's, like, less than we've probably spent on every template.
Ian
01:00:06 – 01:00:08
For sure. For sure. For sure. Internally. Yeah.
Ian
01:00:08 – 01:00:18
You know? Well, and that's the other thing too, but I mean, I think there is a sort of in between. I think the easiest way is definitely like you just pay people for themes. You add them to the all access. Boom.
Ian
01:00:18 – 01:00:37
You have this huge library of themes over the next couple years. It's great. Mhmm. I think you could do a marketplace like thing even, but it was more curated and it's more like you, that is where you could have a people earn a percentage where it's like, I'm gonna give you 20 and you're gonna earn a percentage because this marketplace is like a special place. It's like for it's not internally done.
Ian
01:00:37 – 01:00:50
It's externally done. Maybe they're only getting, like, 20% or 30% because they're getting, like, a bunch of money up front. But it's like, if you did wanna have another place that was more like a quasi community place, but still with your oversight curation
Adam
01:00:51 – 01:00:52
What's the difference for that?
Aaron
01:00:52 – 01:00:54
You mean you just Yeah. What's the difference here?
Adam
01:00:54 – 01:00:54
It's not
Ian
01:00:54 – 01:00:55
as I don't know.
Adam
01:00:55 – 01:00:57
Emphasized on the tailwind CSS docs.
Ian
01:00:57 – 01:01:09
Yeah. Maybe it lets you go more in different directions but yeah. I mean, I think ultimately just putting in all access is fine too. I mean, it does give a place for people to buy more stuff from you. Right?
Ian
01:01:09 – 01:01:21
That's not in all access. Like, maybe you have certain, you know, different types of themes or more themes that people can just buy in addition to the all access. I don't know. May maybe it doesn't make any sense with the concept of all access. I don't know.
Ian
01:01:21 – 01:01:22
But
Adam
01:01:22 – 01:01:24
Yeah. It's hard. I I wish
Ian
01:01:24 – 01:01:25
the jobs thing had worked out.
Adam
01:01:25 – 01:01:27
To me, the jobs thing felt like the better
Ian
01:01:27 – 01:01:27
Yeah.
Adam
01:01:28 – 01:01:40
Secondary revenue stream, because it felt like that's very clearly totally separate. It's not, like, template related at all. It's selling to, like, businesses. It still saddens me that, like, it wasn't the low hanging fruit that I kinda hoped Yeah. It would be.
Ian
01:01:40 – 01:01:53
There was a definitely a disconnect there in terms of, like, I think you explained it perfectly. The one the person you talked to explained it perfectly on your other podcast that basically, like, they're like, we don't have any tailwind jobs, and you're like, you have rack developers and they're doing tailwind stuff. And Yeah. They're like, oh, yeah. I guess so.
Ian
01:01:53 – 01:01:57
Like Yeah. You're right. Nobody thinks about that. Right? So you'd have to, like Yeah.
Ian
01:01:57 – 01:02:03
Really market the hell out of it. You know, it's it's I don't think it would be it's still not gonna be in a near tail with UI. I think for it to
Adam
01:02:03 – 01:02:08
work, we'd have to build, like, uijobs.com or something.
Ian
01:02:08 – 01:02:09
And now it's, like, okay.
Adam
01:02:09 – 01:02:12
Well, now this isn't really taking advantage of, like, our distribution.
Ian
01:02:13 – 01:02:18
Think you'd have the revenue you have now. Like, I still think it's, like, the time hassle trade off of, like
Adam
01:02:18 – 01:02:19
Might as well as make another
Ian
01:02:20 – 01:02:24
fucking marketing site template. You know? Exact exactly. Yes.
Aaron
01:02:25 – 01:02:36
Yes. Exactly. Yeah. Yeah. I think the ticket I think the ticket is you you pay designers to make new ones and do them as, like, almost as, like, collabs where, you know, you kinda
Ian
01:02:36 – 01:02:39
get design drops a collab. Exactly.
Adam
01:02:39 – 01:02:44
Yeah. Yeah. That's how I've thought about it in the past. Like, you'd probably give us a design. Or whatever.
Ian
01:02:44 – 01:02:47
Famous design. You know, whatever famous you're in that design is. Like, work with them.
Adam
01:02:47 – 01:02:57
Clean up some, you know, things to make it fit better into the tailwind spacing scale or whatever. Maybe we kind of interpolate some of the break points that you didn't give us and
Aaron
01:02:57 – 01:02:58
Exactly. Yeah.
Adam
01:02:59 – 01:03:08
Front end person on our team kind of who's just, like, the machine that can, like, rip through these, like, Figma designs and turn them into, like, bulletproof tailwind templates goes and and does that.
Aaron
01:03:09 – 01:03:22
Yeah. And I think there are 2 I think there are maybe 2 other things. I agree entirely about the marketplace. Like, I don't think it's gonna cannibalize y'all stuff. I think it's just gonna be a quagmire of time and attention, and and that in the end might cannibalize some of your stuff.
Ian
01:03:22 – 01:03:23
Mhmm.
Aaron
01:03:23 – 01:03:51
But I think having having other designers do it sounds great. Having designers do it for for potentially specific tools or platforms sounds really great. So if there's I don't know what the biggest in the world, you know, Shopify, I don't know if you could do a Shopify or WordPress or something theme where you can be like, oh, you like Tailwind and you happen to use WordPress for whatever reason? Great. Tailwind, you know, the Tailwind Labs team has one of those.
Aaron
01:03:51 – 01:04:10
I think that's potentially new and interesting that you could do. And then, honestly, I think one, like, one, complimentary and not competitive thing that you could do is become a destination for people taking their Figma and turning it into Tailwind. Like, acquire Jason Beggs
Ian
01:04:10 – 01:04:11
Yeah.
Aaron
01:04:11 – 01:04:19
And just, like yeah. If you have a budget and you have a Figma design and you want Tailwinds, like, tailwinds done by the tailwind team,
Ian
01:04:19 – 01:04:19
yeah,
Aaron
01:04:19 – 01:04:28
we do that. Yeah. It's $30,000 or $20,000 or whatever. But, yeah, we do that. And then Jason goes and he does it, and then y'all massage it and give it back, and everybody's happy.
Adam
01:04:28 – 01:04:28
I think I
Aaron
01:04:28 – 01:04:29
feel like that's another
Adam
01:04:29 – 01:04:57
I think the real, like, opportunity out there that I just, like, I'm too fucking old for is the really good, like, AI driven tailwind design generator thing that, like, where I just, like, I put Steve in front of a computer for, like, 6 weeks just, like, swiping on, like, good design, bad design, good design, bad design until, like, all the GPUs know what good design is. You know what I mean? Yeah. And
Ian
01:04:57 – 01:04:58
then, like, you could, like, here's
Adam
01:04:58 – 01:05:12
the URL to my website. I had a pricing section to the bottom that matches the rest of the site. You know? And it spits something out that's, like, actually really good. I I think, like, maybe that's an opportunity, but I also kinda feel like, like I said, I'm too I'm
Aaron
01:05:13 – 01:05:15
too old. You know? The flower
Adam
01:05:15 – 01:05:17
of youth has faded. Yeah. Yeah.
Ian
01:05:17 – 01:05:34
All these, they all I mean, not that maybe not AI one, although it's hard to say. But, like, all these other things too, I think it's tricky because they're just, like, gonna be a small percentage of your rev like, if you build the world's best tailwind WordPress theme, I still think it's gonna be, like pretty small percentage of your revenue, you know, and then that gets kinda like annoying to work
Adam
01:05:34 – 01:05:36
on to some degree,
Ian
01:05:36 – 01:05:36
you know? Like, the
Adam
01:05:36 – 01:05:42
current business is great, you know, but I also kind of feel like, don't you have to be constantly, like, thinking about, like,
Ian
01:05:43 – 01:05:43
how I
Adam
01:05:43 – 01:05:43
feel like
Ian
01:05:43 – 01:05:49
this is one of your, you don't have to Here we go. Now. You just enjoy it. We're finally getting to the real stuff. To just enjoy it.
Ian
01:05:49 – 01:05:58
Just be like, yeah. We just enjoyed it. And plus, you have so much stuff to work on in your actual, I mean, this catalyst thing. I mean, this is gonna be a huge thing. You could spend the next 2 years working on catalyst.
Ian
01:05:58 – 01:06:02
Right? Like, I think, really, if you, like, flush it out fully and go into all the corners.
Adam
01:06:02 – 01:06:03
Yeah. You make more on catalyst.
Ian
01:06:03 – 01:06:04
All that stuff. You know?
Adam
01:06:04 – 01:06:08
Because catalyst is one one opinionated visual style.
Ian
01:06:08 – 01:06:13
You know? You could have different styles for it. Yep. Yeah. You could have, yeah.
Ian
01:06:13 – 01:06:16
I mean, like, there's all kinds of Every time, like,
Adam
01:06:16 – 01:06:19
the design trends change, you know, we have work to do. Drop
Ian
01:06:19 – 01:06:20
a new one.
Adam
01:06:20 – 01:06:21
Yep. And there's, there's not, I
Ian
01:06:21 – 01:06:29
mean, if anything, that's one of the things that you haven't done as much with tailwind UI. It's like, kind of like you dropped it and that's like, it's kind of had that similar UI for most of the time.
Adam
01:06:29 – 01:06:30
I don't know if you've got some
Ian
01:06:30 – 01:06:32
metrics, gotten tweaks, but I all of it at
Adam
01:06:32 – 01:06:34
the beginning of this year, like every single component.
Ian
01:06:35 – 01:06:35
Oh, there
Adam
01:06:35 – 01:06:39
we go. But yeah. And and But
Ian
01:06:39 – 01:06:44
it's not a selection either. Right? It's just you tweaked what was there, or can you switch between the 2?
Adam
01:06:44 – 01:06:50
So if you if you if you go to, like, tailwindjoy.com and go to, like, the hero sections, for example.
Ian
01:06:51 – 01:06:52
Yep. And Oh, I have seen that.
Adam
01:06:52 – 01:07:09
So as long as you're, like, logged in, you scroll to the very bottom, you go, like, show archive examples. You can see, like, all the stuff that we used to have. And that'll I think it's almost like we refreshed it, but, like, it was, like, not really super noticeable until you,
Ian
01:07:09 – 01:07:09
like, side
Adam
01:07:09 – 01:07:10
by side
Ian
01:07:10 – 01:07:12
with the old ones, and you're, like, oh,
Adam
01:07:12 – 01:07:15
wait a minute. Like, the old ones, like, look junky compared to the new ones.
Aaron
01:07:15 – 01:07:19
So, Ian, are you saying there's no, like, there's no retro? There's no minimal? There's no
Ian
01:07:19 – 01:07:32
I am saying, obviously, you could push this. Like, yeah, you could have different all different no. I don't think Tailwind's thing is to, like, have 300 versions of everything. Right? But, like, definitely, like, you're saying, like, with catalyst has this, like, newer, cleaner vibe going.
Ian
01:07:32 – 01:07:41
Right? And then you have, like, the original tailwind UI, which was certainly a big step up in cleanliness compared to older stuff, but is different from catalyst for sure. Mhmm. Yeah.
Adam
01:07:41 – 01:07:42
I don't
Ian
01:07:42 – 01:07:44
know if you have, like, something as niche as retro, but you might have, like It's
Aaron
01:07:44 – 01:07:46
a good idea that you could use that. Variation.
Ian
01:07:46 – 01:07:49
It's a good idea. Yeah. There's a lot of variations of sorts. You have
Adam
01:07:49 – 01:07:56
a lot of stuff to design and build for sure. And, like, the fact that, like, tastes change over time, like, is a
Aaron
01:07:56 – 01:07:56
Yeah.
Adam
01:07:56 – 01:08:22
Blessing and a curse in that sense where it's like, there's always work to do, which maybe that's good, maybe that's sad. But, yeah, like, after this catalyst thing, I think we wanna do, like, a marketing kit that's, like, similar to the catalyst thing, where instead of just being all the tail and dry things that you paste on top of each other, it's like, hey. We've designed, like, 6 landing pages and, like, all these different pricing sections for different tiers. And you can still piece it all together the way you want, but it's actually built as, like, a website, not as like a snippet. You know?
Adam
01:08:23 – 01:08:43
Mhmm. And then if we build that, then maybe 6 months later, we do another marketing site that's a different look, you know? And, yeah. There's and the the things people ask us to do all the time is, like, this is, like, you guys are fucking the ones who ask me for this sort of thing. It's, like, the Alpine version of, like, Tailwind UI.
Ian
01:08:44 – 01:08:48
Oh, give us the Alpine version. That's Alpine version.
Adam
01:08:48 – 01:08:57
Just like just the non JavaScript framework y version, you know? Like, the server rendered HTML version. And I got Rails world. Everyone was, like, begging me for, like, that stuff.
Aaron
01:08:57 – 01:09:00
Have you ever thought about just doing a non JavaScript version? Yeah. I'm sure that Have you
Adam
01:09:00 – 01:09:01
ever thought about, like,
Ian
01:09:01 – 01:09:04
a vanilla JS version of headless UI?
Adam
01:09:05 – 01:09:06
So basically, I have to write
Ian
01:09:06 – 01:09:26
all the code I've already written and reimplement React, you know. Yeah. It's some of that stuff. It's hard to know how what is Genworth, like, doing, moving the needle wise and everything. But, I think the also, you don't wanna, like to me, you guys have such like, you have the big audience.
Ian
01:09:26 – 01:09:39
You have, you know, good revenue and all that stuff. It's hard, like, you wanna do stuff, but, like, saving some capacity is super valuable. Because what if you do not just forcing, like, a SaaS. Right? But, like, what if you really have an inspirational idea that's like, oh, shit.
Ian
01:09:39 – 01:09:48
Like, this is a really good idea. And if you're, like, down these, like, 10 other paths, like, that are all adding a little bit of revenue, but then, like like,
Adam
01:09:48 – 01:09:53
treadmill y work where there's, like, there needs to be someone running on this hamster wheel all the time. Like, you can't, like, take
Ian
01:09:53 – 01:09:53
them off.
Adam
01:09:53 – 01:09:54
Don't even Yeah. Yeah.
Ian
01:09:54 – 01:10:08
Even though you don't even think the idea to begin with, or if you do, it just gets sidelined because it's like, well, we have all this other stuff going on now, and people are asking us for things or whatever. Whereas if you just, like, leave even, like, a little bit of capacity, then Mhmm. You know, who knows what you stumbled on like
Adam
01:10:08 – 01:10:22
to go. On, like, finishable projects, which I I think, like, is always top of mind for me. Like, I I'm very cognizant of, like, signing up for something new that's gonna be, like, a permanent distraction. Right. Exactly.
Adam
01:10:23 – 01:10:26
Like a sass. Yeah. Exactly. Like, yeah.
Ian
01:10:26 – 01:10:52
Yeah. I mean, that's your guys' stuff is so nice like that way because, I mean, obviously, it's ongoing maintenance, but it's also ultimately, like, on your own time frame too. It's not imposed on you because the database server's down, for instance, or things like that, that I've been dealing with where it's like, oh, well, I'm just gonna be up all night with this database babying it through because that's what has to happen. Right? Which I think, obviously, you guys could definitely have that kinda idea that, like, this needs to be SaaS and let's do it.
Ian
01:10:52 – 01:10:59
But I probably want that to be the right the right one, you know, when you're like, yeah, we're really inspired to take that one. I'm not
Adam
01:10:59 – 01:11:02
sure that'll ever happen for me. Right. Yeah. We we
Aaron
01:11:02 – 01:11:07
we we we we ran over the big existential question.
Ian
01:11:07 – 01:11:08
Let's go back.
Aaron
01:11:08 – 01:11:21
Adam saying, like, isn't that what you're supposed to do? Like Right. What do you wanna do, Adam? I feel like you're always thinking, like, well, if somebody who I don't know. Dude who actually knew how to run the business ran the business, they would do it differently.
Adam
01:11:21 – 01:11:21
It's like,
Ian
01:11:21 – 01:11:21
well, what
Adam
01:11:21 – 01:11:24
do you wanna do? True. I don't know.
Ian
01:11:24 – 01:11:24
I I know. You say
Aaron
01:11:24 – 01:11:25
that all the time.
Adam
01:11:25 – 01:11:54
I mean, that's the problem. Like, I am doing this because I don't know what I wanna do, and it is fun for the most part until you sometimes you just get into these problems that are just, like, horrible because they take forever and, like, it feels like there's no good answer. You know those problems where it's, like, I just gotta pick the least bad solution here and really be disappointed with the way the whole thing went. That's how, like, some of the hard things in Catalyst have felt. But when I get to, like, jump off that and work on, like, a new tailwind feature that I can build in, like, 2 days, it's like, Yes.
Adam
01:11:54 – 01:11:57
This is fun. You know? I like working on that stuff. Yeah. Mhmm.
Adam
01:11:57 – 01:12:03
But, I don't know. Like, I could just stop doing all of it, but that's, like, really boring. You know? I don't know what I mean. Yeah.
Adam
01:12:03 – 01:12:04
Replace that.
Ian
01:12:04 – 01:12:09
Then the opposite either. Problem. Yeah. Then you're super excited about
Adam
01:12:09 – 01:12:23
all of that stuff. Bored because as much as it sounds fun to just, like, play Fortnite with Taylor all day, which I did do plenty of anyways, you do start to feel like a hollow shell of a human being. I think so. Yeah. Yeah.
Adam
01:12:24 – 01:12:25
Gotta be something productive.
Ian
01:12:25 – 01:12:26
There there doesn't have to
Aaron
01:12:26 – 01:12:29
be toil, but there does have to be some work, and it like you've been toiling.
Adam
01:12:30 – 01:12:31
Some there has to be work.
Ian
01:12:31 – 01:12:32
Yeah. There's
Adam
01:12:32 – 01:12:34
been some toiling. Yeah.
Aaron
01:12:34 – 01:12:38
But But on this new, like, business expansion stuff, do you wanna do any of it?
Adam
01:12:39 – 01:13:07
I think so. No. I'm convincing. I'm I'm telling myself that, like, I think things will be actually even more fun here if I can get, like, the right people in place to, like, even help me be more inspired with, like, the stuff that we can do and, Mhmm. Have more fun people to, like, work on on stuff with and and and offload more of the stuff that, like, stresses me out.
Adam
01:13:07 – 01:13:36
Like, I've done a good job at some of that stuff, and, like, I sometimes have to, like, take a step back and, like, acknowledge it and even notice it. But, like, for the longest time, like, so much administrative stressful stuff was my problem. And now, like, Peter is, like, my favorite human being in the world because he handles, like, all of it, and he does it amazing. Like, he's awesome, does all our crushes all our customer support stuff. He's like we just yesterday got, like or when was it Friday?
Adam
01:13:36 – 01:13:44
Yeah. Friday. Days go by fast. I finally got, like, our trick tailwind registered trademark stuff approved, because that takes,
Ian
01:13:44 – 01:13:45
like, a few years.
Adam
01:13:45 – 01:14:12
You know? So we, like, put that in, and, like, it got rejected initially because, like, the trademark office thought there was another trademark that was too similar, and the lawyer was, like, well, you can try and appeal it, but I give it, like, a 1 in 10 chance so you, like, get anything out of it. So Peter just, like, fucking sat down and was just, like, I'm gonna put together the most, like, compelling case that you've ever seen for why, like, these don't, like, overlap at all. Even to the point where, like, the day before the lawyer had to send it in, she, like, emailed,
Ian
01:14:12 – 01:14:14
oh, there's just a piece of evidence that, like, we're missing
Adam
01:14:14 – 01:14:22
that we need. Peter got the email, like, 1 in the morning, his phone buzzed, and he's, like, out of bed on his computer, like, getting, like, the evidence. You know what I mean? Just,
Aaron
01:14:22 – 01:14:23
like Man.
Ian
01:14:23 – 01:14:24
Awesome. Just didn't get
Adam
01:14:24 – 01:14:25
it at anything. And
Aaron
01:14:26 – 01:14:27
Yeah. That's awesome.
Adam
01:14:27 – 01:14:32
But then on Friday, we heard back, like, 3 days after we submitted the appeal. They're, like, oh, yeah. You're right. This is fine.
Ian
01:14:33 – 01:14:35
Oh, it's not bad. You're right.
Adam
01:14:35 – 01:14:36
Wow. Yeah.
Ian
01:14:36 – 01:14:39
I would I would have thought 3 years. Like, really? That's crazy. You know
Aaron
01:14:39 – 01:14:43
what happened? Somebody got it at the office and said, I ain't reading all that, like,
Ian
01:14:43 – 01:14:45
approved. It must be alright.
Adam
01:14:45 – 01:14:45
Yeah. So, like But
Ian
01:14:45 – 01:14:46
I mean, that's a
Adam
01:14:47 – 01:14:49
I was just gonna say Oh, just Yeah. Yeah. Yeah. Go ahead.
Ian
01:14:49 – 01:14:50
Go ahead. Go ahead. I'm I
Adam
01:14:50 – 01:15:08
was just saying that's an example of the sort of thing that, like, it's easy to take for granted that I barely had to be involved in at all. You know? I spent, like, 45 minutes total in the last, like, couple weeks, like, answering some questions for Peter, like, okay. When was, like, the first time you guys used this word or whatever, you know, and digging through some things. So he, like, put the whole thing together.
Adam
01:15:08 – 01:15:12
I mean, Chad GPT did a lot of work too, admittedly. But,
Ian
01:15:13 – 01:15:30
yeah, there's That's the thing I think you can't take for granted either. It's like Peter does is part time or whatever. And also does the customer support, which like I have a full time support person. And for like, you know, less than a 1000 customers and you have who knows how many bajillion customers and it's like a part time.
Adam
01:15:30 – 01:15:31
Yeah. Yeah. You could
Ian
01:15:31 – 01:15:32
do the support, you know,
Adam
01:15:32 – 01:15:32
not a lot of
Ian
01:15:32 – 01:15:33
support. That's that's
Adam
01:15:33 – 01:15:36
the other thing that's here with the SaaS, You know? Like Yeah.
Ian
01:15:36 – 01:15:42
You need the support. People need help. Yeah. Yeah. But yeah.
Ian
01:15:42 – 01:15:44
I I don't know. The, oh, man. I had another idea, but But
Adam
01:15:45 – 01:15:46
I still wanna find out
Aaron
01:15:46 – 01:15:49
what makes Adam happy. So it sounds like
Adam
01:15:49 – 01:15:50
I don't know.
Aaron
01:15:50 – 01:16:07
And that's interesting that you said working on, like, the super gnarly problems is toilsome to you, because I feel like that would be right up your alley. It's like working on these super, like, tricky APIs and finding the way through. And I wonder if Some of those things are, but some of Part of it
Adam
01:16:07 – 01:16:18
is some of them are just impossible. Some of them are literally, like, can't be solved. And it's just, like like, with Catalyst, I'm finding myself very much in, like, you can't build a website mode. Websites can't be built.
Ian
01:16:18 – 01:16:20
You know? How does that work? I don't know how other websites on
Adam
01:16:20 – 01:16:26
the Internet exist because, like, they're all broken. Every single one of them is broken. Right. Like, here's a good classic one. Okay.
Adam
01:16:26 – 01:16:42
You open a dialogue. Right? The ARIA guidelines basically say, when you open a dialogue, the first focusable element in that dialogue is supposed to be immediately focused. Right? So say you have a dialogue that pops up, like adding a new customer to your CRM, and there's, like, a first name field.
Adam
01:16:43 – 01:16:48
So you've seen this on the web for sure where you open that dialogue, that field is, like, focused right away, and you can start typing. Lovely.
Ian
01:16:49 – 01:16:49
Yep.
Adam
01:16:49 – 01:16:55
Try doing that on your phone and focusing it right away. The fucking software keyboard pops up, the dialogue moves into the wrong spot,
Ian
01:16:55 – 01:16:55
and now
Adam
01:16:55 – 01:17:04
the input's covered up by the software keyboard and the animation all gets is all janky and screwed up. So it's like, okay. Well, what do we do about that? You know? Can this even be solved?
Adam
01:17:04 – 01:17:08
Let me go check a bunch of other sites. Oh, they're all fucked too. Am I gonna
Ian
01:17:08 – 01:17:09
make 10 of
Adam
01:17:09 – 01:17:25
that, though? You know, like, shit, bro. So there's a lot of things that are just, like, settling for horrible stuff. And our solution to that was, like, we're just not gonna focus the 1st focusable element on the screen on mobile. Because first of all mobile.
Adam
01:17:25 – 01:17:35
Focusing anything other than an input on mobile is, like, not even a thing. There's no such thing as, like, focusing a button on mobile Right. Unless you've got a keyboard connected. Right? Because, like, all you can do is press the button.
Adam
01:17:35 – 01:17:36
You can't, like, tab to
Ian
01:17:37 – 01:17:37
Yeah.
Adam
01:17:37 – 01:17:40
With your thumb. You can't just, like, lick it to, like, almost tap
Ian
01:17:40 – 01:17:42
it or whatever. So inputs are
Adam
01:17:42 – 01:17:49
the only thing that can be, like, focused anyways. So we just don't focus the first element, but that's, like, a big headless
Aaron
01:17:49 – 01:17:51
UI change. That's a great solution.
Adam
01:17:51 – 01:18:06
Or, like, there was and we do solve things, you know, but they're they're not like, today, I spent my whole day working on something that was not on my list of things to do today because we just hit it and we're, like, I thought that was done, but it's not done.
Aaron
01:18:06 – 01:18:07
And that was bad. Right?
Adam
01:18:07 – 01:18:08
Yeah. That's a bad feeling.
Ian
01:18:08 – 01:18:11
Deal. Yeah. The the good Yeah. The good experience are, like,
Adam
01:18:11 – 01:18:15
new CSS feature. Oh, I think there's a cool way we could do something with this with Tailwind.
Ian
01:18:15 – 01:18:15
Yeah.
Adam
01:18:15 – 01:18:25
Let's, like, work on this for, like, 3 days and crack it and build the API, and it goes in really smoothly, and then people could start playing with it. Those are, like, the funnest things. Like, you
Ian
01:18:25 – 01:18:28
need to be a little bit bit See, and I feel like
Aaron
01:18:28 – 01:18:43
but I feel like the thing there is, like, not necessarily the type of work, but the the time line and the external pressures to have the thing done. Like, if you were if Catalyst was out and you came across this focus thing and you're like, I wonder what an elegant solution for that on mobile
Ian
01:18:43 – 01:18:43
would be.
Aaron
01:18:43 – 01:18:54
Oh, I could just not do it. You could crank that out in, you know, 6 hours a day, half a day, whatever. That seems like more fun. Yeah. But the fact that Catalyst has been going for so long and you come across yet another problem, and you're
Ian
01:18:54 – 01:18:56
Exactly. That that
Adam
01:18:56 – 01:19:00
is the bigger death march side of it. For sure. Yeah. You're a fucking
Ian
01:19:00 – 01:19:01
catalyst. Yeah.
Adam
01:19:01 – 01:19:03
But that's that's why I just
Ian
01:19:03 – 01:19:04
wanna get it out
Adam
01:19:04 – 01:19:12
next week even even if it, like, doesn't have all the things I wanted because then after that, like, I can spend 2 weeks on something and release it. 2 weeks on something and release it. 2 weeks
Ian
01:19:12 – 01:19:12
on something and release it. 2
Adam
01:19:12 – 01:19:13
weeks on something and release it.
Aaron
01:19:15 – 01:19:17
So That feels like you'd be happy there.
Adam
01:19:17 – 01:19:20
I will be a lot happier in that mode.
Ian
01:19:20 – 01:19:47
That's something too where long term I don't know if you're ready for this yet, but, like like, how you were saying before about, like like, on the more on the open source side. Like, I think in general, you kinda prefer the open source side and then also, like, sharing other people's stuff. Like, if if they were separate, if they were actually separate and you were the head of Tailwind CSS open source. Like, you would just share all the cool stuff, and you wouldn't be thinking about anything else because, like, you're like, yeah, I built this cool thing, and I'm sharing all the cool stuff. Right?
Ian
01:19:48 – 01:20:07
And I feel like that could eventually, you could just get there. Like, you could hire somebody who, like, runs the commercial side, essentially. Like, this is like Jason Cohen done something like this in a different way. He stayed in the business side of it, but it's like, yeah, you could be the open source guy doing the cool open source stuff, sharing whatever you want. Like the business people that's their job to worry about.
Ian
01:20:07 – 01:20:17
Like, if you step on some toes over there, like, even though you still own it, it's like, you are just separated from the business of selling things under the tail and brand. Under something,
Adam
01:20:17 – 01:20:18
you know, like, right.
Ian
01:20:18 – 01:20:22
And you don't even mess with that. It's like, whatever. You once a quarter checking that person
Adam
01:20:22 – 01:20:31
to make sure things aren't good with you. There right now that's ready to, like, parachute in and be, like, head of product, a toe, and and succeed at it and do it better than me.
Ian
01:20:31 – 01:20:38
Is it kind of product or even almost like a CEO or something like that, but, like or yeah. Maybe Whatever. Their job
Adam
01:20:38 – 01:20:40
though is to, like, make things that
Ian
01:20:40 – 01:20:44
make things commercial side. Yeah. Yeah. There's tons of those people out there. I mean, that's been pretty
Adam
01:20:44 – 01:20:46
name one of them. Been doing. Yeah. Name one of those.
Ian
01:20:46 – 01:21:01
I mean, I'm not in those circles, but I feel like they're definitely I mean, this is how every VC company works. Like, they, you know, they plan a CEO in there after they do the investment or whatever. Like, that's very common. Or the founder eventually leaves and they get a CEO. Like, this is all very common.
Ian
01:21:01 – 01:21:10
It's not common in our circles. Like, you do hit a lot of things that aren't as common in, like, the bootstrap founder circles because of, like, your guys' scale in the whole way.
Adam
01:21:10 – 01:21:19
Harder and smaller company? I'm I'm sure this is making excuses here. But to me, it's like, I can understand how, like, T Mobile can replace their COO with a different COO. You know what I mean? Right.
Adam
01:21:19 – 01:21:23
How that's like a I went to, like, business management school, so I'm good at this job.
Ian
01:21:24 – 01:21:42
You know? I don't know. I don't think so. I think that people have, like if you find somebody who say, like, has 2 successful exits from companies that they did a great job running them from being, you know, single digit millions to a 100,000,000 or whatever, like those people are out there. I mean, obviously, you can find someone you can jive with and all those things.
Aaron
01:21:42 – 01:21:46
Get him, but Jason Code could come in and run the commercial side. Right?
Ian
01:21:46 – 01:21:47
Yeah. He would be. Could he He would be capable of it.
Adam
01:21:47 – 01:21:53
Right? But what would he do? Like Could he not? How how would how would the right new templates get built?
Ian
01:21:56 – 01:22:18
The thing I suspect, and I'm totally speculating, but the thing that I always think about in my business, if I had somebody from the outside come in and run it is they're gonna see all kinds of cool stuff that I don't see because a, like, I'm thinking exactly like that. Like, what's the new template or how do I build the custom fields and the new version of help spot? Right. Or like I'm down here in the weeds. They're like, not even programmers.
Ian
01:22:18 – 01:22:27
Right. Yeah. They're like, what do we do right. To like increase revenue given that we have this big audience and we have these assets and this thing going on. Right.
Ian
01:22:27 – 01:22:30
And then, oh, that logically, we should have this other line of business or we should do something.
Aaron
01:22:30 – 01:22:33
We should have $100 enterprise contracts.
Ian
01:22:33 – 01:22:34
You should have enterprise. I'm thinking about it.
Aaron
01:22:34 – 01:22:35
Template. Yeah.
Ian
01:22:35 – 01:22:51
Not that that always works. And then of course there's trade offs. Like, especially if you're doing it yourself, it's like, well, you're gonna hire that person. That person needs other people. Like now you're getting into, like, do you wanna cut into your revenue and you guys run a very nice profitable business and like obviously everything you could just run it the way it is and do nothing and be totally fine.
Ian
01:22:52 – 01:23:01
So, you know, that's gets into, like, your desires and motivations and what you wanna do there, but I don't think it's possible to find those people.
Aaron
01:23:01 – 01:23:02
What does Jonathan do?
Adam
01:23:03 – 01:23:21
Helps me with anything that he can help me with that I need help with. So for the last forever, he's just been, like, building stuff in Catalyst, running into hard problems, letting me know that he's running into these hard problems, and Yeah. Working on them with me. He does, like, one on ones with people on the team. Before, like, Peter took on a bunch of stuff, he was helping out with support.
Adam
01:23:21 – 01:23:24
He kinda came on as, like, life raft human life raft.
Aaron
01:23:24 – 01:23:26
Right. I remember that. Yeah.
Adam
01:23:27 – 01:23:36
So he's totally happy to just help wherever there's help to be needed. You know? Helped.
Ian
01:23:36 – 01:23:37
Yeah. Yeah.
Aaron
01:23:37 – 01:23:47
I wonder There's a lot of options. Yeah, I wonder if he had more of a focus on the commercial side and you had more of a focus on the open source side. Does that make any sense at all? I don't know what
Adam
01:23:47 – 01:24:14
he wants to say. Ways, yes, but then I feel like the biggest risk of that, at least depend if the commercial stuff is the same format that it is now, is, like, tailwind improves best when, like, the people building the templates also have the power to improve tailwind. I think if you have, like Yes. Template templates or whatever and then, like, Tailwind CSS, it's like ivory or academic improvements to Tailwind happening instead of, like, size 5. We need fucking size 5.
Adam
01:24:14 – 01:24:14
Okay?
Ian
01:24:14 – 01:24:18
Right. Build size 5. You know? And and honestly, like,
Adam
01:24:18 – 01:24:37
this is what the company was like for the longest time. Like, when we had the 2 guys that were designing and building the templates, they just had a bit of a different attitude than me around it. Like, their threshold for, like, just, like, finding some way to get Tailwind to do the thing they need to do was way higher than mine. So they would just make it work. You know?
Adam
01:24:37 – 01:24:42
And Yeah. I would be like, I wanna make this easy, you know, in tailwind.
Aaron
01:24:43 – 01:25:00
So I don't know that it's mutually exclusive, though. Right? If somebody is in charge of the commercial side and they hire, you know, whatever, 5 designers and you build out a bunch of templates and you sell a bunch. That doesn't preclude you from making templates when you feel like it, but that also releases the pressure a little bit from you having to do it. Mhmm.
Aaron
01:25:00 – 01:25:11
And it also doesn't that doesn't eliminate the possibility that they build the 90% template, and then you come in and you're like, hey, this all sucks. Let me go change tailwind real quick and make this part
Ian
01:25:11 – 01:25:12
better. Yeah.
Aaron
01:25:12 – 01:25:18
It's like you could still get maybe the benefit if you're trying to come in at the end and make it all Yeah.
Adam
01:25:18 – 01:25:28
Transactional. The thing that the business guy does is actually, like, they're the one out there, like, making the deals with the external designers who are designing things and whatever.
Ian
01:25:28 – 01:25:28
And I
Adam
01:25:28 – 01:25:32
think that's something that, like, even Peter would be really good at here, you know, just
Ian
01:25:32 – 01:25:33
Right.
Adam
01:25:33 – 01:25:50
Sourcing people, kind of pitching them on what the deal would be, and kind of steering that along and whatever, and working with, like, a developer here to build stuff out. Like, I think that is like a delegatable commercial side of things
Ian
01:25:50 – 01:25:51
for sure.
Aaron
01:25:51 – 01:26:03
That feels like a playbook even. Like, I like I like having, you know, I like having repeatable things that I can do, and that feels like a pretty good playbook where you say, alright. Go find a designer. Do a template. Here's, like, here's our contract.
Aaron
01:26:03 – 01:26:11
Here's our money. Here's what we expect out of them, then we'll release it and get a big splash. We'll do a co promo, and then we'll move on to the next one. That
Ian
01:26:11 – 01:26:11
feels fun.
Aaron
01:26:11 – 01:26:26
I feel like that's the same if you wanted to spin up a services side where you we take your we take your pristine designs and turn them into pristine HTML CSS with Tailwind. So that's that's a playbook too. That that may you know, that may even be super high ticket playbook.
Ian
01:26:26 – 01:26:27
Yeah. That
Adam
01:26:27 – 01:26:43
and that's a good example of something where, like, you just you need, like, a machine builder, you know, to do that Mhmm. That type of work. Someone who can, yeah, put together the right people to do very like, yeah, high leverage sort of puppet master work, you know?
Aaron
01:26:43 – 01:26:44
Yeah.
Ian
01:26:44 – 01:26:58
And you get, it is a very different kind of business though. Right? Because it's like, it's not, there's no scale in consulting. Like you have massive scale with what you sell now and that's true. The, the scale, like it's 1 to 1 with the number of hours you have to commit to it.
Ian
01:26:58 – 01:27:06
Right. So you have to have more people to make more money. And I, again, like this is all, this is all way these things. Like tailwind could sell all kinds of stuff. That's like how I feel about DHH.
Ian
01:27:06 – 01:27:10
You're very DHHS. Like DHH could come out with a toaster. Lots of people buy the toaster. They'd be
Aaron
01:27:10 – 01:27:13
like DHH. The toaster doesn't work. You shouldn't sell the toaster.
Ian
01:27:13 – 01:27:19
I'd say this toaster sucks. Why is there only one zipline? What the hell is your toaster? Only pay for it once.
Adam
01:27:19 – 01:27:20
Like, no one wants to buy
Ian
01:27:20 – 01:27:22
a toaster. It's not a subscription.
Aaron
01:27:23 – 01:27:24
So Like, I've been selling
Ian
01:27:24 – 01:27:27
toasters for years. Nobody wants to buy a toaster in their
Adam
01:27:27 – 01:27:28
own house. They they
Ian
01:27:28 – 01:27:34
want a cloud toaster. They go to Starbucks. They get the toast. They don't get the toast in their house anymore. Come on.
Ian
01:27:34 – 01:27:35
Where have you been?
Aaron
01:27:36 – 01:27:38
3 initials. D h h, and we're off
Adam
01:27:38 – 01:27:38
the rails.
Ian
01:27:38 – 01:27:45
There you go. But wait. Why you gotta decide what you wanna do? That's what I do think, like, my a plan, if I was you, I'd be like, hey. I'm okay with how things are.
Ian
01:27:45 – 01:27:45
Yeah. I am
Adam
01:27:45 – 01:27:47
generally, like, okay with how things are. Right.
Ian
01:27:47 – 01:27:48
And then, like, yeah. And then it's like
Adam
01:27:48 – 01:28:02
yeah. Parallelize things a bit more. I'd like to be able to, like Right. Feel like we could get a few more things done a little bit faster and be a little bit less bottleneck. But that's kinda that's kinda it.
Adam
01:28:02 – 01:28:08
Otherwise, I'm, like, pretty pretty content with the the whole setup. It doesn't need to be a whole different system.
Aaron
01:28:08 – 01:28:09
Any of this then.
Ian
01:28:09 – 01:28:10
Yeah. Start doing this.
Aaron
01:28:10 – 01:28:14
People, take some stuff off your plate, play guitar, play Fortnite, and
Adam
01:28:14 – 01:28:15
Yeah.
Aaron
01:28:15 – 01:28:16
Do the stuff you wanna do.
Ian
01:28:16 – 01:28:23
And and keep that capacity. That capacity could be very valuable. Yeah. You just don't know when it's gonna be valuable. You know?
Ian
01:28:23 – 01:28:31
It's like, you don't know when you're gonna have this great idea. Like, you didn't know 5 years ago, whatever, you'd be selling tailwind UI. No. It would all be great. Mhmm.
Ian
01:28:31 – 01:28:40
Right? But you had enough room back then for it. Like you sold the book and you made some room in your life with that. And then that led to the next thing. Right.
Ian
01:28:40 – 01:28:42
So like everybody
Adam
01:28:42 – 01:28:43
gets so caught up with
Ian
01:28:43 – 01:28:44
the waiting for
Adam
01:28:44 – 01:28:44
a next thing
Ian
01:28:44 – 01:28:46
all that stuff. In life. We'll see,
Adam
01:28:46 – 01:28:58
like, what it is. Still like next act. Maybe. I don't know. Still Still like what I'm doing, but, I've been doing the programming thing for, like, a long time now and, like, longer than any other thing that I kinda got insanely obsessed with and good at in my life.
Adam
01:28:58 – 01:29:00
You know? So
Ian
01:29:00 – 01:29:01
but then it's just Here here here's
Aaron
01:29:01 – 01:29:06
what here's what you need. You need more tinker time. You gotta get catalyst out the door, and you need you need tinker time. Time.
Ian
01:29:06 – 01:29:06
Because I
Aaron
01:29:06 – 01:29:11
feel like your best ideas having, like, observed from the outside or when you're tinkering.
Ian
01:29:11 – 01:29:12
Yeah.
Aaron
01:29:12 – 01:29:16
Like, I'm building kite tail, and you're like, actually, wait. I'm not building kite tail. I'm building tailwind. That's like
Ian
01:29:16 – 01:29:18
kite tailwind. It's crazy too. It's like the Oh, yeah. Yeah. You need some more some more just
Aaron
01:29:22 – 01:29:23
f around and find out time.
Ian
01:29:23 – 01:29:41
Yeah. We'll get there. But, also, you know, it's like I think Adam started at the very beginning with, like, you feel too old for some of this stuff, and I feel like you're obviously not not too old in age, but I do feel like you're in this phase of life that I definitely felt at your guys' age was like, you have the, the young kids and stuff. Like it's so hard, like, it just came out so much out of you. Yeah.
Adam
01:29:41 – 01:29:49
Like Yeah. It's just, like, even though the kids go to bed at, like, 7, like, you wanna tell yourself this fantasy story. I'm like, okay. At 7, I'm gonna be able to, like,
Ian
01:29:49 – 01:29:51
go down to my I'm gonna get, like, 3 hours
Adam
01:29:51 – 01:29:55
of work done. It's like, no. I can't do anything at 7.
Ian
01:29:55 – 01:29:58
You know? Yeah. Yeah. Exactly. Yep.
Ian
01:29:58 – 01:30:16
So it's like so in that way, you have, like, you have probably, like, an 8 8 years, honestly. Like, honestly, you couldn't do something big in the next 8 years. You absolutely could. But at the same time, like, if you just give yourself 8 years and they're like, yeah, I'm gonna be doing awesome stuff with Tailwind, whatever, blah, blah. And then, like, kids are bigger.
Ian
01:30:16 – 01:30:27
Yeah. Brain capacity freeze up a little bit. It's like, then maybe that's like the phase 2 Yeah. Of like others new type of things. But, like, it it is very hard because, like, just, yeah, just whatever.
Ian
01:30:27 – 01:30:31
Being a reasonable father to your kids is, like, a lot of overhead.
Adam
01:30:31 – 01:30:36
It sounds like I I have to leave right now because it's piano lesson. You know?
Ian
01:30:36 – 01:30:41
There you got it. There you go. Alright. Well, thanks for coming on. I really appreciate it.
Ian
01:30:41 – 01:30:42
It's a perfect ending note right there.
Adam
01:30:42 – 01:30:44
Thanks for having me, guys. It's always fun.
Ian
01:30:44 – 01:30:45
Have fun with piano lessons.
Adam
01:30:45 – 01:30:45
Will do.
Ian
01:30:45 – 01:30:46
Alright, man. Alright.
Adam
01:30:46 – 01:30:47
See you. Alright.
Aaron
01:30:47 – 01:30:48
See you. Bye.
Ian
01:30:49 – 01:31:02
Alright. Let's wrap up the show then. Absolutely. Thanks everybody for listening. You can follow us at mostlytechnical.com, mostly tech pod on Twitter, and, mostlytechnicalpodcast@gmail.com.
Ian
01:31:03 – 01:31:04
Thanks a lot.
Aaron
01:31:05 – 01:31:05
See you.
Me

Thanks for reading! My name is Aaron and I write, make videos , and generally try really hard .

If you ever have any questions or want to chat, I'm always on Twitter.

You can find me on YouTube on my personal channel or the Try Hard Studios channel.

If you love podcasts, I got you covered. You can listen to me on Mostly Technical .