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 times 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.
Feross Aboukhadijeh: So I was thinking of different things I could do, and one of the things I was really curious about was could I do computation using WebGL, or workers, to do useful work on peopleās browsers? Sort of use it as a distributed computer. 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 together and build something kind of like a torrent network, where the resources for a site can come from the other people on the site? And we can reduce the cost of running a site.ā
So I ran with that idea for a little bit, and tried to make a company out of it, but I learned a ton about how not to do a company, I guess⦠One of the big problems we had was just being too focused on building stuff, writing code, and not really talking to customers and seeing if there were people who would ever wanna buy this stuff⦠So a little bit of time went by there, and we didnāt really have any customers, 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 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. I could just fully devote myself for years just working on stuff and giving it away, and not having to be worried about making ends meet.
Anyway, getting back on track - so right about when that happened, I gave this talk at RealtimeConf, and I was talking about WebRTC, and how cool it is, 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 gonna have the technology we had worked on, and my concern was that some of the ideas of connecting everybodyās browsers together and making a really amazing peer-to-peer network that can decentralize, control things - that was a cool idea, and I didnāt want it to die with this acquisition.
So I was like āWhat if we rebuilt PeerCDN, basically?ā Rebuild it from scratch, but instead of saving money on bandwidth, we made a goal of 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 users, and thereās all this content on there, and thereās a big community of people⦠So we could just make this ā basically, bring the BitTorrent protocol and put it into the browser. 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 a slide at the very end of the talk, the last one minute 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 idea, come talk to me.ā I threw it out there, this thing that would ā I wanted people to come, I wanted to find collaborators.
[20:16] 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 clicked through this link and said āDude, thereās no code here. What is this project?ā So then he messaged me and was like āDude, I thought you had code. What 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 an idea.ā [laughs] 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 ā it wasnāt clear whether people would wanna use it, or anything like that. But because of the 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.