The Changelog: Software Development, Open Source - The dawn of sponsorware (Interview)

Episode Date: February 17, 2020

Caleb Porzio is the creator & maintainer of Livewire, AlpineJS, and more. His latest open source endeavor was announced as "sponsorware", which means it lived in a private repo (only available to Cale...b's GitHub Sponsors) until he hit a set sponsorship threshold, at which point it was open sourced. On this episode, we talk through this sponsorware experiment in-depth. We learn how he dreamt it up, how it went (spoiler: very well), and how he had to change his mindset on 2 things in order to make sustainability possible.

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for Changelog is provided by Fastly. Learn more at Fastly.com. We move fast and fix things here at Changelog because of Rollbar. Check them out at Rollbar.com. And we're hosted on Linode cloud servers. Head to Linode.com slash Changelog. Welcome back, everyone. This is the Changelog, a podcast featuring the hackers, the leaders, and the innovators of the software world.
Starting point is 00:00:27 I'm Jared Santo, managing editor of changelog.com. In this episode, we are shining our maintainer spotlight on Caleb Porzio. This episode continues the maintainer spotlight series where we dig deep into the life of an open source software maintainer. We're producing this series in partnership with Tidelift. Huge thanks to them for making it possible. If you haven't heard of Tidelift, they are the first managed open source subscription that pays the maintainers of the exact projects that you're using while giving you the commercial support you've been looking for. Okay, here's Caleb. Caleb, thanks for coming on Maintainer Spotlight.
Starting point is 00:01:07 Thanks for being an open source maintainer. Why don't you tell me about yourself and what you've been maintaining? Yeah. So first, thanks for having me. About myself. I mean, I do a lot of development. I mean, there's a lot of outside things we could talk about. But the development related things, I quit my job about a year ago.
Starting point is 00:01:29 I work full-time at a web agency. It's a Laravel and Vue and React shop. And I don't know. I wanted to... At first, it was actually just to take a sabbatical. I just wanted a break from programming. And about a day into that sabbatical i just wanted a break from programming and about a day into that sabbatical i got hooked on this project that's now livewire we could talk a little about that later
Starting point is 00:01:52 but that's that's my main project and it's been my main project for over a year now um and then alpine a little javascript framework package thing kind of popped up along the way and and now that's another project they kind of work together but those way and and now that's another project they kind of work together but those are my two those are my two big projects and then a bunch of little side things yeah yeah i found one of your side projects fun and interesting get down oh yeah yep so get down is a php markdown processor but it's actually not it's actually just a a facade for the github markdown api yeah that was awesome that's a nice little hack so basically just you treat it like it's a markdown
Starting point is 00:02:30 parser but it's actually going out and hitting their api is that right yeah yeah it's awesome like markdown parsing is historically annoying um any of the processors they mostly work but then there's little things about them that just break down you know um and i i i think my standard for markdown is basically github you know like i mostly use it inside of github so i'm really familiar with with the way it processes markdown and they also offer all of their styling in like open github primer it's their like css framework okay um so yeah so i found this api i kind of stumbled on it was like wait a minute you can hit a public api send it markdown and it'll spit back to you html is if github already formatted it's like github flavor
Starting point is 00:03:15 markdown yeah and it is all their features and everything yep you can opt in or out of github flavor if you want um yeah so i i used it and it was so easy it's definitely the easiest way to get some quick github or some quick markdown parsing um yeah and i used it i thought i'd package it up and and made it yeah but that was one of those there's lots of those little fun side things that i have no real plans or big visions for they're just fun and you know helpful absolutely and i loved your warning in the read me you say warning this package is a fraud yeah yeah this is fire up your background to github it's like well uh you yeah it's good that it says that up front you know they always
Starting point is 00:03:57 start out being a fraud like it's something simple that i do or i'm like oh this is no i'll put this in a package because i would want it in a succinct little package i wouldn't want to copy this github gist or something but it's so simple like you know people will be like wait a minute that's all the packages um but then it always grows you know like as people find new optimizations and features and whatnot it they end up earning their own stripes yeah so i love that you took a sabbatical or you quit your job and you want to get away from programming and then you took like basically one day off and then live wire begins are you just addicted to the game or or what's it yeah i think there's i think a big part of it is is addiction to the game um yeah i i thought that i would so we go down to florida every spring well
Starting point is 00:04:41 it started last year so uh for the sabbatical i thought this is a perfect break i'm going to florida for two months i'm from buffalo so it's very snowy and uh hoth like in buffalo around this time of year and we went down to florida and yeah i so i brought this stack of books i brought a box of books because i thought this is going to be it i'm gonna this is going to be like real me time i'm gonna read books i'm gonna go i'm gonna fish i'm gonna hike all these things and i i read it three or four pages of one book the entire trip that i think i think i just have these these hopes that that i you know i don't know but yeah i love programming and it's you know there's always there's always a new challenge or a fun thing to dig into so that's me when i travel i always bring a book with me when i travel and then basically it's just like which book do you want to carry around the entire trip i'm never gonna
Starting point is 00:05:28 actually read it i'm gonna like i finally get to my hotel and i'm so exhausted i'm like i just flip on the tv and fall asleep same thing i gave up on the traveling with book thing yeah it's like podcasts all sorts of stuff for traveling i'm always like way way over prepared for content right so let's talk about livewire so i'm not very familiar with the laravel community um we've done a couple shows over the years on laravel but uh for those who don't know what livewire is this is your your biggest uh open source project tell us what it is what it does and why you began it on somebody had a sabbatical yeah so laravel uh a great analog for laravel is rails um so if you need a mental framework rails or or even i mean rails is
Starting point is 00:06:13 definitely the closest but django or even express like any back-end framework laravel's back-end web framework yeah um so livewire yeah it's it's a very it's a it's a very unique thing and nothing exists exactly like it um it got its in its inspiration from this project called phoenix live view so phoenix is another back-end framework for elixir so um it's kind of the rails for elixir and i saw that this is what spurred it i saw the little blog post. They released this demo of Phoenix live view at Phoenix Elixir con for whatever. And the concept was they used web sockets. Well, maybe I'll just describe what I saw that kind of turned me on. Okay.
Starting point is 00:06:55 Was it was like a backend template that had like echo statements in a backend template, like you see in backend templates. But then there was also this syntax for listening for a click on an element and firing a method but it was a reference to a backend method so it was super weird it looked like like almost like view js or something or react or something like in the dom right but instead of calling a js function somehow it called like a controller method and manipulated some state that that presumably exists on the back end and then re-renders the template in the back end and then swaps it out in the front end so
Starting point is 00:07:32 this weird blurring of lines between back end and front end and they used web sockets to keep a persistent connection on the back end so i was just floored by this idea. There's a lot of sort of my, the things that I've been preaching or, or I guess my, I don't know the things I've been campaigning for in my career as a web developer, I guess the arc of my career as a web developer was like novice, jQuery, Code Igniter, basic stuff, vanilla PHP, then I got into Laravel and started ramping up a little bit. Then I got into Vue.js. And so I went like hard into laravel and started ramping up a little bit um then i got into view js and so i went like hard into the javascript community and was basically building spas with a laravel back end um and then i i so that that's kind of the peak of the arc and then the the the slope down
Starting point is 00:08:16 is me realizing um that in many ways i wasn't better off all the complexity i had taken on and so i started listening to a bunch of dhh stuff, Basecamp stuff, a lot of the people who, you know, are preaching about basically keeping it simple and stepping back from that. So that's like the second half of my career arc is stepping down from a lot of that craziness, that perceived craziness. I know not, it's not crazy for everybody um but sort of step stepping away from the spa architecture and and so this was perfect timing i was already kind of embracing the back end i was using i was going back to the back end more um stepping away from the spa and then this came along and i went oh my gosh like this is everything i ever wanted
Starting point is 00:09:01 bolt it seemed like a like a have your cake and eat it too type thing so you saw phoenix live view which is still very new and is still either beta e or out i can't remember if it's like out out but still under heavy development and you thought okay well laravel needs this or something like this yeah exactly like i want to i want to do this in laravel so i'll build it i'll see what happens in it it really was just a proof of concept it took me probably a day of like fun hacking setting up the web socket connection and you know really it was pretty basic actually um and i tweeted it out this little proof of concept and something like this thing blew my mind blah blah, blah, blah. And people really dug it. And it, it became kind of a mini, mini Twitter sensation in our tiny little corner, um, of, of the internet.
Starting point is 00:09:53 And yeah, so basically then I was like, all right, well, I should turn this into, you know, a pack. People are like, are you going to package this up? And I'm like, yeah, yeah, probably. But you know, it might take me a week or two which is so funny yeah like i remember or whatever it takes yeah i actually didn't launch anything publicly for another five five or six months um that's that's a really interesting story in itself that i that i'd love to go into but um but yeah i wanted to build it and and I did it. And it ended up actually taking a very different form. So it behaves different. It has some fundamental differences to Phoenix Live View that kind of emerged over time as
Starting point is 00:10:33 we started using it and making decisions. So it's kind of like when a movie is inspired by a true story. Whenever they say inspired by a true story, you know this is a movie of fiction. You know, it's not it's not uh based on even i think based there's certain rules around what they can even say inspired by and then based on a true story right and then there's like an actual true story and so this is kind of like inspired by phoenix live view but by the time you were finished or you know yeah production it was different in the way that it goes about achieving similar goals is that what you're saying right yeah it used to be i used to say a lot like i used to reference phoenix live
Starting point is 00:11:09 view a lot talking about it because like oh this is phoenix live view for for laravel um but yeah i don't do that anymore it's so far from from being anything but inspired yeah so the tagline is a magical front-end framework for laravel uh if you can describe what it does today without referencing phoenix live view how would you do that yeah so all the taglines are garbage i haven't updated them in a while um i need to really put my head to that when it first started it was all magical and new to me so all the taglines are like weird they're like a weird framework that's magical and will confuse you and whatever. But yeah, so how would I describe it?
Starting point is 00:11:49 So I guess there's two ways of kind of approaching it. There's the magical bewilderment way where you look at a backend template that can somehow interact with the frontend and the template and the back end at the same time so somehow this this like like like i described earlier like it's as if it's view js but you can call a method on the back end and everything will re-render and magic will happen um that's one way of looking at it for me uh it's really more of like an a framework it's like a an Ajax framework. It's a framework for making calls to the backend, getting HTML and changing what's on the page, but providing lots of helpers for that. So I guess it's still something I have a hard time explaining quickly. But if you're interested, we could walk through like, kind of how you could arrive at at live wire naturally we'll hear it okay so have you encountered the the like server fetched partials pattern or this
Starting point is 00:12:53 pattern of instead of sending ajax requests to get uh json you send an ajax request to get html and then swap only a part of your page. Yes. So this is the concept, the fundamental concept behind Turbolinks, Pjax, and Intercooler, a bunch of these frameworks that do this thing. And if you go on GitHub and you open up the dev tools and just look at the AJAX requests, like everything you do on GitHub does this. It sends an AJAX request. And instead of getting JSON back, it gets a little snippet of HTML back
Starting point is 00:13:23 and then swaps it into the page in real time. Right. Yeah. So I started using that pattern in my day-to-day development to kind of cure some of this JavaScript complexity to keep, you know, the templates on the backend. So I started doing that a lot. And basically that is the fundamental concept behind LiveWire, except instead of you having
Starting point is 00:13:42 to go, all right, here's a button. I'll use jQuery to register a click listener, so that when this button is clicked, I'll send an AJAX request to get a new template of, let's say that it's a refresh button on a list of invoices or something, to get the new list of invoices in HTML, and then use like dot inner HTML to swap it into the page. LiveWire just does all the wiring for you and gives you a declarative api where you can say like wire colon click uh wire colon click equals refresh or something and then and then you'd have a method in the back end called refresh that would you know manipulate some state and re-render the the template well you're speaking my language because we at changel.com
Starting point is 00:14:23 use phoenix on our back end and we actually use Turbolinks with Phoenix. I'm not just familiar with the style of writing web apps, but I'm also pro. I think it's a great way to do it for many, many use cases. You've been working on Livewire. It sounds very cool. You have lots of people interested
Starting point is 00:14:40 in it. You have people using it. You also have Alpine.js js which you mentioned i'm curious though because you quit your job a year ago and so i'm wondering like where's the money coming from at this point are you yeah yeah savings are you that's a great question building client and customer things with livewire what's the deal yeah so i will say that that i i don't i maybe barely consider myself in a sustainable place um so this started out as a sabbatical i've been really into like financial independence and that whole community for a while so i've already kind of taken on um the habits of somebody somebody reaching for early retirement
Starting point is 00:15:21 so i i cranked up my savings rate when i was, you know, working full time. And I was just kind of piling money away in investments. And my standard of living is pretty low. Like we, my wife and I both, we don't have any school debt. We share one car, there's a lot of things that that we rent a small apartment. There's a lot of things about our life that just, we don't need a ton of money. So there's, there's that there's also the pile of money, you know, sitting there. And so I went to take this sabbatical and thought, you know, I mean, I can live for two months on, on no income easily. And so I did that. And then it just kept going. And at some point, so I decided I'll never pull from savings, like I'll never go into my investments, anything I put in for like 401k or anything like that. I'll never do that.
Starting point is 00:16:08 If that, if I get to that point, I'll get a job or something. But so a, my wife has a, she's a photographer. And so she brings in some money where before it was always just kind of on the top because I had the developer job and now you're saving that. But now you're kind of living off that. Yeah. Now we're, yeah, we're living off that partially um and then i started freelancing but i didn't want to i didn't want to jump into big projects that detracted from the work i was doing so i started advertising kind of like uh how would you describe it like um
Starting point is 00:16:40 almost like freelancing as a service or like a la carte freelancing like things what do you mean yeah so i would basically reach down and was like all right i want to do mentorships like an hour two hours a week where you just get on a call with me and i help you with what you're doing you ask me questions and stuff like that so that was the first phase of freelancing um and i charged some i think i charged 150 an hour uh so it was like a decent decent rate um and i charged some i think i charged 150 an hour uh so it was like a decent decent rate um and i just wanted like extra money but i didn't want to really get into a real project i didn't want something that's really going to take my brain away um so i started doing that and i still have i still have some of the same mentoring clients um so i do a lot of little pocket
Starting point is 00:17:21 are these professionals are these people that are trying to get into programming like who can at an individual level spend 150 an hour for for training yeah so generally they're professionals and they're laravel developers um so i guess i've been fortunate enough that over time i've built a bit of an audience in the laravel community um so it's kind of been my thing for i don't know a while now and so i i've spoken at laracon like uh like three three laracons i'm speaking at two this year you know so i said i have a little bit of a name in the community and i i've already done a lot of educating publicly and i worked for titan which is one of
Starting point is 00:18:01 the like top you know laravel uh shops so I had kind of this, that really was the power behind this, was that I already had this audience. And so the people, it wasn't just beginners coming to me going, how do I program? It was like people who listen to my podcast and know how I think and are already in deep on projects, whether it's for a company or they're solopreneurs or whatever. Are they using Livewire or are they just using Laravel? so now now they're mostly using live it's funny how that happens
Starting point is 00:18:29 mentoring them like here try right this is awesome when i started it you know livewire wasn't in a place for me to recommend anybody use in production um so i mean i i do mentoring for for really anything it doesn't have to be LiveWire. And I really don't explicitly push LiveWire in any of my clients. I do push Alpine. That's an interesting why I do that. But yeah, I'm mostly mentoring people who are already professional developers and have real production Laravel applications. Yeah. So what's Alpine real quick? If you're familiar with Vue.js, it's very, very similar to Vue.js. So if you know how to use Vue, you basically know how to use Alpine. Why not use Vue then?
Starting point is 00:19:13 Yeah, right. So I had described how I started going a little bit away from the front-end heavy world and back to the back-end and simple little vanilla like javascript sprinkles around my apps to do little things but not writing the entire template in viewer react so i'm pretty hard on that using turbo links uh and and then vanilla js for the rest but you end up i ended up in this place of like okay i don't want to buy in fully to a front-end framework because that i mean that that is it like when you're in a front-end framework you've bought in like it owns your entire front-end so it's you can't mix it's very hard to mix things um your entire dom is
Starting point is 00:19:55 rendered from a virtual dom so you don't have control over anymore you've surrendered control to their paradigm um which is powerful but for me i was stepping back from that so that that was the one end was like, there's tons of power there declarative, you know, us where you can just set some state, you can manipulate state and your UI reacts. And then on the other end, I was in vanilla JS sprinkles land. And I don't know, I just felt like it, it wasn't sufficient. I was it was like I was back in the jQuery days for me, where I'm registering click handlers everywhere and manipulating DOM elements. And it felt really imperative. It felt imperative, it felt it felt brittle in a lot of ways. And just annoying, not not expressive, like view is so declarative,
Starting point is 00:20:35 you have a template and react to you have a template and you can see in the template, how things are attached to state, and then you can just worry about changing the state so i had felt kind of like in this middle place and when i had reached out to people and been like you know just on twitter like this is what i want how do i get it you know and most people said well stimulus is that and you've i'm sure you've encountered stimulus yeah we had david on the show when he announced stimulus oh no way nice i haven't used it but i've spoken with him about it in some detail okay yeah so stimulus uh if you read the like the docs or the the splash page it's pretty much exactly what i'm describing it's like yeah keep your keep your html or it's what is it some behavior for the html you already have or something like that
Starting point is 00:21:21 um yeah they're really good at their taglines aren't they yeah they are their messaging their philosophy everything is just spot on so i'm already a big base camp fan dhh fan whatever all those things so this seemed right up my alley and his philosophy on like monolithic architecture and all the stuff i'm just totally on board with and i wanted this to be the silver bullet but for me it felt it didn't even well i guess i don't want to like like trash the framework because a lot of people love it but it just didn't feel good of everything dh does except stimulus except it honestly that's probably that's pretty true um yeah for some reason it feels really imperative uh it also feels like i don't even need it because i end up writing a bunch of dom manipulation
Starting point is 00:22:05 myself anyway um so i don't know it's a very it's a light framework it's very unopinionated it's very it's very light um are you speaking about by now or stimulus sorry stimulus um light in the sense it's actually not light like kilobytes wise but but it's light in the sense that you end up having to kind of create your own patterns for things um yeah so anyway alpine is in my mind the perfect balance between those two paradigms between this this you know vanilla js sprinkles in your back-end rendered app and this all spa view or react or angular front end that uh that is you know a huge huge ecosystem to buy into um so i wanted to keep all the good of that of that end which is like i had mentioned declarative templates um and reactive state and everything but without without the virtual dom without separate js files for every component without all that stuff um so alpine basically is an in html
Starting point is 00:23:08 framework so you mostly use it directly in your html with attributes and the attributes are prefixed with x hyphen um so an alpine component you declare an alpine component with x hyphen data and then you pass in a json object And that's your data for the component. So everything in that little DOM tree right there is all all related to that data. And you can you can add on little x hyphen attributes and interact with that data anywhere inside that component. So if you're familiar with view, the analogy is the data property of a view component. Basically, I'd realized I want view, but I just want the data property. a view component basically i'd realized i want view but i just want the data property and i don't need anything else and i want to keep all the template stuff so
Starting point is 00:23:50 i can listen for like v on click things like that um so or v v show so you can toggle something on and off or v bind an attribute like a style attribute or a class attribute so alpine um you have x data and then you declare some state let's say show show is false like show colon false that would be your state for the component then you could have a let's say a drop down like just a div with some content in it you could add x show and then well you would pass in the the state so show in this case it's x hyphen show equals show um i should have used is open or something um and so then you could add a button and on that button you could say x on click show equals true or show equals not show um so yeah so you can listen for events and manipulate
Starting point is 00:24:38 the state and then you can also sort of declare state or declare dom uh representation based on that state if that makes sense well it makes sense to me because i'm staring at the readme i'm not sure it makes sense just in audio but if you're confused click through to the show notes grab the readme and it will all make sense this does seem pretty cool and uh i was looking for the the package size uh minified and gzipped, 4.64 kilobytes. Now there's a sales pitch right there that talks to me. Yeah, it started when the first version was less than 3 kilobytes. It's grown since then.
Starting point is 00:25:17 But yeah, it's so slim. I wanted something that was just... I felt like the things I wanted weren't that hard to accomplish. Like I felt like the things I want to do, I don't need a virtual DOM. I don't need any, I don't need a template compiler. I don't need any of these things. I was like, what if I did basic, what if I implemented Vue, but using native DOM APIs? Like what if I just crawled through the DOM and i used like dot get attribute you know or query
Starting point is 00:25:46 selector stuff like that to get data out of the attributes and then if i want to set data i can use like dot value equals or dot class list dot add stuff like that so alpine internally there's no i don't know if there's any dependencies there might be like one dependency to make like getting something out of an object easier but it's there's no real dependencies it's just me using i don't know my knowledge of dom apis to to do what i need to do so it ends up being a lot more lightweight than something like view that literally has to like trant like take your entire html template and parse it out into an abstract syntax tree build up this observable object thing and then maintain like virtual dom diffs and a dom app like all this stuff that i just don't have to do well fact check true i'm
Starting point is 00:26:39 on your package json you have some dev dependencies but there's there's an empty object there in your dependencies list so so Alpine. No dependencies, very cool. This episode is brought to you by Tidelift. Managed open source, backed by maintainers. Save time and reduce risk with a Tidelift subscription. Manage your application's dependencies covering millions of open source projects across JavaScript, Python, Java, PHP, Ruby,.NET, and more. Subscriptions include security updates, licensing verification and indemnification, maintenance and code improvement, package selection and version guidance, roadmap input, and more. The bottom line is this.
Starting point is 00:27:22 You get all the capabilities you expect from commercial software, but for all of the key open source software that you're already using and depending on. Tidelift works with GitHub, GitLab, Bitbucket, and more. They support every cloud platform out there. And of course, you can try it absolutely free. Start your free trial today at Tidelift.com. so caleb the the thing that caught my eye of what you've been up to because i like i said i'm not deep in the laravel community and i'm now excited about alpine but i did not find alpine until just now. What I did find was Sushi. Yeah.
Starting point is 00:28:08 That's funny. I think whoever reached out to me from the changelog, I don't know. Maybe I just assume it's Alpine now. That's funny. I thought that this interview is basically because of Alpine. You are incorrect. So I reached out to you and it had nothing to do with Alpine. It are incorrect. So I reached out to you. That's so funny. And it had nothing to do with Alpine.
Starting point is 00:28:27 It had everything to do with Sushi. So this is our maintainer spotlight series. And I am very keen on new models of open source maintainer sustainability. Yeah. And what I came across was Sushi. And I'll just say it again. Our audience is like, what does this have to do with food?
Starting point is 00:28:48 No, it's a repo called Sushi on your GitHub. And the thing that caught my eye was this package is sponsorware. I saw that and I was like, hmm, sponsorware. What, what, what? And here you have, well, first of all, Sushi is what you call eloquence missing a ray driver i assume eloquent is like an orm or something yeah it's laravel's orm okay so it's a library a php library but then this is this this package is sponsorware and then you said a writ oh it's updated you updated me from the point okay so here's what i grabbed it said currently
Starting point is 00:29:24 this was this is no longer true, but it did say, currently, this package is only available to people who sponsor me on GitHub. Once I have a total of 75 GitHub sponsors, I will make this package fully open source. And then it said, 26 more sponsors to go, in parentheses. Sounds like you've hit your goal, because... Yeah, I hit it a while ago.
Starting point is 00:29:42 I didn't update the readme. Imagine that. I hit it in while ago. I didn't update the readme. Imagine that. I hit it in like two days. Yeah. Awesome. So this is interesting. So right now, Sushi, you go there and you see there's source code and there's a Sushi.php. I'm assuming beforehand it was just a readme.
Starting point is 00:29:59 Tell me about, first of all, this idea of sponsorware. Yeah. You talked about how you're trying to find ways of becoming sustainable without necessarily going to get a job again and i'm wondering if this is a brand new thing you made up if there's other people doing this it just seems like a new model that i hadn't seen before yeah uh this is so it it is invented but not just by me um my co-host on my podcast no plans to merge uh daniel we were we were talking we did a whole episode on just open source sustainability basically um it's from a like our podcast is really informal and we really just like pick a pick a stance and the other person usually picks
Starting point is 00:30:36 the other stance and we just kind of hash it out for the sake of hashing out an idea um so my stance was there are tons of agencies and companies who are benefiting directly from open source software, and even advertising themselves as shops that, you know, write in that software, and the people maintaining the software are broke, like the agencies don't pay them any money. And they're just, you know, rolling around in in money, and these open source maintainers are rattling a tin can, um, begging for money. And that, and this is funny because I think, um, I'm usually not one to, to like take up mantles like this, but because I'm in this position, I totally feel it. Like I totally get it now that like, oh my gosh, it's super really, really hard to make money in open source. It's mostly you begging people hoping that your project gets big enough that an enterprise, something picks it up, and either hires you, or gives you or maybe like, eventually, you'll have a conference that you can sell sponsorships to, you can spot, you know, have logos on the docs, like, or really, the other,
Starting point is 00:31:44 the other, the other more, the most viable option is educational materials, selling an ebook or a course. Um, but I'm sort of in this position where I get it now. I'm like, who's got time to make a course? Like I'm buried up to my eyeballs, issues and PRs and everything. Yeah. Like who's got like, yeah. Like shouldn't the work I'm doing right now justify the payment in itself um
Starting point is 00:32:06 so that was sort of my position was like all right daniel let's argue this like i think that that there's this crazy thing where nobody's paying these open source maintainers and there's and i'm in that that place right now where i'm like kind of living unsustainably and uh but i don't want to be the one to go on twitter and be like, hey, everybody should pay me money. So we started talking about some different ideas. And, and this really emerged from that discussion. There was a moment in that discussion, where I was talking about sushi, which we could talk that's kind of a funny package as an example for this. But I was talking about sushi. And, and yeah, I think I'm an open source. But you know, and so I posed to him this problem. I'm like, I don't I like open source. Like I love the open source movement. I love everything about
Starting point is 00:32:48 it. And something about charging for software and not making it open source feels weird to me. Like I've benefited so much from people sharing projects. So I don't want to just say, hey, this package is only available to my sponsors. It's one of the rare packages that I just keep to myself. Like I could do that. But something just felt like off about it and i'm restricting the growth of it like there's so many reasons that that's just not satisfactory every time i come to that decision in my head i go you know what i'd rather not have the 200 bucks or whatever and i'd rather just everybody use it i don't know right when it comes down to like dollars and cents i'm never like it's worth the thousand dollars and i was like it's not worth it um so uh so i've kind of posed in this problem that i don't i feel
Starting point is 00:33:31 like i feel like any of the non-open source options are no good for me um and then the open source option as well like nobody wants to if you say hey this is sponsor where you have a moral obligation to be a sponsor if you use this nobody's gonna do it like it just that's just how it works like nobody people just don't do that very few people do not enough to not enough to drive sustainability across the open source ecosystem like there there is some but it's not going to move the needle so to speak yeah so so he came up with this he was like so what if you what if you uh didn't i think he compared it to another, I don't actually know the product, but let's just say mass drop. Do you, are you familiar with mass drop?
Starting point is 00:34:10 No. Okay. I'm like barely familiar. So I was hoping you were familiar so you could check me on this. Sorry. Let's just pretend this is how it works or maybe Kickstarter or something. I don't know this idea that, that you, you don't release something until you have a volume like critical mass.
Starting point is 00:34:24 I was thinking about it like kickstarter kind of you're you're basically pitching an idea right yeah i mean in your case i guess it's a library so maybe you already had the software written and you just kept it yeah yeah but you but ostensibly you wouldn't even need to do that you could go on your your history and your good name and say here is my idea for an open source library actually i think you who the cats did that a few years ago with a Kickstarter on some sort of a Ruby packaging thing. And he had a successful Kickstarter campaign. And this kind of reminds me of that.
Starting point is 00:34:55 Kickstarter is a good analogy. So yeah, so basically he had proposed that, like, what if you kept it just to sponsors until you reached a certain threshold and then at that threshold of sponsors or monthly income or whatever um you release it to open source and it was one of those ideas that felt like it came out of the clouds like he said that i was like dude that's it that's exactly it um it's perfect because it it really answers all the questions for me it checks all the boxes
Starting point is 00:35:25 it's still open source so at the end of the day it'll be an open source project um if it's open source it will be sustainable because it will have already earned its keep um and yeah and i get to make money so i get to make money and i get to have open source stuff um so i thought it was a great idea yeah it's interesting because the actual sponsorship goes to you the person it doesn't go necessarily to sushi the project right but they are backing you in order to open up allow you to open source sushi this is github sponsors you're using so how many sponsors did you have when you first put up sushi as sure where yeah i'll run you through the the hard numbers and then we can talk causation and intent and things like that.
Starting point is 00:36:07 Also, I wanted to note that there is tons of nuance in this whole open source payment discussion. That's why we did that podcast because there's like, well, what about maintaining the project and not the first person who started it? Whatever. We can get there. Here's the brass tacks numbers for this little experiment. So my sponsorship tiers are $ dollars and they're nine dollars they're they well right now they're nine dollars 99 and 250 a month and nine dollars is you get nothing um you get nothing unlike it you get nothing you're just contributing to me that's funny even like listen my language you get nothing you get nothing in terms of those perks that you're supposed to no additional things
Starting point is 00:36:49 exactly but you get the software i write every day you know so 99 is like the freelancer or whatever and you get a logo on on the front page and then 250 is you get a logo on every page of the live wire docs in two hours of consulting which is actually a wicked deal and probably a mistake we don't have to get into that so when i did this i had 21 total sponsors i think i had like one i think i had one 250 a month 199 and the rest were nine dollars um so i did this and originally on the podcast, uh, Daniel said, yeah, make it like 40 sponsors as your goal. And I was like, 40, that seems a little bit steep, but I don't know, maybe. Um, so after the podcast, when I actually sat down to implement all this stuff, I realized like,
Starting point is 00:37:36 I got to just go for this. Like I got to go for it. You know, 40 is not going to move the needle that much for me. Um, 75. Oh, so then I thought I'll do 50. And then right, I actually wrote 50 in the readme. And right before I sent out an email, I threw 75. And I was like, you know what, change it to 75. And so I did that. And we hit it in, I think I hit 75 in probably 24 hours. Wow. Yeah. So I have a pretty decent email list. I think that was really, uh, the, the main reason why this worked so well. And the idea was, uh, it was a pretty good idea and it already had like 1200 likes on Twitter, this little tweet of the idea. So there was already an audience kind of ready for this. Um, but yeah, moved it from like 21 or something to 75.
Starting point is 00:38:23 And my monthly, uh, when I go into like GitHub sponsors dashboard, the monthly number was 577 a month. I think was how much I had in GitHub sponsors by the, I'll just say now, um, I think by the end of it, I had, oh, I don't even know, but now I have 1900 a month. Um, so basically it is in a few days i basically made like 15 grand for the year um on a small project that took me oh man i mean it took me two hours to write the first version and i mean total hourly is just so small for this project it's a very tiny it's a one file project it literally is one file php there it is it's one file it's It literally is one file. I saw that, sushi.php. There it is. It's one file.
Starting point is 00:39:06 It's just a novel idea. And it went from something that would have made me $0 to something that contributed almost 20 grand to my income. That's not true. Maybe like between 10 and 15. Yeah, so it was basically like a, I'll just say conservatively a $10,000 endeavor that just kind of popped into our heads and then landed in my lap. Yeah. I would say that's a success story. Yeah. It felt like it. I mean,
Starting point is 00:39:31 it does. Yeah. Yeah. I mean, that's a pretty quick turnaround. I think you can probably, so talk me through the marketing logistics of this. So you already put out the sushi idea and people liked it. So you already knew there was some interest around that. Yeah. And then you turn around and you sent an email to your mailing list that said, basically, okay, I'm writing Sushi. If you want me to open source it, I got to get to 75 GitHub sponsors.
Starting point is 00:39:55 I'm wondering how much of this may have been because the novelty of the idea. Because there's some of that, especially with a lot of your backers, might be indies and devs. And like, oh, cool. Obviously, you can't necessarily quantify all this but i'm just curious how how did you actually pitch this to your audience yeah and i'm wondering how like how much we could rinse and repeat this and have
Starting point is 00:40:13 success for other people right yeah so there's a lot of factors here um so to give more details the email list was 3 000 people um which is a decent list at least for me um and that's my generic email like i've i've resisted segmenting my email list so it's basically one list giant list of people that i send an email to every so often um that are generally interested in the things that i do and are generally in the laravel community aware of those things and on twitter i have like uh like ten and a half thousand followers um actually i had less than ten thousand one when i before i did that tweet i gained a bunch just from the tweet so the original sushi tweet had 1200 likes which is probably in the top five tweets ever for me so i think it's worth mentioning that it's it and this was just pitching the library right not the sponsor where yeah this was just the idea it didn't it wasn't even library i just like
Starting point is 00:41:10 wrote this little thing but saying like yeah that's just the library yeah what if i wrote this right yeah yep so so i think it's worth mentioning that it did resonate strongly with a bunch of people like above average it wasn't my average idea it wasn't my average project it was something wasn't get down it wasn't get down exactly get down would not have done this yeah right yeah that's good yeah so uh so there was that and so i sent out that email and emails convert really well for things like this and that's definitely an important note i think if i just went on twitter and said hey this is sponsor where it wouldn't have had the success that it had. I have a tiny bit of experience with this sort of thing, launching something to an email group and seeing how that works.
Starting point is 00:41:54 And this is how that worked. Moving forward a little bit, because I think that does help color it. I think if we look at now, you're at 83 sponsors. Now let's think about rinsing and repeating. So you've done this with Sushi. It's open source. Everyone got access to that imagine doing this again you basically would just come up with a new idea yeah or write some new software and keep the repo private or i guess the repo has to be public but don't put the source files in there because there's a read me
Starting point is 00:42:19 and stuff i kept the repo private oh you? So this was all like minimum effort. This was like me. I'm really glad I got to try this out without really caring about the project. Like I cared so little about this project. I named it Sushi. I was one of those naming decisions where I was like, I'm not going to stress.
Starting point is 00:42:40 I'm just going to do the first ridiculous thing I think about. Well, so the repo had to be public though because I found the readme and it said this will be open sourced when i hit 75 sponsors so the readme at least had to be out there right the readme wasn't out there no you found it when the readme was stale and it was public oh so i thought the readme was part of the marketing no so the marketing was all back channel emails and twitter so you could do a thing where you actually create the repo public open source and just keep the source code out yeah and let the readme be part of your marketing and say here's you could even have readme driven development like you could have the api out there everything yeah the code right i thought i thought
Starting point is 00:43:20 that's what you had done because i found it after you'd open sourced it. That's almost an even better idea. I mean, that's something I thought of, but it was just so like last minute that I didn't worry about it. But you're right that, and also this idea is so simple. It's like one of those cool ideas that's actually super simple, but like the value in the idea is the idea, not the implementation. Or like LiveWire. Yeah, the implementation is pretty straightforward. Yeah, the idea is the idea not the implementation or like live wire implementation is pretty straightforward yeah the implementation is simple so i thought if i release basically this
Starting point is 00:43:48 full my full vision implementation like somebody would just write it for themselves like and in general the community i'm in is nice enough to not you know just like do that but um but yeah so i what i did was keeping a repo private and open to only a few people is pretty tough, actually. Like the only free way to do it to my not like free easy way is adding people as contributors on the project to your private repo. So I made the repo private. I added people as contributors. And so they actually had like push access, like people could do kind of anything they wanted in the repo. But again, they're nice enough to not. But I just took all my sponsors. And every time I got a new sponsor, I literally copy and pasted them into the contributors, you know, thing and GitHub. And then when I reached
Starting point is 00:44:35 a 75, I just hit make public. So it was just just simple and easy for me, I didn't have to deal with anything. But but you're definitely right that having a readme having docs things like that something is like a marketing page for your project before it goes public is really nice and i i also want to say an important thing is that i gave the sponsors the software right away and i think that that's a big deal so even when you weren't at 75 you started at like 25 so like sponsor number 26 comes in and they don't have to wait for 75 like that would be the worst thing ever because i was thinking like what would be the threshold where it's like i need 250 and i look at that and be like well you're never gonna get there so i'm not gonna
Starting point is 00:45:13 yeah there's so much weirdness involved with that like oh what if it takes like three months like i paid 40 and the next guy like number wait until it gets close and then i'll yeah right i think that actually is a required and somewhat brilliant aspect of the mechanism is everybody who sponsors gets access right now yeah and then when we hit a threshold everybody else gets access exactly i think that's really really key to the idea yeah so if you were going to rinse and repeat let's say you come out with a new idea i'm planning on it i got the idea i'm already starting to talk about it yeah what's it called so it's called project l so this is one of the things uh that i've sort of done over time now is like i i punt on naming projects because i always regret naming something too early
Starting point is 00:45:58 um liveware was originally uh it's like live is laravel live view then it was light wire then it was it took a while to get to the life where um alpine started out when i wrote alpine i wanted to punt on everything not important so i called it project x so now all my projects are basically project and then a letter um and so this project l is totally unnamed. And it's a full app. It's my idea of the common denominator of all web apps built, what I would believe perfectly, like what I deem is perfect, or at least really well thought out in Laravel with LiveWire and Alpine with full tests, everything. Like totally a full on app that you can can have access to read the source and go like
Starting point is 00:46:47 oh i need infinite scroll or oh i need a data table or i need a date picker like well i'll go to project l and i'll you know see where caleb does that like a reference implementation yeah right all the basics yep which to me is like really the most valuable thing for a project like docs are great but i just i wanted to see examples and they same with me yeah so it seems like kind of pushing that to the extreme is like why don't we just make an entire app and that's the example um so anyway that's project l and i'm working on that in the background and sort of tweeting about it as i go little screen shares and tips and things like that um and my current plan for it is is sponsor where basically i'll i'm speaking at laracon online at the end of the month um and so at laracon online i'll release 1.0 of livewire and i'll release project l uh only to sponsors and i'll set a threshold and i'll tell everybody it's open to everybody when i hit
Starting point is 00:47:36 this threshold and it'll probably be a pretty high threshold because of how much value it you would get from it and how much work i'm putting into it you got a number in mind um the first one that popped into my head was 150 but that honestly might be low um yeah that's less than double right project l is the kind of thing that that could be valuable enough that um that people like forget about sponsor where people would just gladly pay 10 bucks a month to get access to it you know like a decent amount of people so um so yeah so the next number that popped in my head was 250 but then i'm like that's that's a lot but who knows yeah the nice thing with all this is you don't have to get to the threshold to be valued like yeah right the fact that you
Starting point is 00:48:21 give each person access means a you don't have to hit that $250 to get value from yourself. It's not like you're waiting for $250 and then you hit a threshold and now you get your money or now you can do your thing. And then B, each person, they don't have to wait for $250 either. Like, alright, I'll just pay the $10 or the $99 if I want to be a big baller or the $250 if I'm a big, big baller.
Starting point is 00:48:43 But that $250 threshold, you could set it out a ways and not really it's not a huge risk to do that i guess as a point yeah yeah it's it's really not at all in fact with with sushi that was kind of my thinking was like all right i'm gonna set it at 75 if we don't get there for a month and everybody forgets about this fine when like everybody already has the software and then when i do some other sponsor where that has a higher threshold when we get to 75 i'll just be like oh yeah by the way sushi's public everybody if you care you know and it'll be like another round of advertising for sushi to be like oh cool we forgot about that but nice sponsor where's like pays eventually so that's
Starting point is 00:49:21 kind of a cool idea it's like i could set this to 250 and let's say we don't get there for five months. I do another project and that gives it the steam to get there. Then it's like this one number. It's additive. Yeah, exactly. This seems like a really nice model for indie developers
Starting point is 00:49:37 with many small or small-ish projects and existing audiences of some kind. I think people with less audience, maybe with one large project where they can't spin off new ideas very often, would struggle with this. I'm curious, in your experience so far, have you had any blowback?
Starting point is 00:49:59 Anybody say, this is a lame idea, or I don't like you, Caleb, or I'm never going to sponsor you? I always get at least a hater or two on pretty much anything i do and this uh i didn't hear any haters no um definitely not it doesn't feel like a paywall because you know like people get backlash on paywalls all the time um especially ones that started out as like open source things or whatever but i think it just doesn't feel like a paywall so people aren't that mad about it they're like they're like oh you know i don't know no i haven't gotten any haven't gotten any negative reaction to it at all it's so perfect for me because i i think i i kind of suck at like
Starting point is 00:50:41 every other monetization model or like i i know i'm good at building software that's like use like that's something that i'm good at is building useful software i guess everything else just seems like a gamble and i don't want to gamble on something unless i know it's going to work so i'm always like should i try this thing yeah it's not worth the barely any money i'm gonna make like just keep releasing things for free so this? Yeah, it's not worth the barely any money I'm going to make, like, just keep releasing things for free. So this, this is honestly, it's like the easiest and most reliable. I think it's going to be really huge, at least for me. And I hope for other people like me. Well, many listeners of this show are maintainers like yourself. And I'm sure because this sounds
Starting point is 00:51:23 like it has been maybe if not a home run, at least a triple sure, because this sounds like it has been, maybe if not a home run, at least a triple. This has been something that, we haven't found too many models that seem to be easily reproduced and working really well without, like you said, a bunch of additional work. So either become a marketer, or you become a support team,
Starting point is 00:51:42 or you become a writer of documentation and help, or you become a support team, or you become a writer of documentation and help, or you become a mentor, or you become an entrepreneur and start a support business around it. Every single monetization strategy, almost all of them require like, and now I'm a business person. Well, I really wanted to try open source software. I know. And so I'm sure that many of our listeners are going to
Starting point is 00:52:05 give this a try and to the listeners out there if you do try this let us know how it goes yeah um i think iterating idea and trying it in different environments how it didn't work so well for me or worked even better here's what i did um can really just help push the needle for all of us um i think worth mentioning there's there's two real changes in perspective on the whole open source sponsorship thing that I had that led to this, I think are worth mentioning. And I think you kind of touched on a little bit. First one being, I switched my brain to realize that the software that I write is the value. Like that justifies money so it's not
Starting point is 00:52:49 that there's an there's a i'm not necessarily even saying there's a obligation or a responsibility i think there there is but what i'm saying is that the software i write is where the value is and when i write things in my perks like get a free sticker which i did i started that and realized like nobody cares about the sticker. And now I just have to ship all these stickers. I just removed the stickers. I was like, even that notion, like perks are nice. And honestly, people need that's responsible where it comes in. People need some some incentive to sign up. They're not just going to go. They're not just going to reflect to themselves on the value they derive from your open source software and hit that sponsor button. Some will, but that's not going to do it. So for me, I changed all my language. I removed the sticker perk. I removed most of the perks so
Starting point is 00:53:34 that it was pretty blatantly obvious on my page that like what you're doing is supporting me in the software I write. I also avoided language like buy me a cup of coffee, things like that, that suggests that this is just some side thing or I even avoided things like buy me a cup of coffee things like that that that suggests that this is just some side side thing or or i even avoided things like like the opposite of that like feed my family because that also like what if i make way more than what you need to feed a family now am i being disingenuous like no the work is what justifies the money um it's it's not that i have some obligation to make like and i'm not like a pastor who, you know, has an obligation to not make too much, basically, like that people might think that or something like, no, I'm making software that's valuable.
Starting point is 00:54:13 And if I end up making a million dollars a year off GitHub sponsors, I don't want to feel guilty about it. So my, then I think it's fine because I'm providing that much value to you. So that was first, it was a language and mental change for me was like, switch the language from, this is all side stuff, you know, Patreon style, like buy me a cup of coffee to like, no, this is, I'm giving you valuable things. You're paying me for that. That's the transaction. Um, so that was one shift was changing that language. Does that make sense? Oh, absolutely. And I'm, I'm looking at your sponsorship page. Now we'll put that put that page in the links
Starting point is 00:54:45 for anybody who would like to model, use Caleb as a model for what they are up to. And I will say the $9 a month individual perk is access to Sushi. So there it is, software, right? Here it is. Yeah, I got to remove that now because everybody connects.
Starting point is 00:54:59 Yeah, everybody has that one. Thanks for the heads up. Oh, there you go. $99 a month perk is logo, name, link, and listed on the readme and livewire landing page uh this is for a freelancer slash startup so again this is not like buy me a cup of coffee this isn't sending you stickers this is like there's some business value there for them and then 250 or 249 a month the perks are logo name link listed on every single
Starting point is 00:55:21 page of livewire docs and then two hours of live wire consulting per month so that one does have more of a quid pro quo so to speak so the 250 dollars a month is broken because it defies everything i just said yeah so you need to update your your tears a little bit but i really like what you just said and i think that i think that is a important thing to remember is that you know we're not out there panhandling for for spare change and we're not like here to trade extra things that's what the tier system and the perk system always kind of rub me the wrong way as well because it's like i especially on kickstarter like you see all these perks or on patreon and i started thinking like man they're gonna have to send out like 25 000 t-shirts or whatever it is you know like there's so much work that you're just building for yourself so it's like i don't that
Starting point is 00:56:07 that is the fundamental change it's like i don't need i already did the i already do the work that's right um the 250 a month tier to at least caveat why that exists with the two hours um well a because i i do want money and that's a way that I can sort of build up that. Just since I launched Sushi, I have LiveWire behind me. So that's worth mentioning that it's not like all these people... I don't think I would get a $250 a month sponsor for Sushi, just so everybody knows. But for LiveWire, heck yeah. So I've gotten like three, think three new 250 a month sponsors
Starting point is 00:56:46 maybe two new i don't know which is a big deal like those are the ones that really move the bottom line for me and i thought well yeah so 250 is actually a deal it's less than i charge for freelancing uh for two hours of freelancing it's 300 for me um so and it's a small amount it's like a you know it could like derail me from my trains of thought and things like that if i pile these up but my thinking was you'll notice that it's a small amount. It's like a, you know, it could like derail me from my trains of thought and things like that if I pile these up. But my thinking was, you'll notice that it's live consulting. So it's consulting on a project that I build. So my mind was like, all right, I could use the extra money and it'll plug me into real people using my software, which is super duper valuable. If I'm spending, you know, let's say eight to 15 hours a month,
Starting point is 00:57:25 working with real people who are using my software in production in like enterprise style situations, that's huge. Like I would want every maintainer to have that too. I would want every project I use to know that the maintainer is working with real people in the trenches. So that was kind of a reason why I did that and why it sort of seems off. But that's the justification behind it. There is one aspect I agree with that. I'll add to that and say that when you get a new agency or business at $250 a month sponsoring you for Livewire, them being successful with Livewire is foundational to that continued sponsorship, right? Like if they end up like not being able to get it going
Starting point is 00:58:05 or it doesn't bring them benefit, they're going to switch to something else and they're going to cancel their Caleb sponsorship perhaps. And so like you helping them be successful is an additional thing that play there. So I kind of like it. Maybe you just take off the per month and you say, you know, I'll give you,
Starting point is 00:58:20 maybe you add it, make it six hours or something like, give them like a flat number or something. Oh, interesting. So you can get involved with them them but it's not like now you're basically because you actually put a cap on your time at that tier because you only have so many two hour sessions a month that you can actually divvy out right before you are basically a consultant so yeah yeah that's a really good point um yeah if it was like yeah just six hours and there's your pool of sponsor time and it would communicate something else it would communicate like you're not paying me for my time all the
Starting point is 00:58:49 time you're paying me it it would be clear that you're not paying for my time the time is like an added benefit of you committing to the project at this level you know exactly so yeah i do like that um yeah it's definitely something I have to think through. So the second change, the first change is the perks thing and whatnot. The second change was, and this is another Daniel one. He's good at this stuff. This is Stroke of Genius.
Starting point is 00:59:16 You should be paying Daniel on the monthly. I know. So he works at the agency that I used to work at. So Daniel, which means he's rolling around in money. He didn't, you know, um, so he, his suggestion was change your language. So my tier language was usually it's something like coffee. And then the next one's like Netflix. And then the next one's like, you know, it kind of goes up you know it kind of goes up from there um so he was like and i forget what mine were i don't remember what mine were but you
Starting point is 00:59:50 know you're tempted to make it like the smallie the medium meat the biggie the right or name it after like a fish or something you're a fan you're a hardcore fan you're the biggest fan ever yeah that's what it is yeah he was like change the language to make it an expectation so rather than like how much do you want to pay me a month it's like i'll tell you what your what i think your responsibility is to me based on based on your position you know basically like if you're a hacker like me you don't need to pay a hundred dollars a month like nine dollars a month is great like if all of us hackers just kind of did that for each other that would be huge but if you're a freelancer and using liveware like i want to communicate i'm communicating that now just in the tiers like
Starting point is 01:00:33 if you're a freelancer and you're now you're looking at this and you're going well yeah i am a freelancer you know you're not just seeing like yeah nine bucks a month great easy you're going the individual maybe i should call it the hacker even or like the independent whatever. And then the second one, you would see freelancer. And I've already gotten response like this. Like people have even communicated with me that this works without knowing they're communicating that to me by saying like, yeah, I mean, I'm a freelancer. And I emailed somebody to say, hey, can I have your logo to put on the site?
Starting point is 01:01:00 They're a hundred dollar a month sponsor. And they said, no, I don't need it. I don't need the recognition. You know, I'm a freelancer and I use Liveware. So I'm giving you a hundred dollar a month sponsor and they said no i'm i don't need it i don't need the recognition i you know i'm a i'm a freelancer and i use liveware so i'm giving you a hundred dollars a month i was like that's great because yeah so that was a change and then the big one was like yeah if you're an agency like you you should be at this higher tier so i had somebody who was sponsoring me at 100 bump up to 250 basically because of the language change where they went yeah okay that's that's right i see his i'll respect his his expectation i guess yeah well those are some great insights caleb thanks so much for uh talking to me today and sharing this experiment you've been doing and
Starting point is 01:01:37 all the awesome open source listeners check out livewire alpine check out get down it's kind of cool and definitely subscribe to to whatever Caleb's up to to find out when Project L comes out. I'm teasing that relentlessly. We're all excited for, hey, reference implementation of all these things. I think that's a great idea. And my guess is it'll be a hit as sponsorware as well.
Starting point is 01:02:00 So Caleb, thanks for joining us. This has been very insightful and a lot of fun. Awesome. Thanks a lot, thanks for joining us. This has been very insightful and a lot of fun. Awesome. Thanks a lot, Jared. Appreciate it. Thank you for tuning into our maintainer spotlight series. Hey,
Starting point is 01:02:12 what do you think of the sponsor concept? Let your opinion be heard by popping open the show notes and clicking, discuss this on changelog news. We'd love to know your thoughts on the matter. Special. Thanks to our guests, Caleb Porzio for doing his maintainer thing. This episode was brought to you by
Starting point is 01:02:26 our friends at Tidelift. They are all about paying the maintainers. And it was produced by me, Jared Santo. We get these farm fresh beats from the one and only Breakmaster Cylinder. I'm curious, do you listen to our outros? If so, tweet at me, at Jared Santo, because we have no idea if anybody's listening.
Starting point is 01:02:42 Thanks again. We appreciate you.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.