Hey everyone , this is Adrian , and at Rails World 2024 in Toronto , and with me I have Caleb Porcio , which is pretty much a legend in the making in the open source world , and especially in the commercial open source world . Welcome , Caleb . Hey , thanks for having me .
Adrian , yeah , you pretty much made a lot of waves in 2019 , 2020 , when you posted that you quit your job and you're going full-time on open source and trying to make a living off of it . I think that a lot of devs have this dream doing what they love doing open source and actually making a living .
One of the first questions that pops up how do you know that this is the time to leave your job and and go chase that dream ?
I saved money and I didn't have kids . So those are two conditions that are pretty good . But you know what actually , you know most developers , I think if you're like a mid-level developer , you can always freelance right , like that's a pretty easy thing to do .
So it makes it so that , like quitting your job is just not as scary because you can go freelance , you know to like pay the bills and then go find like a full-time job if you need to .
So if you I guess it's like you amass enough skills especially if you have like a popular open source project or something you probably do have enough good programming skills that you can kind of write your own ticket in a small way and like that's all you need you just take the leap .
You tell your friends and family , oh , I'm going to , you know , try this for a little bit , and then I'll just go freelance . That's the line you give them . But when you really you know like when you just go for it , it might end up working out and you might never go back to freelancing . At least that's the way it was for me . But yeah , I don't know .
I think that's what makes it uniquely easy in the developer world if you're skilled enough .
Yeah , I totally agree . Would you say that doing this kind of thing , like going full open source , is a young man's game ?
Oh , I don't know . I did it when I was younger . I think I was 25 or something . Is it a young man's game ? Yeah , in many ways it is , but I guess the young man's game part of it is . Let me just say , yeah , it's a young man's game , okay .
Okay , that's good enough , that's good enough , yeah . And I think it's easier to you know when only yourself , when only you have to , like , you know , you know , have to eat ramen , you know that's okay . But when you have to , you know , tell your wife or your kid or whatever . That's a totally different thing , right ? When you have a .
Yeah , it is a different thing and that's just like part of . I guess this has nothing to do with tech , but some of the like life philosophy that I was getting into at the time and in my early 20s is like the financial independence movement following Mr Money Mustache .
So I was already subscribing to this idea that , like you spend as little as you can so that you have maximum freedom , and that's kind of just something that you can maintain at any age , doesn't have to be when you're young , you know . So I don't know . Yeah but it is a little more of a young man's game .
Awesome , Awesome . So I probably didn't do a very good introduction . So you are the author of Livewire of Alpinejs .
Anything else big . Those are the two big open source ones . I just launched Flux . It's a project for Livewire in Laravel . It's big enough to me that it actually feels like a third project , but yeah , it's more like a LiveWire project . Yeah , livewire and Alpine and then a bunch of other random repos , but those are the big ones , yeah .
I'm a big sushi fan myself .
Hey , nice , go on and .
Alpine . I just put it through its paces . I built a lot of cool stuff with it . So you recently . So I saw your Flux launch . We'll get into that in just a second . You said something like hey , now when I build , I try to build one thing that's open source and free , and one thing , that's paid Like . There's a balance there .
Do you think this is the right balance ?
I do . I mean , for an indie creator like me , somebody who doesn't have a normal business , you need revenue and it's hard to get an open source , so you have to charge for things to get revenue period you have to charge for things . Of course , if I just only worked on free stuff , it wouldn't be enough money for this to be lucrative for me .
Yeah , nobody would get anything , right , yeah , right you would get .
Yeah , like the end products you would get would be less and worse and they wouldn't be cared for over time and whatever . So I don't know , it just seemed like a rhythm that works pretty well for me is . I just love building , whether it's paid or not .
So it's just as easy for me to get really , really stoked about a new version of LiveWire , a new version of LiveWare , a new version of Alpine and spend a whole year on it and not even think about it . But if I always do that , I'm not making money . So with Flux it was like all right , here's a need that definitely needs to be filled .
The entire year and a half to two years before Flux was spent purely on open source work . So it was LiveWare version three and I just poured everything into . I mean , the launch was great but yeah , it was free .
So this was like I'm going to do a big chunk of work , I'm going to charge money for it , and then that'll be kind of like a tailwind for the business going forward . And then next year I'm hoping to do LiveWare version 4 , maybe an Alpine version 4 .
And I'll probably put a bunch of effort into the open source side and then we'll go back to a paid thing . I guess . I don't know . That's just the rhythm that's been happening and that's why I said that yeah .
Yeah , that's awesome . And you can also , you know , go zigzag if you want , like whatever . Whenever you think it's better to work on open source , you can just jump there , right , because you have that freedom . Yep , cool . Well , how did you get like ? For those who don't know , flux UI is a UI framework for Livewire , is that correct ?
Is that a good description ? Yep , perfect . How did you get the idea to work on something like that ? Was that something that was planted into your head like a long time ago ?
Or is this something that you it's almost like the most obvious thing to build ? If you built a web framework , the next most obvious thing to build is like either a SaaS starter kit or a UI kit .
You know Okay .
Like . Those are the things that . It definitely wasn't an innovative thought at all , because it's the thing that people have asked me for since day one . I knew that I wanted to really nail it , because you can make a cheap version in a week that just wraps a bunch of other packages , slaps some styling on You're a developer , you're not a designer .
It's not going to look that good . It'll look okay . I want to do it right . So I waited a really long time until I felt like my skills were there and I felt like I had the money to hire a designer to do a good job . But yeah , ultimately , this is something that's just been illuminated to me build the thing people are asking you for .
It seems so obvious , but it's almost like the best business advice I've ever heard .
It's like hey , the thing people are constantly going , hey , what ? Like I did a VS Code course and that's just because so many people were like show me your VS Code setup . What are your settings files ? It's like the thing people are asking you about . There's your next product and that's what Flux is .
So many people were asking me and then I just built it .
That's awesome . So yeah , you said you went out and hired a designer . I know you're working with Hugo from Tupel . How did you get in touch with him ? Did you look him up ?
on the job board . No , he wasn't on my radar at all , that guy standing over there , mr Adam Wadden .
Adam Wadden .
Yeah , I went out . We went to see Jerry Seinfeld me , him and Steve Shoger .
And everybody on Twitter knew that , so that's awesome . Okay , yeah .
So he invited me to go see Seinfeld . And we're just sitting there like eating breakfast and I was like , hey guys , you know , I think like I need a good designer . These are the guys to go to if you need good designer . Basically , it was like what's the list of people you didn't hire ? Is there anybody that like you ?
know I was like I need a good designer yeah , right , like who should I ?
and they both . They're like thinking about it and they both said hugo . Hugo would be perfect , he'll care about this project , he'll be into it . And I didn't know . But hugo had followed me at the time . Hugo knew who I was , so he wanted to work with me . So I reached out to him and then it was just like a match made in heaven .
Like really quickly , yeah yeah , it looks .
It looks great . I have seen , I've checked out flux . It's just amazing .
So I I've been seeing this movement in the rails community as well like people need ui , a ui kit right , and there are a couple out there , but I haven't seen one with like a designer , it like somebody that's actually pushing the design and they know about design , they know how to align stuff and whatever , and I think that's very , very important and you
nailed it . My next question is how did you pick the things to work on for that UI kit , like , okay , buttons , we all need those and like drop-downs , but you have quite a few components about .
I don't want to say 26, . Oh my god , yeah , 26 , like pages . Then there's , like you know , maybe four components for like typography or something .
Okay , how did you know which one to work on , which ones to work on ? Was this like a process that you did together ? Did you do like research ?
Yeah , I did a ton of research . I have this big list of every component library I could possibly find on the internet of any framework whatever . I would constantly just open all of those tabs and just go through them and see what do they have , what are their prop names , whatever . Then I would just start building stuff and be like what do I need ?
Sometimes I would get ahead of myself and go , oh , everybody has a blank component . But then when I would start using it I would go in like I don't even really need this , like this is cart before the horse , like just stick with what you need .
So a lot of it is born out of like building apps , like little toy apps with Flux and going like oh , I could really use you know a spacer here I could really use a separator . I thought I didn't want a separator . Oh , I could use a separate , I would love separator . So yeah , a lot of it's that and just popular demand . Actually .
Here's a quick , quick little one the live wire documentation . There's a Algoa doc search at the top to like search . You know you hit command slash on command K yeah , and you just start typing the search .
Well , I have access to that search data and it shows me the top searches that people didn't find something for , and modal is like the top one and I always forget that , like modals are in super high demand . It's like the biggest thing people are searching for and not finding on the liveware docs is modals .
So we have to have modals and we have to nail it , and then tables is like high up there as well . So so it's kind of like some data like that , yeah , and then tables is like high up there as well .
So it's kind of like some data like that yeah Awesome , that's awesome . Just before we go , what are your plans for 2025 ? Do you plan to continue to work on a product that you already have , or are you already thinking about the next ?
Yeah , I guess a little bit of both . Definitely need to take Flux farther .
There's a lot .
I want to add a ton , so that's going to hopefully just keep going and that has sustainable income , at least right now . And you know , I want a new version of LiveWire . There's like a lot of under the hood stuff that I want to optimize and a few big core features that I really want to add .
So those are like two existing products that I want to continue on and then I may work on . I'm thinking about doing a like another open source library for the front end that basically like modals , drop downs , basically the javascript core under the hood of flux .
Eventually I would like to open source that , make it its own project and give it it , give it its own life , because it's like sorely needed in the non-react world yeah , gotcha , so that would be outside live wire yeah , it'd be outside live , or . Or you could use it in turbo Awesome or hot wire or whatever Awesome .
Caleb , thank you so much for doing this . Yeah , thanks for having me Enjoy the rest of the event . Yes , I will All right . Thanks a lot , Thanks .