The Changelog: Software Development, Open Source - Maintainer spotlight! Feross Aboukhadijeh (Interview)

Episode Date: August 29, 2019

In this episode we’re shining our maintainer spotlight on Feross Aboukhadijeh. Feross is the creator and maintainer of 100's of open source projects which have been downloaded 100's of million of ti...mes each month — projects like StandardJS, BitMidi, and WebTorrent to name a few. This episode with Feross continues our 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 Tidelift for making this series 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 software development. I'm Adam Stachowiak, Editor-in-Chief here at ChangeLog.
Starting point is 00:00:29 Today, we're shining our maintainer spotlight on Firas Aboukadej. Firas is the creator and the maintainer of hundreds of open source projects out there, which have been downloaded hundreds of millions of times each month. Projects like StandardJS, BitMedia, and WebTorrent, just to name a few. This episode with Firas continues our 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 Tidelift for making this series possible. For the uninitiated on Tidelift, they're the first managed open source subscription that pays the maintainers of the exact open source
Starting point is 00:01:02 projects you're using while giving you the commercial support you've been looking for. You can learn more at tidelift.com. And now onto the show. So Firas, we first met you on the changelog back in 2016. Three years ago now, we talked about WebTorrent. You were creator and maintainer of that project. You're still a maintainer, I assume. Today, we're here to talk to you about all things maintainery. I should say, since then, you've joined us on JS Party, regular panelist on that show as well. You maintain 100 plus open source projects,
Starting point is 00:01:33 which are downloaded 100 plus million times per month, according to your GitHub bio. So you have lots of maintainery things to talk about. First of all, thanks for joining us. Yeah, of course. It's awesome to be here. So one of the things which we may or may not focus on, but which you shared recently on JS Party for those interested on episode 83, I think it's called an honest conversation about burnout. You shared your story about maintainer burnout in open source. So for those interested to go deep into that, definitely listen to that
Starting point is 00:02:00 episode. But for us, if you want to give just a quick brief on that, it might be useful to get things started. Yeah. So in that episode, I think we talked about different kinds of burnout. And I brought the perspective of the open source maintainer to the table there. Because of course, there's other kinds of burnout as well, you know, job burnout or something, you know, stuff like that. I think with being a maintainer, the source of burnout is at some point your project that you're in charge of just gets too big for any one person to handle. And initially, the excitement about fixing issues because people are actually using your project turns into something different. Suddenly, it's not like, oh my god, I got an issue. Somebody's using my code.
Starting point is 00:02:44 This is so exciting. And it becomes, oh no, I woke up again and there's another 15 issues. How come people don't like my code? How come I can't write code that has no bugs? When is this ever going to end? Am I just going to be fixing bugs in this code until the day that I die? And it just sometimes can feel a little bit like, you know, hopeless. Absolutely. No doubt. A large part of your story and one shared. I mean, it resonates because it happens so often. It's one of the reasons why even just by circumstance or happenstance, this show so often is focused on things like burnout and sustainability because it's systemic or it's endemic across so many of us.
Starting point is 00:03:23 I was looking at your projects on GitHub and you have 132 repos that you personally own. Of those, 123 of them are source repos. So that's most of them. And then of course, WebTorrent has its own org, so it's not technically yours, but it's also one of your big projects. So it got me thinking, are you mostly a maintainer of your own projects
Starting point is 00:03:42 or have you contributed to others? Have you ever been on the side of contributor to open source? Yeah, that's a good question. I definitely think I've done more of the creating projects from scratch to solve my own problems and then becoming a maintainer of those. There is one time when I did a bit of contribution to something else, which was Browserify, which is a package for taking your JavaScript code and bundling it up so that it can work in a web browser.
Starting point is 00:04:09 Yeah. But besides that, yeah, I think that's actually an interesting point. I've sort of come at it from like, I'm going to make this stuff because it's useful for me, and I'm going to put it out there. And then people just ended up, you know, using it. And then I became kind of responsible for keeping it in good shape. What about starting out? How did you even get into open source? Sometimes the path for maintainers is somewhat even accidental. Did you intend to be, in quotes, an open source software maintainer? No, I don't think I did. I mean, I think I admired open source and I saw it as this thing that really great programmers could do. And I didn't
Starting point is 00:04:46 really understand that anybody could publish open source at first. So I started my first sort of use of like, where I remember actually installing like open source was when I was doing Ruby on Rails in college. And I remember, whenever I had a problem, I would just Google it, and it would install this package, and it solves your problem. And I remember, I remember, I knew that somebody wrote that. And I remember thinking like, they must be really, really good. And it's almost like some kind of secret society that you have to, you know, be inducted into or something. And I didn't really understand the process for that. And it wasn't really a thing I thought I could do. But then I think where that started to change was, I don't remember how I stumbled upon this, but I found a YouTube video where this guy named Paul Irish, who does a lot of JavaScript stuff, and I
Starting point is 00:05:29 think he works on the Chrome team now, he posted a video about himself just going through the source code of jQuery, and like line by line, and just talking about different aspects of it. And I think he called it 10 things I learned from jQuery, from looking at the jQuery source. And then he did like another video where he said 10 more from jQuery from looking at the jQuery source and then he did like another video where he said 10 more things I learned from looking at the jQuery source so I watched those and I think it made it clear to me that like oh this is actually a thing that I could understand and that it's totally possible for somebody you know if they had the time and they and they you know knew enough things that that they could do this and so I thought you know maybe one day I'll be able to do that and that's when I got like the first seed of the idea
Starting point is 00:06:06 that maybe if I get really good, I'll be able to do this someday. Around what year was this, just timeline-wise? This was, I was in college. I think it was like my second to last year or my last year of college. So that would be like 2011 or 2012. So that's still in the, you know, rise or sort of re-emergence of open source with GitHub because I think, you know, you sort of re-emergence of open source with github because i think you know you speak to this exclusivity kind of factor and i think some of that is just sort of like
Starting point is 00:06:31 just capability like we used to live in a system where it was just harder to collaborate on code and now it's gotten easier and easier to actually even publish ideas too you know thinking of source code as an idea for example so. So GitHub has really changed that a lot for, I would say, the future of software. Because while you may have come in the game, you know, 2010, 2011 for us, you know, GitHub came on the scene around 2008. And that was sort of like the beginning of, you know, open source moving fast. Absolutely. Yeah, I think that was really a big change. I mean, I wasn't really around before, you know, I source moving fast. Absolutely. Yeah, I think I think that was really a big change. I mean, I wasn't really around before. And I wasn't contributing to open source before GitHub, but I definitely feel like GitHub has changed things. I mean, the ease with which you can
Starting point is 00:07:15 publish stuff and the fact that you know, anyone can open an issue on your code is, I guess that's pretty paradigm shifting. Because I mean, if you think about it, it's like so much easier now to get involved. You don't have to just send code to like an email list or something and get people to review it that way. You can just send it directly to the person. And it's a standardized process for every project. Instead of this bespoke thing where you have to go to the website and read about what is this project's process. Everybody has a different way. Yeah. Yeah. And I think that's actually part of the reason why a lot more maintainers are getting burned out because this is one of those things
Starting point is 00:07:53 where it's like a blessing and a curse. It's obviously good that more people can get involved and we lower the barrier to entry, but it also means that you're going to get, as a maintainer, you're going to get way more issues from people who have in a lot of the time put in like less effort into their issues and just say like, it broke fix, please, you know, like with like no information. You're like, okay, can't really help you or like, you know, you just get way more. Yeah, just people who could have never, you know, would have never thought of contributing before who like find a GitHub page and open the code and crack it open But I'm curious, which ones are those or which ones are the, which ones require the most hands-on maintenance to this day? Are those the ones where you're actively maintaining or are they passive? Tell us about
Starting point is 00:08:59 the burden. Which of your projects bear the most burden? That's a good question because it wasn't obvious at first to me what projects would end up taking the most time and which wouldn't. Obviously with more than 100 projects, if each one was taking a bunch of time, it obviously
Starting point is 00:09:17 wouldn't really work. So most of those aren't that much work. Most of those are just a package that just does one thing. It's very clear what it does. It has an API that isn't going to change. Although maybe now that Node is switching from callback first pattern to promises, maybe a lot of them need to change. And I'm starting to do a little bit of work on that. But yeah, in general, the idea is that those types of packages, they don't change very often. Either they work or they don't. And then, you know, usually, usually they just change if
Starting point is 00:09:47 there's like some kind of an API that's deprecated that you use, you know, or if like the entire ecosystem changes, it's like a paradigm of like how you, you know, how you interact with stuff. But the packages that really take up your time are ones where it's less clear what they should be doing. And it's much more of a opinion thing or a taste thing or where the API surface area is quite large. And so there's a lot of discussion about, should we add this feature? Does this feature belong in the library or does it not?
Starting point is 00:10:17 That kind of discussion wouldn't happen on a package that just does one thing. You would just say, sorry, if somebody had proposed adding something to it that just didn't make sense. It's very simple. You say, no, this know, if somebody had, you know, proposed adding something to it that just didn't make sense. It's very simple. You know, you say, no, this doesn't belong here. Make that a different package, you know, problem solved. With those larger projects, it's sort of debatable. And so you end up spending a lot of time trying to decide whether to add something or not. You usually have a huge list of features that you haven't really gotten to yet
Starting point is 00:10:40 that you want to get to. There's a lot of focus on making the thing easy to consume for people. So, you know, you try it, you try a lot of focus on making the thing easy to consume for people. So, you know, you try a lot of experiments with how the API should work and you change that over time. And then also like WebTorrent, you know, is built on a foundation of pretty experimental technology that's changing. So that sort of ends up causing a lot of sort of shifting under,
Starting point is 00:10:58 you know, if you build your project on a shifting foundation, it's going to take a lot of work to, you know, keep things working as the browsers evolve the standards. well seems like most of your stuff i mean maybe standard isn't because we should mention standard as a coding style linter etc which once you have certain opinions that are enforced i'm not sure exactly how standard works but i assume that's relatively stable once it's set in stone but a lot of your other stuff are built on the web, the web projects, aside from some of your websites and stuff like Bitmedia, which I guess those might be
Starting point is 00:11:30 moving targets as well. I guess my point here is, it seems like lots of your stuff is on a shifting foundation, right? Not very much of the web is standing still, and so BitRot's very much a thing. I think a lot of it is pure functions, and it doesn't need a lot of active work. But yeah, anytime you're interacting with a web API,
Starting point is 00:11:52 that stuff shifts all the time. Can you speak to, since we're talking about these two projects in particular, WebTorrent and Standard, I'm noticing on both of them you have this notion of sponsors and one of them being Brave, which is the browser i tend to use day to day what's it like what what has open source enabled you for you you know these kind of connections you've i'm sure you've spoken with folks at brave there's some sort of relationship there can you share the backstory there yeah so i think the story there is that brendan ike the creator of javascript he's the ceo of brave at some point reached out to me because he liked the web torrent stuff I was doing.
Starting point is 00:12:26 And so we got dinner and just talked. Wait, so you had dinner with Ben and Ike? Yeah. There you go, boys and girls. See, that's what can happen to you. Dinner with the inventor of the language. Yeah, so we talked about like how... So the cool thing about Brave is that because it's a new browser,
Starting point is 00:12:39 they can sort of do things that other browsers would be a little bit afraid to do. Meaning like they can they can take bigger technical risks. If you have a browser that's huge and has billions of users, then you're going to be very conservative about what you ship to them. You want to make sure it's really solid and you're really worried about what can go wrong. But with Brave, they were building this browser from scratch. And so they were looking for features that could differentiate Brave from other browsers, and were willing to add new protocols and new ideas to the browser. And that's where our collaboration came from. So the idea there is that just like how a browser can open up a PDF file and show you the PDF directly there in the browser without requiring you to have another program
Starting point is 00:13:22 installed on your computer for that, we wanted to make Brave do the same thing with torrent files. So if you go to a site and there's a torrent file there, or there's a magnet link, which is just another form of a torrent file, and you click on that, instead of it sort of saying, popping you out to some program that you have on your computer, or just telling you it doesn't work because you don't have a torrent program, it will just work right there in the browser. It'll just say, okay, this is a torrent. Do you want to begin torrenting this? And you can say start and then there it goes. Wow. Built right in. Built right in. Yeah. That was the idea. And so, yeah, back in 2016, I think me and a friend went to Brave for like a couple of weeks and we built in WebTorrent into Brave.
Starting point is 00:14:00 It only took a few weeks of work because most of the work was already there in the WebTorrent library. Yeah. And they paid us for that. It was like a contracting gig. Actually, one of the few times I've actually gotten paid for my work on WebTorrent. Wow. Yeah. I think that's, I think really that and then the sponsorship, a couple of sponsors that just put in money for their, to get their logo on the website. Right. Yeah. But I'm actually back at Brave right now. So it's been a couple of years and they have me back there now for a couple of weeks this summer.
Starting point is 00:14:30 Right now, literally right now or like timeframe right now? Like right now, yeah. Like I started working there again last week and I'm going to probably be there another week after this. So it's like two or three weeks total. So they pull you in for like new features,
Starting point is 00:14:44 new ideas, brainstorming how Brave is actually using WebTorrent, feedback loop, etc. Yeah, it's both. So there's a bunch of new projects they want to look into adding like different kinds of syncing models for doing browser sync using peer-to-peer instead
Starting point is 00:14:59 of centralized services. And so brainstorming some of that stuff, you know, and other new things. And then also just updating the web torrent implementation to make it a little bit more solid and add some features that users have been requesting. Yeah, so that's one of the cool things.
Starting point is 00:15:14 If you're the maintainer of a project and you have a lot of experience, then that is like one model for how to kind of sustain the open sources is to have people who use your code, you know, call you in for, for expert advice, basically, you know,
Starting point is 00:15:27 you know, even though they could figure it out themselves, they sometimes they prefer to just have the person who works on it to just come in there. Why not? If you could, right? Yeah.
Starting point is 00:15:34 It's one of the funnest things I've done. It's definitely really cool. They're, they're really good people like working with them. So this is kind of like a hero story. What about a war story? Something that other maintainers can sort of like latch on to. Something that's like you're in the trenches, you got some buddy knuckles, you're fighting the fight.
Starting point is 00:15:50 You know, what's that for you? What's a war story for you? Hmm. A maintainer war story. I haven't really thought of that before. Surprise. Surprise. Yeah.
Starting point is 00:16:00 I got one story. Maybe it'll be interesting. Back when I was getting started, actually, I don't know how far back to go here because I could go back to the very beginning. It might be too much information. Your birth? back in 2013. It was the first conference I ever spoke at. And I was giving a talk on WebRTC, which I had been learning a lot about at the time. So I did a company called PeerCDN. This is what I did right after college, before I had really gotten into open source. I guess I will go a little bit into the backstory of that since it's come up now. Is that okay? We're pulling it out of you. All right. Keep going. Yeah. so basically I had this kind of mischievous idea
Starting point is 00:16:46 that I wanted to figure out what could I do with people's browsers that they wouldn't expect me to be able to do. So like, how can I push these APIs to their limits? Which by the way is funny because I still think that way. If you know about my annoying website, you know, theannoyingsite.com.
Starting point is 00:17:01 It's very simple. I was going to say mischievous ideas is kind of your whole brand. Yeah. I guess, yeah. That also gives us a chance to plug GS Party once again because you actually spoke about that
Starting point is 00:17:10 annoying website on an episode of GS Party I would say at least a year ago, I bet. But continue, continue. So I was thinking of different things I could do and one of the things
Starting point is 00:17:19 I was really curious about was could I do computation using WebGL or workers to do useful work on people's browsers? You sort of use it as a distributed computer. Yeah, so I looked into that and the browser wasn't really quite fast enough. So I then discovered WebRTC, which lets you do peer-to-peer connections between browsers. And the idea that I had was why don't we connect a bunch of sites
Starting point is 00:17:41 together and build something kind of like a torrent network where the resources for a site can come from from the other people on the site and we can reduce the cost of running a site and so i ran with that idea for a little bit and tried to make a company out of it but i learned a learned a ton about how not to do a company i guess yeah like one of the big problems we you know we had was just being too focused on building stuff writing code and not really talking to customers and seeing if there are people who would want to ever buy this stuff. So a little bit of time went by there, and we didn't really have any customers,
Starting point is 00:18:11 but we spent about a year just building a bunch of really cool technology, learning all about WebRTC and making some cool demos. And in the end, we got acquired by Yahoo, which was a good outcome for us because we didn't have any customers. And we worked on this thing for about a year. So it was a really outcome for us because we didn't have any customers. And we worked on this thing for about a year. So it was a really exciting outcome where we got to go and just basically join the video team at Yahoo and made a little bit of cash, obviously. And that's actually what enabled me to spend a lot of time on open source later and not worry about having a job.
Starting point is 00:18:41 And I could just sort of fully devote myself to, you know, for years, just working on stuff and, you know, giving it away and not having to be, you know, worried about making ends meet. But anyway, so getting back on track. So at the end of, so right about when that happened, I gave this talk at Realtime Conf and I was talking about WebRTC and how cool it is
Starting point is 00:18:59 and what you could build with it. And at the very end of that talk, I mentioned the idea for WebTorrent because I knew that Yahoo was going to buy, you know, was going to have all the technology we had worked on. And my concern was that, you know, that some of the ideas, you know, of connecting everybody's browsers together and making a really amazing peer-to-peer network that can, you know, decentralize control of things, you know, that was a really cool idea. And I didn't want it to die with, you know, with this acquisition. So I was like, what if we
Starting point is 00:19:30 rebuilt Pure CDN basically, right? We rebuilt it from scratch, but made the goal instead of saving money on bandwidth, we made the goal decentralization. And we made it match the BitTorrent protocol as much as possible, because we know that already works. And that has a lot of and there's all this content on there and there's just there's a big community of people so we could just make this basically bring the BitTorrent protocol and put it put it into the browser right so it was just an idea that I thought would be cool to work on and I wanted to start working on it so I threw in this slide at the very very end of the talk you know like the last one minute of it or 30 seconds. And I said, I have this idea to make BitTorrent on the web. Here's what it would do. If you think this is a cool
Starting point is 00:20:10 idea, come talk to me. And I threw it out there as just this like thing that would be, you know, I wanted people to come and just, I wanted to find collaborators basically. But one of the people in the audience misunderstood what I said. And I did have a GitHub repo up with a readme in it that just said what the project would do one day. And he tweeted it and he had quite a few followers who like clicked through this link and said, you know, dude, there's no code here. What is this project? And so then he messaged me and was like, dude, I thought you had code. Why did I tweet this out to all my followers? There's nothing here. And I was like, dude, you could have looked at the readme, man. It was clear that it was just
Starting point is 00:20:47 an idea. So this guy basically launched WebTorrent for me before there was actually any code. I think it was a good thing that he did that because I don't know if I would have built it otherwise. It was just this idea.
Starting point is 00:21:04 It wasn't clear whether people would want to use otherwise. It was just this idea. It was kind of, it wasn't clear whether people would want to use it or anything like that. But because of their reaction, all the people who started opening issues and saying, this is a cool idea. I really think you should do this. I got really motivated. And I really wanted to actually build it at that point. That's really a great story. The thing I find funniest about it is you inadvertently fixed the problem. So the problem, your classic blunder was, you know, you build all this stuff without customers for pure CDN. And then by way of the slide, basically, you got all these customers without any software. I mean, quote unquote, customers, right? Like, you prove the demand for web torrent, without a single line of code, I go, read me. Kind of by happenstance by somebody tweeting now, but that's awesome.
Starting point is 00:21:48 That's the way you do it right there. Yeah, launch first without anything. You know, vaporware, that's the way to go, right? You should do a new talk, launch without code, get customers. I mean, this is actually typical startup advice that people always give, but I never experienced it firsthand. I think there's just far too many people who... I don't want to generalize here, but I guess I will have to generalize a little bit.
Starting point is 00:22:10 As technologists, we get really excited about code. We want to spend all of our time writing code. And so we can sometimes just get way too caught up in actually just only doing code and not really thinking if anyone's ever going to use it or if it has any value to other people. And I don't want to say that all code has to have, you know, a utility to other people, because sometimes you just want to do an art project or you just want to make something because it feels good to work on it. And, you know, that's great. But if you think that people will use your thing eventually, it's important to show it to people early and often
Starting point is 00:22:42 and to get people to see it and to give you feedback and to confirm that they're, that they're actually excited, that there's people who are actually excited and to hone how you explain it to people. So just to make sure you can actually explain, explain what you're doing. Cause so many projects can't even do like a lot of, you know, I just came back from the, from the decentralized web summit,
Starting point is 00:23:00 which is this conference where all these different peer to peer projects were, were presenting. And so many people there couldn't explain what they were building in a few sentences. You could even give them a few paragraphs and they still couldn't explain why it was useful to anybody. Yeah. This really speaks to the why and the how, right? The importance of the why to gain followers is not always as critical as the how. The code is somewhat the how,
Starting point is 00:23:28 but the why is what I think is what you put out there with that last slide of here's why I want to do it, here's how I think I can do it. And the why was very crucial to success of WebTorrent, as you said. And to get people who are interested to come and find you, by putting it out there, there are all these collaborators who sort of came out and, you know,
Starting point is 00:23:49 actually introduced themselves to me and said, you know, hey, this is great, I want to help. You know, you can't really do that if you're just coding away by yourself. If I could try to generalize your generalization to go one more step. If you take code as art off the table and say, we're talking about utilitarian code,
Starting point is 00:24:06 there's really two kinds of projects. There's one where you're scratching your own itch, and if it's that style, then the right methodology is, well, create the backscratcher. I got an itch, I'm going to create the code first, and then if other people find it useful, now I have a successful open source project.
Starting point is 00:24:25 And then there's the other kind, which is, I need to find people with an itch that I would like to scratch. Or I have an idea of a really cool new backscratcher, do I build it and then hope people have the itch on their back? I'm really killing the metaphor. But do I build first, or do I get the idea out there first? In that case, it's foolish to actually build the thing first. I mean, you can try to do both at the same time.
Starting point is 00:24:45 That's the best. If you can be scratching your own itch and you know everybody else is dying for a solution, I mean, that's actually a perfect situation. That would be nice. In a perfect world. So as a meta note, I love how Firas' war story is like, I won the war. It was easy. You know, like everything went great at the end.
Starting point is 00:25:03 It's kind of great. It's successful. Maybe I It's a successful war story. Maybe I don't understand what war story means. War story is usually whenever things don't go right. Battles, you know. You're sweating, you're blood. Usually it's an opportunity to complain about some users who are opening issues
Starting point is 00:25:18 that you hate. I guess I have a story of Standard.js when that first launched. There was a bunch of haters. That's probably a more appropriate war story. Well, Standard.js, because it is about style and whatnot, I assume it's open to the most bike shedding of any project out there, right?
Starting point is 00:25:35 Because it's like, this style is good or bad for every little aspect of the code you write. Is that what happened? Yeah, so, I mean, initially the goal of standard wasn't to tell everybody to write their code like the way I write my code. The goal was to save time on web torrents, on pull requests, where people were sending in these pull requests that I wanted to accept, but I couldn't because they just completely didn't follow the style guide of the project. So the goal was, okay, I want to just, I mean, what I should have done is probably just added
Starting point is 00:26:09 ESLint, or I think at the time, it was JS Hint that was popular. I should have just added that to the project and just moved on with my life. But the problem I faced was, if you use JS Hint, then you had to add this config file to like to each of the projects to sort of say what the style rules were. And this was like a hundred line file with all these options. And I didn't want to make a bunch of copies of it and put it into every different package. And so I was like, oh, there's a solution to this. Let's make another package.
Starting point is 00:26:40 Every problem in computer science can be solved with another level of indirection, right? With one more package, exactly. Exactly. So I just made another package and I put the little config file for the linter in there. Yeah. And then I just made every different WebTorrent project require that project. And then the question was, what do I call this package?
Starting point is 00:26:59 And so I was going to call it WebTorrent style or Feroce style or something like that. But then I was like wait a minute I should search for dictionary words and see if there's like a word relating to like you know code enforcement or something and I so I almost named it like I think enforcer or something or something like that but anyway then I then I found the word standard that was available and I thought ah I should call it standard because that will annoy people. That's right. I actually thought that it would annoy people. From the creator of the most annoying website comes a linter that's going to annoy people. Well, I mean, the thing is, it is a code standard, right?
Starting point is 00:27:40 So the name standard by itself shouldn't have offended that many people. But then I was like, okay, since I'm naming it standard, let's just go all out. Let's just call this JavaScript standard style instead of like for us as a style or something. And then just that title of the readme just set everybody off. They were like, how dare you? How dare you call yourself the standard? Are you a standards body? Is this part of ECMAScript? Are you part of TC39? And I was like, I'm not saying any of those things. I'm just saying that this is a style guide and you're free to use it if you want. If you want? If you want. Yeah.
Starting point is 00:28:09 That's right. Yeah. I mean, the thing that helped me at that time was like, I did get quite a lot of backlash, but then there were these friends of mine who thought that standard was a great idea. And they sort of dealt with all the people on github they responded to all the issues and sort of just you know said you know you guys are being haters if you don't want to use it you don't have to use it take it or leave it you know uh and and they sort of dealt with that for me and that made me feel really good it made me feel like i wasn't like that i should i shouldn't you know apologize and like delete it you know what i mean you chose a
Starting point is 00:28:42 provocative name you got a provocative response. And that's cool. That's how it works. Yeah. And the funny thing is that the main advantage of standard, I thought, was going to be that you didn't have to include the same big configuration file in every one of your projects. But it turned out that actually the real benefit that people liked about it was that they could just adopt it without having to make all the decisions themselves. And I didn't even know that that was going to be what people used it for. Sure. Yeah. They were adopting it because they liked that they could tell their team who was fighting about style rules and changing the ESLint configuration constantly and wasting a lot of time. They could just say, hey, everybody, there's this thing called standard that we can just use and we
Starting point is 00:29:24 can just end all these bike-sheddy discussions. That was actually the huge win. It was actually because it was called standard, it could just end a bunch of fights in different people's companies. Which, you know, who would have known that was actually the real benefit, you know? And we've seen languages with
Starting point is 00:29:39 official implementations adding formatter tools to the toolkit for that exact reason. Like Go, Fumpt, as they like to pronounce it. The adding formatter tools to the toolkit for that exact reason. Like GoFormatter. Elixir recently added a formatter as part of its mixed tools so that these conversations just don't have to happen.
Starting point is 00:29:57 This is the format. You follow it or you can have your own style if you want. We're not going to force you to do that, but if you want to just follow the style, run the tool, it's going to reformat your code and we don't have to have these bike-shed conversations. It's interesting in the JavaScript land that there's no
Starting point is 00:30:11 one implementation to rule them all. Maybe to a certain degree there is practically, but there's not a single company or entity that runs it. It's all based on boards and what have you, implementers. But here comes a one-off
Starting point is 00:30:28 JavaScript library from a guy named Firas. He just calls it the standard. Who does he think he is? Come on now. Yeah, who did you think you were, Firas? Yeah, I mean, it was called Firas. What did Brennan Eick have to say when you talked about it? He adopted it at Brave. Well, there you go. Dang.
Starting point is 00:30:43 It's the standard now. Now it is the standard. Exactly. The inventor of the language endorsed it. And then also, believe it or not, Tim Berners-Lee, the inventor of the web, also uses standard. Okay.
Starting point is 00:30:57 There we go. That's all the street cred you need. I saw a sticker on his computer at the D-Web Summit in 2016. I was actually the one who gave him the sticker. Disclosure. I put it on his laptop. No, no, no. I gave it to him because I knew he used it. I saw it on his GitHub. And then I was like, yo, you should take this sticker. And then he put it on his laptop. No, I mean, yeah, I would not have guessed that that was really going to be the benefit of standard, that it would end all
Starting point is 00:31:23 those style debates for people. I mean, the flip side of that is that I basically took on all the style debates for other people. I mean, so now instead of every company fighting out whether or not they should put the curly brace on the same line or on the next line or whatever, all these random discussions that... Same line. Yeah. Yeah. Obviously, same line.
Starting point is 00:31:44 But instead of every company having to have this fight separately, the idea is like, we'll just take it to the standard repo and have the fight there, and then decision gets made and then we can all stop fighting about it in all the different companies. But that just means that my life became a lot more about talking about style when the whole point was that
Starting point is 00:32:00 I was trying to avoid writing style feedback and pull requests on web toursrents. So it sort of backfired on me. And I'm one of your all-time backfires. Yeah, I mean, it helped a lot of other people. So I'll take that, you know, backfire. All right. I hope you've been enjoying this conversation with Faraz for our Maintainer Spotlight series.
Starting point is 00:32:34 Special thanks to Tidelift. We're producing this podcast series in partnership with Tidelift because we both deeply care about supporting the maintainers of open source software. Our goal with this series is to dig deep into the life of an open source software maintainer, to learn what challenges they face, the highs and lows of being a maintainer, how they financially support their projects, how they maintain balance between life, day job, and open source, and also how they're supporting and encouraging contributions and community. For the uninitiated on Tidelift, they're the first managed open source subscription model that pays the maintainers of the exact open source projects you depend on, Thank you. Speaking of standards, at least on GitHub and actually on the standard repo, you've got the newest standard for sustaining and supporting projects,
Starting point is 00:33:43 which is the sponsor button, the funding.yaml file. What has that done for Standard itself? Can you speak to GitHub sponsors or just the sustainability of your projects? You mentioned before being a Brave and that being one of the first times you ever paid for your open source. So can you speak to the getting paid aspect and what it means to you? Yeah, totally.
Starting point is 00:34:05 I mean, so like I mentioned before, I worked on open source funded mainly by my savings that I got from working at Yahoo. So I did that for like a year and saved some money up and that was sort of what enabled me to put so much time into open source
Starting point is 00:34:19 and to not have to worry about other things and to not have to sort of squeeze it in after a day job. So that was really great. But I mean, that obviously can't last forever. Savings run out, reality hits you eventually. Basically, I think it was like the beginning of 2018 where I was like, okay, this isn't going to work indefinitely.
Starting point is 00:34:40 I need to think about how to get paid for open source or else I'm not going to be able to keep doing it. I mean, there's obviously other collaborators who help out with stuff, but there's no one really working full time on WebTorrent and on any of the code I've created. And so my concern was that this stuff would just get unmaintained if I left it and it wouldn't be in as good of shape as I would want it to be. And so I started having these feelings of guilt of like, I can't just abandon this stuff. I can't just not work on it anymore. I was like, okay, the solution is I have to just get paid. If I could find some way to get paid so that I could
Starting point is 00:35:18 work on this at least 10 hours a week or 20 hours a week, something like that. I could really do this thing that I enjoy, keep all this code in really good shape. That would be ideal, right? So I started exploring different funding models in the beginning of 2018. I made this package called Thanks, which you could run it in your Node project. You'd run npx, you know, space, thanks. And I would just execute this thanks program. And what it did is it would go through your package, your package.json file, and it would find all the packages
Starting point is 00:35:52 you're depending upon and their dependencies, and then it would look up and see, are any of the authors of these packages currently seeking donations on a platform like Patreon or Open Collective? And if so, it would just, you know, print out a list of people you could donate to. And then I started a Patreon as well to solicit donations from my users.
Starting point is 00:36:13 And I thought this would be a great solution for funding it because people would just be happy to give you money for the work that they rely on. Turned out it didn't really work out quite as nicely as that because people, I don't know, people don't, I think people are just too used to getting stuff for free and it's this optional step that they can do afterwards and it's just, it got, you know, a few people ran it, it raised awareness of, you know,
Starting point is 00:36:37 of what packages people are depending upon and stuff like that. It didn't really help me at all. The main person I think who benefited was Sindra Sorhus, the Node no JS contributor, because he shows up at the top of pretty much everyone's list of, of thanks. Yeah. So, because he, he just has so many of these tiny packages that everybody uses. So it would just, it would say, you know, pretty much every time somebody ran it, it would say, you should donate to Cinder Sorhus. Uh, and, uh, I, I looked at his Patreon, um, like statistics and you can see a little blip where his, his, um, I, I looked at his Patreon, um, like statistics and you can see a little blip
Starting point is 00:37:05 where his, his, um, monthly money went up by like $200 a month, right. When I released, thanks. Come on, Sendra, send some of that back Ross's way. Yeah. But, um, but yeah, so, so then I, I started promoting my Patreon, like on Twitter and trying to get other people to, to make Patreons around that time. And, um, I was like moderately successful, I say but not enough to to um allow me to work on open source full-time or even even part-time and living in the bay area where i live it's just too expensive so yeah i was kind of bummed by that i like the potentially
Starting point is 00:37:38 accidental standard additional standard here i guess because you've got frost.org slash thanks, which I think is pretty cool as a software maintainer and open source software maintainer to have this sort of, you know, whomever you are thinking, you know, you get your platinum sponsors there, your gold sponsors there, people who are helping you maintain this lifestyle of being a, an open source software maintainer. So you're, you're not only putting your thanks out to the world, but you're also inviting those to come in to support you via Patreon, GitHub sponsors, even Bitcoin. I think this is an interesting thing that I'm curious if more software maintainers who desire to be sustained by their community could do to enable this?
Starting point is 00:38:25 Yeah. I mean, I think that, I think that it is a thing that you can do, but it's, I've thought about this a bunch. So I guess I can, I can list off a few things that people should keep in mind if they,
Starting point is 00:38:34 if they want to go this route, things that make it hard. So, so the first is that, um, companies can't donate money to people in general. It's, it's, it's,
Starting point is 00:38:42 it's, it's a lot harder for like a company to do a donation than it is for them to just buy a product. So if I was selling something for like I was selling a license to a text editor like Sublime Text for $100, then pretty much any
Starting point is 00:38:58 developer at that company could just buy that editor and then expense the $100 to their company and their company would have no problem paying for that editor because it's making their developers more productive, right? So, but if that same developer goes to their boss and says, you know, hey, we use code by this guy named Frost and a bunch of these other people and, you know, they're asking for donations. Can we donate to them? Their manager is going to be like, well, we can't, how do we do that? We need an invoice saying that we're paying for something. We're not a charity, we're a company. So we have to be buying, we can buy things for ourselves, but we can't just give money away.
Starting point is 00:39:33 And even if they really do, if that manager happens to be one of the few managers who really would appreciate the value of open source and wants to donate, and they go to their CFO or whatever, their finance officer and say they want to do this, that person's going to be like, who's this person? We can't just give money to a random person. How are we going to explain that to our shareholders or on our taxes or whatever? So one big problem is just what are you actually asking for from these companies? If you're not giving them something that they can just pay for, then they're not going to be able to support you. That's like one huge lesson I learned.
Starting point is 00:40:10 So like an example, like what can you actually ask for? Well, you can say, okay, this is not a donation. This is a sponsorship. You're buying advertising basically on the project's website. You're going to get your logo there and you're going to put a link to your site. And we're going to say, you know, you support open source. You're not paying for the support. You're paying for the your logo there and you're going to put a link to your site. And we're going to say, you know, you support open source. You're not paying for the support.
Starting point is 00:40:28 You're paying for the advertising of your support. Yeah. And that's something that they kind of understand because they actually already have a budget for advertising. Yeah. That was a lesson that took me way too long to learn. It might also increase your pool of money to access as well because sometimes advertising and marketing budgets can be bigger or brand association budgets can be bigger than just simply the donations pile, for example, which seems to be pretty small or non-existent.
Starting point is 00:40:46 Yeah. Or very hard to execute on. The other thing that was sort of sad about the, I mean, the donations thing was like a bunch of the people who were donating to me were other open source maintainers. So it was like not really accomplishing the goal. I was like, and then I would donate back to them. So like if you have somebody, so we had this like a bunch of this like really weird ring where we were all donating like $10 or $20 to each other in a big circle. And so it looked like we were getting $400 a month, but it was actually just... I was giving a bunch of money to everybody and then they were giving it to everybody else.
Starting point is 00:41:17 And it was all just coming back to us. And then there's obviously other nice individuals who also were doing some donations. But I just think that you know the main people who have to sort of fix this problem are going to be companies and we have to find a way to make it so that they want to want to pay for something that where they're actually getting value from it um and and that that will be a much easier conversation to have with companies than like what we've been trying which is where we say here's all of our code for free. You can do whatever you want with it. Oh, and by the way,
Starting point is 00:41:48 could you please consider giving something back? That conversation doesn't work if the goal is to get paid to work on open source. It just doesn't work. I want to ask you about what's working, what's not working. Before that, I'd like to do a quick disclaimer. So on your standard standard,
Starting point is 00:42:03 you have in the funny animal, GitHub for us, Patreon for us, Tidelift NPM standard. So you are a Tidelift supporter. This series is maintainer spotlight. We are doing in partnership with Tidelift. They are sponsors of this episode. That being said, we are not required to talk about Tidelift.
Starting point is 00:42:19 We can say whatever we like. We did not invite for us on the show because he is on Tidelift. We're here to talk to for us because he's an awesome maintainer. And we have complete editorial control. I want to make that super clear for our listeners that this is not like a Tidelift pay-to-play kind of a show. It's just in sponsorship with them, in partnership with them. And we can say what we like.
Starting point is 00:42:41 Feroz, you can say whatever you like. So having said all that, you have these different things you're trying, you're an experimenter, you're a tinkerer. I'm curious if GitHub sponsors is a game changer for you. If you think it will be, maybe not yet. Curious how Tidelift's going. You mentioned how Patreon's kind of going. Where does your sustainability stand and what do you think the future looks like?
Starting point is 00:43:00 Yeah, so I think that obviously getting money, you know, getting money from companies, I think has to be the strategy that we adopt going forward. And so one route is contacting companies directly. And that's what I've sort of tried. It sort of works if you are persistent, and you're willing to, you know, email a lot of people and explain to them the benefits of getting their logo on your on your open source projects page. You can sort of end up getting, I don't know, a few thousand dollars a month if you really work hard at it. Obviously, the downside to that is now you're spending a bunch of time emailing people and having meetings about sponsorship issues instead of coding. And I think a lot of maintainers just
Starting point is 00:43:38 don't want to do that. So I think that's where the promise of something like Tidelift comes in. The idea there is instead of maintainers having to interface with all these companies and try to explain to them why they should be caring about their dependencies and the shape that those dependencies are in, Tidelift can just go out and do that. And they have a sales team of people who are just basically going out and talking to companies and trying to convince them to pay for open source. And then they turn around and they give like half of the money that they collect from those companies straight to the maintainers. I think
Starting point is 00:44:10 they've promised that they're going to always give at least half of their profits indefinitely. That's a cool model because now suddenly I don't have to worry about emailing people and doing all this sort of salesy stuff, which I mean, I don't mind doing it because I like to push myself to learn new skills and to, you know, to go outside of my comfort zone. But I know a lot of maintainers like don't want to be spending their time like basically being a salesperson. So this is actually a promising model, I think. The way Tidelift does it is they look at sort of what their customers, their subscribers are using. And so they look at sort of what their customers, their subscribers are using. And so they look at what packages are their customers relying on. And then they say,
Starting point is 00:44:54 they have some kind of an algorithm that sort of just tries to calculate how much of the money that they've collected should go to the different dependencies. And then you just, as a maintainer, you just sort of sign up and collect that every month. And there's really very little you have to do in return at the moment for you just sort of collect it. So I'm right now making like about $500 a month from that, from Tidelift. So it's great, but you know, like all these things are all just, like the thing that's not ideal about all these different approaches is just that, you know, if I were to go just get a job at Google or something, I mean, I can make way more money, right? This isn't about money.
Starting point is 00:45:26 I mean, this is not really about trying to get rich, but it's just about, you know, if we want open source to be... How weird is it that open source creates all this value for people, right? And the people who actually get to capture all this value are like the startups that are built on top of the open source and not the people who actually make the open source. Just like think about how, I mean... if you assume the value is monetary value right because you just said it's not about money and in that case you're saying the value and so the
Starting point is 00:45:52 the value in the case of a startup is generally revenue you know in the case of say an instagram with billions for example built on open source so in that case if your value prop is simply revenue then then yeah that's true. I agree. I mean, yeah, I don't want to sound ungrateful about all the things open source has given me. I really do think that it's been amazing. I mean, I have so many friends everywhere around the world and it's been really great for just me as a person, such a better programmer. There's definitely an imbalance. Sorry to cut you off, but I just want to speak to your point about the people building profitable or sometimes failing companies on top of open source.
Starting point is 00:46:32 There's definitely an imbalance that we see, and I think we all see it, especially from the inside. Especially with all of our friends are burning out or struggling and making these things that huge corporations benefit from and not seeing any kickback. And so I see the imbalance. There's also a side of it like, well, you know, we're open sourcing our code. We're giving it away. It's a gift to the world.
Starting point is 00:46:57 I totally buy that. I want to give a gift to the world. That's why I got involved. I love the idea of giving away my code and just letting anybody do what they want with it. That's why it's like, I wouldn't call it a gray area. It's just like there's conflicting,
Starting point is 00:47:13 I have conflicting feelings about it because I built a career around this stuff. I've gotten tremendous value out of it. If I was to weigh in the balances, like how much I put in versus how much I've gotten out of open source, I've gotten
Starting point is 00:47:29 out a lot more, just individually. And I think most of us can say that. You're speaking for yourself, right? I am speaking for myself, Jared. And I'm not a big business who's reaping in the profits. By the way, I would also agree with, sorry to cut you off, but I just want to say
Starting point is 00:47:45 I totally agree with that too. Even though I put in all this time, I think I still have gotten more from open source than I've given. That's what's tricky about it. We all agree that these companies who are, I think they're also getting, I mean, okay,
Starting point is 00:48:01 I've gotten out more than I put in, but I'll just go on a limb and say Instagram Inc. or whatever that entity is, got out way more than it put in. Especially if we're speaking in terms of monetary value. Yeah, orders of magnitude. And so that's where we stand. And I think it is the community's job
Starting point is 00:48:24 to rally around this issue. I think what we're doing and find solutions. And that's why it's interesting to hear what's working for you. Because as a single maintainer who does have some celebrity and audience, if it's not working for us, then if anybody who has the kind of, the the kind of, you know, the person who's
Starting point is 00:48:46 running that transitive dependency that nobody even knows about and has a small following, it's really not working for that guy or that gal. Totally agree. Yeah. Totally. Yeah. That's the thing. That's the thing I always think about is like, I'm fortunate to have like some people who,
Starting point is 00:48:59 you know, follow me and I can talk to them about, you know, this issue. And, you know, if you, if you issue. And so if you look at the people who are making the most from open source and who are able to sustain themselves the best right now, it's not me for sure. But you can look at people like Evan Yu, who I think last I checked was making 16K per month on Patreon. I don't know if that's all for him
Starting point is 00:49:22 or if that goes to other contributors as well. But there's a couple of other examples of maybe... Cinderasaurus, I think, is also doing all right. And he also lives in Thailand, which is one of the ways he keeps his costs low. But there's really not that many examples. You'd think that the very most well-known maintainers would be doing quite well. And then you could hope that people who are less good at marketing themselves or just don't want to spam people on Twitter as much as I do, those people would also be able to make a living doing this.
Starting point is 00:49:58 But it's just not that. It's not the case. So it's absolutely right that like, yeah, some of the things that would make it easier for me to do this than other people, you know, you can actually point to all these advantages I have, and even and it's not even working for me. So that just tells you that, you know, it's not going to be a thing that most people can do full time, unless they're just lucky enough to get a job that just, you know, pays them to do to do open source, because I have these number of followers. And I have, I fortunately work on projects which are user-facing. So standard JS and WebTorrent are things that users actually intentionally install. There's all these other maintainers who do amazing work that powers all this stuff,
Starting point is 00:50:33 and they aren't making projects that people usually directly install. But oftentimes, they're doing as much work or more work than the sort of the user-facing stuff. So, I mean, those people are just, you know, they have a lot harder of a time raising funds because no one even knows that they're depending on this stuff. And the really, really paradoxical and unfair thing is that the better job that they do as a maintainer, the less that people are going to know that they exist, right? Because the better they do their job, the more invisible their software is. Like their software will cause no exceptions, it will cause no errors. So then no one will even bother to know that that's in their dependency
Starting point is 00:51:13 tree. Versus if they actually did a bad job and they were, you know, all kinds of issues being caused by their package, then people would go there and, you know, they'd go to their GitHub page and they would file issues and they would complain. And they would at least get to see this readme where the person could say, hey, by the way, I'm raising money for open source. It's really hard for those types of projects to get sustained. I have a draft blog post about these people and I'm comparing them to the offensive line in a football team. I don't know if either of you are football fans, but the offensive line is the most thankless job in football. All you do is you protect the quarterback or the running back, whoever it happens to be.
Starting point is 00:51:57 And when you're doing your job great, nobody notices that you're even there. And then the only time the camera comes on you is when you miss your block and the quarterback gets time the camera comes on you is when you miss your you miss your block and the quarterback gets sacked and then everyone looks at you like you dope what are you doing and so there's just a thankless thing that only gets focused on when something goes wrong and that's what these maintainers are they're just like that it's it's a shame you know it's up to you know that's why the quarterback's always thanking the offensive
Starting point is 00:52:23 line when the when he's getting interviewed after the after the game's over because they're the ones that that made it possible but they don't get any of the glory they just get all the shame it's really unfortunate but it's just there's multiple positions in the game and they play offensive line you know yeah yeah and i mean sometimes these people didn't even ask to be to be maintainers yeah they didn't even try out. They're just like all of a sudden, hey, you're on the line, get out there. They just made a project and put it out there and then suddenly they find that all these companies are basing their businesses on their code. And then they suddenly feel like, oh my god, I have to show up and take care of this because people's builds will break.
Starting point is 00:53:00 What if I miss my block and the internet goes down? Before we round off this portion of the conversation, can you speak to the success of GitHub sponsors? For you at least? Yeah, I just signed up for it. So far I haven't really told anybody that I'm on there. So I can't really speak to it. I know some people are having quite good success with it. Is it just Standard using the GitHub sponsors button?
Starting point is 00:53:26 Or is it others? Just that one project? I think it's just, I just put it on standard for now. Because they've got the sponsor button up in there. So they're telling people for you, even if you're not. Yeah. So one thing I like about GitHub sponsors is that it puts it right there on the page. So it's built and it's built directly into GitHub.
Starting point is 00:53:41 So in theory, it should be a lot easier for people to contribute. If they are already, especially if they already have their credit card added to GitHub versus going over to Patreon. But yeah, and the other good thing too is that GitHub is matching the sponsorships for the first year. So that's pretty good. Sweet.
Starting point is 00:54:00 Yeah, but we'll see. I mean, I still think I want to, I'm really curious about other models where there's more of an exchange of value instead of like this donation model um but i mean in general we need to try more things just as a community so i'm just glad that there's experimentation and that there are people talking about this right i just yeah i just think we need to try more stuff and see where it goes so because jerry put out that awesome
Starting point is 00:54:25 disclaimer about our relationship with tidelift in this show i can share my free opinion without any concerns and that's why i think i personally like the tidelift model because of that value exchange uh charity doesn't scale very well it's nice it does have its benefits but when we talk about sustainability on the long term, when you exchange value with a company, in this case, if we're looking at the idea of companies being able to use open source and potentially in the Instagram models or others, extract a massive amount of monetary value from it, how can we direct more of that value back to those who create and maintain
Starting point is 00:55:05 and support the open source we rely upon? If that's the idea, then you've got someone like Tidelift or others who may come up that say, hey, company, if you use for us as project standard, and it's in your dependency tree, if we can give you assurances, would you pay us so we can pay them? That's why i like that model because there's this value exchange between the two that when vi exchanges hands money often flows and so that's a good model for me charity is great it works in the case of open source software i think it has its limits i think this is a more viable long-term option to look to lean upon yeah i'll i'll want to quote Dominic Tarr here.
Starting point is 00:55:46 He's the guy who maintained EventStream. That was the package that was in the news a little while ago. I think we talked about it on JS Party. The one where somebody came along and said, hey, you haven't been maintaining this. I'll take care of it for you. And then Dominic gave the package over to this person who was a complete stranger.
Starting point is 00:56:06 And that person ended up putting a backdoor into the package to steal Bitcoin. And one of the things that happened after that, in the aftermath of that, was he wrote this little post where he talked about what it's like to be a maintainer. And he said, if it's not fun anymore, you get literally nothing from maintaining a popular package. And then he gave this really funny anecdote about how he used to be a dishwasher in a restaurant and he did his job a little bit too well. So they promoted him to cook and they only gave him 50 cents an hour more for that. But it was like massively more responsibility. And he didn't feel like it was worth it. So I think he asked to be put back as a dishwasher. But he said that writing a popular
Starting point is 00:56:51 module is like that, but times a million. And the pay increase that you get is zero. So it's like you just get infinite responsibility, no pay increase. And so if you're not using the package anymore, then he feels like what's the point so that's something that i think maybe tidelift or something along these lines can change because instead of popular packages being something that is a sort of like a drain on a drain on you you know especially if you know if it's not fun anymore if you're not using it anymore like what if instead it was a like an asset you know something like you know it's like if oh well you know what if I take care of this package,
Starting point is 00:57:26 Tyler's going to pay me however much per month or some other kind of model. Just imagine how different open source would be if that was the case. I think it'd be so different. Now suddenly somebody who normally wouldn't be able to participate in open source because they need to get a job
Starting point is 00:57:40 or they don't have the free time, they could adopt a package, especially one that nobody wants to take care of, you know, that someone's trying to literally give away to the first person who asks. They could adopt a package like that and even get paid to work on it. That would be so cool. I really think that open source would just be in much better shape. People would be, you know, people would say, you know, I want to take, I want to maintain more packages because I'm going to make more money. So like, I want to, you know, that would just be such a different world
Starting point is 00:58:05 than what we live in today. One thing, one lesson I've learned, you didn't say this word for word, but one thing I've learned this year or something that's been on my forefront of like what am I optimizing for is how can I turn my liabilities into assets? And I think that's kind of what you're talking about there
Starting point is 00:58:21 is like how can you turn what is often a liability or what might be a liability to somebody into an asset and that's what models like Tidelift do is enable that. One tool I'd like to mention which is cool and speaks to this and to the experimentation comes from Open Collective. They have a website
Starting point is 00:58:38 backyourstack.com so we were talking about the problem with transitive dependencies and not knowing who your offensive linemen are. This is a place where you can just put your GitHub organization in and it'll analyze all your code and dig through it. I think it supports JS, PHP, Go, Ruby, and.NET at the time. Right now, but it's open source. You can add other ecosystems.
Starting point is 00:59:02 And it will just analyze your software and show you all the different things that you're depending on. Probably similar to the way Thanks works, but it's a nice easy website that you can send to somebody who's not a command line junkie and show them, like, these are software projects in need and we could support them via,
Starting point is 00:59:21 I think it's obviously for them it's via Open Collective, but whatever ways. So that's something worth checking out if the listeners haven't heard of backyourstack.com. Cool. For us, let's close with maybe some hope, I suppose, for maintainers out there. You seem to have either thick skin, the tenacity, or all the above to keep doing what you're doing. So what have you done to sort of make being a maintainer a little easier day to day? What are some tips and tricks you can kind of share on our way out of this conversation? I guess I should say that I think I could do a
Starting point is 00:59:57 better job of all those things. You know, what I mean is, you know, I did get burned out a little bit in 2018. So I think think knowing when to take a step back and rest is really important. And also, there's this weird feeling of guilt you sometimes get as a maintainer about like, I owe all these people stuff because they're relying on my code. And that's really not healthy.
Starting point is 01:00:22 I think I've heard a lot of other maintainers talk about this, this weird sort of sense of obligation that you have toward the users of your projects. Yeah, I don't think it's helpful. I think that's sort of been the most, the thing that's been the least helpful to me as a maintainer. So I don't know, finding ways to not feel that sense of guilt and just remembering that, you know, that open source is a gift to the world. It's a, you know, it's like me saying, here's some code I wrote, and I'm going to put it out there. And, you know, you're free to use it to solve your problems and to help you. And, you know, but I'm not necessarily promising that I'm going to hold your hand forever with this code,
Starting point is 01:00:59 and I'm going to fix every problem that might arise for the, you know, for the indefinite future. And, you know, that's not part of the promise. And just remembering the, you know, for the indefinite future. And, you know, that's not, that's not part of the promise. And just remembering that, you know, and just, just contributing when I, when I can, when I feel like I can, you know, and just remembering that it's a marathon, not a sprint. Well, we appreciate your willingness to experiment, your willingness to share your ideas. You said earlier that I want to give my code away as a gift to the world.
Starting point is 01:01:24 And we certainly appreciate that as well. And we appreciate, you know, all the ways possible to enable open source software maintainers to live the lifestyle of a maintainer, which is whether it's a network of value or if it's financial value, whatever the value it is that you're seeking. I, you know, we here at Change Lab want to enable stories like this to be shared and the opportunity to do the things we love. Because you said that, you quoted Dominic, if it's not fun anymore, what's the point, right? So. Yeah. And I don't want to leave people with the impression that being a maintainer is not, you know, not a good idea. I think that's
Starting point is 01:02:04 really, that's not, that's not the message, even though we have been focusing a little bit on the sort of maybe the darker side that isn't told as often. Um, I, I really do feel like being a maintainer has been one of the best things in my life. Um, and I mean, I have friends all over the world now from, from going to conferences and such'm such a better programmer. It's been incredible. I also think that the financial model thing is probably going to figure it out soon. It might not even be a bad time to start if you're thinking about spending more time doing open source.
Starting point is 01:02:40 Maybe we'll figure this out soon. This won't be a thing where you have to choose between doing what you love and putting food on the table. Well, Frost, thank you so much for your time today. It was awesome. Yeah, of course. Totally happy to be here.
Starting point is 01:02:54 Thanks for having me. All right. Thank you for tuning into this episode of The Change Law. Guess what? We have comments on every single podcast episode. Head to changeog.com, find this episode, and you can discuss it
Starting point is 01:03:08 with the community. Huge thanks to Tidelift for their support of our Maintainer Spotlight series. And of course, thanks to Fastly, Rollbar, and Leno for making everything
Starting point is 01:03:16 we do possible. Our music is produced by the one and only Breakmaster Cylinder. If you want to hear more episodes like this, subscribe to our Master Feed at changelog.com
Starting point is 01:03:25 slash master, or go into your podcast app and search for changelog master. You'll find it. Subscribe, get all of our shows as well as some extras. Only hit the master feed. It's one feed to rule them all. Again, changelog.com slash master. Thanks for tuning in. We'll see you next week. Bye.

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