Sourcegraph Podcast

Conversations, stories, and insights from dev tool creators

Max Howell, creator of Homebrew and founder of tea

Max Howell, Beyang Liu

Beyang talks with Max Howell, creator of Homebrew, about his new package manager, tea, which aims to solve the problem of open-source funding.

Max shares his beginnings in programming and what led him to work on early music players in Linux, Last.fm, and eventually get into Mac development. Max discusses the frustrations he experienced in cross-platform development that were the impetus for the creation of Homebrew and explains how Homebrew became the de facto package manager for macOS.

Max talks about his latest project, tea, a successor to Homebrew that aims to solve the open-source funding problem with a decentralized protocol that uses NFTs and an understanding of the package dependency graph to distribute funding to open-source maintainers.

Subscribe: YouTube Apple Spotify Google RSS

Beyang and Max discuss Max’s early years in programming experimenting with the BBC Micro and BBC BASIC (1:55-9:25)

Max talks about his experience helping to create Amarok, an early open-source music player on Linux (9:35-13:42)

Max explains how he transitioned from open source to programming for pay by getting hired at last.fm (13:47-16:52)

Max discusses how his work on Last.fm apps led him into Mac development (16:54-20:13)

Beyang and Max discuss user experience and Max’s work in the macOS ecosystem (20:15-24:55)

Max discusses the frustrations he experienced in cross-platform development that led him to start Homebrew (27:15-33:59)

Max explains how Homebrew became the de facto package manager for macOS (33:30-41:00)

Max introduces his new project, a successor to Homebrew, called Tea (41:04-50:34)

Beyang and Max discuss NFTs and how selling an NFT prompted Max to consider the problem of paying developers in open source (50:35- 54:00)

Max discusses how Tea aims to solve the problem of compensation in open source (54:04-56:33)

Max describes the “Nebraska problem” and walks through how Tea can fund projects like OpenSSL and its dependencies. (56:34-57:43)

Beyang and Max discuss how NFTs and DAOs fit into the Tea protocol (57:45-1:08:20)

Beyang: All right, welcome back to another iteration of the Sourcegraph Podcast. Today I’m here with Max Howell, creator of Homebrew, the popular package manager for macOS, a prominent contributor to the Mac and Swift open-source communities, and most recently, the founder of Tea, a new decentralized package manager that aims to solve the hairy problem of open-source funding. Max, welcome to the show.

Max: Hey, great to be here.

Beyang: Awesome. It’s so good to have you. We have so much ground to cover, but the way we always kick things off here on Sourcegraph Podcast is by asking people how they got into programming. So, going back to, you know, your beginnings as a programmer, what was the thing that got you into this world?

Max: Yeah. When I was six, my dad brought home this computer that we had in the UK, called the BBC Micro, and it was, in fact, indeed made, in some manner at least, by the BBC, or they sponsored it. Certainly, they stuck ‘BBC’ all over it. And one of the things about it that was interesting, and I think is kind of a shame that this doesn’t still happen is that it booted straight into a prompt that was not, like, Bash, not a shell, it was a programming language. It was BBC BASIC, which was a very typical BASIC and probably didn’t deserve to be branded BBC. I’m sure this was like, you know, someone else’s BASIC, I’m not really sure.

But because it booted straight into the prompt, my dad started playing around with it, and then he introduced me to what you could do. And obviously, the first few programs we wrote were the ones that you do see from time to time when you go to computer museums, the PRINT HELLO, on line 10, and then on line 20, GOTO 10. Because BASICs used to number all their lines, and then you referred to them that way, which was a very easy way to get the hang of what program flow was like. And it is actually kind of a shame that there isn’t any major BASICs around nowadays, I think, for people to learn from. Like, it seems a lot harder to jump straight into JavaScript or Python than it was for me to get into BASIC.

So yeah, from a very young age, I was into it, but just as something that I was doing with everything else that a child does. So, I made video games. And [laugh] remember, I got in and out of it, and I remember when I was 11, 12-ish, at school, I’d go to the library at lunch and just work on this game that I was making. And me and some friends were, like, competing to figure out how to make any kind of game scroll. We started off making this, like, Asteroids kind of game, it was like a maze. You had a ship and you moved through this maze.

And we couldn’t figure out how to make the screen scroll so we have this, like, little competition among us. I was the first to figure out how to make a game, like how to make it so that keypresses moved something on the screen. And this was before the internet, of course, or the internet was extremely nascent then. Like, we did not have it. So, we had to scour the manuals and figure it out.

And then my friend, I came in one lunch, and he was like, “I figured out how to make it scroll.” He was just so thrilled at himself. Yeah, it opened up a whole new sort of era in our BASIC video game-making. So yeah, for a long time, like, that was it for me. I never considered it as a career because nobody in my life programmed for a job.

Beyang: What did your parents do?

Max: My mom was an interior designer and my dad was just like someone who did, like, construction, essentially, like, internal inside houses work. But my dad was very into math and electronics and, you know, programming to a certain extent. Like, he used to play chess with me until I got better than him and then he just suddenly stopped playing with me. [laugh].

Beyang: [laugh].

Max: So yeah, my mom always, like, gave me this impression that the only things worth doing were, like, being a lawyer or a doctor. It wasn’t, you know, something she did deliberately, but it never was something I considered. And I remember, I went through a career fair when I was 16, 17, and I went to the programmers who were there and talked to them. And I came away feeling that they were just so geeky that I didn’t want to do it. [laugh].

Beyang: [laugh]. You were turned off by the nerdiness.

Max: Yeah. Yeah.

Beyang: It’s just not your personality type.

Max: Well, things I was quite nerdy as a teenager, but I didn’t want to be.

Beyang: [laugh]. It’s not really an aspirational thing. It’s just a—[laugh].

Max: I wanted to pick a career where I was moving away from that to some extent. Well, I don’t know. I picked chemistry. So, I went to university and did a Masters in Chemistry. And well, I did one year in industry and hated it.

I… I really enjoyed the first month where I got to know the machines and was measuring surfactant surface tension and, like, the organic chemistry would make me new surfactants to measure, and I’d measure them. And when I got the hang of the machine, it was really fun mastering that. And then after a month, I’d mastered it, and I realized that if I did this, as a career, I would be using this machine for the next five to ten years of my life and that’s it. There would be nothing else. I could try and write some papers and get myself, like, out there, et cetera, but I realized it was a very slow-moving area.

And in a way, it’s fortunate that I ended up doing this boring physical chemistry rather than something a little more interesting because I might have stuck with it. But I became extremely depressed and started looking for other things to do. And I remembered that I really enjoyed programming. And at this point, it was possible to install Linux and then look at the source code. And I was, it seemed, like, natural for me to get into something where other people were collaborating, contributing because I wanted to understand how to be part of something like that.

It was rewarding. And so, as a result, I got into programming from open-source, like that was my route. I never did computer science. I never really found it that interesting is the thing. Obviously, I’m famous for snubbing it at this point.

Beyang: The kind of theory behind it, not your cup of tea? You’re more of kind of like—

Max: Yeah.

Beyang: —in practice, hands-on.

Max: I like building things. I like making something that someone else is using, and, like, get something out of. And my [unintelligible 00:07:00] I got a design background as well. I almost went to university and did product design or industrial design. I got a scholarship… in UK we call the sixth form, which is… there isn’t really an equivalent in the States, but it’s like, after 16, 17, and 18, you can do two more years.

So, I almost did that, but as result, I have a design basis; I have a product background. So, the algorithms, I find them fun occasionally. I certainly it’s not as though I haven’t had to do some algorithms of a Data Science and Computer Science, kind of, nature here and there. Like, when I need to I do. But it was never the, like, part which interested me. I like building things.

Beyang: Nice. So, when you got into open-source, was computing just sort of this hobby that you had kept on through your college years, and your—

Max: Mm-hm.

Beyang: Years as a professional chemist? Were you just always, like, installing the like, how did you get introduced to Linux in the first place?

Max: [laugh]. Yeah well, I got fed up with Windows. [laugh].

Beyang: [laugh]. Well, a lot of people got fed up with Windows.

Max: And the more I studied, like, what was going on in computing—like, I found Slashdot, like, one year, I remember finding Slashdot. Like, during university, I became obsessed with this mp3 player called Sonique, which was like the main competitor to Winamp, but not as popular. It was very pretty. And I think that’s probably what got me into it. But not as good, frankly, with hindsight.

But there was a bunch of people that I used to hang with on those forums, and they introduced me to Linux as, like, this free version of Windows. And at the time, Microsoft was evil, right? I don’t know if people remember this, but they were a tr—

Beyang: [laugh] the old Microsoft.

Max: [laugh]. Yeah, right. Nowadays, I have a reasonable amount respect for them, but at the time, like, IE6 was destroying the internet and they were doing everything they could to make sure that Windows was the only operating system that existed, and that included trying to take out Linux. So like, I got into this sort of revolutionary spirit, I think, that was part of the Linux movement. And I’d watch Stallman on his movies and, like, this—for people who don’t know, the guy is kind of—you know, I don’t want to—

Beyang: RMS.

Max: —offend him. Yeah. He’s uh… he’s certainly passionate, and inspiring in a way. And he got me into it. Was like, “Yeah, I want to be part of freeing software.” And I read more about Unix and went back and read about, like, the people who created it and it really inspired me.

So, I found this Music Player because, like I say, like, music was something that I felt that the software wasn’t very good. It was called Amarok, and it only just been released version point-six, I believe. And the guy released it, there was a mailing list for this sort of stuff—it was for Linux—and he was like, “I’d like some other people to join me and make this.” So, I found the IRC channel—I miss IRC, incidentally. [laugh]. Things aren’t quite the same without it. Like, obviously it still exists, but other technologies much better now, so I don’t dwell on stuff that has nostalgia for me. If it’s not as good. Slack is better.

And I said, “I’d like to get involved.” And he’s like, “Great. Just download the source code; start doing stuff.” So, I started hacking on it. And it came to be there was three of us, and we got known as the Three Ms—because I was mxcl, and the founder—we don’t call them founders in open-source, like, [unintelligible 00:10:59]—

Beyang: Creator?

Max: Released initially—yeah, creator—markey and mueslix. And still great friends with mueslix. Markey kind of fell off the map about ten years ago, unfortunately. And well, I don’t know how, but none of us had jobs and [laugh] so we just worked on it the whole time. Worked on it continuously.

And we made it into something that was really impressive. People loved it. At the time, I think it was probably the best music player that there was. Like, you know, Winamp had been purchased by AOL and so, like, the innovation had moved to other areas. And, you know, I’d stay up all night because we have people contributing to it from all time zones, and I never wanted to miss anything because I was worried they would ruin it. [laugh].

But it was very open-source so nobody really had complete control over what was going on, which I learned from that experience is bad. Like, I took that into account and saw how Linux had Linus, and he controlled the contributions to a certain extent. He was very allowing and very open to whatever you wanted to build, but if he thought it was wrong, he’d say no. And Amarok had a problem where there wasn’t anyone who was willing to say no. Should have been markey. It was his initially, but he believed in the open-source spirit. So, I did learn that from that, but it can slow things down and derail the project. And I took that into account with Homebrew quite sincerely.

Beyang: Yeah, yeah. So, I want to get into Homebrew and kind of how you transitioned over to the Mac. But before we get into that, like, so what was your life situation at that time? You said, “None of you had jobs,” so like, what were you doing for money at that point? And what was that like?

Max: Yeah, so I was living with my parents. After the year in industry and quitting, and not being able to… handle the idea of going back to that, I moved back in with my parents, and, you know, just told them, I was going to try and figure out what I was doing myself. And still, I wasn’t thinking that I could make a career out of programming. But that’s all that I did. And so, I turned it into a night owl so that I wouldn’t have to see my parents and interact with them or explain to them what the hell I was doing with my life.

Beyang: Were they understanding or were they kind of judgmental about the whole thing?

Max: Well, first, they were understanding. And then, after about six months, and I’d been working on Amarok for, like, probably 18 months at this point, they sat me down just after I got up and just before they were about to go to bed and were like, “This cannot go on. You need to move out and get a job.” [laugh].

Beyang: [laugh]. Oh, now. And did you or did you just kind of continue as it was?

Max: Well, I moved out. [laugh].

Beyang: [laugh]. Got it.

Max: I went to live with my girlfriend at the time. She was living with her parents. Her parents were far less fussed about this sort of thing. But—

Beyang: I can—yeah.

Max: I don’t know why they were less fussed. Do you think they’d want me to make something with myself, but well, no, they liked me more than my parents apparently. [laugh].

Beyang: Interesting. [laugh].

Max: That’s not true. That’s not true. My parents have been extremely supportive. Mostly. This one exception.

Beyang: I think they were just concer—it’s just like the parental concern, you know? They see you making a decision that they perceive to be, you know, a bad life decision and they kind of want to course correct.

Max: Yeah. Like, they didn’t really understand what I was doing. They knew it wasn’t earning any money and they didn’t think it could. So, I lived with the girlfriend for six months and her dad gave me a job. So, you know.

And I was making Excel spreadsheets [laugh] and I made them programmable, and so I was getting into that stuff. It was after about six months of that, the Last.fm, this startup in London, wrote to me and asked if I wanted to come and work for them. And it was because of Amarok. Amarok was very popular there. They were a music social network, like, early Web2.0, trying to figure out what music as a social network could be.

And in many ways, really the only ones who ever figured it out, even though they’re not a big anymore, unfortunately. So, that’s how I got into doing it for pay, through open-source, so I don’t think it’s very typical.

Beyang: Yeah, that’s interesting. And when did you get into macOS development? You know, what was that transition like? As I understand it, you’re mostly Mac these days. So, what made you kind of go from the Linux world into the very proprietary, very non-open world of Mac development?

Max: Yeah. So, it was about the Last.fm period, and I was getting fed up with Linux because didn’t matter what you did on Linux, you had to read a tutorial or a blog post about it. Because nothing ever worked. Nothing just worked.

And it’s not as though I could go back to Windows, having become a Unix diehard at this point. And it was about then, a bit before that when they—Apple announced that the next Mac would be Intel. And the fact that it was Intel and thus, all the software that I was using on Linux could easily be compiled for it—this was before it was very common for everything to be able to compile for ARM as well, although people made a lot of effort to do that. And I—and it was macOS Tiger, and it was clear that Apple were putting a lot of effort into making Mac OS X really nice, and, like, as a product person, you know, I appreciate the fact that they put all this time and effort into it, while Linux was a mess. And part of the reason I was involved in open-source on Linux is I was trying to fix it.

But I kept seeing how these big organizations without anyone in charge were having trouble making something as large as a desktop environment. That’s what they call them on Linux. So, I bought one of the new Mac Minis with an Intel to see what I’d think of it. And I loved it. Every part of macOS that I looked at was clearly very well designed.

Even the Unix integrations, how the file system was laid out, I just loved how everything was so consistent on the file system. There was a directory called library, and everything was capitalized, like, everything was CamelCase capitalized. Like, on Linux, everything was like whatever that particular dev liked. So, underscores, hyphens, CamelCase, spaces if they hated everybody. And Apple have chosen to CamelCase everything and very rarely put spaces in. Sometimes, sometimes there’s spaces in there, but really the spaces were more consistent, really.

And I was like, okay, well, so they saying you always must quote in shell scripts. Like, I forgave them for that. I think with hindsight now, that was a bad call, but at the time, I was like, willing to, like, see how there was a positive to some of these choices. And so yeah, I really liked every part of it, but the part that was missing was a decent package manager. I came from Linux so I was used to having, like, power.

I came from Arch Linux, actually, which I still think has one of the best package managers. So, that seeded the idea, certainly, that I could perhaps make the macOS Package Manager that was how I needed it to be.

Beyang: Do you think—you know, you mentioned you had a design background. Do you think that aspect of the Mac world appealed to you? Like, do you feel like you were kind of unique in the Linux world in terms of being motivated by that, kind of like, end-user product experience?

Max: Well, certainly at the time in Linux world. Things like Ubuntu was starting to turn up and they cared more about the user experience for their users. But yeah, it was frustrating, and I used to put a lot of effort into thinking about the usability and user experience, even though I had no formal training. I made this app, it was really the first open-source project that I made was an app called Filelight, which was this—it’s like Disk Daisy on Mac, it shows a concentric pie chart, essentially, so you can see where disk space was. And of course, back in, like, 2003 when we had 30 gigabyte hard drives, it was very important to know who was using your disk space because you needed it. [laugh]

But I remember one time getting this comment from someone accusing the app of having no appreciation for user experience and it just annoyed me so much because that’s all I was thinking about. [laugh]. I was like, this is not like your other apps on Linux. Can you not see that? So, it occurred to me at that point that everyone was always complaining about the user experience on Linux, but you can’t even listen to these people because they don’t know good user experience. And that was frustrating.

And I found on macOS, that the developers on macOS really cared about user experience and also really knew what it was, and the users also knew what it was. So, my work would be appreciated, rather than being told that I didn’t have a good eye for user experience by someone who didn’t know any better, apparently, what the term was. So, it’s just like, also—I hate to say it—like, the quality of developers, the quality of users, the quality of the ecosystem is excellent. And I think it’s a bit sad, actually. I don’t think Apple is that quality anymore. I don’t.

Beyang: Interesting. So, when you got into macOS development, did you jump straight into, kind of, replicating that package manager experience? Or—

Max: No.

Beyang: Did you work on other things and then, you know, this became—those became motivation for developer experience?

Max: Yeah, I certainly didn’t jump straight into it. It was years later, while I was at Last.fm, I became the lead developer for the client team there, and Last.fm had six client apps, and so—when we meant client, it was app. Last.fm was a website predominantly, but we had an app portion.

And over the years, the number of apps increased from just Mac, Linux, and Windows. And you know, it’s another reason I liked Last.fm, the people there were Linux people, but—so we had apps for every platform so it meant that I would be making apps for every platform. We used this cross-platform toolkit called Qt—Q-T—which still exists, but I don’t know if it’s very—like, you know, the Bitcoin client was originally Qt—no, it wasn’t originally Qt, but it became Qt.

Beyang: [laugh].

Max: And so, [my friend 00:22:22]—

Beyang: Yeah I remember using—yeah, sorry. Go ahead.

Max: So, when iPhone came out, there was an avid community of people who reverse-engineered it in order to make apps. And I think part of the reason that the App Store came out so quickly after the iPhone was originally announced was because people were clearly showing they really wanted to make their own apps for this device. They reverse-engineered the whole thing, open-sourced that, and put it online, and you could make apps sort of. You had to jailbreak the phone, which was a lot easier back then obviously. [laugh]. But Apple were a lot less bothered about whether or not you did it.

And we hired the guy who made the Last.fm app for iPhone. So, we were really early to iPhone, and so I got into iPhone development super-early relative to a lot of people which was instrumental in where my career went. And then we made Android and we also had a Blackberry app because BlackBerry did have an App Store on their, like, newer phones for a bit. It was terrible. I hated their SDK. C++ and it was gross. But, you know, iPhone dev was the first—

Beyang: They probably had a fair bit of market share at that point. They might have still been dominant. No?

Max: They were doing well because people didn’t want to give up their old BlackBerrys and then they made a huge mistake by removing the keyboard and trying to copy of your iPhone, and it bombed.

Beyang: They should have—yeah, yeah.

Max: Know why your users like your product. [laugh]. It’s very important. I think touchscreens have gone way too many places. I think it’s ludicrous that Elon Musk thinks that Tesla should have such a big touchscreen in a car when you don’t want to have to be looking at these things.

Beyang: Tactile feedback.

Max: Yeah. I like Elon Musk. I read his autobiography at Christmas, but I think sometimes you make bad calls. He’s not as much of a product person as he thinks he is. He needs to listen to his CPO more.

On the other hand, maybe I’m completely wrong, right? Like, everyone thinks touchscreens are so great, so he put them in the Tesla, and then they think the Tesla’s great. Sometimes I’m not the best person to ask. That is certainly something I’ve learned over the years. Like, I’ll make it so the product is all that matters, and then it won’t sell because I totally misread the market.

Beyang: Well, you know what it is? I think sometimes they’re just like, waves that sweep the collective consciousness, or whatever, where everyone just agrees, like, that’s the way it should be done. Like, my kind of like, controversial take is, like, actually, you know, computers would be easier to use if they’re more like keyboard-based inputs. You know, and that’s a very, like, developer-y, you know, mindset.

Max: Well, you’re right, it would be easier to use, just harder to learn.

Beyang: Yeah. Yeah.

Max: And that’s, of course, a big factor in whether or not a product succeeds.

Beyang: Yeah, definitely. Okay, so you were working on these different mobile clients, but you liked iOS the best for Last.fm?

Max: Yeah, I really enjoyed Objective-C. So, my experience with Objective-C had been more limited up until then because we used this cross-platform toolkit. And even though I bought a Mac, I haven’t jumped straight into making apps on it at that point. But we used Mac for all of the development because it was the only platform where we could have a VM for Linux and a VM for Windows, and easily—you know, because the tools for making those virtual machines were great on Mac. Like, that was the thing, everything was always greatest on Mac, even if, like, it might be greater on Windows for one thing, overall it was easier to just develop on Mac. So, we all did that in the client team.

Like most of the company even. Like, you know, this was right at the beginning of the era, where Mac became the choice for developers. So, we did everything on Mac, and like, you know, so like Android SDK, you didn’t need to VM it, it worked well on Mac. You could pick Mac or Windows and that was a universal thing. Even the BlackBerry SDK, like, you could pick Windows or Mac.

So, at that point, we were trying to build the six different platforms and the amount of crap we had to go through to make it work on six platforms was prohibitive. Like, I estimated we were wasting 40% of our time just messing around with build systems and trying to try to make it consistently work. We had a bunch of open-source that was underpinning the whole, like, all of the work we did was open-source, all these libraries trying to make it work. And it annoyed me, you know? This led me back to thinking about doing a package manager. Well, the truth is, I’d go to the pub and complain about it every evening [laugh] until my coworkers got fed up with me complaining about it, and one of them said, “Max, maybe you should just fix this problem.” And uh, it’s—

Beyang: And you’re like, “Challenge accepted.”

Max: Yeah. It occurred to me that I could and that I didn’t have to just complain about it. So, that weekend, I started what would later become Homebrew. Just thinking through what, as a developer, I needed in order to do this cross-platform dev. And so, you know, this is strange how that Homebrew is not a cross-platform development tool now and indicative of how what a product is changes during its development. But that was how it started.

Beyang: Interesting. So, what were some of the—you know, when you’re first getting the project off the ground, you know, what were the ideas that you took from your experience with the Linux package management world, and what were the changes or new ideas you brought in?

Max: Yeah. So, most package managers are really inflexible, like, famously so. Like, at the time, apt was probably the biggest one and forums online were always filled with people trying to get something installed and failing because it had no flexibility. So, you have installed foo, and this thing you’re trying to install wants foo slightly newer and I refuse to install it. [laugh]. I will not do it for you.

And now that annoyed me, I felt that developers knew what they were doing, so they needed, like, some freedom to, you know, do that, get things working, that you can trust them. So, from the go, I made like that was why the formula system was built from the go, and why I built it on top of Git. I wanted you to go in there and hack on these package recipes yourself. I wanted it to be extremely obvious how you did it and for you to have the power to do whatever you want and to make it work for you. Like, the idea originally was you cloned a version of Homebrew into your source directory and then made it install the packages you needed in order to get going.

And then you could have, like, several copies of the copies of it scattered around, which meant compiling everything from source which didn’t seem a problem because unlike the main competitor to Homebrew, which is called MacPorts. I realized that the Mac itself came with a huge amount of Unix software that Apple will maintain for us, and they were obligated to make it binary compatible and safe and consistent so that all the apps that you installed would continue working, you know, for ten years. So, I took advantage of that. We didn’t reinstall all those things. And it meant using Homebrew was vastly quicker than using MacPorts, which certainly helped with early adoption.

And the symlinking system, I think there was another package manager that used it, but I didn’t know about it at the time, but I had heard about the symlinking system from another tool that GNU made, but it wasn’t the [unintelligible 00:30:34] typical, it’s a typical GNU thing, right, like, almost good. [laugh].

Beyang: [laugh].

Max: Because I wanted to have multiple versions of things available so you could switch back and forth as you needed for different projects, or if something was broken. And I wanted the file system layout to be really nice, just like the rest of Mac. I wanted it so you could go into the cellar and there would be all the software you’d installed, and it’s all nicely versioned and you can see what each package contains. I like the idea that the file system was the database, and so I very carefully designed everything so I didn’t need another database. Because also at that point, I’d realized that every time you add a new system—call it a database or whatever—a load of stuff breaks, and you’ve added complexity that’s just going to slow down development to the rest of time.

And so, if you can avoid it, like, it wasn’t going to, like, insist we avoid it. Like, if we needed it, I’d be like, “Okay, now we have a database.” But if I could think of some clever way to avoid it that worked well enough and made it so people could use regular tools to inspect what packages they’d installed, I really liked that. I liked that you could just use the terminal to see what you have installed, you can use ls, you can use find, and you didn’t have to learn a cryptic command like all the other package managers, in order to just use it. Like, I really believe that the package manager is just this fundamental tool that nobody wants.

And I wanted to build something that just got out of your way so you could get on with what mattered. You wanted to build an app, you wanted to use an app, you wanted to do something else. And the package manager shouldn’t be sitting there going, “Hey, I’m important. You have to learn me. You have to understand how I work. You have to tread on eggshells while you’re using me. And if you don’t, you’re going to be sorry.” [laugh]. I didn’t want that.

Another reason that it was such a successful product, I think, is because people saw just by reading the readme that I was trying to make the thing they wanted. And while everyone else who made a package manager, it became their lives. And, like, when you build something, it becomes important to you, and you want everyone to know how important this thing you’ve built is. I think, like, the human ego side of things was holding back similar tools.

Beyang: Mm-hm. So, how did Homebrew, I guess, go from this thing was originally intended for, you know, multi-platform package management, geared towards your mobile development issues to, like, the thing that became the de facto package manager for macOS? Was that, like, a sudden transition? Was there, like, a particular inflection point where it kind of changed from one to the other? Or was it more just, like, you know, one day you woke up and you realized that this was now mainly for macOS, and it was basically ubiquitous.

Max: Yeah, it was definitely gradual. And it was following what users wanted was the truth. So, there was huge demand for making it work on Mac and making it work as a replacement for MacPorts so it could install all the tools that people needed and not just the things you might need as a developer to build apps. So yeah, it was following the community and allowing the community to influence it. I was—from the way it was designed, I always wanted other people to get involved, like, heavily involved because there are tens of thousands of packages, and I’ll be damned if I personally had to write all the package recipes.

So, I built it from the start so that it was super easy to get involved. Like, it was just a git clone. So, you could go in there, edit it, it was working out of the clone, there was no installation of the package manager itself, and you could just push back, like, straightaway, commit and push back. Now, this is also partly so that you could have maintained your own fork so that you could customize it to what you wanted, but it was also because I wanted people to get involved straight away. And so, I created two commands ‘brew create,’ which took a URL and then would download that URL, assuming it was a source tarball, and then try and create the formula, the template, the recipe—we called them formula; well, I called them formula. The namings system is something—another thing it’s famous for.

And it would probably work. You could probably just push that back, open a pull request—after pull requests existed; like, Homebrew was before pull requests, initially. They turned up a few months later, thank God. It was very hard to work with open-source before that. Better than SourceForge, but.

And ‘brew edit,’ which meant that if something wasn’t working, you could—I wanted people to fix things themselves, and it’s still a big problem with open-source is that a lot of projects don’t tell their users, their developer—they don’t, they assume the developers who are using it, A, haven’t got the talent to fix things in the way that they present themselves, but they don’t tell the users how to get involved either or what they need to do. I still do not know how to contribute to a Ruby Gem. I built Homebrew with Ruby. I couldn’t find any documentation for it, and I gave up.

How do you do it? Do you clone it somewhere? Then how do you make Ruby Gems use your version rather than vended version? I don’t know, and I never learned and I don’t really use Ruby anymore, so I’ll never know. But I think everything that’s open-source should have at the top how to get involved, how to contribute, and it should be two or three steps at most.

With Homebrew it was one step, so everyone got involved. And if you look up, like, the video that someone’s put online about showing how Homebrew’s contribution exploded, it’s one of those videos where people’s heads fly around and they activate dots and the dots represent files. So, the Homebrew one is for, like, the first few months while I was getting it up to speed, before I even really open-sourced, just me darting around. And then a few other people turned up, and then within no time at all, there’s thousands of people participating.

Beyang: That’s awesome.

Max: And it’s—I don’t think there can be another open-source project that got as many unique contributors as quickly. And it is the project that has the most unique contributors of any open-source project, and thus, almost certainly any software project that exists. Because I designed it to do that, from the get-go.

Beyang: Because the formulas for Homebrew which, you know, if you’re contributing to another package manager, you might not think of as, like, contributing per se, you’re just you know, writing a formula, but with Homebrew it’s all just in the same Git repository, so the boundaries are—

Max: Or was.

Beyang: —kind of fuzzy—or was, sorry. But it was easy to go from one to the other. And I think this gets back to your earlier point about the advantages of just using a system that’s already there, you know, file system on your computer, or you know, Git for hosting things that matter to devs. It wasn’t some other system; it was just a Git repository so it’s easy to, like, introspect and, like, you know, pull open the covers. There were no covers; you could just see how it worked.

I can think of, like, a couple other open-source projects, like, you know, TypeScript, the way they did, their type definitions with definitely typed that repository in the early days. The Go package management in the early days, where it was just a Git URL. I think there’s something to be said for just, like, using the tool that people are already familiar with instead of trying to reinvent something that people then have to learn; it becomes, like, this whole, like, thing they have to grok before they can start contributing to your tool.

Max: It’s absolutely true. There’s so much open-source released every week. Nobody wants to learn anything new. [laugh] so if you’re going to—

Beyang: [laugh]. We’re also busy. Yeah.

Max: You have to be extremely compelling to make them jump through hoops to learn how it works. Like, you know, we’re all lazy in that respect. But also, we don’t trust that anything is really going to be that good. You can say it’s going to be great all you want but we don’t trust it. So yeah, but people aren’t willing to sit down and read an instruction manual.

I think that’s an issue with a huge amount of software at the moment. Like, Docker is a good example of something that’s so compelling everybody uses it, but the interface that we use to interact with it is awful. I have to Google every time how to do everything. I can never remember it; it’s not intuitive in the slightest. So yeah, you’re I’d have to be so compelling—like Docker—that people willing to tolerate a terrible interface, or you have to have an incredibly good interface. And preferably both. [laugh]. Right?

Beyang: [laugh]. Yeah, that makes sense. Okay, so you’re the author of the most successful package manager on macOS. Some might argue the most successful package manager in existence, given the ubiquity it has for Mac users and Mac devs. You know, a less ambitious person might be content with that, and just, you know, ride off into the sunset being satisfied that they created this awesome package manager that everyone uses.

But no. You are working on a new project which in some ways is a bit of a successor to Homebrew, kind of a Homebrew 2, called Tea. So, talk a little bit about what Tea is and what the motivations were for creating this new system that you’re working on now.

Max: Good name, right?

Beyang: Yeah. It—[laugh] I love the naming scheme throughout. Yeah.

Max: Yeah, I’ve always been fond of names. And it goes back to intuitiveness, again. Humans need labels. Computers don’t. Like, I talk about this with my girlfriend on a regular basis about what a potential AI is going to be like, and one of the things I talked about is how it doesn’t need to name things. It will just use IDs, it will make a UUID for everything.

Beyang: [laugh].

Max: Humans need names in order to understand what something is, and so that limits our creative ability for sure. When everything needs a name, it means you to have less things that need names or you overload the human. So, I’m a big believer in picking names that evoke the right metaphor so that someone reading about your tool, your app, your library has a preconceived notion of what it is. Obviously, this is no good for children, but children learn things extremely quickly so I’m not worried about them. It’s adults who are the problem.

So, I’ve always been a big person for names. And Homebrew has great naming scheme; we can talk about that some other time, I guess. But yeah, Tea is, essentially Brew 2 for Web3 is what we’re saying. And the genesis of this came because I haven’t worked on Homebrew for quite a few years at this point. I burned out on the project. I felt that it was good enough, it did everything that it should do, it was extremely useful to people, and there was a limited amount of value I could continue adding to it.

But the main thing was that in order to work on it, I had to have two full-time jobs. Like, I got to confess to a lot of my past employers at this point that there was a lot of times when I was working on Homebrew and I was not working on the thing you paid me to do. [laugh]. Sorry about that, but I hope you were happy with what I produced otherwise, anyway. And so, I got into this cycle.

I quit my job to work on Homebrew initially, after it became successful because it was so compelling to work on this huge project that was getting people really excited, and it was by far, like, the most interesting thing I could be working on at that point. But then I ran out of money. I remember going to the bank and asking them how going overdrawn works because I’d never done it before, and I didn’t know, like, would I be paying interest? And how much money could I go overdrawn by?

Beyang: Wow.

Max: And were they going to report me to the government as some kind of delinquent? [laugh]. I was 28. So, I kept going through the cycle of getting jobs—I had to pick jobs that I liked, I can’t work on things I don’t like. That’s how I got into open-source, right? Like, chemistry didn’t turn out to be what I wanted, and it made me incredibly depressed.

So, I had to find jobs that I wanted, which is difficult. And then I wanted to go back and work on Homebrew or my other open-source because that was what I felt was my calling, really. That was where I was making the most impact. So, I cycled through jobs, like, doing something for a bit, quitting, working on open-source, and then going back. And, you know, a few years ago, I was like, “This is getting ridiculous. I need to figure out how to try and make money with open-source.”

And there’s a few people who do and they’re quite successful, and I tried to copy their system but didn’t manage to get enough people to sponsor my Patreon and found that even marketing myself for Patreon was an enormous amount of time that I didn’t want to be spending on that.

Beyang: Yeah.

Max: So, went back to get another job.

Beyang: [laugh]. You don’t strike me much as a company man.

Max: No. No. No. Apple knew that full well. I feel bad for Apple, really. I worked there for a year and I just couldn’t handle it. Too corporate, at least part I was at. Tried to make something useful and important—hopefully did anyway.

Yeah, so—well indeed. So, startups mostly. But it’s an old problem. Everyone knows it, that people who make an open-source may not find a way to get paid for that. Like, a lot of people who work on Homebrew now work at GitHub and great, I’m glad that there are companies that exist who understand the importance of open-source and willing to basically fund it.

I don’t think that’s good for open-source to have big companies like Microsoft controlling how open-source works.

Beyang: Sure. Yeah, yeah.

Max: Like, let’s not forget what Microsoft were, like, 20 years ago. Even ten years ago. They could easily go back to that and then you have huge portions of what builds the internet. And let’s face it, there isn’t an app that exists isn’t composed of open-source in some capacity, even if it’s just the operating system itself. Like, 80, 90% of all applications are an open-source bed, and then some proprietary source code on top, which is, like, the cherry, which makes the thing into the app and makes it into Instagram.

But a huge amount of open-source software and the people who have built this stuff often would love to work on it. They’re passionate enough they built it in the first place. But there’s no mechanism for how that works. And last year, while I was—well here’s the truth. My girlfriend and me were trying for a baby and succeeded in record time. [laugh]. The gynecologist told us it could take up to a year and not to expect anything, so like, two weeks later, when she was showing me the pregnancy tests, I was like, “Oh, great. This is what we wanted, but I thought we had a bit more time to figure out how—what I was going to do next.”

Beyang: Cash flow and yeah. [laugh].

Max: Yeah, exactly. [laugh]. So, I kind of panicked and went through all the ideas I’ve ever written down. I’m a bit of an obsessive notetaker, and even though I hadn’t worked on Homebrew for, you know, five, six years at this point, I’d been recording what would be, like, a Brew 2, what I could do. And people have often asked me if I make another Brew 2, and I always said no, but I’d made the notes anyway.

And I said no because I didn’t see anything—like, all my ideas were good, but they weren’t good enough that it made sense for me to do something new. Homebrew is good. It’s still a great tool. And I have a friend—and he’s my co-founder—Timothy Lewis, and I’ve known him for ten years or so.

And he’s been trying to get me into Web3 and crypto. Crypto of course before Web3 because that’s what it was. Like, the fundamental—you know, blockchain is the technology underneath it, and for a long time, its only purpose was crypto, cryptocurrencies. And so, I started diving down there as well because it’s like, okay. You know, whatever I think about cryptocurrencies, there’s definitely money there. Like, last year was the year I think a lot of developers saw that.

Beyang: Yeah. But you’re coming from a point of skepticism it sounds like?

Max: Yes.

Beyang: Like you.

Max: Well—

Beyang: He was more—he was earlier in the space—and you were kind of—

Max: Yeah.

Beyang: “Eh, I don’t”—

Max: He was there very early. Like, good on him. Like, you know, you got to say good on all the people who saw it a long time ago, at this point because they’ve done very well out of it. So, good on them. But yeah, I wasn’t so much skeptical—well, I was, but not, like, totally skeptical.

I’d read the Bitcoin whitepaper years ago and I was like, “This is a good piece of technology.” Like, clearly, I liked the whitepaper format. Like, very good way for getting people who don’t know a lot about the technicalities of something. Like you didn’t have to understand crypto—cryptography, I mean—in order to understand the Bitcoin whitepaper. But I thought it was just money, and money has never really interested me as—I like having it because then I don’t have to worry about it. [laugh].

You know, I like the things I make. That’s my motivation. So, I didn’t realize that it had become what we’re now calling Web3, of course. And that there’s all these ways that blockchain as a base technology can be used that are exciting. And so, I dove down that rabbit hole, bought a few NFTs just to see what that was about because that was, you know, obviously it was really becoming a craze then and, like, now I honestly I think NFTs are a little bit h—

Beyang: [laugh].

Max: —they’ve ha—they’ve peaked. But you know, don’t tell some other people that, I guess. But I bought them to see what it was about. And when I sold one and there was this 10% royalty that was enforced by the digital contract, I was like, “Ah, this is interesting.” There was no way to not—well, I now know there is a way to not pay the 10% but that’s because [laugh] you can—

Beyang: Oh, that’s interesting.

Max: Yeah.

Beyang: There’s a loophole.

Max: Yeah. Well, it’s because the NFT is on Ethereum, shall we say? So, it’s just part of the blockchain and you can just transfer that. The digital contract enforces the royalties, OpenSeas. But they’re making a new proposal which will make it so it’s part of the blockchain itself, then you won’t be able to get around it.

Beyang: Ah, I see. They had their own centralized, kind of, system of record for NFT ownership. Now, they’re decentralizing it.

Max: Well, essentially, you had to sell the—you still have to sell your NFT through OpenSea for the 10% royalty to be paid to the original creator because you have to use their digital contract. And some people, you know, save 10%, effectively, by going around it, and it’s just, you know, [unintelligible 00:50:42]. Shouldn’t do that.

Beyang: Yeah. Yeah. And 10% on some of these NFT purchases, that’s quite a substantial sum of money.

Max: Yeah. Let’s not talk about it. I saw [unintelligible 00:50:52].

Beyang: [laugh].

Max: I saw some of those come and go, and I was like, “This is stupid, isn’t it?” Like everyone else, I thought it was stupid. I now understand that NFTs as a thing is more useful, and like, well, we’re going to use them for Tea, right? We’re not using JPEGed NFTs. But I’ll get to that.

Beyang: Yeah. Yeah.

Max: [laugh]. But it occurred to me that this mandatory royalty was very interesting. And like, sponsorship and bounties are two systems people try to use to fund open-source, but it only rewards, really, the popular projects, stuff that people know about. And you know, your average node application is 600 to 1000 node dependencies and then that goes down underneath that all the way down to libc, the most fundamental ones. And you could say the kernel, even, is the most fundamental part that’s doing the literal hardware operations.

And so, you got, you know, thousands of open-source dependencies and it’s just infeasible for anyone to sponsor their entire stack. We give these companies a hard time because they got the money to sponsor their stack, but how they literally going to do that? Like, I have this popular open-source library called PromiseKit—and I’ve used this as an example throughout talking about Tea—it’s used by 100,000 apps so if every one of those apps just give me one dollar a year—

Beyang: [laugh].

Max: All right, that’s, you know, that’s a salary.

Beyang: Solve your money problems. Yeah. Yeah, yeah.

Max: Well, it’s not a great salary. I think we have to give open-source developers good salaries, otherwise they’re not going to do open-source full-time. So—

Beyang: Totally. Yeah.

Max: —that’s part of what we’re trying to do. So yeah, like—but the thing is, it was buried in the stack, it was hard for people to find, I got a good sponsor once and they said that they went through all their dependencies and tried to find ones to look for, and, like, it was a three to four-week process for them to figure out how to sponsor me. Now, there is GitHub sponsorship now, but still, like, difficult to figure out your whole stack. It’s impossible. So, sponsorship doesn’t work, in my opinion.

Bounties are interesting and they will continue to exist for sure. Because you should be able to provide an incentive for someone to build the future you want on [unintelligible 00:52:58] open-source. But they still mostly only reward the top of the stack. Like, no one’s going to do a bounty on, like, some random logging library that sitting underneath all there, probably.

Beyang: Sure.

Max: So, it occurred to me that a tool like Homebrew knows the entire open-source ecosystem, it understands the graph, it understand—it sits underneath all of those tools. And because we understand the graph, we could thus, as a result, spread some, you know, token around. So, if something at the top of the stack—let’s say React—gets some token, we can feed a percentage to its dependencies, and then a percentage of that to all their dependencies as well, and thus, like, fund the entire graph. And I was like, “Oh, wow. This is an important understanding, an important realization.”

I went and woke my girlfriend up because it was like two in the morning. I told her that I had just figured out how we could fund open-source software, the entire open-source ecosystem. She does not remember this. [laugh]—

Beyang: [laugh].

Max: —sadly.

Beyang: Maybe it was a dream, you know? It was late at night, and it was just you’re in a dream state. [laugh].

Max: [laugh]. Like—well, it’s a story all the same, now. [laugh].Even if it was. I guess it’s possible. It was late. Like, I’ve been staying up late just going through everything, trying to figure out what I could make into something that would be a startup or way to fund me working on open-source. And yeah, it was just a combination [crosstalk 00:54:34]—

Beyang: So, just to clarify, the eureka moment was thinking about open-source funding and connecting some of the ideas in the Web3 space into, like, a token that kind of understands the structure of the dependency tree? Is that kind of the idea?

Max: Yes.

Beyang: And then you, like, fund the token and that automatically spreads the funding to all parts of the tree, not just the most prominent—

Max: Yes.

Beyang: —or the most well-known name?

Max: Exactly.

Beyang: Got it.

Max: Like, yeah, the top is where people will probably still target their money, but we can filter it to all the other dependencies. And because of the way the law of exponentials works, if you’re a good dependency, you’re going to get a ton of those smaller percentages anyway so the funding will be relatively equal. And, like, a good part of what we’re talking about in our whitepaper is figuring out the math so that we are funding things in a fair and reasonable way, and, like, not over-funding things as well. Like, we don’t want—although I’m—there’s all sorts of interesting things that come out of what we’re trying to do.

One of the things is, so a token gets into the system, and then there’s a dependency. Let’s say, OpenSSL; it’s my favorite example. OpenSSL, it’s used by so much of the internet, very important security layer. And it’s also terrible. Every year, there’s a new exploit found that, like, causes huge problems for the entire internet.

With our system, we would actually be incentivizing people to replace OpenSSL. That’s never happened before. Open-source, typically things get inserted into this tower of open-source—we use the XKCD comic called “Dependency” a lot are met—you know, just to demonstrate to people what we’re talking about. And it has a tower of bricks like a toddler might make, and right near the bottom, there’s this tiny little pillar that seems to be holding up, like, 80% of the internet. And has an arrow pointing to it, and it says, “This dependency is maintained by some guy from Nebraska since 2004, and thanklessly.”

Beyang: Yeah, and has never realized a dime from the work that has gone into that.

Max: Exactly. So, OpenSSL is famous, but there are examples of the Nebraska problem—that’s what we call it—and one was Log4j which had that security exploit in December. And a huge amount of the internet, a surprising amount, became suddenly zero-day exploitable. Like Minecraft, you could type something into the chat and it would root the server. Or you could, you know, you got access to do that if you wanted it to.

And nobody had ever heard of this thing. It was one of those deep dependencies they didn’t even know they were using, something was built on top of it, which added a layer which made it nicer in some manner or whatever, and then like that was built into something else. And then people were angry. And there was a lot—you can look on Twitter; it was abuse. People were abusive towards these dev.

And they were like, “Look, we’re going to fix the bug. We’re sorry about the bug. We do care about this, but nobody’s ever given us a cent for making this thing so maybe we should fix that.” [laugh].

Beyang: Yeah.

Max: So, with Tea, that’s our objective. We’re making this trustless decentralized protocol which understands the open-source ecosystem. Effectively, the package manager’s registry, with Homebrew was a Git repository; with Tea, it’s the blockchain. It’s a blockchain. We’re putting all the packages on-chain as NFTs. It’s a good use of NFTs.

We’re not exactly calling them NFTs at this point because they’ve got so much of a bad stigma, but an NFT is just a token, right? It’s just a non-fungible token. It doesn’t have to be a JPEG. Ours are representing package releases, a very good use for NFTs. I think over the years, people will start to see that NFT is just a utility technology, and it doesn’t mean that you’re getting a Bored Ape or something else, some sort of collectible jpg.

Beyang: Yeah.

Max: And so, the NFTs are going to be on-chain will guide how a token is distributed through that network, however we decide to insert it. Now, our whitepaper is coming out soon. The way that we’re going to have insertion happen is an inflationary staking mechanism. And I’m super excited about it because it means that we’re not fundamentally changing how open-source works.

People have asked me this a lot, and it’s good question: “Are you going to charge for open-source now?” The answer is no, not at all. You can’t charge for open-source. No one would accept that. [laugh]. You can’t take something that has worked a certain way for more than 20 years and fundamentally change it.

So, Tea is free to use. Our protocol is going to be run by DAO, not by the company. It’s not funded by the—it’s not run by the funded company. Obviously, initially, a few of us at the company will have large voting rights because we’re going to make sure that it goes in the right direction, but over time, our voting rights will fall to be in line with the rest of the open-source community. So, people who make open-source will get voting rights by publishing into our chain.

And so, the chain itself is going to be managed by the open-source community, managed by open-source ecosystem. Tea, the package manager and the other tools that we’re going to build on top of it are just going to be clients onto that protocol. We’re hoping to make the best clients, but very much like Twitter used to be, where everyone and their son made their own Twitter app because the API was public, and it was very interesting, and like, people make better things all the time, we’re going to have the same ecosystem, except we don’t own the API like Twitter did. So, they just started closing it at one point and made it private.

Beyang: Okay. So, you’re going to have a decentralized protocol for managing package dependencies and then your client is going to be the equivalent of the Brew command-line tool, or like an apt-get where this will talk to that distributed chain and fetch the dependencies from that chain—

Max: Yes.

Beyang: For purposes of installing an actual—okay, got it. And then you’ll also have a, sort of like, one-to-one mapping between an NFT-type token and each release of each package on this chain?

Max: Uh-huh.

Beyang: I guess one of my questions is, for these tokens, what gives them value? Is it just like in the kind of current NFT sense of, like, you don’t technically—well, I guess, some some NFTs have rights attached to them, right? Is that kind of idea? Are there any—

Max: Yeah.

Beyang: Like, rights or privileges or—

Max: Oh yeah.

Beyang: Like, a sense of ownership attached to owning the NFT associated with a particular open-source project in this world?

Max: Yes. So, for it to be an NFT, it has to be transferable, and we actually expect people to do interesting things with that. Like, my chief product officer has suggested that people—someone will probably make a digital contract which allows you to lease a release of open-source. So, you can say, “Okay, I’m building this open-source package and I need, like, 100 grand now in order to build it.” It’s like, you know, writing a book and getting upfront stipend—

Beyang: An advance.

Max: Yeah and advance. Exactly. And so, they’ll say, “Okay, for 12 months, you own the NFT or you’re leasing it from me.” And this is the beauty of digital contracts, right? You can—it’s a way to build law into the money system.

And so, “Someone else is going to do this. We’re not going to do this. We’re just suggesting someone else build this system.” And so, they’ll be able to get 100 grand of token upfront and then the person who’s leasing the NFT gets all the profits off of the use.

But the NFTs themselves are not the primary way that money is going to be made. We’re going to use the NFTs as, like, a map. So, they’re like signposts that show the protocol how to filter and funnel and direct token that enters it. The primary way that token—I expect—to enter it—and this is in the whitepaper, by the time this podcast is released, we should have released the whitepaper so I can go into it.

Beyang: Cool. We’ll link to it in the [show notes 01:03:12].

Max: Yeah. But we’re using a proof-of-stake chain, and the proof-of-stake system creates new token periodically at epochs. So, it’s an inflationary system. This new token is what we’re going to funnel into the open-source ecosystem. So, it’s an inflationary system. So, every epoch, we’ll give some token to the people that stake in to reward them for staking their token and securing the network. Because what you stake it, it means that you cannot spend it, you cannot use that token. You’re putting it into a digital contract that gives you 24 hours, at least, to withdraw it. It’s like a bank saying you don’t have your money for 24 hours.

Beyang: Sure.

Max: And this means that the price fluctuates less so it’s good for the system. So, we reward them for doing that by giving them a bit of a token, but we’re also going to give, like, a percentage—probably half or 60%, like, we haven’t got the exact figure yet—to the graph, the open-source ecosystem graph. And the people staking would choose the packages that they’re staking against, and we’re going to incentivize staking ones that are less staked because we don’t want everyone to just stake their favorites; we want people to actively find new exciting open-source projects. So, when you find it, you’ll get a better reward initially.

Beyang: Interesting. And what is a reward here? Like, is it—

Max: The token.

Beyang: Is it mainly just being—the token? And the token allows you to say that I am sponsoring this project?

Max: Yes.

Beyang: Like, I am contributing to—okay, got it.

Max: The token is governance so you will be able to help govern how this entire system works. And we’re going to give governance priority to open-source packages so if you have some actual NFTs in the graph that are being staked, we’re calling it ‘steeping’ incidentally, for this particular part.

Beyang: [laugh]. I love the terminology.

Max: It’s nice and the metaphor works really well. So, we have staking and steeping in our system. The whitepaper will go into a lot more detail here.

Beyang: Got it.

Max: But in order to, like, make sure that everything is correct, like, obviously, this is easy to game; we’re going to have a slashing mechanism where we can take away your stake. And we’ll do this if packages have security exploits, for example. So, we’re going to incentivize, like, properly incentivize the open-source ecosystem to make sure that their software doesn’t have security holes. So—

Beyang: Interesting.

Max: If a package is found have a security issue, someone can report that to the DAO. So, the DAO is a Decentralized Autonomous Organization. It’s just a governance structure that runs the protocol. If the DAO decides that it’s a legitimate security issue, we can slash that package and the people who is staking it. So, this means that if you—you get more rewards for staking new packages, but if they’re found to be, you know, either fake, for example, like, people—it isn’t a real open-source project, or there’s security issues, it’s not good quality, then you could lose your stake.

So, you have to make sure you’re staking the right things. So, we’re effectively making—well for a start the creator economy for open-source, but we’re also making a system where the people are actively involved in making sure open-source continues to be great and is greater and greater going forwards, as well as allowing the people who make this essential infrastructure that builds the internet, powers the internet, makes everything that happens on the internet possible, are able to do that as a job. And they don’t have to go and find someone at Facebook, who will, like, “Okay, well 70% of the time you can work on this because it’s useful, but we also want it to do this,” or, you know, beg for money, effectively, on Patreon, or find bounties. Like, I approve of bounties and I think Gitcoin is going to be a wonderful complement to what we’re doing—Gitcoin is a Web3 bounties program—but it does introduce [agenda 01:07:26]. And you shouldn’t have to chase bounties from people who are then shaping how your product goes.

Beyang: Totally.

Max: The open-source community should shape how open-source goes, in a transparent and fair way. And I believe what we’re going to build is going to achieve that, and it’s very exciting.

Beyang: Awesome. So, you know, we are almost out of time. I wish we had another hour to go into all the intricacies of this plan, but for those listening who want to get involved in this, you know, new package manager, this way of funding open-source, this really interesting take on Web3, from both a, I would say, like, maintainer perspective and an open-source user perspective, what’s the best way to get involved?

Max: Yeah, so follow us on Twitter and follow us on GitHub. I haven’t open-sourced the package manager yet. I never open-source it before it has enough functionality because otherwise people get excited and then they lose interest waiting for it to be something.

So, I’m open-sourcing it hopefully in May. That’s the plan. The only reason I wouldn’t is it just doesn’t quite get ready—it’s not ready yet, or some other reason, like, there is a company behind the package manager so I have to have considerations there. So, at GitHub, we’re going to have our [test net 01:08:52] up in autumn. So, that will be run by the DAO, but company is building it initially.

Whitepaper’s coming out in April so I—you know, soon. So hopefully, we’ll—everyone listening to this will read it and then give us genuine feedback. Like, this is to make a genuinely open, transparent, fair, open-source remuneration and governance system. If it doesn’t achieve those things then we failed and I want you to tell me before we build it, preferably.

Beyang: And then for those listening on audio only, your Twitter handle is @teaxyz_, right?

Max: Yes. Unfortunately, Twitter being as old as it is now, you can’t get good handles anymore, so [laugh] put the underscore in the end there. But yeah, you can go to tea.xyz and it has all our links.

Beyang: Cool. Awesome. Max, thanks so much for coming on the show. This was an awesome conversation and I really appreciate you taking the time.

Max: Great. Well, it’s been really good to talk through everything that we’re building. Thanks for having us on.

Try Sourcegraph for free today

You'll be searching your own code in 10 minutes. You can run it self-hosted (all of your code stays local and secure).