Notes On Work - by Caleb Porzio · Jul 31, 2024
I joined Caleb Porzio to talk about the ethics and morals of building wrapper products.
Caleb
Alright. That's gonna work great. Okay. Aaron Francis, thank you for being maybe the second ever guest on notes on work.
Aaron
You're welcome. I'm happy to be here.
Caleb
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.
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.
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
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
one. Exactly.
Aaron
Yeah. We'll we'll do open source licensing. So,
Caleb
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.
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.
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.
Do not begrudge small but useful tools. Great
Aaron
turn of phrase. Right?
Caleb
What do you mean?
Aaron
Do not begrudge. Isn't that great? We love that. Yeah.
Caleb
Do not begrudge You don't like it? No. I do. I I love it. Do not begrudge small but useful tools.
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
Mhmm.
Caleb
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.
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
Yep.
Caleb
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
You've never been wrapped.
Caleb
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
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.
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.
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.
So because I think everything wraps something.
Caleb
Well, let me let me give you the heart for the be for the wrapped.
Aaron
K.
Caleb
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
Right.
Caleb
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.
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.
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.
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.
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.
You know? Mhmm. What do you think about that?
Aaron
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
I'm positive they feel that way.
Aaron
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.
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
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.
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
know I'm on board with. I love that as, like, a an operating principle. Yeah.
Caleb
So It must
Aaron
be honorable.
Caleb
So how
Aaron
do we, like,
Caleb
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
Mhmm. Mhmm.
Caleb
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.
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.
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.
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
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
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.
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?
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
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?
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.
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
Right. Right. Right.
Aaron
That seems tricky to me, first of all. So let's use Radix and Shad.
Caleb
K. Radix does.
Aaron
Let me address let me address Stallman first.
Caleb
Yeah.
Aaron
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
Right.
Aaron
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
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.
Totally. So anyway, yes, that was a quick interruption. Continue.
Aaron
Yes. So you were gonna take you were gonna pick up the Shad cn, Radix. Yeah.
Caleb
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.
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.
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
Yeah. Let's let's imagine though that you own Radix. Yeah.
Caleb
That I wrote Radix.
Aaron
Yeah. Then what do you do? Like, how do you
Caleb
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?
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.
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.
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.
That's another problem.
Aaron
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.
Like, if the thing is, everybody's scared
Caleb
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.
You know? Although at least in that case, I did the work myself. That's a that's sort
Aaron
of a a different That's true. That's different.
Caleb
Yeah. But anyway yeah. So I think everybody is secretly furious about this.
Aaron
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?
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.
You know?
Caleb
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
From you.
Caleb
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.
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
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?
CS sniffer or something like that?
Caleb
Huge PCS fixer, I think. Yeah. PCS fixer.
Aaron
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
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
Mhmm.
Caleb
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
Yeah. I mean, it raps Sheikki.
Caleb
Yeah. There you go. So you're you are so Sheikki is the thing that does the hard work.
Aaron
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
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?
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.
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
Right. So is the question, is is the question, is there a structural fix for this? Is that the question?
Caleb
That's yeah. The question Instead of, like,
Aaron
a vibe slash community fix for it? Yeah. Because that that would that is just, you know,
Caleb
obvious. I mean, it's my life. You it's a lot of just disagreeing with people. Right. Yeah.
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
would have to want what?
Caleb
You don't want the license. I don't want
Aaron
the license. No. I want it to be MIT.
Caleb
So let's talk about that, because we can't talk about the license if you don't want the license.
Aaron
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
Aaron, so we have a fundamental disagreement on rapping.
Aaron
K.
Caleb
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
Mhmm.
Caleb
I don't believe that.
Aaron
So how do you square it's okay to rap FFmpeg, but it's not okay to rap stuff?
Caleb
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
I agree I agree with that.
Caleb
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
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
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.
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
Mhmm.
Caleb
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
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
Oh, reaction videos. That's an interesting example. Yeah. Okay.
Aaron
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
You know what's so interesting, Aaron? I really like reaction videos, and I watch a lot of them.
Aaron
See? We have we have arrived at the, the flip side of the coin.
Caleb
Yes. But I totally I
Aaron
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
Yes. He's benefiting you.
Aaron
He could send people my direction.
Caleb
Yeah. Yeah.
Aaron
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
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
Oh, yeah. I no. I totally
Caleb
get that. Thing on top.
Aaron
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.
Right.
Caleb
You don't. But if you don't I'm not
Aaron
in your shoes. Then the
Caleb
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.
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.
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.
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
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
Yes.
Aaron
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
Okay. Is that something we agree on?
Aaron
I agree. I I agree with that.
Caleb
Okay. Okay. Do you agree with that? Oh, for me, that's my premise. Yeah.
I mean, for right. There can be good ways. We just have different thresholds. Yeah.
Aaron
There can be good ways for people to wrap underlying libraries.
Caleb
Okay. That's right. Great. Let's think let's agree on that because I don't. Okay.
Aaron
Let's go. Yeah.
Caleb
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
We're like Yeah. Laravel
Caleb
and Symphony is, like, obviously, I'm the biggest Laravel fanboy in the world.
Aaron
I know.
Caleb
So let's use that.
Aaron
Well, let's keep going.
Caleb
Okay.
Aaron
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.
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
Yes. Right.
Aaron
Rapping in a bad way is primarily enforced by community.
Caleb
Yeah.
Aaron
K.
Caleb
Yep.
Aaron
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
Yeah. Is right now. I think it, I think it all lies in that. Yeah. It all lies in the good, bad,
Aaron
The good, bad, great
Caleb
question. An important point that you made is that, like, the thing here is that MIT doesn't prohibit
Aaron
Mhmm.
Caleb
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
Yes. So should there be a license that prohibits bad rapping with bad being squishy at this point?
Caleb
Let's can we identify an example that we both completely agree is bad rapping?
Aaron
Yes. That would be good. Do you have one? There's some
Caleb
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.
Do what do you think about Radix and Shad?
Aaron
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
Like, I'd love to not do a hypothetical, but we could make a hypothetical extreme example if we needed to.
Aaron
Alright. What about this? Let me ask you this. One. Okay.
Tell me.
Caleb
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
Mhmm.
Caleb
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.
And it's just Yeah. LiveWire. You know?
Aaron
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
Yeah. So I guess there you have to feel sorry.
Aaron
You have to feel, like, some sort of like, there has to
Caleb
be bad.
Aaron
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
know? Yeah.
Aaron
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
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
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
They wrap stuff. What if there is there, like, a terminal thing? Like, what's that terminal thing that I don't know?
Aaron
Like like, Iterm? That kind of terminal thing?
Caleb
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.
Like, tons of stuff is built right on top of choceter, but whatever. That's that's kind of, like
Aaron
I've never heard that out loud. That's insane.
Caleb
I know. I've never said it out loud. I don't know.
Aaron
It's crazy.
Caleb
But there's a there's a terminal, like, the TUI library that Mhmm. That people like Joe Tanenbaum use.
Aaron
Right.
Caleb
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
Right.
Caleb
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
No. I can't either.
Caleb
Yeah. I don't know.
Aaron
So what are we trying to we're trying to find something that we both agree is bad.
Caleb
Yeah. We're trying to find something we both agree is bad. And I I give you talking
Aaron
about any of our friends.
Caleb
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.
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
L o w l a n d? D? I can't find anything about this.
Caleb
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.
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?
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
Yeah. Right. It's like I was inspired by your thing, and so I reimplemented it my way. Yep. Yeah.
That's not that's that's no good. That's not what we're talking about.
Caleb
Yeah. Which is the windy
Aaron
of the wall.
Caleb
I'm yeah.
Aaron
Yeah. Headless UI is meant to be wrapped, so there's nothing good there.
Caleb
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
Yeah.
Caleb
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.
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
Right. Is there is there damage done? Right.
Caleb
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
you know that.
Caleb
It's just, like, impossible to do.
Aaron
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.
Yeah. That feels good to me. And FFmpeg is not gonna be damaged by that. Right.
Caleb
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.
You know? Of course.
Aaron
Okay. So we agree that that's a good one.
Caleb
Yes.
Aaron
That's clearly on the good side of the spectrum for both of us. The bad side of the spectrum. Oh, man.
Caleb
I mean, it's Yeah. I mean, it would be
Aaron
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.
MySQL.
Caleb
What do you mean SQLite is from oh, like, the an alternative to MySQL, but from scratch?
Aaron
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
Yeah. It and it's like
Aaron
This is tough.
Caleb
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
know, capitalist anti IBM. Yeah.
Caleb
Yeah. Like, anti competitive Microsofty crap. You know?
Aaron
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
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.
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
Okay.
Caleb
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.
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
the 4 the 4 people that are writing wrapper libraries are the people that go go to your docs.
Caleb
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?
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?
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
Yep.
Caleb
And now AI generation or whatever
Aaron
Mhmm.
Caleb
Is bad for me. It's bad. It's bad rapping. Yes. Agreed.
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
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.
But you cannot redistribute it as a library.
Caleb
Yeah. Is that anything? Right. I mean, that's yeah. That it's can you classify library?
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?
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
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
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.
So yeah.
Aaron
I I like that. We'll workshop the name, but I I like the idea. Scrappers. It doesn't move
Caleb
me. Redistribution prevention clause
Aaron
that says The working man's license.
Caleb
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.
Mhmm. Not elsewhere, you know? And Gosh.
Aaron
Yeah. Yeah. That's just oh, man.
Caleb
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
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
Right. Right.
Aaron
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
Like an app starter kit. You know?
Aaron
Right. Yeah. Is that good or bad? Yeah. That Or, like, allowed or disallowed?
Caleb
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.
Dude, it's the docs, man.
Aaron
Just the docs. You want people on your doc.
Caleb
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.
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
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
Yes.
Aaron
Didn't you do an episode?
Caleb
I did.
Aaron
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
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.
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
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
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.
But, yeah, I mean, a way to remove the problem is just charge for the freaking software, you know.
Aaron
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.
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
a great example. To that. Right. It's, like, everybody uses shad. Nobody's using Catalyst.
Aaron
Nobody's using Catalyst.
Caleb
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
Mhmm.
Caleb
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.
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.
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
they
Caleb
Yeah. Did I say anything?
Aaron
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.
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.
Right. But if somebody looks at your thing and then goes and makes an open source version
Caleb
of Nova and Filament.
Aaron
You could still you could still lose. It's Nova
Caleb
and Filament. Yeah. Nova and Filament is a great example. So is this just the the game? And it's like
Aaron
That is the question. Yeah.
Caleb
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
Like 100% can and should set your own rules even if people hate them.
Caleb
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.
Buy my stuff. You know?
Aaron
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.
I'm using Caleb Prime. And you're like, no. No. Caleb Prime uses Caleb under the hood. Yeah.
Yeah. You lose. It's game over.
Caleb
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
It's much easier. It's much it's much easier.
Caleb
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.
But this freaking software, man, it's not that way.
Aaron
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
Right. That's yeah. That yes. Yeah. So if I'm creating a better shad and Radix
Aaron
Mhmm.
Caleb
And launch it, now, you know, we're cooking. It's just hard to make a better shad out of gate. You know?
Aaron
Yes. But if you give the community the place where they can apply their effort, then, potentially, you become the coalescing point.
Caleb
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
Right.
Caleb
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.
That's a way
Aaron
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
You know?
Aaron
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?
That's a good analogy.
Caleb
I don't rap Laravel.
Aaron
You do you you live on top of Laravel.
Caleb
From your Laravel app no. I do not rap Laravel, Aaron. From your Laravel app, you install LiveWire. The yeah. You use Blade.
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.
You go to Laracon. Your it adds to your excitement about Laravel.
Aaron
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
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
I don't follow that. Say that again.
Caleb
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.
You know what I mean?
Aaron
Okay. I I agree with that. I don't know that that is I don't know if
Caleb
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
Right. And I'm saying, what if that what if those things weren't correlated? So let's say you make x now
Caleb
Yeah.
Aaron
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
Oh, yes. Totally. Okay.
Aaron
So it's not the rapping. It's the it's the damage.
Caleb
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.
It's you're right to say that it is it is much more about income.
Aaron
So this is this is that's solve the problem. Remove remove the problem. Like
Caleb
And I make the best product and the most money.
Aaron
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
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.
You know?
Aaron
Which is pre money.
Caleb
Yeah. It's opportunity. Yeah. Yep. It's yeah.
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
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.
Your name is Richard d Hipp. You created SQLite in early 2000, and you've been working on it ever since.
Caleb
Yeah.
Aaron
AT and T, previously Motorola, Apple, they pay your company, totaling $10,000,000 a year in revenue to SQLite Inc.
Caleb
Yep.
Aaron
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
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
Maybe. I doubt Apple, Google, Nokia, Motorola. Like, these people that are using SQLite, I doubt that they're gonna use SQLite.
Caleb
Right. Right. Right. Okay. Right.
I I got that, the premise. So yeah. Sure. Love it. Especially Love it.
Aaron
Right?
Caleb
They're saying the word SQLite. That matters a ton.
Aaron
Like, do you just keep coming back to that? So maybe that is the problem. Yes. Maybe you're saying
Caleb
It's brand
Aaron
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
Obscurity is the problem. Yes. So it
Aaron
was a it was a false line of, reasoning I was going down. Obscurity is the problem.
Caleb
Yes. Obscurity is the problem.
Aaron
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
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
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
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
seem is already open source. I think that's part of the point. Is SQLite is already open source.
Caleb
Why would Apple pay
Aaron
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
That's cool.
Aaron
But, yeah, they they pay him for consulting. They pay him for maybe specific licensing. That I don't know.
Caleb
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.
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.
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
You do not approve of.
Caleb
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.
So
Aaron
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
Yeah. Right. It's it's the optionality. It's the representation. You know, that's what it is.
It's like, is my project being represented for the work and the contribution that it made? Right. Then I'm good.
Aaron
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
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.
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?
You know? Mhmm. It's like
Aaron
Okay. So here's my ruling.
Caleb
Yeah. I think charging for
Aaron
the software is a bad move. I agree.
Caleb
Yeah. It's I
Aaron
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
free just to take you out. Yeah. You can.
Aaron
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
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
Don't know the name. Oh, actually, we do know the name. Flux. Yeah. You you tweeted the name.
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?
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.
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.
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
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
Which ones? He's launched launching Laravel
Caleb
and Symphony at the same time. Okay.
Aaron
Mhmm.
Caleb
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.
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
Yes. Like, flex is using the engine that you really care about.
Caleb
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.
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
Mhmm.
Caleb
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.
What if I put a, a vibes clause? What if I put a vibe a vibe since in
Aaron
it's like nobody's ever going to use it in real projects?
Caleb
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
Then it's moot.
Caleb
No. We'll entertain this. That I literally I
Aaron
will entertain. I will steal manna. Go on. I pitch.
Caleb
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.
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?
Yep. Really? It is. I really do. Bad.
Aaron
Because I I real here's what I think is gonna happen. You're gonna get tons of questions.
Caleb
Yeah. Right.
Aaron
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.
Right.
Caleb
That is
Aaron
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.
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
what do we do? Yeah.
Aaron
Yeah. That feels bad.
Caleb
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
because nobody agrees on any of it, and you can't
Caleb
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.
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?
All the stuff I didn't want wrapped up, I put in the other license.
Aaron
Mhmm.
Caleb
It's just that world doesn't exist right now. So if that can exist, I'm still gonna look for it.
Aaron
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
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
Yeah. That uses it. Poisons everything.
Caleb
It poisons everything, and the poison is that your thing has to be free and open source.
Aaron
Doesn't help that doesn't help you because you'll just get crushed by some free open source thing Right. That's
Caleb
so the reason that this so I guess this I am copy left in spirit, maybe.
Aaron
Mhmm.
Caleb
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.
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
you you to stab me in the face.
Caleb
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
the face, and you will like it. Yeah.
Caleb
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
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
it open source.
Aaron
Yeah. Right. What did you expect?
Caleb
You
Aaron
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.
Well, it sucks. So that makes
Caleb
me Okay. So maybe the ultimate no. No. No. It's everything's on the table.
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.
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
So it's a bummer because You're playing from behind.
Caleb
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.
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
Which Yeah.
Caleb
Like
Aaron
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
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
are not codified. Yes.
Caleb
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.
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
I'm just using that word. It's better to be optimistic than cynical.
Caleb
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.
You know, something
Aaron
like Oh, you did.
Caleb
Like, you had some
Aaron
memes. Oh, memes.
Caleb
Right. Yes. You're like
Aaron
To annoy the bejeezers.
Caleb
People doing meme ing is bad.
Aaron
You know? Well, that's reductive, but sure. We can go with it.
Caleb
You know what I'm saying?
Aaron
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
It's evasive. But we all know what you meant, and and we know who you're talking about too, which is
Aaron
so funny. About HDMI and Supabase.
Caleb
He said it, guys. He said it. Yeah. And, yeah. So so there's something that's, like, I don't know.
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
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.
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
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
Yep. He took your ethos and reimplemented it.
Caleb
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.
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
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
at all and to just beat them? Right. That ultimately to yes. That's this is a loser's mentality.
Aaron
This is. So, like, if Symfony had invented Laravel
Caleb
Yeah.
Aaron
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
Yeah.
Aaron
Pint wouldn't exist.
Caleb
Yep.
Aaron
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
Just be better.
Aaron
You can do whatever you want. I'm going to win.
Caleb
Yeah. It's just hard.
Aaron
It is hard. Yeah. But, yes, honestly life. But, yeah, it's hard.
Caleb
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
Just do better. Yeah.
Caleb
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.
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.
You know? Never. Laravel. Oh, it's just it's beautiful. It's aesthetic.
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.
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.
Mhmm.
Aaron
But yes. Get anywhere. He just ended with it's hard.
Caleb
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
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
Yeah. Tailwind is better than them. They win because it's better. It's better. Yes.
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
he's fighting all the time on every front.
Caleb
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.
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.
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
but at least hopefully knowing thyself a little bit more. Yeah. That's that's maybe helpful.
Caleb
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
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
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
You can launch it with a source available license. It's like, you can you can look at this,
Caleb
but you
Aaron
can't use it.
Caleb
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
Yes.
Caleb
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.
It's like, at least give yourself enough time to get to that bar and then then release the doves.
Aaron
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.
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.
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.
You have a license to use the flex engine, provided you stick with these terms. We got eyebrow waggle.
Caleb
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?
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.
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.
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.
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.
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.
I don't know. That it feels to me like that is just the way to do
Aaron
it. That feels closest.
Caleb
I don't know. It's catalyst. It's
Aaron
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
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.
Anyway, I've taken up plenty of your time, Aaron.
Aaron
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
I'm gonna do it. Thank you, Aaron, for your time and attention and energy, Aaron Francis.
Aaron
You're welcome. Thank you for, thank you for ambushing me with this fun open source licensing thing.
Caleb
Anytime.
Aaron
Alright. We'll talk soon.
Caleb
See you, bud.
Aaron
Bye.