I joined Caleb Porzio to talk about the ethics and morals of building wrapper products.
Caleb
00:00:00 – 00:00:10
Alright.
That's gonna work great.
Okay.
Aaron Francis, thank you for being maybe the second ever guest on notes on work.
Aaron
00:00:10 – 00:00:12
You're welcome.
I'm happy to be here.
Caleb
00:00:12 – 00:00:25
So, Aaron, this is, for the listener, this is a a total ambush on Aaron.
He knows basically nothing about any of this.
But here's what happened.
So you tweeted this thing about FFmpeg yesterday.
I'll explain that in a second.
Caleb
00:00:25 – 00:01:02
And I see it, and, like, rappers is, like, my trigger word.
Mhmm.
And I'm feeling, like, torn and hot and bothered, and I see see both sides and it's it's not even there's like multiple conversations even going on in that Twitter thread.
And all of it is, like, this could be a very interesting conversation for an hour where we go back and forth and talk about nuance or whatever.
But I feel like, ultimately, what I just need to do is make a new license, like, a new open source license, and I wanna get your first, I wanna make sure that we agree on on if there is even a problem.
Caleb
00:01:02 – 00:01:13
And then should we create a new license so that I can launch this thing I'm working on and not be, like, stressed out all the time and just, like, start a new world?
Aaron
00:01:15 – 00:01:20
So the the I thought you were gonna ambush me about my children's toys, but you already did a full episode on that
Caleb
00:01:20 – 00:01:21
one.
Exactly.
Aaron
00:01:21 – 00:01:24
Yeah.
We'll we'll do open source licensing.
So,
Caleb
00:01:25 – 00:01:41
Yeah.
I I let me look up this this tweet here and we can just read the tweet.
So this is okay.
So somebody named Luna, who I think follows me and might be in the community or something.
So, whatever.
Caleb
00:01:42 – 00:01:57
Luna retweets somebody else who does, like, a cool video thing.
They made a little online web thing and says, look, ma, I wrapped FFmpeg.
So just throw in shade at this guy being, like, okay.
You wrapped FFmpeg.
And then you retweet that.
Caleb
00:01:57 – 00:02:09
So, like, he introduces negativity.
He's being totally not you.
He's just being aggressive, and you're, like, you know, throwing some water on the fire.
Like, it's okay to build on top of existing technologies.
Don't let anyone stop you.
Caleb
00:02:09 – 00:02:13
Do not begrudge small but useful tools.
Great
Aaron
00:02:13 – 00:02:14
turn of phrase.
Right?
Caleb
00:02:15 – 00:02:16
What do you mean?
Aaron
00:02:17 – 00:02:20
Do not begrudge.
Isn't that great?
We love that.
Yeah.
Caleb
00:02:21 – 00:02:26
Do not begrudge You don't like it?
No.
I do.
I I love it.
Do not begrudge small but useful tools.
Caleb
00:02:27 – 00:02:44
Absolutely.
So what the what Luna's complaining about is that this guy is appearing to be smart and good and cool and do something awesome when in reality, like, he put a cherry on top of, like, an iceberg, you know, it's like Mhmm.
Aaron
00:02:44 – 00:02:44
Mhmm.
Caleb
00:02:45 – 00:03:00
There's a mountain of work underneath him, and he just goes, doink.
You know?
Okay.
So I have so many different ways of viewing.
There's, like, one the the pre pre maintenance Caleb views this and goes, yeah.
Caleb
00:03:00 – 00:03:15
Like, you you know, if somebody built a tool, it's open source.
And if they didn't, you know, provide, like, a sleek enough interface that's sexy enough and simple enough, like, it is totally within my right to make that.
I wouldn't even think twice.
Aaron
00:03:15 – 00:03:16
Yep.
Caleb
00:03:16 – 00:03:39
So I was tempted to reply to this, not to you, but to there's many people in these replies saying, like, they started using the word rapper and saying, like, rappers are fine.
Everybody was mad at Nuno about pint and, you know, rappers are great.
We should wrap things.
And for me, I'm just like you guys have never built anything that got wrapped.
Aaron
00:03:39 – 00:03:40
You've never been wrapped.
Caleb
00:03:40 – 00:03:51
That's that's exactly my feeling is you've never been wrapped.
So maybe I'll take a breath so that you can get a word in, and then I told you where I kinda wanna take this.
But, yeah, give me your thoughts.
Aaron
00:03:52 – 00:04:19
Okay.
I agree it's probably different for the wrapped versus the wrapper.
I don't know that I've ever been wrapped.
I think, I will be most interested to hear your thoughts on the open source licensing stuff because my opinion slash point of view is that as long as this person is abiding by the terms of the license, that's literally all they're required to do.
Right.
Aaron
00:04:19 – 00:04:35
I think there is an argument to be made that it's like bad juju if you rap and don't, like, pay respects to the underlying library.
I think you've talked about this a lot before.
Like, Livewire owes a lot to Laravel.
Laravel owes a lot to Symphony.
Symphony owes a lot to PHP, etcetera.
Aaron
00:04:36 – 00:05:07
I think, I think I don't know.
I I feel like FFmpeg is interesting because it's like literally decades of work that is completely inscrutable.
And so adding a wrapper on top of it to make it inscrutable feels really great to me.
So I think there's a we can take it whichever way you want.
I would continue to not begrudge tools that are Yeah.
Aaron
00:05:07 – 00:05:09
So because I think everything wraps something.
Caleb
00:05:09 – 00:05:14
Well, let me let me give you the heart for the be for the wrapped.
Aaron
00:05:15 – 00:05:15
K.
Caleb
00:05:15 – 00:05:31
See if I can get you to sympathize.
But I think, ultimately, your point is right that, like, what?
We're just gonna go around, like, shaming people, but there's, like, there's a light the license says you can do this.
Aaron
00:05:31 – 00:05:31
Right.
Caleb
00:05:31 – 00:05:56
The people who built this thing say this is okay officially, you know?
Mhmm.
So you can't be mad about it.
And I'm very much caught in this place.
And that's why I feel like the only logical conclusion here is for me to make a new license so that I don't go about the world being, like, bitter in, like, and expecting something of somebody without, like, any sort of formal, you know, whatever.
Caleb
00:05:56 – 00:06:08
So, yeah, the wrapping thing, it sucks, obviously.
And so something like FFMPIG.
Wrap it up.
It's so old.
It's it's, it's a u it's a, like, a very utility utility.
Caleb
00:06:09 – 00:06:37
It's like, Git or something.
You know?
It's it's very much like there's no person that you're going to be pissing off, and and the legacy is so giant that your little pipsqueak thing on top isn't a big deal.
So there's all this nuance where it's, like, if you make, Snoop Wire, the lightweight, alternative to LiveWire and you just wrap it up.
You I don't know.
Caleb
00:06:37 – 00:07:00
You only yeah.
Like, it's it's just for, or maybe it's just headless LiveWire, and you call it Snoop Wire or whatever.
And then all all the the users that are going to my doc site start going to your doc site.
Mhmm.
And then slowly, all of the energy and hype and attention drifts away from my project onto your project, but I'm doing all the work.
Caleb
00:07:01 – 00:07:40
And so now I don't have vectors for funding because I can't sell things to people because I don't have their eyeballs anymore.
And this is my fundamental problem is just that it's like, I'm fine if you want to capitalize on my tool if you do so in a way that raises all boats, you know.
That's great with me.
It's, like, do so in a way where people are still on my doc site and they still love LiveWire that I created, and I can sell them a course or a tool or whatever.
But if you if you decrease my optionality legitimately pissed off, and I can't see a world where I wouldn't be.
Caleb
00:07:40 – 00:07:44
You know?
Mhmm.
What do you think about that?
Aaron
00:07:48 – 00:08:04
I think that seems reasonable to me.
Like, I understand from, like, an emotional level why that would be frustrating.
I have to imagine that's a little bit how Symphony feels.
I mean
Caleb
00:08:04 – 00:08:06
I'm positive they feel that way.
Aaron
00:08:06 – 00:08:33
Yeah.
I I totally get that from an emotional level that that would be extremely frustrating.
I do agree, however, that if you want to change it, it has to be, there has to be like a formal change.
Because like saying that the rule is one thing and then people follow the rule, and then it's, like, that doesn't feel good.
Well, the the real solution there is to change the rules such that, like, everything that's, like, squishy and gray and, like, hey.
Aaron
00:08:33 – 00:08:45
We all kind of agree on this thing is, like, no.
No.
No.
Let's let's formalize that.
Like, if there are norms that you're expecting everyone to abide by, those need to be codified at some point, I would imagine.
Caleb
00:08:45 – 00:08:51
Right.
For me, it's a it's a code of honor is what it is.
Mhmm.
It's like Yeah.
It's a moral thing that's like Yep.
Caleb
00:08:51 – 00:08:58
If you don't abide by this, you don't have honor.
And Yeah.
Again, that's a that's a I'm I'm at least, like
Aaron
00:08:58 – 00:09:03
know I'm on board with.
I love that as, like, a an operating principle.
Yeah.
Caleb
00:09:03 – 00:09:04
So It must
Aaron
00:09:04 – 00:09:04
be honorable.
Caleb
00:09:04 – 00:09:04
So how
Aaron
00:09:04 – 00:09:04
do we, like,
Caleb
00:09:09 – 00:09:18
with creating a license in the past has been, like, I guess, let's just say that we can get the license right so that it's called the, don't wrap me license.
Aaron
00:09:19 – 00:09:20
Mhmm.
Mhmm.
Caleb
00:09:20 – 00:09:58
My fear is that some really, like you know, all the legal folks, all the hardcore open source diehards, the Richard Stallman type people are gonna come out of the woodwork, declare that this is evil in all sorts of ways or fundamentally flawed or say that, like, beware.
If you use Caleb's new project, your thing could be whatever then, you know, and then it's like, well, nobody uses the thing.
It's like a total flop and because I whatever.
And that that's why it's like, there's such a carved path for just MIT.
Just slap MIT on it.
Caleb
00:09:58 – 00:10:28
It's like we're all just doing this, and that's why I have to have an honor code because I I am trying to remove barriers by just doing the happy path.
But Right.
If we were to make a license, I guess, like, first, I want to know genuinely, like, obviously, this is a charged subject for me and this is unfair if you, but I I hope you have the hookspa to come at me if you disagree.
Do you agree that there is a need for this?
Like, I'll I'll give you an example.
Caleb
00:10:28 – 00:11:12
The project I'm working on right now is eligible for rapping.
I wanna build it, and I want everybody who's writing applications to benefit from it.
I want you to go make And you go And you go to my docs and you love the tool and I sell you an expansion pack and you happily give me your money because it further increases your life.
This is the the beautiful place that I wanna live in where an independent developer can remain funded long term.
But if I release this MIT, I run a serious risk Mhmm.
Caleb
00:11:12 – 00:11:36
Of somebody creating a lightweight rapper, a UI kit on top of it.
You know, all of these things that's like that will be the surface and the target of dollars and commerce and attention, and I will not be.
And when I think about that world, it's like I'd rather not even build it because it's just gonna waste my time and cause me stress.
So You have
Aaron
00:11:36 – 00:11:52
to do all the underlying work of, like, making sure that the thing always works and so you don't have time to create the wrapper because you're making sure that the thing always works and somebody else comes along and it's just like, hey, the thing always works.
I can count on that.
So let me build on
Caleb
00:11:52 – 00:11:59
top of it.
That's it.
It's the thing always why wouldn't somebody do that?
The thing always works.
Like, use that thing.
Caleb
00:11:59 – 00:12:25
And and my attitude is not like, I hate you if you create something that's competing.
It's like, no, just meet me toe to toe, do the work yourself, Like, you know, go like invest what I've invested and then compete with me.
Don't just start a race with me.
Don't meet me, you know, 10 miles into the marathon and then start sprinting.
You know?
Caleb
00:12:26 – 00:12:44
So is is there a need for this?
Is or is this a, this is not realistic.
Don't have your hopes up about this, like, honestly, like, blue ocean, open source, let people wrap you, like, it'll be better in the long run or something.
You know?
Aaron
00:12:45 – 00:13:06
There's a lot of different questions there.
Is it gonna happen I don't know.
You could just make it happen.
I think the hard part's gonna be coming up with the construct for enforcing or like even for communicating what the vibes are.
So like if you're codifying vibes or like honor, how do you do that?
Aaron
00:13:07 – 00:13:29
Right?
So like, I'm thinking of another example, Radix.
So I've started using ShadCN View which is obviously a view version of Shad cn.
And every time I go to one of these components, like under the hood, it's it's like, well, if you wanna read the real docs, go to the Radix docs.
And I'm like, what what I didn't even know Radix was a Radix was a part of this.
Aaron
00:13:29 – 00:13:39
I thought Shadcian Vue was just like a full thing.
And so, like, how do you codify what is a rapper and what is a UI kit?
Caleb
00:13:39 – 00:13:40
Right.
Right.
Right.
Aaron
00:13:40 – 00:13:45
That seems tricky to me, first of all.
So let's use Radix and Shad.
Caleb
00:13:45 – 00:13:46
K.
Radix does.
Aaron
00:13:46 – 00:13:49
Let me address let me address Stallman first.
Caleb
00:13:49 – 00:13:49
Yeah.
Aaron
00:13:49 – 00:14:05
To to the people that are like, this is not pure open source.
I say, I don't care.
I do not care even one little bit.
Because the problem is like, people are like, oh, this is not pure open source.
And then every other week on Hacker News it's like, how do we make open source sustainable?
Caleb
00:14:05 – 00:14:06
Right.
Aaron
00:14:06 – 00:14:24
Maybe don't make it pure open source.
Like, maybe have a license that says Amazon can't turn this into a hosted service and make a $1,000,000,000.
Like, why don't we just do that for once?
So I think the Stalmans of the world, are fighting a losing battle that I don't really have a lot of sympathy for.
So back to Radix and Shad.
Caleb
00:14:24 – 00:14:48
And I think my whole track record is, like, this whole time I've been trying to make open source sustainable by, like, charging money for parts of the sub you know, I mean, there's, like Right.
Like, get up sponsors and its whole mission is anti open source in in that sense.
Anti pure open.
It's muddying the waters.
And and personally, yeah, it's like it's in everybody's best interest if I can work on this thing long term, you know.
Caleb
00:14:48 – 00:14:53
Totally.
So anyway, yes, that was a quick interruption.
Continue.
Aaron
00:14:53 – 00:14:58
Yes.
So you were gonna take you were gonna pick up the Shad cn, Radix.
Yeah.
Caleb
00:14:58 – 00:15:17
Shad cn and Radix are a great example.
And let me just say that I'm not, like, launching an attack on those tools because I don't know the story.
I don't know, like Me either.
Radix.
I don't think Rad I think Radix is done by a company, and I heard that so the person who was maintaining the company owns the project and then hires employees to maintain it.
Caleb
00:15:17 – 00:15:34
And there was, like, this one person who's at the company mostly maintaining it and then they left.
And now it's like kind of influx with, you know, who's maintaining it.
But that to me is just so different.
It's like it's not the company's driver of profit.
It's, like, you know, Facebook with React.
Caleb
00:15:34 – 00:15:44
It's, like, a company that's doing an open source thing and hires a person maintain it.
It's such a different story.
I don't think they're mad that Shad is rapping them, you know.
Aaron
00:15:44 – 00:15:48
Yeah.
Let's let's imagine though that you own Radix.
Yeah.
Caleb
00:15:48 – 00:15:49
That I wrote Radix.
Aaron
00:15:49 – 00:15:52
Yeah.
Then what do you do?
Like, how do you
Caleb
00:15:53 – 00:16:17
So I don't care about enforcing it because as long as I have the license that obviously is the big question of what's in that license.
But as long as I have it, I don't need to worry about, like, how I can police it It it tech like, mechanically with the law, it's like they would be in violation.
And I think there's enough, like, Internet people that would Yeah.
Be like, you're invited.
Like, you can't do that, you know?
Caleb
00:16:17 – 00:16:46
And and then, you know?
And if they really push it and got really popular, that it's, like, I'm not worried about that part.
It's more how it's more creating a license that well, one, I think this is a hard thing to do because so many people who aren't creators don't understand why I would do this.
You know?
Correct.
Caleb
00:16:46 – 00:17:05
Yeah.
I think they would go, like, this is weird or greedy or small or something.
It's, like, where I mean, obviously, I fundamentally don't believe that because I could have just created a piece of software and sold it instead and you would be fine with it.
You would go, oh, cool.
His he made a new thing and sold it.
Caleb
00:17:05 – 00:17:25
Or if I made, like, some design thing or some video kit, it's so dumb to me that there would even be that air of, you know, whatever.
But okay.
So let's forget that too because they probably won't understand, but that's on them.
Hopefully, you know, I could plead my case enough, but I don't know.
There's really no one else out there saying the things that I feel.
Caleb
00:17:25 – 00:17:27
That's another problem.
Aaron
00:17:28 – 00:17:41
Yeah.
That is a problem.
That's gonna be, that's gonna make your life hard.
That you would be the only one out there fighting, I think, would make that difficult.
But, like, anybody, I mean, again yeah.
Aaron
00:17:41 – 00:17:43
Like, if the thing is, everybody's scared
Caleb
00:17:43 – 00:18:09
to talk about it.
That symphony guy, he's not gonna say anything, Adam, when people scoop tailwind and make, like, windy and stuff like this, I have no problem saying that Adam is furious.
I would be furious.
I was furious at lowland or whatever with Alpine.
Evan Yu was furious at me with with Alpine to and made Petite View.
Caleb
00:18:09 – 00:18:14
You know?
Although at least in that case, I did the work myself.
That's a that's sort
Aaron
00:18:14 – 00:18:16
of a a different That's true.
That's different.
Caleb
00:18:16 – 00:18:21
Yeah.
But anyway yeah.
So I think everybody is secretly furious about this.
Aaron
00:18:23 – 00:18:41
Yeah.
And I don't know what to do about that because, like, like let's go back to Tailwind.
Like there are a 1000000 Tailwind UI kits And that is arguably quite good for Tailwind.
Even though they sell a UI kit.
Right?
Aaron
00:18:42 – 00:19:06
But, like, every Tailwind becoming the defacto, like, the standard is good for tailwind.
But you can imagine it's bad for radix because I didn't even know radix existed.
And I don't I still don't care because I'm just using shad cn.
You know?
So there's there's, like, even a a degree or, like, a characterization of what the wrapping software is as to whether it's good or bad.
Aaron
00:19:06 – 00:19:07
You know?
Caleb
00:19:07 – 00:19:20
Yeah.
Radix or I guess Tailwind is an interesting example because when you're using a Tailwind UI kit, you're using Tailwind for the most part.
Yeah.
You're using Tailwind, so you still are on the Tailwind doc.
Aaron
00:19:20 – 00:19:21
From you.
Caleb
00:19:21 – 00:19:34
Yeah.
To me, that's my thing.
It's, like, it really doesn't matter to me as long as you're on my docks, and I have a vector to plead my to offer you something of value.
You know?
But anyway, so I yeah.
Caleb
00:19:34 – 00:20:04
I feel like that's slightly different, but I wonder about, like, maybe, like, Daisy UI is much different, but it still is like, we are a tailwind that it's it all is tail like the best example I think would maybe be maybe windy CSS or something that is like, you know, like a completely different compiler, a completely different project.
Dude, it's hard because there's rappers and then hard.
And then they're stealing people's APIs.
But I think Radix and Shadd is the best.
Aaron
00:20:05 – 00:20:31
And then there's open source, and it's like I could today take Tailwind.
I haven't actually looked at the license, but assuming it's MIT, I could take Tailwind and fork it and call it Erinwind, and that would be completely legal.
Nobody would get on board with it.
And I think, does that matter?
Does that matter if, like, like, let's take Nuno's Pent and Lint or whatever it was, Pint and what's the thing that it wraps?
Aaron
00:20:31 – 00:20:32
CS sniffer or something like that?
Caleb
00:20:32 – 00:20:35
Huge PCS fixer, I think.
Yeah.
PCS fixer.
Aaron
00:20:35 – 00:21:04
Yeah.
So he wraps he wraps CS fixer with like a new maybe Pest and PHPUnit is better.
Like Pest wraps up PHPUnit, and it adds some sort of layer of accessibility on top, which is arguably good, but he's also totally wrapped up 20 years of PHP unit work.
Yeah.
And people are stopping like, people, like, are looking at the pest stocks now instead of PHP unit probably.
Caleb
00:21:04 – 00:21:21
Yeah.
Right.
And so I don't wanna bring Nuno into this because, I which is what we've done on the podcast too, which is, like, let's pick on someone else because Yeah.
I I like Nuno and he's a friend.
So it's like my principles happen to not align with his in this regard.
Aaron
00:21:21 – 00:21:21
Mhmm.
Caleb
00:21:21 – 00:21:28
But I'd rather pick on I wanna I, like, I wish Torchlight was a good example.
Mhmm.
But I'm not sure it's a good example.
Aaron
00:21:30 – 00:21:32
Yeah.
I mean, it raps Sheikki.
Caleb
00:21:35 – 00:21:40
Yeah.
There you go.
So you're you are so Sheikki is the thing that does the hard work.
Aaron
00:21:41 – 00:21:54
That does much of the hard work.
Yeah.
But again, Shiki wraps other stuff, which is like the, you know, the text mate grammars and the Versus Code stuff.
And so, like, you know, it's kinda rappers all the way down on the Shiki side.
Caleb
00:21:54 – 00:22:17
Yeah.
Okay.
So the let's say let's say that I'm building Radix, and I go, I don't wanna be scooped up.
So I'm going to charge money for this and make it closed source.
Now it's annoying to use and it's hard to just get started and it penalizes like people just tinkering, you know?
Caleb
00:22:17 – 00:22:34
Yeah.
So it's like, you know, I'm going to be a better person and I'm going to like make this paid thing.
I'm gonna open source, you know, the code for it so that you can just try it and whatever, but it's still a pit.
I don't like statemic.
Like nobody's gonna rap statemic cause I'm not even sure it's open source.
Caleb
00:22:34 – 00:22:43
Maybe it is.
I don't know.
I don't know.
I don't wanna make something that somebody's just gonna use in their competing app and make my life harder.
Aaron
00:22:45 – 00:22:55
Right.
So is the question, is is the question, is there a structural fix for this?
Is that the question?
Caleb
00:22:55 – 00:22:56
That's yeah.
The question Instead of, like,
Aaron
00:22:56 – 00:22:59
a vibe slash community fix for it?
Yeah.
Because that that would that is just, you know,
Caleb
00:23:00 – 00:23:08
obvious.
I mean, it's my life.
You it's a lot of just disagreeing with people.
Right.
Yeah.
Caleb
00:23:08 – 00:23:28
So I think, yes, the the whole the interesting thing, the thing that I am here to talk to you about is, is there a structural thing and what would it look like?
Yeah.
But part of it is like, you would have to want it and I'm not convinced that you would want it.
So it probably isn't even worth talking about, Aaron Francis.
You'd I
Aaron
00:23:28 – 00:23:30
would have to want what?
Caleb
00:23:30 – 00:23:32
You don't want the license.
I don't want
Aaron
00:23:32 – 00:23:35
the license.
No.
I want it to be MIT.
Caleb
00:23:36 – 00:23:40
So let's talk about that, because we can't talk about the license if you don't want the license.
Aaron
00:23:40 – 00:23:49
Right.
Yeah.
As a consumer, as someone who would potentially do the wrapping or even the using, I don't want the I don't want those encumbrances.
Caleb
00:23:50 – 00:23:53
Aaron, so we have a fundamental disagreement on rapping.
Aaron
00:23:54 – 00:23:54
K.
Caleb
00:23:55 – 00:24:10
And maybe that's just that.
But, like, I am okay with somebody rapping FFmpeg and doing that thing, but going out there and telling people to that it's okay to rap stuff
Aaron
00:24:11 – 00:24:11
Mhmm.
Caleb
00:24:12 – 00:24:13
I don't believe that.
Aaron
00:24:14 – 00:24:18
So how do you square it's okay to rap FFmpeg, but it's not okay to rap stuff?
Caleb
00:24:19 – 00:24:26
So I guess I guess maybe I don't even maybe I would, like, leave up of the it's just that there's degrees of it.
Aaron
00:24:26 – 00:24:27
I agree I agree with that.
Caleb
00:24:28 – 00:24:46
Yeah.
So, yeah, I'll I wanna find something that you would be bitter about somebody rapping.
Like, what about your videos?
What if I took your, dialogue and just repeated it, you know, on my own platform?
Your script or something.
Aaron
00:24:46 – 00:24:58
Well, that's tricky because that would be stealing.
Right?
Because, 1, my videos are not free and open source.
And 2, like, doing it word for word is not
Caleb
00:25:00 – 00:25:16
it's like not adding anything on top.
So I would add visualizations.
It would be, like, better than than yours.
It would be truncated.
I would take your long form videos that who can sit there 10 minutes, and I would make them minute long shorts.
Caleb
00:25:17 – 00:25:31
And I would I mean, let's say even that.
Let's say that I make a YouTube channel called I don't even use your name.
Mhmm.
And like people do on on freaking Twitter.
How they how they take other people's videos
Aaron
00:25:31 – 00:25:32
Mhmm.
Caleb
00:25:32 – 00:25:42
And they either shorten them or just put them in full form and don't reference the original creator at all.
So, like, what if I started doing that?
How would you feel about that?
Aaron
00:25:42 – 00:25:49
That's interesting.
I don't like react videos.
I think that's easy it's an easier thing for me to to emotionally get
Caleb
00:25:49 – 00:25:52
Oh, reaction videos.
That's an interesting example.
Yeah.
Okay.
Aaron
00:25:52 – 00:26:06
So, like, that is maybe the video equivalent of rapping where somebody watches your video on their video and does little herms and 's along the way, and it's like, well, it's a new video now.
I think that I think that sucks.
Caleb
00:26:06 – 00:26:12
You know what's so interesting, Aaron?
I really like reaction videos, and I watch a lot of them.
Aaron
00:26:12 – 00:26:17
See?
We have we have arrived at the, the flip side of the coin.
Caleb
00:26:17 – 00:26:19
Yes.
But I totally I
Aaron
00:26:19 – 00:26:33
don't know.
Like, if I were to reacted the only time I've ever been reacted is when the primogen did it.
And he first DM'd me and said, can I do this?
And to me, the answer was an immediate yes because he's massive.
Caleb
00:26:33 – 00:26:34
Yes.
He's benefiting you.
Aaron
00:26:34 – 00:26:36
He could send people my direction.
Caleb
00:26:36 – 00:26:36
Yeah.
Yeah.
Aaron
00:26:36 – 00:26:47
But, like, let's say someone else did it without asking, I would I would be mad.
I would not like that.
I would be like, dude, this is my video.
I didn't give you permission to do that.
Caleb
00:26:48 – 00:27:03
Yeah.
So well, at least there's some amount of at least you can empathize in the smallest way with what it would be like to do something hard, and then somebody take all of the spoils of the hard thing you did.
Aaron
00:27:03 – 00:27:05
Oh, yeah.
I no.
I totally
Caleb
00:27:05 – 00:27:06
get that.
Thing on top.
Aaron
00:27:06 – 00:27:19
That is not I don't think that is, if there's a disagreement, that is not it.
I I can emotionally arrive at that point quite easily.
I think your question was from the consuming side, do you want this license?
My answer is no.
I don't.
Aaron
00:27:20 – 00:27:20
Right.
Caleb
00:27:20 – 00:27:22
You don't.
But if you don't I'm not
Aaron
00:27:22 – 00:27:23
in your shoes.
Then the
Caleb
00:27:23 – 00:28:10
thing is just gonna, like okay.
One one argument that that is, like, not emotional is, and I don't, I can't prove this or whatever, but a project that gets wrapped loses its optionality and it's funding.
If that's its source of funding is that that surfacing, you know, and then the project suffers and then your project suffers and then everybody suffers, you know, where it's like, man, if you want like this thing, if you massively benefit from this thing, like if you expose it, then it, you know, gets it the funding that it needs.
And then your project can be even healthier for longer.
Yeah.
Caleb
00:28:10 – 00:28:38
I don't know.
It's a hard thing and nobody feels many people feel the way that I do behind closed doors, but many others don't.
And it is so easy to wrap something and make a simplified some a more niche offering.
A simp that's it's like and as a creator of something like LiveWire, for example, it's hard for me to make a niche version of it because I don't wanna fork the experience for my users.
I don't want them to think, oh, there's Livewire.
Caleb
00:28:38 – 00:28:50
Now there's Livewire Lite.
What next?
There's so but if, like, Joe Schmo comes along and goes like, a more slim refined, you know, Livewire.
It's called Slimwire.
And people are like, oh, SlimWire.
Caleb
00:28:50 – 00:29:10
Nobody's complaining about, like, there being too many things.
So, yeah, I'm just fine I'm trying to find a way out of this.
And I guess, ultimately, if I decide that I truly would rather not do something than deal with the rapping life, then, then it's just who cares?
I do the thing.
But,
Aaron
00:29:13 – 00:29:34
yeah.
Okay.
So let's, maybe we should we should just we should build up from the bottom and see what we agree with and what we disagree with.
I'll start.
It is good for open source library authors to have a source of income.
Caleb
00:29:34 – 00:29:35
Yes.
Aaron
00:29:35 – 00:29:56
I agree.
Most traditionally, that source of income comes from eyeballs in one way or another.
Yep.
K.
There can be bad ways for people to wrap underlying libraries.
Caleb
00:29:57 – 00:29:59
Okay.
Is that something we agree on?
Aaron
00:30:00 – 00:30:02
I agree.
I I agree with that.
Caleb
00:30:02 – 00:30:08
Okay.
Okay.
Do you agree with that?
Oh, for me, that's my premise.
Yeah.
Caleb
00:30:08 – 00:30:11
I mean, for right.
There can be good ways.
We just have different thresholds.
Yeah.
Aaron
00:30:11 – 00:30:15
There can be good ways for people to wrap underlying libraries.
Caleb
00:30:15 – 00:30:19
Okay.
That's right.
Great.
Let's think let's agree on that because I don't.
Okay.
Aaron
00:30:19 – 00:30:20
Let's go.
Yeah.
Caleb
00:30:20 – 00:30:26
Or I at least want an I want to get to that point.
Like, what Yeah.
Is a good way, you know, to wrap something.
Aaron
00:30:26 – 00:30:28
We're like Yeah.
Laravel
Caleb
00:30:28 – 00:30:32
and Symphony is, like, obviously, I'm the biggest Laravel fanboy in the world.
Aaron
00:30:32 – 00:30:33
I know.
Caleb
00:30:33 – 00:30:34
So let's use that.
Aaron
00:30:35 – 00:30:36
Well, let's keep going.
Caleb
00:30:36 – 00:30:37
Okay.
Aaron
00:30:37 – 00:30:49
Let's keep let's keep going on fundamental truths.
So so far we agree on all of that.
I think the, point at which we draw the good bad line is up for is up for interpretation or discussion.
Yes.
So there are good ways.
Aaron
00:30:49 – 00:31:05
There are bad ways.
Let's see.
What else?
Wrapping in a bad way wrapping in a bad way is not prohibited by any or or or by is not prohibited by the MIT license.
Caleb
00:31:06 – 00:31:08
Yes.
Right.
Aaron
00:31:08 – 00:31:12
Rapping in a bad way is primarily enforced by community.
Caleb
00:31:13 – 00:31:13
Yeah.
Aaron
00:31:14 – 00:31:14
K.
Caleb
00:31:16 – 00:31:16
Yep.
Aaron
00:31:19 – 00:31:26
Okay.
So we agree on all of that.
Is there any other open question besides where do you draw the line between good and bad?
Caleb
00:31:29 – 00:31:38
Yeah.
Is right now.
I think it, I think it all lies in that.
Yeah.
It all lies in the good, bad,
Aaron
00:31:39 – 00:31:40
The good, bad, great
Caleb
00:31:40 – 00:31:45
question.
An important point that you made is that, like, the thing here is that MIT doesn't prohibit
Aaron
00:31:46 – 00:31:46
Mhmm.
Caleb
00:31:46 – 00:32:03
Any form of rapping, including the bad forms.
And the biggest question is, should there be a license that prohibits some degree of bad rapping?
You know?
Aaron
00:32:03 – 00:32:09
Yes.
So should there be a license that prohibits bad rapping with bad being squishy at this point?
Caleb
00:32:12 – 00:32:17
Let's can we identify an example that we both completely agree is bad rapping?
Aaron
00:32:18 – 00:32:20
Yes.
That would be good.
Do you have one?
There's some
Caleb
00:32:21 – 00:32:29
So, like, Radix Shad, you don't agree.
Right?
And I'm not sure that, that's a bad one.
That's a bad one.
Oh, god.
Caleb
00:32:29 – 00:32:31
Do what do you think about Radix and Shad?
Aaron
00:32:32 – 00:32:44
I I feel like I don't have enough intel to know if it's good or bad.
Like, I don't know if Radix is thriving.
You know what I mean?
Yeah.
I I just don't know.
Caleb
00:32:47 – 00:32:55
Like, I'd love to not do a hypothetical, but we could make a hypothetical extreme example if we needed to.
Aaron
00:32:56 – 00:32:59
Alright.
What about this?
Let me ask you this.
One.
Okay.
Aaron
00:32:59 – 00:33:00
Tell me.
Caleb
00:33:02 – 00:33:26
I was gonna give a hypothetical.
If LiveWire offered a if LiveWire became the framework and you typed LiveWire new and it was all my scaffolding Mhmm.
And you basically didn't see basically, Laravel became Symphony level.
And all of my models have my it's all LiveWire mod extends LiveWire model.
Aaron
00:33:26 – 00:33:26
Mhmm.
Caleb
00:33:26 – 00:33:39
It's a slightly different I call it, like, a refined directory structure.
It's tailored for single file LiveWire components.
It's very sleek.
It's very minimal.
There's no double experience of, like, also being, potentially an SP or whatever.
Caleb
00:33:39 – 00:33:42
And it's just Yeah.
LiveWire.
You know?
Aaron
00:33:42 – 00:33:51
It's no good.
I'm not getting there because Laravel is so big and has so much money that I don't feel sorry for Laravel at all if you do that.
Caleb
00:33:52 – 00:33:55
Yeah.
So I guess there you have to feel sorry.
Aaron
00:33:55 – 00:33:58
You have to feel, like, some sort of like, there has to
Caleb
00:33:58 – 00:33:59
be bad.
Aaron
00:33:59 – 00:34:07
What's the legal like, there has to be some sort of, like, you have to be injured.
And and there, I feel like there's no injury, you
Caleb
00:34:07 – 00:34:08
know?
Yeah.
Aaron
00:34:09 – 00:34:30
So it's something where like the wrapper subsumes the underlying library.
And like the only, you know, rounding to 0, the only way that people interact with the underlying library is through the wrapper.
Or even let's say it doesn't have to be all the way to 0.
Let's say 50% of your previous users are now users of wrapper.
Caleb
00:34:32 – 00:34:42
Yeah.
It's I mean, it's like the best heuristic.
I don't know if where this helps, and I've said it 12 times already.
The best heuristic for this is, are they on your docs, or are they on the wrapper docs?
That's what it is.
Aaron
00:34:42 – 00:34:47
Because that's There's gotta be something in the JavaScript world.
They're they they wrap everything all the time.
There's gotta be something over there.
Caleb
00:34:47 – 00:34:56
They wrap stuff.
What if there is there, like, a terminal thing?
Like, what's that terminal thing that I don't know?
Aaron
00:34:56 – 00:34:58
Like like, Iterm?
That kind of terminal thing?
Caleb
00:34:58 – 00:35:06
No.
No.
No.
No.
Like, I mean, not even as low level as I mean, there's, like, choceter and just choceter choceter or whatever.
Caleb
00:35:06 – 00:35:10
Like, tons of stuff is built right on top of choceter, but whatever.
That's that's kind of, like
Aaron
00:35:11 – 00:35:12
I've never heard that out loud.
That's insane.
Caleb
00:35:12 – 00:35:15
I know.
I've never said it out loud.
I don't know.
Aaron
00:35:15 – 00:35:15
It's crazy.
Caleb
00:35:15 – 00:35:26
But there's a there's a terminal, like, the TUI library that Mhmm.
That people like Joe Tanenbaum use.
Aaron
00:35:26 – 00:35:27
Right.
Caleb
00:35:27 – 00:35:39
And I'm positive if even maybe he has even wrapped it up, but, like, I don't know that that that kind of stuff is ripe for it.
It's like somebody does like some really insane technical feat
Aaron
00:35:39 – 00:35:39
Right.
Caleb
00:35:39 – 00:35:45
On the terminal, and then it's like you just freaking hop right on top of it.
But I don't know.
I can't think of an exact example.
So
Aaron
00:35:45 – 00:35:46
No.
I can't either.
Caleb
00:35:48 – 00:35:49
Yeah.
I don't know.
Aaron
00:35:49 – 00:35:52
So what are we trying to we're trying to find something that we both agree is bad.
Caleb
00:35:52 – 00:35:55
Yeah.
We're trying to find something we both agree is bad.
And I I give you talking
Aaron
00:35:55 – 00:35:57
about any of our friends.
Caleb
00:35:57 – 00:36:20
Which is right.
And those are all my examples is personal ones from my own life.
Right.
You know, and there, I think there are at least so I was really pissed off about lowland a while ago.
And I think we can talk about this one because there's, like, a statute of limitations on how long ago this was and how small and nobody cares.
Caleb
00:36:20 – 00:36:33
It's nothing.
Somebody wrapped so somebody took Alpine, and I don't know how if they used any of my source code or not, but they made a more limited feature set.
But it was basically Alpine.
Aaron
00:36:34 – 00:36:37
L o w l a n d?
D?
I can't find anything about this.
Caleb
00:36:37 – 00:37:06
Oh, I'm sure it's gone.
It's I don't think it's even I don't think it even exists because I told them that I was royally pissed, and they were fine about I mean, like, at the time we were actually friends and they listened to what I said and were, like like, didn't understand it, but were, like, okay.
I I guess I won't pursue this.
They didn't understand why I wouldn't want it to exist, but it it's essentially like Alpine.
You would install this thing and you would use XData and X on and all these things.
Caleb
00:37:06 – 00:37:23
It's just it was just a slightly more limited feature set.
It was lighter weight, like, so it didn't have as much of a footprint.
It probably made its own reactivity library in there to be even more lightweight or something, whatever.
And it was called lowland.
And it was very clearly like a like a pre act, you know?
Caleb
00:37:23 – 00:37:48
Mhmm.
Very clearly a pre act.
And I think under what we're talking about, I just wanna establish that I don't think any of what I'm trying to do would prohibit that even now because you're taking all the ideas, but you are at least doing the work, you know, which is sort of my definition of, like, good competition.
Yeah.
I feel like that one is just it's a secondary And how do you even police that?
Aaron
00:37:48 – 00:37:56
Yeah.
Right.
It's like I was inspired by your thing, and so I reimplemented it my way.
Yep.
Yeah.
Aaron
00:37:56 – 00:37:59
That's not that's that's no good.
That's not what we're talking about.
Caleb
00:37:59 – 00:38:02
Yeah.
Which is the windy
Aaron
00:38:02 – 00:38:03
of the wall.
Caleb
00:38:03 – 00:38:03
I'm yeah.
Aaron
00:38:03 – 00:38:07
Yeah.
Headless UI is meant to be wrapped, so there's nothing good there.
Caleb
00:38:07 – 00:38:16
It is meant to be wrapped.
Yeah.
They're and and they're so much of it is is, like, are they making their money from this thing?
You know?
Aaron
00:38:16 – 00:38:17
Yeah.
Caleb
00:38:17 – 00:38:32
Like, Adam's not making his money from headless UI.
He doesn't care if somebody else uses like, wraps it up and calls it Fredless UI.
It doesn't impact his bottom line.
And I think that's that's, like, the core thing behind this.
Like, we I don't know.
Caleb
00:38:32 – 00:38:40
I I know it doesn't help us answer these questions, but it's so important that, like, is visibility how you make money, you know?
Aaron
00:38:40 – 00:38:43
Right.
Is there is there damage done?
Right.
Caleb
00:38:43 – 00:39:01
It yes.
And and the mechanism by which that happens, of course, is then are they not on your docs?
Mhmm.
So, yeah.
And may maybe I mean, maybe because this question is so hard to answer and because I've we've already listed, like, things that are completely in different,
Aaron
00:39:01 – 00:39:02
you know that.
Caleb
00:39:03 – 00:39:05
It's just, like, impossible to do.
Aaron
00:39:05 – 00:39:27
Because, like so going back to the original FFmpeg rapper, that's just in my mind, pretty far on the good side of rappers.
FFmpeg is Yeah.
Enormous, to use, especially for a normie.
Yeah.
And they made a wrapper around it that does one specific thing in a good way.
Aaron
00:39:27 – 00:39:35
Yeah.
That feels good to me.
And FFmpeg is not gonna be damaged by that.
Right.
Caleb
00:39:35 – 00:39:49
It's FFmpeg is a great example of a good one that I similarly would be like, well, yeah, it's FFmpeg.
FFmpeg.
And, like, me me and Daniel were making that, the podcast editor thing or whatever.
Right.
Of course, using FFmpeg.
Caleb
00:39:49 – 00:39:50
You know?
Of course.
Aaron
00:39:50 – 00:39:52
Okay.
So we agree that that's a good one.
Caleb
00:39:52 – 00:39:53
Yes.
Aaron
00:39:53 – 00:40:01
That's clearly on the good side of the spectrum for both of us.
The bad side of the spectrum.
Oh, man.
Caleb
00:40:01 – 00:40:08
I mean, it's Yeah.
I mean, it would be
Aaron
00:40:08 – 00:40:22
anything that Amazon has wrapped?
Like, any of their, like, Elastic or Elasticsearch or anything like that?
Or, like, does MileySearch wrap anything?
I feel like they've probably implemented it all from scratch.
SQLite is from scratch.
Aaron
00:40:22 – 00:40:23
MySQL.
Caleb
00:40:24 – 00:40:28
What do you mean SQLite is from oh, like, the an alternative to MySQL, but from scratch?
Aaron
00:40:28 – 00:40:42
Yeah.
I'm trying to think of somebody that uses, like, something big as its engine and then adds some sort of flavor on top of it, but SQLite is its own thing.
All the databases are their own thing except for no.
Nope.
Nope.
Caleb
00:40:45 – 00:40:47
Yeah.
It and it's like
Aaron
00:40:47 – 00:40:48
This is tough.
Caleb
00:40:48 – 00:41:12
Iterating is, like, an important thing.
And if I if I had never been, like, burned by this, I would not have this moral, I don't think, and I would feel just, you know, like, well, we need to move forward.
It's all about progress.
Like, it's all about making the best thing and why would we want that hit.
All of this feels like old stuffy, like, you
Aaron
00:41:12 – 00:41:15
know, capitalist anti IBM.
Yeah.
Caleb
00:41:15 – 00:41:19
Yeah.
Like, anti competitive Microsofty crap.
You know?
Aaron
00:41:19 – 00:42:05
I think part of the hard part is, you have been burned, and we're dancing around that, and that makes it difficult.
It makes it difficult to, like, nail down specifics because we're trying to come up with examples that we can talk about freely and having a hard time.
Because I think the point is we're trying to find where the gradient changes from bad to good, and you're gonna be much you're gonna draw it much further out in that there will be a much bigger portion of bad on the because you are the underlying tool creator in many cases, and you have been burned by this before.
And so that changes the way in which you draw the gradient.
Caleb
00:42:06 – 00:42:23
So if I had made FFmpeg Uh-huh.
And yeah.
It that's a tricky example because it's such a niched down little tool.
It's not a total wrapper on FFmpeg.
But if I had made Radix, like, I let's just use that.
Caleb
00:42:23 – 00:42:53
If I had made Radix and Shad cn and Shad cn actually, like, does a decent job of you still end up on the Radix docs and stuff.
Like, when you because you own these components now, and you gotta, like, manipulate them and you do you use Radix to do that.
So it's not even the best example, but let's say that Radix has its or, like, React Aria.
They have React Spectrum, which is their component, like, on top.
So React Aria is, like, the bare metal headless stuff.
Aaron
00:42:54 – 00:42:54
Okay.
Caleb
00:42:54 – 00:43:20
And then I think React Spectrum or whatever, there's a layer on top now that's, like, here are styled components or, like, shoelace or something like that.
Yeah.
That that clearly they're, like, sort of, let's just say that I did this, and I'm sick of, like, people making these UI kits on all of my hard work by just throwing a few tailwind classes on it and calling it a day.
Yeah.
And then nobody goes to my doc site.
Caleb
00:43:20 – 00:43:28
I can't make money off my thing because the only people using me directly are really niche hardcore elite, you know, designers and developers.
Yeah.
But the masses like,
Aaron
00:43:28 – 00:43:33
the 4 the 4 people that are writing wrapper libraries are the people that go go to your docs.
Caleb
00:43:34 – 00:43:55
Exactly.
Right.
The people who give you the feature requests and send you the bug reports are the people harming you most.
It's all the people, like, just leeching off your work.
So if I had done that, like, and my income is based on that, do I have can is that bad?
Caleb
00:43:55 – 00:44:16
Like, is that bad rapping?
If I had made Radix and I depend on, you know, people being on my docs and using my button and accordion, And I just happen to open source the course so that people can easy more easily fix bugs and support from the community.
Mhmm.
But then somebody just takes all that that work and then makes a wrapper on it.
Is that bad?
Caleb
00:44:17 – 00:44:32
Yes.
So let's agree that if I had made Radix Mhmm.
And all of my income depended on people buying my buttons and accordions and selects Mhmm.
That ShadCN, with their thin wrapping, sprinkling in of different styles, different tailwind classes
Aaron
00:44:32 – 00:44:32
Yep.
Caleb
00:44:32 – 00:44:34
And now AI generation or whatever
Aaron
00:44:34 – 00:44:35
Mhmm.
Caleb
00:44:35 – 00:44:38
Is bad for me.
It's bad.
It's bad rapping.
Yes.
Agreed.
Caleb
00:44:38 – 00:44:52
Yes.
Is there a world it what could a license be that prohibits that?
And I also wanna, like it we're at 47 minutes, I think, and I told you 20 minutes.
So
Aaron
00:44:52 – 00:45:17
Yeah.
That's okay.
Well, let's both just pretend as if we're open source license experts, and I think maybe something like redistribution, like drawing a line between distributing it as an app.
So, like, anyone can distribute it as a part of a SaaS app or Right.
Open source app or whatever.
Aaron
00:45:18 – 00:45:22
But you cannot redistribute it as a library.
Caleb
00:45:23 – 00:45:30
Yeah.
Is that anything?
Right.
I mean, that's yeah.
That it's can you classify library?
Caleb
00:45:30 – 00:45:38
But, yeah, like, you cannot re because everybody knows what a rapper is.
It's like Yeah.
Yeah.
Yeah.
You know, how do you define rapper?
Caleb
00:45:38 – 00:45:56
And, yeah, it's like Mhmm.
But redistribution is an important word.
I think it's like preventing redistribution as, you know, does and it the thing is is it doesn't have to just prevent being paid for because the free stuff is just as harmful, You know, if not more harmful.
Aaron
00:45:57 – 00:46:12
Get Vercel throwing a $1,000,000 at Shad and, like, how are you gonna compete with a free open source fully funded wrapper when you're just the guy alone trying to compete?
Like Yeah.
You you can't.
Caleb
00:46:13 – 00:46:32
Yes.
I wanna like make this license and call it the, like, scrappers license or something.
Like it's for people who are trying to, like, honestly, like do a hard day's work and make, you know, and be a sustainable, developer who aren't funded in other ways.
The software is the way.
Mhmm.
Caleb
00:46:32 – 00:46:33
So yeah.
Aaron
00:46:33 – 00:46:39
I I like that.
We'll workshop the name, but I I like the idea.
Scrappers.
It doesn't move
Caleb
00:46:39 – 00:46:42
me.
Redistribution prevention clause
Aaron
00:46:42 – 00:46:44
that says The working man's license.
Caleb
00:46:45 – 00:46:54
It's the working man's license.
Yeah.
I think that's right.
Like, who is this license for?
It's for projects that are funded by the software.
Caleb
00:46:55 – 00:47:00
Mhmm.
Not elsewhere, you know?
And Gosh.
Aaron
00:47:01 – 00:47:05
Yeah.
Yeah.
That's just oh, man.
Caleb
00:47:05 – 00:47:14
If I make Radix, are you upset that I put this clause on it?
Like, why would you care?
You're only gonna use, like you have free access to it.
You know?
You can Correct.
Aaron
00:47:14 – 00:47:31
At that point, I'm not upset.
Yeah.
If if your open source license says you can use this for free in paid software and in open source software.
However, you cannot redistribute it, and I'm sure there's some sort of legal technical stuff.
Caleb
00:47:31 – 00:47:31
Right.
Right.
Aaron
00:47:31 – 00:47:47
But you can't redistribute it as a library.
I think I'm okay unless I'm like I don't know.
I feel like it could get murky around, like, themes.
Like, if I made a theme with Radix
Caleb
00:47:48 – 00:47:50
Like an app starter kit.
You know?
Aaron
00:47:50 – 00:47:53
Right.
Yeah.
Is that good or bad?
Yeah.
That Or, like, allowed or disallowed?
Caleb
00:47:54 – 00:48:15
Is gray area.
Yeah.
And I think it should be disallowed, but that's right.
It's, like, I guess, it's what is the core it I mean, this doesn't add any clarity to it, but a nuance is like it's what are you selling?
Alright.
Caleb
00:48:15 – 00:48:16
Dude, it's the docs, man.
Aaron
00:48:17 – 00:48:19
Just the docs.
You want people on your doc.
Caleb
00:48:19 – 00:48:35
And in with the starter kit thing, that can go both ways.
It can be like it it can there could be there are 2 different starter kits.
There's one that is, like, this is the the app kit.
You know?
Mhmm.
Caleb
00:48:35 – 00:49:03
And you go here to learn how to change all the different button variants, whatever, and then we're just back to it being a library again.
You know what I mean?
But if it's like, here is an ecommerce SaaS app that's turnkey and out of the box, yes, it can totally use this.
And maybe it's best to start really conservative and just, like, find something defined to cut out even if it you know, making it more conservative so that it's, like, less dangerous.
You know?
Aaron
00:49:05 – 00:49:16
Didn't you have an episode at some point recently?
It's like about solving the problem or, like, eliminating the prob eliminate the problem, don't solve the problem.
Right?
Caleb
00:49:17 – 00:49:17
Yes.
Aaron
00:49:18 – 00:49:19
Didn't you do an episode?
Caleb
00:49:19 – 00:49:19
I did.
Aaron
00:49:19 – 00:49:27
Is there a way to just eliminate this problem?
I would.
Yeah.
Just be rich, and then it doesn't matter?
Does that eliminate the problem?
Caleb
00:49:27 – 00:49:50
Yeah.
It's just hard to sit eliminate I mean, totally.
There are ways around this problem.
Like, if I am creating Shad and Radix, I could I could not open source the radix part.
It could just be shad, and I could charge for it.
Caleb
00:49:50 – 00:50:00
And now it is a app UI kit that you pay for, and you download this code in your project.
Now nobody's gonna wrap me.
I'm not worried about it at all.
You.
Aaron
00:50:00 – 00:50:04
You don't have you you honestly don't even care if people come to your docs because they're paying you for it.
Caleb
00:50:04 – 00:50:23
They're paying me for it.
Who cares what you do with it?
But, yeah, it's like, wouldn't it's just the worst world.
The much better world is that it's, like, totally free, and you can frolic and play with it.
And then if you wanna buy an extra template, you give me a $100, and then I I make money.
Caleb
00:50:23 – 00:50:28
But, yeah, I mean, a way to remove the problem is just charge for the freaking software, you know.
Aaron
00:50:28 – 00:50:52
Yeah.
And, you know, that's not crazy.
I think I think the hard part is, wanting to have it all, which is, trust me, is the hard part.
But I think, like, wanting to have it all in terms of it being open source and you get the benefit of people helping and you get free built in distribution, because it's like, everybody go use it.
It's free.
Aaron
00:50:52 – 00:51:13
But also wanting, like, trying to use it as your stream of income.
That feels like trying to have it all.
Like, you could have it open source and have a ton of people use it and potentially rep you, or you could charge and it be closed source and potentially make money with less distribution.
And maybe, like, maybe Catalyst maybe Tailwind's Catalyst is, like That's
Caleb
00:51:13 – 00:51:17
a great example.
To that.
Right.
It's, like, everybody uses shad.
Nobody's using Catalyst.
Aaron
00:51:17 – 00:51:19
Nobody's using Catalyst.
Caleb
00:51:19 – 00:51:28
Because they they charge for it.
So Because they charge for it.
Exactly.
So it's like okay.
Where if Catalyst was free and open source
Aaron
00:51:28 – 00:51:29
Mhmm.
Caleb
00:51:29 – 00:51:43
And better than shad Mhmm.
Which design wise, I think, hands down, Catalyst is gorgeous.
And there's so many things about Catalyst that are just premium compared to shad.
Right.
So doesn't matter.
Caleb
00:51:43 – 00:51:59
Right.
Let's just say let's just say that it is an equal footing, like, free open source wise.
Now it's super popular and tailwind.
Right.
I mean, they could, in theory, make money off of extra things.
Caleb
00:51:59 – 00:52:10
You know, they are the Vercel now benefiting from this thing.
Right.
So why don't they make it free and open source?
Probably because it takes so much work to maintain that it's, like, why would
Aaron
00:52:10 – 00:52:10
they
Caleb
00:52:11 – 00:52:13
Yeah.
Did I say anything?
Aaron
00:52:14 – 00:52:42
You said everything.
I don't know if we got anywhere.
But, yeah, I I agree that that is, like, that is potentially what you're facing if you make it closed and paid Is you'll have a niche group of people that are potentially very excited.
Yeah.
And then you'll have somebody, with way more time than you that doesn't need money, and that's the hard part is there are people out there that don't need money Totally.
Aaron
00:52:42 – 00:52:56
That's gonna look at your thing and be like, oh, that's a great idea.
We should do an open source first.
And then it's kinda like game over.
Even even post hoc.
Like, you know, Catalyst came out after Shad, and so it was fighting an uphill battle from the beginning.
Aaron
00:52:56 – 00:52:59
Right.
But if somebody looks at your thing and then goes and makes an open source version
Caleb
00:52:59 – 00:53:00
of Nova and Filament.
Aaron
00:53:00 – 00:53:03
You could still you could still lose.
It's Nova
Caleb
00:53:03 – 00:53:09
and Filament.
Yeah.
Nova and Filament is a great example.
So is this just the the game?
And it's like
Aaron
00:53:10 – 00:53:11
That is the question.
Yeah.
Caleb
00:53:11 – 00:53:26
And it's like, man and I always come back to this that it's like, if this is the game and I don't want to do that Right.
Does that mean that I have to stop playing the game, or can't I just set a bunch of rules for myself to play in even if you hate them?
So what?
Aaron
00:53:26 – 00:53:31
Like 100% can and should set your own rules even if people hate them.
Caleb
00:53:31 – 00:53:39
Right.
Yeah.
And I'm always flip flopping back and forth on because it is so much easier to just be, like, here's something that's free and open.
Use it.
Love it.
Caleb
00:53:39 – 00:53:41
Buy my stuff.
You know?
Aaron
00:53:41 – 00:53:48
Yeah.
And, like, it'll come back to me somehow.
Exactly.
But yeah.
If if it never comes back because everybody's like, oh, I'm not using Caleb's thing.
Aaron
00:53:48 – 00:53:53
I'm using Caleb Prime.
And you're like, no.
No.
Caleb Prime uses Caleb under the hood.
Yeah.
Aaron
00:53:53 – 00:53:55
Yeah.
You lose.
It's game over.
Caleb
00:53:55 – 00:54:08
Yeah.
Really tough.
So, yeah, maybe I should you know, content is nice in that way.
Although you do have, you know, you have reaction videos to deal with, but content is is nice.
Aaron
00:54:08 – 00:54:10
It's much easier.
It's much it's much easier.
Caleb
00:54:10 – 00:54:25
Even the content that I make and sell, it's like and I have no worries if somebody makes similar content.
Like, I don't know.
It's like people like my content and they buy my content.
They can buy 2 people's content in the same day, and they're they're happy to do it.
The more the merrier.
Caleb
00:54:25 – 00:54:28
But this freaking software, man, it's not that way.
Aaron
00:54:28 – 00:54:41
I wonder I don't know if it's tenable because you are but one man.
Taking the air out of the room is is a viable strategy.
So you come out with the thing and the wrapper for the thing.
Caleb
00:54:42 – 00:54:56
Right.
That's yeah.
That yes.
Yeah.
So if I'm creating a better shad and Radix
Aaron
00:54:57 – 00:54:58
Mhmm.
Caleb
00:54:58 – 00:55:07
And launch it, now, you know, we're cooking.
It's just hard to make a better shad out of gate.
You know?
Aaron
00:55:08 – 00:55:18
Yes.
But if you give the community the place where they can apply their effort, then, potentially, you become the coalescing point.
Caleb
00:55:18 – 00:55:38
Yeah.
You have to that's so huge.
You have to provide the space for people, and this is that community aspect that I kinda suck at because I'm not one to spend time in Discord and stuff.
Mhmm.
But and I've I've just it's been my experience that if the leader's not in on the community, nobody's in the community.
Aaron
00:55:38 – 00:55:39
Right.
Caleb
00:55:39 – 00:55:54
But, yeah, if there was, like let's say I launch something and it's like, I start a Discord or whatever, and it's just come on, come all this excitement around it.
And it's like, we'll build your thing here.
And you know what I mean?
Yes.
Community is huge.
Caleb
00:55:54 – 00:55:55
That's a way
Aaron
00:55:55 – 00:56:13
to Or or even scale it scale it down.
And let's say, you're launching you're launching, you're you're launching headless UI, or I I just don't know enough about Radix to speak intelligently to it.
You're you're launching headless essentially.
Is it headless UI?
Okay.
Aaron
00:56:13 – 00:56:24
So you're launching you're launching, Radix.
And then maybe the tanstack guy, maybe he's a good example of this.
Like, he's got tan table or whatever it's called.
Who knows?
It's all tan.
Aaron
00:56:25 – 00:56:53
And then he's got tan table view, tan table react, tan table whatever the other ones are.
Who can say?
But, like, even if you come out of the gate with repos for Caleb and, Caleb Prime Vue, Caleb Prime React, if this applies, I don't know, Caleb prime, Astro.
Then you have like a place where people can look at it and say, oh I wanna use Caleb's new thing in view.
Oh, there exists a repo.
Aaron
00:56:53 – 00:57:03
It doesn't even have to be a Discord.
There exists a repo where that has begun.
I will push my efforts there instead of saying, hey, all the Vue guys, let's get together and wrap Caleb's thing for our library.
Caleb
00:57:03 – 00:57:16
Yeah.
Right.
It that is it.
It's very tricky.
It's tricky to do because it's sort of a land grab and nobody likes it when, like, when somebody grabs land and doesn't do anything with it.
Caleb
00:57:16 – 00:57:36
That's where it's hard.
It's like, because those tan the tan sack guy has to now be invested in that view thing and has to decide what PRs to merge and what not to care about it.
And potentially it's a better world where somebody makes their own thing called tanstack view.
And they can that's all they care about.
You know, it's better for the end user.
Caleb
00:57:37 – 00:57:50
But it's, yeah.
So that's a tricky thing.
But you're right.
Like that is sort of a way to do it.
It's like the tan stack or like, you know, whatever you come out of the gate with the stuff that is gonna be competing with you.
Caleb
00:57:53 – 00:58:26
Yeah.
So I don't know.
I I I wish, this is all on a search to have an easy it's all about having an easy life.
And if could just find a a principle to have that even if I felt bad about some of the effects of it, if I could point back to it and remind myself that this is your like, with the content creation, I used to, like, be a little weird about content creation and even things like like Jeffrey out of honor didn't do anything livewire related and let me do what I wanted or related on Laracast.
He didn't publish any Laracast content because he knew that that was a way and shout out to Jeffree Man.
Caleb
00:58:26 – 00:58:47
Like, he is somebody who thinks that way and understands those things and has principles.
Like, that is a man with principles.
And I felt that way.
But then I realized that, like, truthfully, it raises all boats.
If like people aren't gonna stop buying my thing, they're just gonna be using Livewire more.
Caleb
00:58:47 – 00:59:05
And that benefits me in other ways too.
So like, right.
So there was a defined shift where I realized that, and now it's, like, everybody go make Livewire content.
I will retweet you over and over.
Team code course, you're making, you know, projects that I'm literally making and selling to.
Caleb
00:59:05 – 00:59:22
I'm retweeting you and shouting you out, and it has made my life so much better.
I just want to feel good.
And I haven't come to that same conclusion with rappers, because they're exclusive.
You're not using 2 frameworks.
Yeah.
Caleb
00:59:22 – 00:59:22
You know?
Aaron
00:59:22 – 00:59:41
Yeah.
Yeah.
I think I I think the crux of the argument comes down to damages.
And so if, like, you, not to diminish, rap Laravel.
Right?
Aaron
00:59:41 – 00:59:42
That's a good analogy.
Caleb
00:59:42 – 00:59:44
I don't rap Laravel.
Aaron
00:59:44 – 00:59:47
You do you you live on top of Laravel.
Caleb
00:59:47 – 00:59:56
From your Laravel app no.
I do not rap Laravel, Aaron.
From your Laravel app, you install LiveWire.
The yeah.
You use Blade.
Caleb
00:59:56 – 01:00:12
It's not a proprietary or custom template engine at all.
It's completely a Laravel plug in.
Yep.
You use models.
You know, in every way, you are in a Laravel app.
Caleb
01:00:12 – 01:00:17
You go to Laracon.
Your it adds to your excitement about Laravel.
Aaron
01:00:19 – 01:00:41
So let's let's say this then.
Imagine because I'm I think I think moving so I think we have been talking about it as if the problem is at the wrapper stage, but I think the problem's at the income stage.
Do you care if you get wrapped if you're still making a ton of money off your projects?
Caleb
01:00:42 – 01:00:59
Interesting.
I mean, well, it's it's hard because it's always relative.
It's like, yeah, I'm making a ton of money, but because I'm making that money, I'm hiring people and scaling up, and now I could be making much more and scaling up even further or something.
You know what I mean?
I don't think it's as, like, simple as as that.
Aaron
01:00:59 – 01:01:01
I don't follow that.
Say that again.
Caleb
01:01:01 – 01:01:16
So, like, there's no there's no turning point where now you're making a ton of money and you don't care.
Because, like, if I made more money, I would hire people so that I could do less and do more.
Like, whatever.
I could I would hire people so that Okay.
The LiveWear ship could do even more.
Caleb
01:01:16 – 01:01:17
You know what I mean?
Aaron
01:01:18 – 01:01:23
Okay.
I I agree with that.
I don't know that that is I don't know if
Caleb
01:01:23 – 01:01:35
that is wrong.
Think there's a scale where I stop being pissed off if somebody reduces my income and optionality, you know, off of my work.
Aaron
01:01:36 – 01:01:44
Right.
And I'm saying, what if that what if those things weren't correlated?
So let's say you make x now
Caleb
01:01:44 – 01:01:44
Yeah.
Aaron
01:01:44 – 01:01:56
Which is objectively true.
You make x.
Let's say that somebody wraps you completely up tomorrow Yeah.
And somehow you make 2 x off of that.
Are you happy?
Caleb
01:01:57 – 01:01:59
Oh, yes.
Totally.
Okay.
Aaron
01:01:59 – 01:02:02
So it's not the rapping.
It's the it's the damage.
Caleb
01:02:02 – 01:02:16
Yeah.
I guess I mean, I'd have to think about it and make sure that, like, I wouldn't care about, like, showing up at a conference and people, like, being, like like, oh, wow.
You have, like, a high pedigree.
Like, you you did this good thing where in the other world, it's like, who are you?
But yeah, no.
Caleb
01:02:16 – 01:02:20
It's you're right to say that it is it is much more about income.
Aaron
01:02:21 – 01:02:25
So this is this is that's solve the problem.
Remove remove the problem.
Like
Caleb
01:02:25 – 01:02:27
And I make the best product and the most money.
Aaron
01:02:27 – 01:02:36
If the income was removed from the eyeballs, then you don't care about the eyeballs, in which case you don't care about being wrapped.
Caleb
01:02:36 – 01:02:46
No.
It it's tricky because let's just say when I was, like before I even started putting my sights on money for this stuff Mhmm.
It was about exposure.
You know?
Mhmm.
Caleb
01:02:46 – 01:02:46
You know?
Aaron
01:02:46 – 01:02:48
Which is pre money.
Caleb
01:02:49 – 01:02:53
Yeah.
It's opportunity.
Yeah.
Yep.
It's yeah.
Caleb
01:02:53 – 01:03:22
So, yeah, money is a tricky thing to say in this realm because there are plenty of worlds where the money doesn't matter, but exposure is the same thing as money.
And that's why I like the word optionality that you use.
That's like because it encompasses, you can convert that into money.
Yeah.
Or you can convert it into Goodwill or you can convert it into, fame.
Aaron
01:03:24 – 01:03:31
So here's here's something.
Tell me how you would feel.
I'm gonna lay out a scenario.
Tell me how you would feel.
This is, you are now the creator of SQLite.
Aaron
01:03:32 – 01:03:39
Your name is Richard d Hipp.
You created SQLite in early 2000, and you've been working on it ever since.
Caleb
01:03:39 – 01:03:39
Yeah.
Aaron
01:03:40 – 01:03:52
AT and T, previously Motorola, Apple, they pay your company, totaling $10,000,000 a year in revenue to SQLite Inc.
Caleb
01:03:53 – 01:03:53
Yep.
Aaron
01:03:54 – 01:04:08
There are 3 people who work on it.
You personally take home 3, 4, $5,000,000.
Then, Terso comes around and says, hey.
We're gonna put SQLite in the cloud.
Yeah.
Caleb
01:04:08 – 01:04:21
How do you feel, Richard?
I make less money.
Right?
Because everybody will start using Terso and stop using the people that are forwarding me money.
Right?
Aaron
01:04:22 – 01:04:29
Maybe.
I doubt Apple, Google, Nokia, Motorola.
Like, these people that are using SQLite, I doubt that they're gonna use SQLite.
Caleb
01:04:29 – 01:04:30
Right.
Right.
Right.
Okay.
Right.
Caleb
01:04:30 – 01:04:37
I I got that, the premise.
So yeah.
Sure.
Love it.
Especially Love it.
Aaron
01:04:37 – 01:04:37
Right?
Caleb
01:04:37 – 01:04:40
They're saying the word SQLite.
That matters a ton.
Aaron
01:04:40 – 01:04:45
Like, do you just keep coming back to that?
So maybe that is the problem.
Yes.
Maybe you're saying
Caleb
01:04:45 – 01:04:46
It's brand
Aaron
01:04:46 – 01:04:59
wrapping.
Maybe you're saying that maybe I'm saying that you're saying that money is the problem, but you're saying obscurity is the problem.
Caleb
01:04:59 – 01:05:02
Obscurity is the problem.
Yes.
So it
Aaron
01:05:02 – 01:05:07
was a it was a false line of, reasoning I was going down.
Obscurity is the problem.
Caleb
01:05:07 – 01:05:11
Yes.
Obscurity is the problem.
Aaron
01:05:11 – 01:05:23
So if Apple, Microsoft, Nokia, Motorola, Palm Pilot all paid you $5,000,000 a year and you were a nobody and nobody ever knew the name Richard DeHipp Yeah.
That wouldn't feel great.
Caleb
01:05:23 – 01:05:32
Oh, no.
That's fine.
That's a different that's a different that feels great because you're selling somebody's software.
You're getting all the
Aaron
01:05:34 – 01:05:43
money.
Right.
But then, Terso still exists.
So the scenarios still is entire, but they don't say the light and turned it into Lib SQL.
They don't use SQLite.
Caleb
01:05:43 – 01:06:04
They use Lib SQL.
Right.
So they let's say, right, this totally tangential arrangement where they're wrapping me and calling it Lib sequel or whatever.
I'm already making a great wage selling the software, which is interesting because now that they forked it, whatever it that means it would be like open source where Apple wouldn't have to pay me.
So it's, like, kind of
Aaron
01:06:05 – 01:06:09
seem is already open source.
I think that's part of the point.
Is SQLite is already open source.
Caleb
01:06:09 – 01:06:10
Why would Apple pay
Aaron
01:06:11 – 01:06:30
exactly for SQLite?
They pay him for support, but they also pay him for private test cases.
They pay him, like, selling the selling the SQLite test suite is actually a big portion of their income.
It's a private thing that they sell to other people who are implementing the SQL standard, which is really interesting.
Caleb
01:06:30 – 01:06:31
That's cool.
Aaron
01:06:31 – 01:06:38
But, yeah, they they pay him for consulting.
They pay him for maybe specific licensing.
That I don't know.
Caleb
01:06:39 – 01:07:04
Yeah.
So this is, slightly different.
But I, I don't think I want somebody to fork my project because it is a potential path to them getting so big and ubiquitous in their freeness, and they already are stepping on my shoulders, so they have all of my goodness.
And then eventually, it's so ubiquitous, The new employee is getting hired up.
Wait.
Caleb
01:07:04 – 01:07:12
Why are we using sequel that antiquated SQLite?
Like, everybody's using Lib SQL.
You know?
Mhmm.
And then word gets out, and then eventually, it's like and we don't have to pay them for that.
Caleb
01:07:12 – 01:07:20
Or or they have their own test suite offering.
Let's use that.
So, yes, it's a it's an attack vector that does not I do not approve of.
Aaron
01:07:20 – 01:07:21
You do not approve of.
Caleb
01:07:21 – 01:07:36
It's a leak.
Do you know what I'm saying?
I would feel bad about that.
Even if Apple was paying me 10 mil, somebody wrapped it because it that just means it's like I'm temporarily the king, but Mhmm.
I will be dethroned, eventually.
Caleb
01:07:36 – 01:07:37
So
Aaron
01:07:37 – 01:07:53
yeah.
So this is instructive because I don't think that figuring out how to make money in spite of rappers is that important anymore because it's not necessarily the money that you care about.
Caleb
01:07:53 – 01:08:01
Yeah.
Right.
It's it's the optionality.
It's the representation.
You know, that's what it is.
Caleb
01:08:01 – 01:08:08
It's like, is my project being represented for the work and the contribution that it made?
Right.
Then I'm good.
Aaron
01:08:10 – 01:08:23
Yeah.
So Then I think you have to institute rules that are gonna make you happy because you can't, like, you can't eliminate the problem by just making more money regardless of who wraps it because that's not what you want.
That's not what you're after.
Caleb
01:08:23 – 01:08:45
Yep.
Yep.
It's true.
But it's so silly because it's like, I want everything that it is.
I want 99% of what open source has been for me, which is sharing software, community contributions, people using software and benefiting from it for free and making more money than they and then occasionally supporting me independently.
Caleb
01:08:45 – 01:09:22
And it's this wonderful harmony land that so far is how open source feels to me.
Yep.
But there are there's these gaps, these, exceptions that are technically possible, these loopholes per se.
They're not loopholes, but these things that are allowed that take that bring all that to its knees.
And it's like, well, if this isn't even how we're all using open source anyway, then can we just plug up that leak so that I don't do something that's not beneficial for everybody, like charge for the software?
Caleb
01:09:22 – 01:09:23
You know?
Mhmm.
It's like
Aaron
01:09:24 – 01:09:25
Okay.
So here's my ruling.
Caleb
01:09:26 – 01:09:28
Yeah.
I think charging for
Aaron
01:09:28 – 01:09:29
the software is a bad move.
I agree.
Caleb
01:09:29 – 01:09:30
Yeah.
It's I
Aaron
01:09:30 – 01:09:42
think you're you're gonna you're gonna hamstring yourself out of the gate.
Somebody's gonna look at it, say, neat idea.
Let me get me and my dumb friends together and spend all of our one wild lives building this for
Caleb
01:09:42 – 01:09:44
free just to take you out.
Yeah.
You can.
Aaron
01:09:44 – 01:10:11
So I think that's a nonstarter.
I think we have, landed on the reality that you want to preserve optionality.
And in a concrete sense, that means the, the Caleb brand being forefront slash, the eyeballs landing on a Caleb Porzio property.
Yep.
Does all that seem right so far?
Caleb
01:10:11 – 01:10:18
Yep.
Gotta be.
And it and it has nothing to do I mean, my name doesn't, but I know you're using that as a thing.
Aaron
01:10:18 – 01:10:22
Don't know the name.
Oh, actually, we do know the name.
Flux.
Yeah.
You you tweeted the name.
Aaron
01:10:22 – 01:10:41
So, you want, you want the Flux brand to be visible and you want, eyeballs landing on you have many brands.
So in this case a Caleb Porzio property, whether that's Flux or Livewire or Alpine.
That's where you want the eyeballs to end up.
Yeah.
Okay?
Aaron
01:10:42 – 01:11:19
So no paid.
You want the eyeballs on something you own, and you want the brand to be a brand and not just an implementation.
This to me, here's here's what I think.
I think you need to have, a different license because vibes are not enforceable.
As much as as much as you and I, you know, men of duty and honor, as much as we want, like, everyone does the right thing, it's just not gonna happen.
Aaron
01:11:19 – 01:11:44
And so that's reality.
So I think you need a new and different license.
And here's here's what I think could be really interesting is, sanctioned rappers where the docs live on, okay, La Porteo property.
So, like, to prevent the fact that you don't wanna get into Astro or Svelte or or not even want to.
You don't have enough time.
Aaron
01:11:44 – 01:12:11
Right.
You don't have enough time to get into all of those things.
Is it possible that you you sanction one implementation and all of those docs still live on your site.
Like, it's a free open source thing, this this wrapper, and other people can work on it, but all of the optionality still accrues to you.
Caleb
01:12:11 – 01:12:33
Yeah.
I mean, that's a tricky one.
It's tricky.
And and more what I'm concerned with is, like like, if if I was Taylor and flux is Laravel and then there's symphony, like, if he wrote both of those and then, you know, like statimec and all these other, like, framework type things.
If he launched both of those and all these other frameworks
Aaron
01:12:33 – 01:12:37
Which ones?
He's launched launching Laravel
Caleb
01:12:37 – 01:12:38
and Symphony at the same time.
Okay.
Aaron
01:12:38 – 01:12:39
Mhmm.
Caleb
01:12:39 – 01:13:02
And if it was just if Symphony was just part of Laravel, then everything would be fine.
You know?
I would maybe, like, Nova is a good I just I wish we could use the freaking examples.
But it what I'm saying is I don't care so much about Flux.
I care about what's under its hood.
Caleb
01:13:03 – 01:13:11
I want it to be open source.
What's under Flux's hood?
So that we can Is Flux a wrapper around the thing that you really care about?
Aaron
01:13:11 – 01:13:16
Yes.
Like, flex is using the engine that you really care about.
Caleb
01:13:16 – 01:13:28
Yes.
It is.
Boy.
And it's thin enough.
Like, most of the work that I've done, at least 50% in the last 8 months, is for the engine.
Caleb
01:13:31 – 01:13:56
And I am just nervous that if I open source this engine independently that I so want to, that, direct competition will just use the engine, and it will propel them even all of the things that I show, like, when I show Flux and I go, it can do this, and everybody goes, and it's, like, totally a leg up on direct competitors.
Aaron
01:13:57 – 01:13:57
Mhmm.
Caleb
01:13:58 – 01:14:17
That part is open source.
I put all that hard stuff in this thing, so they can just take that thing and go, oh, inversion schmeckle, we have that now too.
It's like, oh, freaking great.
You know?
So I don't know, Aaron.
Caleb
01:14:17 – 01:14:24
What if I put a, a vibes clause?
What if I put a vibe a vibe since in
Aaron
01:14:25 – 01:14:28
it's like nobody's ever going to use it in real projects?
Caleb
01:14:29 – 01:14:44
Like what if it literally totally MIT license, but in the read me there's, like, literally a a vibes document.
And it just says just says, like Unenforceable.
Totally.
Completely unenforceable.
Aaron
01:14:45 – 01:14:46
Then it's moot.
Caleb
01:14:46 – 01:14:49
No.
We'll entertain this.
That I literally I
Aaron
01:14:49 – 01:14:52
will entertain.
I will steal manna.
Go on.
I pitch.
Caleb
01:14:52 – 01:15:10
I just give a pitch.
Totally unenforceable.
You can ignore it.
But it is me expressing that it is me expressing what I would have you do, and that is use it and enjoy it, create tools around it, but don't wrap it.
Mhmm.
Caleb
01:15:10 – 01:15:25
And that's it.
And then if somebody does, they there's at least something that exists that somebody can say, hey, this kind of violates Caleb's wishes, you know?
Mhmm.
I don't know.
Is it worse than nothing?
Caleb
01:15:25 – 01:15:28
Yep.
Really?
It is.
I really do.
Bad.
Aaron
01:15:28 – 01:15:32
Because I I real here's what I think is gonna happen.
You're gonna get tons of questions.
Caleb
01:15:33 – 01:15:34
Yeah.
Right.
Aaron
01:15:34 – 01:15:52
So you're gonna be inundated with support of, like, hey.
I know it says don't wrap it, but I wanna wrap it.
And you're like, well, so you're gonna get a bunch of support from the good guys.
And then the not so good guys are just gonna be like, it's not really a rapper.
I've added so much on top.
Aaron
01:15:52 – 01:15:53
Right.
Caleb
01:15:53 – 01:15:53
That is
Aaron
01:15:53 – 01:16:12
And it's like, well, dude, it's still a rapper.
And they're gonna be like, no.
It's not a rapper.
So nobody I don't think anybody's gonna be dumb enough to say, I read the vibes clause, and I'm just gonna I'm gonna go against I think everyone is gonna say, I read the vibes clause and it doesn't apply to me for this particular reason.
And it's like, well, now we're just, like, now we're just mad at each other.
Aaron
01:16:13 – 01:16:24
Because now I'm holding you to an unenforceable standard.
And I'm asking you to see it my way.
And you're telling me I do see it your way.
We just disagree on what this text says.
It's like,
Caleb
01:16:24 – 01:16:25
what do we do?
Yeah.
Aaron
01:16:25 – 01:16:27
Yeah.
That feels bad.
Caleb
01:16:27 – 01:16:37
Yeah.
Well, I at least I like your point about removing the problem, I think, because, I mean, if there's anything to take away from this, it's that it's not an easy thing to solve because you can't define any of this
Aaron
01:16:37 – 01:16:37
because nobody agrees on any of it, and you can't
Caleb
01:16:37 – 01:16:54
define any of it clearly.
Agrees on any of it and you can't define any of it clearly.
I do believe I can do whatever I want.
And I, so there is a world where I do something dumb, but it at least saves me from it at least solves this problem, but introduces 10 other ones.
Yeah.
Caleb
01:16:55 – 01:17:11
And, Yeah.
Ideally, I remove the problem altogether.
This is not an easy thing to do, but I just don't wanna live in a world I want to live in the world where I go wrap it up.
It's in the license.
Or I say, like, how could I feel bad?
Caleb
01:17:12 – 01:17:15
All the stuff I didn't want wrapped up, I put in the other license.
Aaron
01:17:15 – 01:17:15
Mhmm.
Caleb
01:17:15 – 01:17:21
It's just that world doesn't exist right now.
So if that can exist, I'm still gonna look for it.
Aaron
01:17:21 – 01:17:32
I think we need to figure out the first thing about open source licenses.
I know nothing.
And so this might, you know, this might already exist in some shape or form.
Caleb
01:17:32 – 01:18:09
I mean, there's copy left, which is, like, something that is like, it's kinda bizarre actually that MIT exists.
Like, copy left, I forget what, what it's called, but copy left is, like, when if this thing this thing is open source and you can use it freely in your thing, but your thing is open source, which I think Linux is copy left or what it's but UNIX is cut maybe UNIX can't be copy left, but whatever.
This is a unlike old days thing.
Right.
And it just means that this license will propagate through every work
Aaron
01:18:09 – 01:18:11
Yeah.
That uses it.
Poisons everything.
Caleb
01:18:11 – 01:18:16
It poisons everything, and the poison is that your thing has to be free and open source.
Aaron
01:18:17 – 01:18:22
Doesn't help that doesn't help you because you'll just get crushed by some free open source thing Right.
That's
Caleb
01:18:22 – 01:18:28
so the reason that this so I guess this I am copy left in spirit, maybe.
Aaron
01:18:28 – 01:18:29
Mhmm.
Caleb
01:18:29 – 01:18:43
But they're talking about money, and I'm talking about optionality Right.
Right.
Right.
Which is bigger concept than money.
But I'm looking for something like copy left that's like, I have a spirit of openness.
Caleb
01:18:43 – 01:18:50
I'm trying to share this with you for free and create the best thing that we can create.
I just don't want
Aaron
01:18:50 – 01:18:51
you you to stab me in the face.
Caleb
01:18:51 – 01:19:02
I don't want you to stab me in the face.
That's what it is.
But, man, with MIT, it's, like, crazy.
It's, like, it's so funny that we all default to this thing Mhmm.
Where, like I will stab you in
Aaron
01:19:02 – 01:19:03
the face, and you will like it.
Yeah.
Caleb
01:19:03 – 01:19:16
Take my work and charge for it.
Take my work and just put a credit card processor in front of it.
Yeah.
And don't even say my name.
You know?
Aaron
01:19:16 – 01:19:33
Yeah.
And I'm I'm like, I don't know if this makes me like a a a robber baron or like a ruthless capitalist, but when I see, like, AWS taking Redis and being like, well, it's open source.
Now we're gonna do a hosted version of it and make a ton of money.
I'm, like, what did you guys expect?
You made
Caleb
01:19:33 – 01:19:34
it open source.
Aaron
01:19:34 – 01:19:36
Yeah.
Right.
What did you expect?
Caleb
01:19:36 – 01:19:36
You
Aaron
01:19:36 – 01:19:45
can't be mad.
Like, those are the rules.
You made the rules.
They played by it, and they outboxed you.
And I'm like, yeah.
Aaron
01:19:45 – 01:19:47
Well, it sucks.
So that makes
Caleb
01:19:47 – 01:19:51
me Okay.
So maybe the ultimate no.
No.
No.
It's everything's on the table.
Caleb
01:19:51 – 01:20:16
The ultimate is the problem with the outfoxing, Erin.
The the all these problems arise because I I feel bad when somebody it takes the winds out of my sails when I put hard work into something and I have something an innovation.
That's why I don't share that much stuff.
Mhmm.
Because when I have innovations, I don't even wanna share them because they're just gonna get scooped, which is whatever.
Caleb
01:20:17 – 01:20:27
That mentality, because I have that mentality, I've developed these principles, and because I have these principles, I will not violate them even though everybody else violates them.
Mhmm.
Aaron
01:20:27 – 01:20:31
So it's a bummer because You're playing from behind.
Caleb
01:20:31 – 01:20:46
Exactly.
So I can't be the outfox where if I want to be the the AWS and just, like, whatever, that's the game, Redis.
You should've known.
You should've had your own, you know, thing and be like Redis it I don't know.
Okay.
Caleb
01:20:46 – 01:20:56
What I'm saying is maybe a solution here is to just go, we can scoop each other.
And if you're gonna scoop me, I'll scoop you harder.
You know?
Aaron
01:20:57 – 01:20:58
Which Yeah.
Caleb
01:20:58 – 01:20:59
Like
Aaron
01:20:59 – 01:21:15
I mean I mean yeah.
Like, there's something right about following the rules that is hard to be it's just hard to be mad about.
But, yeah.
If I get it that, like, until
Caleb
01:21:16 – 01:21:23
Well, it's it is and it's not.
Like, you have so many principles that you, you know, like, propagate through Twitter and That
Aaron
01:21:23 – 01:21:25
are not codified.
Yes.
Caleb
01:21:25 – 01:21:30
That are not, you know, codified.
And and you're not like, well, we're in the rules.
You know?
It's like Yeah.
You're you're like, no.
Caleb
01:21:30 – 01:21:37
Like, you know, what's a what's a core principle of yours that you preach about that you like low key shame other people for?
Aaron
01:21:37 – 01:21:40
I'm just using that word.
It's better to be optimistic than cynical.
Caleb
01:21:40 – 01:21:54
Yeah.
Is there one that that, like, that you're mad at some okay.
Like, yeah, people well, I don't know.
Is there an act something something that people do on the Internet that didn't I, like, reply to something the other day?
I don't know.
Caleb
01:21:54 – 01:21:55
You know, something
Aaron
01:21:55 – 01:21:56
like Oh, you did.
Caleb
01:21:57 – 01:21:58
Like, you had some
Aaron
01:21:58 – 01:21:59
memes.
Oh, memes.
Caleb
01:22:00 – 01:22:01
Right.
Yes.
You're like
Aaron
01:22:01 – 01:22:02
To annoy the bejeezers.
Caleb
01:22:02 – 01:22:04
People doing meme ing is bad.
Aaron
01:22:05 – 01:22:07
You know?
Well, that's reductive, but sure.
We can go with it.
Caleb
01:22:07 – 01:22:08
You know what I'm saying?
Aaron
01:22:09 – 01:22:19
Yeah.
My the original statement was corporate accounts using memes as marketing is risky, which is, of course, nobody can pin me down on that because it's so it's so
Caleb
01:22:19 – 01:22:26
It's evasive.
But we all know what you meant, and and we know who you're talking about too, which is
Aaron
01:22:26 – 01:22:28
so funny.
About HDMI and Supabase.
Caleb
01:22:29 – 01:22:37
He said it, guys.
He said it.
Yeah.
And, yeah.
So so there's something that's, like, I don't know.
Caleb
01:22:37 – 01:22:45
Whatever.
I'm just bringing attention to the, like Right.
Like, if even if licenses didn't, there's there's there's ways
Aaron
01:22:45 – 01:23:08
to be When it comes to I think when it comes to to business, when the norms have been violated, that is, like, that is an affront to the commons.
Right?
There's there's a commons where it's like, hey.
We pick up our trash and we don't do graffiti.
And then when somebody does graffiti, and it's like, well, the rules don't say you can't do graffiti.
Aaron
01:23:08 – 01:23:15
Then it's game over.
Right?
You either have to change the rules, or you have to work twice as hard to perform the commons.
And it's just like
Caleb
01:23:16 – 01:23:29
It's petite view.
It is.
Petite view went, this is what happened.
When and when Evan wrapped me, it was such a brain buster for me because I was pissed because he took my innovations.
Aaron
01:23:29 – 01:23:33
Yep.
He took your ethos and reimplemented it.
Caleb
01:23:33 – 01:23:42
He had v data that didn't exist before Alpine.
You know?
Mhmm.
Mhmm.
And throws it out there, and and it's like, wait a second, dude.
Caleb
01:23:43 – 01:24:00
But, of course, I'm not an idiot.
I'm sitting there going, I took the other attributes from him, you know, it's like, so, so maybe there's at least that It's like if somebody wraps you, take the gloves off, and you punch them in the face.
Aaron
01:24:01 – 01:24:21
I mean, probably not profitable, but, yeah, like, here here's another here's another maxim that might maybe is analogous to remove the problem.
So you could spend all your time fighting with these people.
Is there a way to not fight
Caleb
01:24:21 – 01:24:28
at all and to just beat them?
Right.
That ultimately to yes.
That's this is a loser's mentality.
Aaron
01:24:28 – 01:24:31
This is.
So, like, if Symfony had invented Laravel
Caleb
01:24:31 – 01:24:31
Yeah.
Aaron
01:24:31 – 01:24:40
There'd be no problem.
Totally.
If PHP CS sniffer had made a nice version that was, like, opinionated or whatever Nunos thing is
Caleb
01:24:40 – 01:24:41
Yeah.
Aaron
01:24:41 – 01:24:42
Pint wouldn't exist.
Caleb
01:24:43 – 01:24:43
Yep.
Aaron
01:24:43 – 01:24:54
Right?
If Radex had gone all the way, Shad wouldn't exist.
So is there a way to rise out of the muck and the mire and just donkey stomp everybody out of the gate?
Caleb
01:24:54 – 01:24:55
Just be better.
Aaron
01:24:55 – 01:24:58
You can do whatever you want.
I'm going to win.
Caleb
01:24:58 – 01:25:00
Yeah.
It's just hard.
Aaron
01:25:01 – 01:25:05
It is hard.
Yeah.
But, yes, honestly life.
But, yeah, it's hard.
Caleb
01:25:05 – 01:25:20
Honestly, that is right.
That is probably the right mentality is like, okay.
Like, don't be mad that somebody took your thing and made something slightly better on top of it.
You just do that.
You know?
Aaron
01:25:20 – 01:25:21
Just do better.
Yeah.
Caleb
01:25:21 – 01:25:31
Just do right.
And so I guess there's 2 things.
It's, like, let's say that, so let's say that, like, now we can talk about Nuno because we're back on his side.
K.
He raps PHP unit.
Caleb
01:25:32 – 01:25:46
Like, it's it's a great example because it takes something that is not as I mean, okay.
Laravel and symphony is like the best example because we're so sympathetic to Laravel's cause.
Mhmm.
That's like, oh, I totally would not wanna use symphony.
Not at all.
Caleb
01:25:46 – 01:25:50
You know?
Never.
Laravel.
Oh, it's just it's beautiful.
It's aesthetic.
Caleb
01:25:50 – 01:26:04
It's it's everything.
So I love that.
I wanna use it.
Now symphony goes, there's a real demand for this minimal, you know, whatever vibe.
We're gonna create chompy.
Caleb
01:26:04 – 01:26:15
It's the lightweight alternative to symphony.
Whatever.
Okay.
I mean, I could talk myself back into why that's not a great idea for symphony.
I guess it's it's hard.
Caleb
01:26:16 – 01:26:16
Mhmm.
Aaron
01:26:16 – 01:26:19
But yes.
Get anywhere.
He just ended with it's hard.
Caleb
01:26:19 – 01:26:35
Really?
It's it's but it's there is, there is a path here that is just be the best, be better than everybody.
Make be so good that nobody would like something else more than your thing, because your thing is so good.
Aaron
01:26:36 – 01:26:47
That is the way that you win.
That is the way, in my opinion, that Tailwind has won.
There's been Piko.
There's been UNO, but everybody else is just like, well, Tailwind Tailwind's better.
Caleb
01:26:47 – 01:26:52
Yeah.
Tailwind is better than them.
They win because it's better.
It's better.
Yes.
Caleb
01:26:52 – 01:27:06
They and Adam's the perfect guy to do it because Mhmm.
But the cost of that is, is extreme, and you have to be willing to it sucks that that and I I I feel like
Aaron
01:27:06 – 01:27:08
he's fighting all the time on every front.
Caleb
01:27:08 – 01:27:15
Tooth and nail on every front.
And he just has to be better than everybody all the time.
Mhmm.
Mhmm.
And that is a really hard way to live.
Caleb
01:27:15 – 01:27:29
It's like, can we just let him have his thing?
But, you know, and it eventually is better for the consumer because they have more options and better options.
Competition is good for consumers.
Yep.
So, all right.
Caleb
01:27:29 – 01:27:39
Well, there's a few, there's a few good things here.
I mean, there's plenty of good things and, you've given me some good perspective.
And I guess currently I'm, at least back to square 1.
But,
Aaron
01:27:40 – 01:27:45
but at least hopefully knowing thyself a little bit more.
Yeah.
That's that's maybe helpful.
Caleb
01:27:45 – 01:28:01
And I I'd I think I need to explore 2 options, the the way to remove this problem and the way well, this maybe is a way to remove the problem.
Outfox, like, how can how can I just be better and win better?
You know?
Mhmm.
But Yeah.
Aaron
01:28:01 – 01:28:15
I will say regardless of what you do, if you're going to open source the engine, start with the most restrictive license possible and work your way towards lesser restriction.
Caleb
01:28:15 – 01:28:26
Exactly.
I can always just I could even launch a beta and throw some, you know, scrappy license on it that's, like, I invented this.
I know it sucks.
I'll remove it when it's 1.0 if we don't love it.
You know?
Aaron
01:28:26 – 01:28:30
You can launch it with a source available license.
It's like, you can you can look at this,
Caleb
01:28:30 – 01:28:31
but you
Aaron
01:28:31 – 01:28:32
can't use it.
Caleb
01:28:32 – 01:28:39
Yeah.
I would like to have people contribute, but but there is, yeah.
You know what I should do?
I could at least kick the can with a
Aaron
01:28:40 – 01:28:40
Yes.
Caleb
01:28:40 – 01:29:02
With a restrictive license at the outset.
And honestly, maybe this is the solution is give yourself a head start.
Just, just give yourself the headstart that you need to like avoid the unfair competition where you innovate really hard on something and then somebody immediately.
Like, let's say they already have this whole thing.
And then they just like take in all of your goodness and raise their own bar.
Caleb
01:29:02 – 01:29:08
It's like, at least give yourself enough time to get to that bar and then then release the doves.
Aaron
01:29:09 – 01:29:33
And maybe, you know, maybe that is the mechanism by which you execute this as you make the, you make the engine source available, but not open source at all.
And so nobody can use it for anything beyond Flux.
And then in the read me of that you say, hey, if you wanna use this, reach out to me.
Like if you wanna use this engine in your thing, reach out to me.
Yeah.
Aaron
01:29:33 – 01:29:51
Because you as the license creator holder, you know, the author can grant arbitrary licenses for whatever you want.
So the whole thing can be under a license of, you can't use this.
You can look at it, and you can admire it, and maybe you can make prs to it.
That's awesome.
But you can't use it unless you're using Flux.
Aaron
01:29:51 – 01:30:05
And then somebody comes to you and says, hey, I wanna create bucks.
And you're like, let's work out a deal.
Yeah.
Here's here are the rules of the deal for your specific thing.
And now you have a I will write it down on a piece of paper.
Aaron
01:30:05 – 01:30:13
You have a license to use the flex engine, provided you stick with these terms.
We got eyebrow waggle.
Caleb
01:30:13 – 01:30:43
Aaron, there is a simple solution to this, and it is just don't open source the engine at, like, at the beginning.
It's I mean, it's literally just, like, when I picture that world, it's, like, oh, all of then it's like all of the goodness that is in that engine pushes people towards flux.
Mhmm.
Instead of instead of it being something that yeah.
It and it it even communicates, like, this is this project, you know?
Caleb
01:30:44 – 01:31:05
Yeah.
And then it can be brought out, you know, into day into daylight.
But I think I I haven't even really considered just considering it all one code base, you know, because it's completely different code bases that are completely divorced from each other.
Mhmm.
But I don't know.
Caleb
01:31:05 – 01:31:16
I honestly, I think the best thing here is giving yourself.
It's innovating and giving your it's okay.
Erin, here's the solution.
It's not a new license.
It's innovate hard and always.
Caleb
01:31:16 – 01:31:30
Mhmm.
Once you stop innovating and then you're mad at people because they wanna innovate on your innovations and you've stagnated and you're just trying to ride those coat the, you know, whatever, like, that's not a great place to be.
So keep innovating.
K.
But you need help.
Caleb
01:31:30 – 01:31:51
Like, you need help through this mechanism of pausing on the cutthroat competition while you, you know, bone up.
Like Mhmm.
Do the innovate, like because you you can't do it all at the same time, but you can protect a thing from competition for a period of time.
You know what I'm saying?
Launch Flux, don't open source the core kind of thing Mhmm.
Caleb
01:31:51 – 01:32:08
Or put it in a private beta or whatever.
Develop this thing of beauty in such a way that it is so obviously not open source nobody would think to use it.
You know?
Right.
Give yourself the time and space to become whatever and then open up the doors, get the ubiquity, and rinse and repeat, whatever.
Caleb
01:32:09 – 01:32:13
I don't know.
That it feels to me like that is just the way to do
Aaron
01:32:14 – 01:32:15
it.
That feels closest.
Caleb
01:32:16 – 01:32:17
I don't know.
It's catalyst.
It's
Aaron
01:32:18 – 01:32:46
it's Given my limited knowledge of the legal options available to you in terms of open source licenses, that feels closest.
Like, just release Flux, and people will have the code to core because regardless of how they install it, they'll be able to go in and look at it.
But, yeah, no no serious project is gonna pick up the core that is, explicitly closed source license and try to use it because then that's, like, beyond vibes that's rules, and, like, they broke the
Caleb
01:32:46 – 01:33:01
Yeah.
And there's also just obscurity.
Like, I kind of charge for headless Alpine, and it is actually open source and it is freely available, but nobody even because the docs aren't open source.
So, like, nobody is reading the docs for it.
How whatever.
Caleb
01:33:01 – 01:33:04
Anyway, I've taken up plenty of your time, Aaron.
Aaron
01:33:05 – 01:33:15
Yeah.
Was this supposed to be I think your episodes are 10 minutes.
So you've got you've got, let's see, 60, 90.
You've got 9 episodes.
You just chop them up and do 9 back to back episodes.
Caleb
01:33:15 – 01:33:20
I'm gonna do it.
Thank you, Aaron, for your time and attention and energy, Aaron Francis.
Aaron
01:33:20 – 01:33:26
You're welcome.
Thank you for, thank you for ambushing me with this fun open source licensing thing.
Caleb
01:33:26 – 01:33:27
Anytime.
Aaron
01:33:27 – 01:33:28
Alright.
We'll talk soon.
Caleb
01:33:28 – 01:33:29
See you, bud.
Aaron
01:33:29 – 01:33:30
Bye.