114. Open Source Sustainability and Ethical Advertising with Eric Holscher

Our guest today on The Rabbit Hole is Eric Holscher, who is the co-founder of Read the Docs and Write the Docs. Aiming to elevate the status of documentation in the software industry, Eric talks to us about the sacrifices he has had to make in serving the programming community, not getting paid and having thousands of people depending on him to keep the platform running smoothly. We also get into the details of open source sustainability and he explains what they have come up with to solve the problem of funding. We then discuss the concept of ethnical advertising and why it is so important for them to treat all role-players with respect and to honor users’ privacy online. Be sure to join us for the inside scoop!


Key Points From This Episode:

  • Eric as a co-founder of Read the Docs and what they’re about.
  • How Read the Docs became a core component of the Python community.
  • Learning to carry the responsibility of having so many people depend on him.
  • Working for free and getting burned out.
  • Building true business value and creating a sustainable open source. 
  • Advertising as a means of extracting a micropayment from users.
  • Respecting users and advertisers through ethical advertising.
  • Being more interested in building community than making money.
  • And much more!

Transcript for Episode 114. Open Source Sustainability and Ethical Advertising with Eric Holscher

[0:00:01.9] 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:00:09.8] DA: Dave Anderson.

[0:00:11.5] MN: Today, we’ll be talking about open source sustainability and ethical advertising.

[0:00:16.4] DA: That’s a deep topic.

[0:00:16.8] MN: It’s a deep topic. I may not understand as open source projects out there and people need to pay for food and pay for a living, how do you sustain an open source project. We’ll jump right into that. We have a special guest today, Eric Holcher. Hay Eric, how’s it going?

[0:00:33.9] EH: Great, how are you all doing? Sounds pretty good.

[0:00:36.9] 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:00:46.3] EH: Yup, I’ve been for a couple of weeks but I’m normally based out of Portland.

[0:00:50.1] DA: Pacific Northwest.

[0:00:51.0] MN: Tell us a little bit about yourself?

[0:00:53.2] EH: Sure, I think in this context, the most important things that I’m one of the cofounders of Read the Docs which is documentation, a 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 something like a hundred thousand open source projects. Yeah, that’s kind of the hat I’m wearing today.

[0:01:12.2] DA: Yeah. Read the Docs is something that just like so 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:01:25.5] EH: Yeah, people get – well, you certainly can’t learn and that’s for sure but yeah, it’s very much kind of core infrastructure for Python and a little bit more and more for some of the other language communities as well like PHP and some JavaScript stuff is on there but definitely, they’re our biggest kind of audience is Python.

[0:01:43.6] DA: That’s cool, I didn’t realize that, so ubiquitous in Python that there’s 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:01:54.6] EH: People get very upset with me when it goes down, especially anyone doing kind of data science or web development in Python especially to – we host Jupiter stocks and a bunch of Jango stuff and yeah, there’s lots of core stuff down there.

[0:02:07.5] DA: Yeah, you go to download those PDF documentations or whatever.

[0:02:13.1] MN: Yeah, have them offline, save them.

[0:02:17.1] DA: I mean, that’s such an amazing thing that Read the Docs has grown in to such a core part of the Python community, what was the origin story there? How did that come about?

[0:02:31.3] 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 crunch running on my server that just like pull them down from GitHub and 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. The core of the idea is you know, listening for a web hook and auto building docs and generating lots of formats, 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:03:10.7] DA: Wow, yeah. Way faster than the guy who made JavaScript.

[0:03:14.2] MN: Way faster.

[0:03:16.6] DA: Beat him by four days, nice.

[0:03:18.9] MN: Wow.

[0:03:20.3] DA: You rested for five days. That’s great. I mean, when something picks up that much, how do you manage to keep that ahead of you? I’m only just now like kind of dipping my toes into open source contributions and getting more involved in that. There’s a lot of hats that you got to wear when people started to depend on you.

[0:03:48.9] 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 started 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 PagerDuty and the PagerDuty didn’t exist at the time probably but you know, wearing that notification thing.

[0:04:16.9] DA: I mean, it’s kind of crazy thinking about the idea of slapping a pager on yourself for something that’s open source. People fight that tooth and nail when they’re on the job not to have the responsibility.

[0:04:30.5] EH: Right, yeah, people are doing it and getting paid and it’s 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. Especially on the Pacific Northwest summers where 12 weekends where it doesn’t rain or whatever.

If I had to stay home for some of those because I was you know, working without getting paid, you know, that’s a pretty bad deal.

[0:05:00.6] DA: Right, you got to make those count because you got that Pacific Northwest winter that is the complete opposite of that.

[0:05:07.5] EH: Yeah, I really do think over time that is really – starts to wear on you, you know? Doing something for free and feeling like it’s really important but not really having the resources 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:05:28.2] DA: Yeah, it’s like such a common story too. I remember seeing a tweet from the creator of a really popular JavaScript linting library and he was just talking about how he explained to his parents like what he does and they’re like – we have no idea what the heck you're talking about or why you would do something so crazy.

[0:05:49.9] EH: Yeah, it still really doesn’t make sense when you explain it to people outside. You’re just doing something for free to give away to the world for like no – what?

[0:06:00.6] DA: Yeah, my girlfriend’s in a nonprofit and so she’s like, I get it. Yeah, do that. 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:06:17.8] EH: I’m also on the board of the Python software foundation so that’s one of the many hats that I have.

[0:06:22.3] DA: That’s legit, nonprofit relationship.

[0:06:25.6] EH: yeah, we have like millions of dollars and all that good stuff that we put back into the community. Yeah, there’s definitely a common case, right? You have a lot of people doing this work for free and the mental model that makes sense, 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 more people are using open source and fewer contributing a percentage, it becomes harder and harder to sustain that existing relationship I think.

[0:06:56.9] 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 that this is like rolling out over time. It’s like okay, that’s pretty cool. But the thing that really floored me was that I recently like pushed out my first package to pipe PI.

Pushed out this little mock helper library and I go yeah, I’m so cool, I made 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 of your library have this many contributors and so 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:07:50.4] MN: That’s awesome.

[0:07:51.1] EH: It’s definitely a circle of life kind of moment. We’re all connected.

[0:07:55.8] DA: Right, yeah. I felt it, it’s like you know, Walden or something. It’s all in the air.

[0:08:04.2] MN: The app you put on GitHub is like baby Simba and like you’re putting it up on pride rock and then everyone else, very single developer is watching you. Baby Simba up into the sky, that’s kind of what happens, the circle of life.

[0:08:17.1] DA: Except they were the melon. I did nothing. Eric, question.

[0:08:24.1] EH: They hyenas is your landlord.

[0:08:26.2] MN: Yeah. Hyenas are your landlord.

[0:08:29.2] DA: What’s your thoughts on that kind of avenue for contribution?

[0:08:34.0] EH: I mean, we’ve done a lot of 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 of donations from individuals are never going to be enough to make something truly sustainable. I think most of the other examples I’ve seen in open source have truly sustainable projects have been majority business money and minority kind of into the jewel money.

I’m hoping the Hubthing is the first step towards a larger kind of corporate sponsorship program.

[0:09:09.7] DA: That’s interesting.

[0:09:12.1] EH: Yeah, that’s really – I wrote a blogpost on this, maybe we could put on the show notes. Let me actually grab the title. Yeah, basically the blog post was called “Funding open source with marketing money” and really the thought there was like, individuals’ donation budgets are like in the 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 as well is 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 this 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 and approach the targets marketing money, instead of you know, donations? That’s really the origin of the ethical advertising stuff that we’ve worked on.

[0:10:16.7] DA: 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 Read the Docs.org.

[0:10:37.2] 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 Read the Doc’s case, all of our users are open source maintainers who are also working for free. Charging those people was kind of a nonstarter 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 view 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 these kind of traditional stuff that’s going on in the ad industry.

[0:11:26.6] DA: Right, yeah. It’s kind of wild, how deep it actually goes. If you look at like Google, it’s such a great company, it does everything for free. But how? They know everything about you and your dog too.

[0:11:43.2] MN: Yeah, they’ll find, you go to a site and you get advertising and then that advertisement follows you across all your platforms and social media. It’s like, stop following me.

[0:11:54.9] DA: Did you buy that DVD yet?

[0:11:57.2] 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 of retargeting and look up how it saves advertisers money and when you hear saves advertisers money, what you really need to hear is, cost publishers money. In that model, Read the Docs is a publisher. You're retargeting is bad for us and it’s also bad for the internet.

[0:12:18.6] DA: You lost per impression basically from that.

[0:12:21.7] EH: Yup, it’s a much deeper topic that we don’t need to cover today but if you’re curious. Really, for us, it really came down to respect. I think that’s 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 we were doing and we wanted our business model to kind of show that.

Really, we just did the simplest thing that would work which was put advertising on the Internet which I don’t know anything about who is doing it. We call it kind of newspaper advertising on the Internet. We have the equivalent kind of targeting that newspapers had, right?

We have your kind of geography, we know what country you’re from, from your IP address. we also know the content you are looking at. So we know if you are looking at Python documentation, we know that kind of stuff. So really that is how we do targeting is we say, “We know you’re in the US and you are looking at Python ORM. You probably want to look at the Twilio Python API that is probably the add that you want.” So we can do without knowing anything about our users, we’re not tracking anyone across the internet. Basically we know what content we are serving and we use that to target the ads.

[0:13:24.8] DA: Right that is very much tailored to a very specific domain. You have a better fit with that.

[0:13:33.0] EH: And the beauty of that model is it works pretty well for almost all open source because you know open source projects tend to know their users and know that an open source maintainer tends to be very similar to the user of that project and know what they want and know what they’re interested in and so really I think we’re 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 they will probably like it too.

[0:14:00.0] DA: Right, yeah I was kind of struck looking through the user settings page for the advertising as someone who is hosting something on Read the Docs and going through the whole process where it’s like, “Okay you maybe this kind of person” you might be an open source developer so you can’t pay money or like that but maybe you can contribute to our project.

You can help us with issues if you don’t want to have advertising or you know these are many different avenues that you maybe in life for things that you made that you are doing and we understand that. We know who you are and you know, these are the ways that are available for you to help and it is really about an exchange.

[0:14:46.4] EH: We’ll happily take your code over your money and if you are just someone who doesn’t want paid advertising, we actually have a really cool program that is called community ads where we only do advertising for community projects, open source projects or community conferences. Like the 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 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 and all of the ways that we can.

[0:15:28.3] MN: That is really cool.

[0:15:29.2] DA: The respect is a core value for us at Stride so that definitely rings true.

[0:15:35.6] MN: This is my personal favorite core value.

[0:15:37.2] DA: Oh yeah it really is. It is the one that you shout out the loudest.

[0:15:39.7] MN: It’s the one I shout out the loudest and I just want to go back to the idea of like respect in terms of 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 the buckets that Facebook has you in is extremely creepy how much they know about you to target those advertisements to you based on the things that you have liked and groups and whatnot.

It was 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 and advertise it that it will likely resonate with me. I think it 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:16:35.2] DA: We’re knowing your wife is pregnant before you know your wife is pregnant or she knows she’s pregnant or something crazy like that.

[0:16:39.4] MN: Yeah, exactly.

[0:16:41.8] EH: And I think that is really a lot of what we didn’t know at the beginning is we haven’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 maybe we are losing. I mean honestly compared to Google making money, compared to what they would pass for our traffic and there is a few different reasons for that.

But yeah, just to see that it has been working and 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. We are not doing any weird click fraud. We are not doing it, this is just a very mutually respectful relationship.

[0:17:27.1] DA: This almost feels like one of those things where Slack was a seed that grew out of an MMO where you milked butterflies and other weird trippy things. We are in this idea that ethical advertisement comes out of the seed of 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 to them.

[0:17:55.3] EH: And that was one of our thoughts just like 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 or who else will stand up against it, right? If the folks know exactly what’s going on when a Bitcoin miner is running in a JavaScript block from an ad served on a CDN or whatever and add that work. We know how that works and we are not the ones who are going to say I don’t want random JavaScript from advertisers running on my site.

So no one else is going to say that and so, a lot of it was our approach whereas we felt somebody has to prove that this model works and we’re obviously the ones who can do that so.

[0:18:41.4] MN: Yeah, just visiting a website and then hearing my fans rev up of like, “Something is fishy going on here. I don’t know, somebody is mining minero or something.”

[0:18:51.4] DA: Computers are getting ready to take off.

[0:18:52.6] MN: Yeah and I am just visiting this website. It’s like real light I am sure that stuff is happening all over behind the ads and the idea that this approach as Dave mentioned, the seed 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:19:22.7] EH: Yeah and it’s been really good to see. We’ve had a few different people that have taken that ethical advertising kind of 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 is the next step that we see before spreading it. It is making everyone have an ad sales person in open source is not the solution, right? And so there is a few different ways that things are branching out and good stuff is happening around this.

And so it has 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:20:26.7] DA: Yeah, definitely. Are there other ideas that you are pretty excited about in terms of helping keep open source sustainable via from like a fundraising techniques or even from the perspective of ways of working or approaching the problem?

[0:20:44.0] 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 Rest Framework and what they did is basically they’ve 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 is instead of you having an engineer at your company working 20% of the time doing this poorly, what if you have 10 companies came together. And build, spend 10% of the money and got an engineer working on this full-time doing really, really great work and there is huge companies that have built directly on the rest framework for the backend of their apps or their APIs and so I really like that concept around really selling the engineering value much more so than you are going to end up going to engineering budget but I think that is a much more effective way of selling into an engineering organization.

You know donations are pretty much a non-starter even at corporations like these corporations have two people that do donations and you have to give 501C3 and somebody is at the bottom of their priority list and the first money that gets cut. So it’s really having this investment in the core of your business I think is much better approach to funding.

[0:21:58.7] DA: Yeah, I like to split 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 to maintain some autonomy with how you approach maintaining and growing the library. You don’t feel pressured into building exactly the thing that they want or what have you.

[0:22:25.0] EH: Yeah and I think governance is always an interesting question in open source but you know, when the other option is 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 a little bit rejiggered seems like a better outcome for everyone so.

[0:22:43.0] DA: That’s fair, yeah.

[0:22:45.0] 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 it is a really, 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 will learn just like I have.

[0:23:09.3] EH: Great, yeah and I love that echo around the core value of respect. Someone actually gave that to me that that specific word and it really resonated for our approach as well and that is great. That is something that other folks are working around and I am really excited to build more respectful software and respectful business models around the software that we create.

[0:23:31.0] DA: Yeah, just shout it from the rooftops.

[0:23:32.9] MN: Oh yeah. Eric, how can people contact you?

[0:23:37.6] 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:23:50.0] DA: Cool, you got anything to plug?

[0:23:51.8] EH: I think the main things are 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, 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 it is called Write the Docs, which is all about the software industry and software documentation.

So it is in mid-September so if that is of interest and then the last thing is Pycascades which is the Northwest US regional, US and Canada actually. We’re the first one in Vancouver. Regional Python Conference will be around February of next year. We haven’t announced the dates but that would be the other one if you want to come 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:24:41.6] DA: Love it, yeah Pacific Northwest. Definitely go and post in Northwest or if you were to choose between Prague and the Pacific Northwest, I don’t know how you’d choose, it’s tough.

[0:24:50.3] EH: Luckily I don’t have to.

[0:24:52.1] DA: Yeah, that is braggable.

[0:24:54.9] MN: Just try to make it to at least one of those places when you get the chance.

[0:24:58.6] DA: Good stuff.


[0:24:59.7] 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:

The Rabbit Hole on Twitter

Eric Holscher

Read the Docs








Funding Open Source Blog Post

Pycon Latam



Code Sponsor

Write the Docs