In the world of open source, finding the cash to stay afloat while still being able to look at yourself in the mirror can be rough. Individual donations are pretty much a non-option and the ethical tradeoffs of paid advertising at the other end of the scale are hard to stomach. Our guest on the show today is Eric Holscher and as one of the co-founders of Read the Docs, sustaining an open-source project is a daily concern for him. Read the Docs simplifies software documentation and has risen to huge popularity recently, especially in the Python community. Eric joins us today to speak about open source as a culture, and what it is like to be a contributor at such a high level, particularly in light of getting zero compensation for it. After realizing that user donation and conventional advertising were not options, Eric has set a precedent through a form of advertising that does not gather data from users and operates on a much more ethical targeting model. What Eric and his partners are doing is really what all big companies should be doing too, so it was a privilege to have him join us and get into what that looks like exactly.
Key Points From This Episode:
- An introduction to Eric and Read the Docs, a blog utilized by the Python community.
- How Read the Docs was born through Eric wanting to write docs for Python libraries.
- The demoralizing aspect of running a widely used blog and making no money from it.
- Gripes about the unequal relationship between contributors and users of open source.
- An understanding of open source as a community project that connects everybody.
- Raising corporate money to tackle challenges around keeping open source sustainable.
- Practices such as retargeting that raise ethical issues around conventional advertising.
- How Eric’s use of advertising retargets based on content users will like thus is more ethical.
- A community advertising option for folks that host docs on Eric’s platform.
- The horrors of Facebook’s in-depth knowledge of its users: targeted ads.
- How Read the Docs sets a precedent that exemplifies ethical advertising.
- Other groups who practice ethical advertising such as Real Python and FileZilla.
- An approach to raising funds shown by Django Rust involving companies pooling resources.
- Whether to lose authority over a project after raising funds for it or to not get it done at all.
- And much more!
Transcript for Episode Remix: Open Source Sustainability and Ethical Advertising with Eric Holscher
[0:00:01.9] MN: Hey everyone, I’m Michael Nunez and I’m here with Dave Anderson.
[0:00:04.6] DA: Hey there.
[0:00:05.2] MN: Hello there, how’s it going?
[0:00:06.6] DA: Happy 2020.
[0:00:07.3] MN: Happy 2020, yes. Time to celebrate. If you're listening to this, it is because I’m on vacation.
[0:00:13.1] DA: My gosh, where are you right now?
[0:00:15.2] MN: If you’re listening to this right now, I’m probably in Brazil.
[0:00:18.8] DA: Are you drinking caipirinha.
[0:00:20.1] MN: I really hope so. That there’s a caipirinha in my hand and I’m hanging out, I’m lounging. My wife and my son are going to Brazil to celebrate his first birthday.
[0:00:29.6] DA: That’s a good first birthday present.
[0:00:31.1] MN: Yeah. I mean, it’s good for us. He’s not going to remember it and we’re on vacation. It’s great for everyone. I don’t have to throw a crazy party and it’s amazing.
[0:00:40.6] DA: It sounds good, yeah. I don’t want to do that. Speaking of like relaxation or sustainability maybe even. This episode that we’re remixing for you is number 114 from my tats. Open source, sustainability, and I think a little advertising, with Eric Holscher.
[0:01:01.1] MN: Yeah, I mean, we had him on the podcast and I didn’t know he was an individual who is so prevalent in the Python community. Eric is the cofounder of Read the Docs which is like a huge thing in Python. I had no idea until I googled it.
[0:01:16.8] DA: Have you Read the Docs?
[0:01:18.8] MN: I tried to now. I mean, I got to know all the docs. Pretty cool to have him and being able to explain how open source projects are sustainable and different ways that they do that, including ethical advertising. Which I thought was like a brand new word I heard and it was amazing to know more about it.
[0:01:37.0] DA: Yeah, New York City needs a lot more of that. Those are my 2020 resolutions, like be ethical and be sustainable.
[0:01:46.5] MN: Yes, that is important for all the developers out there, for you. We hope you enjoy the episode. Let’s just get right to it.
[0:01:55.2] MN: Hello and welcome to The Rabbit Hole, the definitive developer’s podcast in fantabulous Chelsea, Manhattan. I’m your host, Michael Nunez. Our co-host today.
[0:02:03.9] DA: Dave Anderson.
[0:02:04.9] MN: Today, we’ll be talking about open source sustainability and ethical advertising.
[0:02:09.7] DA: That’s a deep topic.
[0:02:10.8] MN: It’s a deep topic. I mean, I understand there’s open source projects out there and people need to pay for food and pay for living. How do you sustain an open source project? We’ll jump right into that. We have a special guest today. Eric Holscher. Hey Eric, how’s it going?
[0:02:27.4] EH: Great, how are you all doing? Sounds pretty good.
[0:02:29.8] DA: Yeah, not too shabby. Enjoying things out here in New York City. You’re out in the magnificent high deserts of Oregon, right?
[0:02:39.9] EH: Yup. I’m out in Benton for a couple of weeks but I’m normally based out of Portland.
[0:02:44.2] DA: Pacific northwest.
[0:02:45.0] MN: Tell us a little bit about yourself?
[0:02:46.8] EH: Sure, well, I think in this context, the most important things is that I am one of the cofounders of Read the Docs which is a documentation and hosting platform for open source. We’ve been around for about nine years now and we have around 30 million page views a month.
We host, I think, something like a hundred thousand open sourced projects. Yeah, that’s kind of the hat I’m wearing today.
[0:03:06.2] DA: Yeah, Read the Docs is something that is just like ubiquitous in the Python community that’s just like, it’s the air. You don’t even know that it’s there but it is there and if it’s not there, then you can’t breathe.
[0:03:37.4] DA: That’s cool, I didn’t realize that, just so ubiquitous in Python that there’s just no choice about it. It’s just like, if you’re not in Read the Docs, then you may as well not even exist.
[0:03:47.7] EH: People get very upset with me when it goes down especially anyone doing kind of data science or web development in Python especially. Yeah, you know, we host Jupiter stocks and a bunch of Jango stuff and yeah, there’s lots of core stuff there.
[0:04:01.2] DA: Yeah. You got to download those PDF composite documentation or whatever.
[0:04:06.5] MN: Yeah, have them all flying. Save them.
[0:04:12.1] DA: I mean, that’s such an amazing thing that Read the Docs has grown into such a core part of the Python community. What was the origin story there? How did that come about?
[0:04:24.9] EH: Sure, I mean, this is kind of a classic scratch your own itch thing, right? I had some Python libraries I wanted to write docs for and I had a crunge running on my server that just like, pulled them down from GitHub and you know, built HTML every five minutes or whatever. Really, Read the Docs was a response to that where it’s like, “We have web hooks, we have Jango, we have the technology.” That’s a really –
The core of the idea is, you know, listening for a web hook and auto building docs and generating lots of formats and basically just keeping them up to date online. It was actually created in a 48 hour coding competition but then for many years after that, continued working on it.
[0:05:42.7] EH: Yeah, I think that was one of the things that really kind of surprised me, is over the first few years of the project, people start to become more and more dependent and, you know, more people would yell at me when I broke something or the site went down. That’s really kind of how it kind of dawned on me over time that this was something that was really important and, you know, I had to start wearing – setup pager duty and – pager duty didn’t exist at the time probably. You know, wearing that notification thing.
[0:06:10.7] DA: I mean, it’s kind of crazy thinking about the idea of slapping a pager on yourself for something that’s open sourced. People fight that tooth and nail when they’re on the job not to have that responsibility.
[0:06:24.7] EH: Right, yeah. People are doing it and getting paid and still not wanting to and I really do think that was a really kind of something that led to me getting burnt out originally kind of doing this work was wearing a pager for free. You know, especially on the Pacific Northwest summers where you have you know, 12 weekends where it doesn’t rain or whatever you're in.
[0:06:45.7] DA: Wow.
[0:06:46.0] EH: I had to stay home for some of those because I was working without getting paid, you know. That’s a pretty bad deal.
[0:06:54.3] DA: Right, you got to make those count because you got that Pacific Northwest winter that it’s the complete opposite of that.
[0:07:01.3] EH: Yeah, I really do think over time that really starts to wear on you, like doing something for free and feeling like it’s really important but not really having the resource around – especially economically, to support yourself, right? I’m doing this thing that millions of people use but I have no money to show for it.
[0:07:44.2] EH: Yeah, it still really doesn’t make sense when you explain it to people outside. They’re like, “You’re just doing something for free to give away to the world for?” You’re like, “No – what?”
[0:07:54.3] DA: Yeah, my girlfriend’s into non-profit and so she’s like, “I get it.” It’s like, “Yeah, do that.” She’s like, “It’s like you're on the board of like this whole community and you're like, guiding everything,” and it’s like, “Yeah, it’s making the world a better place.”
[0:08:10.4] EH: I’m also on the board of the Python software foundation so that’s one of the many hats that I have but –
[0:08:16.2] DA: That’s legit nonprofit relationship.
[0:08:19.9] EH: Yeah, we have like millions of dollars and all that good stuff that we put back into the community but yeah, it’s definitely a common case, right? You have a lot of people doing this work for free and the mental model that makes sense, you know, “I do work for free, you do work for free, we all benefit,” but it’s when it really starts to break down, I think more and more in the modern time when, you know, more people are using open source and fewer contributing as a percentage.
It becomes harder and harder to sustain that existing relationship I think.
[0:08:50.5] DA: Recently, there was an update to GitHub. There’s a new feature that they put out for supporting open source or supporting like specific contributors on GitHub or supporting specific projects on GitHub financially so this is like rolling out over time and it’s like, “Okay, that’s pretty cool,” but the thing that really floored me was that I recently pushed out my first package to pipe PI.
Pushed out this like little mock helper library. “Yeah, I’m so cool, I made a library, that’s great.” They added this little tag on the GitHub repository where it’s like okay, your library has this many dependencies and the dependencies in your library have this many contributors. It’s like, I’m the sole maintainer of this library except for all of the 30,000 other developers that built everything that went into this.
[0:09:44.3] MN: That’s awesome.
[0:09:45.3] EH: That’s definitely a circle of life kind of moment. We’re all connected.
[0:09:50.7] DA: Yeah, I felt it you know? It’s like you know, Walden or something. It’s all in the air.
[0:09:57.7] MN: The app put on GitHub was like baby Simba and you’re putting it up on pride rock and then everyone else, every single developer was watching you, put baby Simba up into the sky. The circle of life.
[0:10:09.3] DA: Except they were the mountain and I did nothing.
[0:10:16.2] MN: Eric, question.
[0:10:18.4] EH: And the Hyenas is your landlord.
[0:10:19.8] MN: Yeah.
[0:10:22.9] DA: What’s your thoughts on like that kind of avenue for contribution?
[0:10:28.0] EH: I mean, we’ve done a lot of – like where we started originally was with donations and I think we got up to about a thousand dollars a month with donations and really, the take away that we had was that, we have to build real business value, because donations from individuals are never going to be enough to make something truly sustainable. I think most of these other examples I’ve seen in open source of truly sustainable projects have been majority business money and minority kind of individual money. I think – I’m hoping the GitHub thing is the first step towards a larger kind of corporate sponsorship program.
[0:11:03.9] DA: That’s interesting.
[0:11:05.7] EH: Yeah, that’s really kind of – I wrote a blog post on this that maybe we can put on the show notes. Let me actually grab the title. Yeah, basically, the blog post was called Funding Open Source with Marketing Money. Really, the thought there was like, individuals’ donation budgets are like measured in the hundreds of dollars a year and marketing budgets of companies are measured in the millions of dollars a year.
To really kind of become sustainable in open source, we have to be targeting these much larger pools of money. You know, a lot of traditional open source’s wealth is kind of targeted to kind of the engineering tools budget but it’s similarly, marketing budgets are much larger than engineering tool budgets even.
That was really kind of the thought process behind what we were doing is like we tried donations and we’re like, “That didn’t work. What do we need to do to really change our approach to match that reality where how do we build an approach that targets marketing money, instead of you know, donations?” That’s really the origin of the ethical advertising stuff that we’ve worked on.
[0:12:09.8] MN: Donations was the first step. We now see that GitHub is supporting the ability to donate right on github.com and you just said the word or the phrase that people are probably questioning which is ethical advertising. Give us a little bit about what that is and what that means to readthedocs.org?
[0:12:30.8] EH: Sure. Kind of as I mentioned, we looked at kind of targeting marketing money and the traditional way of doing that is the advertising, right? Especially in the Read the Docs’ case, all of our users are open source maintainers who are also working for free. Charging those people was kind of a non-starter, really.
Really, what we needed to do was find a way to extract value from our users. Because we have millions of users who, you know, get a lot of value out of Read the Docs but never, are ever going to pay us money. Really, that’s what we do to advertising as a way to kind of extract a micro payment of attention from all of our users. When we looked at the advertising landscape, we thought it was really kind of not great.
We really didn’t want to be tracking our users or do retargeting campaigns and all those kind of traditional stuff that’s going on in the ad industry.
[0:13:19.8] DA: Right, yeah. It’s kind of wild like all of – how deep it actually goes, like if you look at like Google, it’s such a great company. It does everything for free and it’s like, but how? They know everything about you and your dog too.
[0:13:36.6] MN: Yeah, they’ll like find you go to a site, you get advertising, and then that advertisement follows you across all your platforms and social media, it’s like, “Stop following me.”
[0:13:48.7] DA: Did you buy that DVD yet?
[0:13:50.9] EH: There’s all sorts of perverse economics around that as well that we probably don’t have time to get into today but look up retargeting and look up how it saves advertisers money and when you hear advertisers money, what you really need to hear is cost publishers money and in that model. Read the Docs as a publisher and so retargeting is bad for us and it is also bad for the internet.
[0:14:12.4] DA: You are less per impression basically from that.
[0:14:14.9] EH: Yep. It is a much deeper topic that we don’t need to cover today but look it up if you are curious but really – for us it really came down to respect. I think that is the real word is we wanted to respect our users. We wanted to respect our advertisers and we wanted to respect ourselves. You know, we wanted to continue to be proud of the work that we were doing and we wanted our business model to show that and so really, we just did the simplest thing that would work, which was put advertising on the Internet without knowing anything about who is viewing it.
We call it newspaper advertising on the Internet. We have the equivalent kind of targeting the newspapers had. We have your geography, so we know what country you are from, from your IP address and we also know the content you are looking at, right? We know if you are looking at Python documentation. We know that kind of stuff and so really that is how we do targeting.
Is we say, “You know, we know that you are in the US and you are looking at a Python ORM. You probably want to look at the Twilio Python API. That is probably the ad that you want.” So we can do that without knowing anything about our users, without tracking anyone across the Internet. We just know – basically we know what content we are serving and we use that to target the ads.
[0:15:18.8] DA: Right, it is like very much tailored to a specific domain, like you have a better fit with that.
[0:15:26.0] EH: And the beauty of that model is that it works pretty well for almost all open source because open source projects tend to know their users and know that – you know, an open source maintainer tends to be very similar to the user of that project and know what they want and know what they are interested in and, you know, really I think we are in an incredibly targeted industry and niche already. So we don’t need to do anything weird or creepy. We can just show you the stuff that we like and you will probably like it too.
[0:15:54.1] DA: Right, yeah I was struck at looking through the user settings page for the advertising like as someone who is hosting something on Read the Docs and going through the whole process where it is like, “Okay you might be this kind of person. You might be an open source developer,” so you cannot pay money but maybe you can contribute to our project. You can help us with issues if you don’t want to have advertising or –
These are many different avenues that you may be in life or things that you may be doing and we understand that, like we know who you are and, you know, these are the ways that are available for you to help us and it is really about an exchange.
[0:16:40.2] EH: Like we will happily take your code over your money and if you are just someone who doesn’t want paid advertising – just actually we have a really cool program that is called community ads where we only do advertising for community projects, open source projects or community conferences.
So like the Python PyCon Africa or PyCon Latin America are good examples. We are running ads for those folks and if you are an open source user and you’re like, “We don’t want paid ads on our projects,” we’d let you basically turn off monetization so you just show ads for community projects. So you are basically just promoting stuff in the community and that is an option that we give folks that host our docs with us because yeah, we really want to make sure we are giving back to the community in all the ways that we can.
[0:17:22.3] MN: That is really cool.
[0:17:23.1] DA: That respect is a core value for us at Stride and so like that definitely.
[0:17:29.3] MN: That’s my personal favorite core value. That is the one I shout out the loudest I think, and I just want to go back to the idea of like respect in terms of like the advertisement. I don’t know if you guys have ever dived into – I don’t know if you guys even have a Facebook but if you can go into like the buckets that Facebook has you in is extremely creepy and how much that they know about you to target those advertisements to you based on the things that you have liked and groups and whatnot.
It is just like, “Wow, they know me on a level –” and this may not even be true because I grew up as a person and I am completely different but not have to think about that and like to go to Read the Docs and see an advertisement that will likely resonate with me, I think is much better than like knowing that a company is like hoarding all of this information about me and then feeding me these advertisements that I may not even care for.
[0:18:29.5] DA: Or like knowing your wife is pregnant before you know your wife is pregnant or she knows she is pregnant or something crazy like that.
[0:18:34.3] MN: Exactly.
[0:18:35.5] EH: And I think that is really a lot of what we didn’t know at the beginning, is we hadn’t seen this approach taken too often. The two big examples in the industry are very obviously tracking users and so we really didn’t know if it is going to work or not and so it has been really satisfying to see that you know, maybe we are losing – I mean honestly compared to Google we’re making money compared to what they would pay us for our traffic.
And part of that is – there are a few different reasons for that but yeah, just to see that it has been working and that we have been able to build this model and that is really what we are trying to do is raise awareness and, “Hey, you can have advertising while respecting your users and your advertisers,” like we are not doing any weird click fraud. This is just a very mutually respectful relationship.
[0:19:20.8] DA: This almost feels like it is one of those things where like Slack was a seed that grew out of an MMO where you milked butterflies and other weird, trippy things, like we’re this idea, like I think all advertising comes out of a seed of like an open source but it feels like it could actually be like a broader thing that people might want outside of Read the Docs as a product even.
[0:19:49.0] EH: And that was really one of our thoughts. If us, as people who know the technical and ethical considerations of tracking and advertising as currently implemented, opt into that system then what luck – who else will stand up against it, right? If the folks know exactly what’s going on. When a bit coin miner is running on a Java Script block from an ad served on a CDN or whatever ad network, like we know how that works and we are not the ones who are going to say, “I don’t want random Java Script from advertisers running on my site.” No one else is going to say that and so you know a lot of it was kind of our approach, was we felt somebody has to prove that this model works and we are obviously the ones who can do that so.
[0:20:35.7] MN: Yeah just visiting a website and then hearing my fans rev up of like, “Hmm something’s fishy going on here. I don’t know if somebody is mining minero or something.”
[0:20:45.0] DA: Computers is getting ready to take off.
[0:20:46.9] MN: Yeah and I am just visiting this website. It is very likely and I am sure that kind of stuff is happening over behind the ads and the idea that this approach, as Dave mentioned, the seed that is growing that came from something like open source where people aren’t interested in money but more about interested in building the community. I would love to see more of this ethical advertising happen just off the basis of everyone doing the right thing for the internet.
[0:21:16.3] EH: Yeah and it’s been really good to see – we’ve had a few different people that have taken the ethical advertising banner and run with it. I know the Real Python folks are doing similar stuff. The FileZilla team is doing similar stuff. There is also a group called Code Sponsor, which is also doing an ethical advertising model and then we are also looking at launching an ethical ad network, which would let other people become hosts of this technology.
So you know, if you had a blog or a documentation site that is not on Read the Docs but you still want – you don’t need to do ad sales, you don’t need to do all the work that goes into this but you believe in the methodology, that’s the next step that we see towards spreading it is – like making everyone have an ad sales person in open source is not the solution, right? And so there is a few different ways to kind of things are branching out and good stuff is happening around this.
And so it’s been good to see that idea spread at least a little bit within the open source community. It gives me hope for it spreading farther and wider, so.
[0:22:20.9] DA: Yeah, definitely. Are there other ideas that you are pretty excited about – in terms of like helping keep open source sustainable, be it from fundraising techniques or even from the perspective of like ways of working or approaching the problem?
[0:22:38.2] EH: So another approach that I have seen in the Python world, which is where I am most well-versed. There is a project called the Jango Rust framework and what they did is they basically they have created this idea of collective funding of the project and so you can have different levels of sponsorship where people come in and really the pitch instead of you having an engineer at your company working 20% of the time doing this poorly, what if 10 companies came together and built – spent 10% of the money and got an engineer working on this full time doing really great work, right?
And there’s huge companies that are built directly on Rust framework for the back end of their apps or their API’s and so I really like that kind of concept around really selling the engineering value much more so than – like you are going to the engineering budget but I think that is much more effective way of selling into an engineering organization. You know, donations are pretty much a nonstarter, even at corporations, like these corporations have two people that do donations.
And you have to give a 501(c)(3) and it is like somebody’s bottom of their priority list and the first money that gets cut, whereas really having this investment in the core of your business, I think it is much better approach to funding.
[0:23:52.4] DA: Yeah, I guess with that there is an interesting very intimate exchange where now you have this relationship of they are your patron and you want to make sure that – maintain some autonomy with how you approach maintaining and growing the library and, you know, you don’t feel pressured into building the thing exactly that they want or what have you.
[0:24:18.4] EH: Yeah, I know and I think governance is always an interesting question in open source but, you know, when the other option is like not doing the work because you have to get a job, you know, getting paid full time to work on it, even if your priorities get rejiggered seems like a better outcome for everyone so.
[0:24:37.1] DA: That’s fair, yeah.
[0:24:39.1] MN: I definitely learned something new with ethical advertising and I would love to subscribe to that however or whenever I start a new project. I think that it is a really cool and thoughtful way to contribute to the community without doing any creepiness and I think what you brought to the conversation is amazing and I hope that more people have learned just like I have.
[0:25:03.1] EH: Great, yeah and I love that kind of echo around the core value of respect. Someone actually gave that to me, that specific word and it really resonated for our approach as well and that’s great that that’s something that other folks are working around and I am really excited to build more respectful software and respectful business models around the software with – that we create.
[0:25:24.9] DA: Yeah just shout it from the rooftops.
[0:25:27.1] MN: Oh yeah. Eric, how can people contact you?
[0:25:31.7] EH: Sure, yeah so the easiest place is just you can Google my name, Eric Holscher and that will drop you on ericholscher.com and that has links to everything else you might want, Twitter, GitHub, email, all of that good stuff.
[0:25:43.7] DA: Cool, you got anything to plug?
[0:25:45.6] EH: I think the main thing, if this is interesting, you know, we are always looking for advertisers. So if you are an advertiser who believes in this model and wants to support us, you know, we really do respect the advertisers that have chosen to work with us because it is a different thing than what they are used to.
Similarly, we have a conference coming up in Prague wearing another hat of mine and it’s called Write the Docs, which is all about the software industry and software documentation. So it is in mid-September. So if that is an interest and then the last thing is PyCascades, which is the northwest US regional – US and Canada actually with the first ones in Vancouver, regional Python Conference will be around February next year. We haven’t announced the dates but that would be the other one if you want to come and meet up in person and talk about Python and see some beautiful mountains. That would be the last thing I’d like to talk about.
[0:26:35.4] DA: Love it, yeah Pacific Northwest. Definitely go in the Pacific Northwest or if you were to choose between Prague and the Pacific Northwest, I don’t know how you’d chose. That’s a tough one.
[0:26:44.3] EH: Luckily I don’t have to.
[0:26:45.6] MN: Yeah.
[0:26:46.8] DA: That is brag-able.
[0:26:49.1] MN: Just try to make it to at least one of those places when you get the chance.
[0:26:52.3] DA: Good stuff.
[END OF INTERVIEW]
[0:26:53.4] MN: Follow us now on Twitter @radiofreerabbit so we can keep the conversation going. Like what you hear? Give us a five star review and help developers like you find their way into The Rabbit Hole and never miss an episode. Subscribe now however you listen to your favorite podcast. On behalf of our producer extraordinaire, William Jeffries and my amazing co-host, Dave Anderson, and me, your host, Michael Nunez, thanks for listening to The Rabbit Hole.
Links and Resources: