Latest / DevQuestions with Tim Corey / 255. What Open Source Projects Should Do To Protect Themselves
Transcript
- 0:00SPEAKER_01: Recently, we've been talking about monetization in open source projects.
- 0:04SPEAKER_01: In episode 253, we talked about the misconceptions around open source licensing.
- 0:10SPEAKER_01: In episode 254, we talked about how you should probably be choosing libraries that have a monetization plan for the safety of your application.
- 0:20SPEAKER_01: In this episode, we're going to talk through what options open source projects have for monetizing and how to get started right as an open source maintainer.
- 0:38SPEAKER_00: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:42SPEAKER_01: Software development is more than just writing code.
- 0:45SPEAKER_01: So let's talk about the rest of it.
- 0:47SPEAKER_01: Specifically, let's talk about how to monetize your open source project right from the beginning.
- 0:54SPEAKER_01: In this episode, I want to answer three main questions.
- 0:58SPEAKER_01: Why would you choose to monetize?
- 1:01SPEAKER_01: How to monetize, and when you should monetize.
- 1:05SPEAKER_01: So let's start with why you should choose to monetize.
- 1:09SPEAKER_01: Number one, it allows you to set proper expectations.
- 1:14SPEAKER_01: So when you say, this is how much it's going to cost at these breakpoints, well, that allows you to set proper expectations.
- 1:23SPEAKER_01: When a person comes in and says, Should I choose your library?
- 1:28SPEAKER_01: They know right away what it's going to cost them.
- 1:31SPEAKER_01: So with that, you have set right from the beginning proper expectations when a potential new customer comes in or new user to your product or your library.
- 1:44SPEAKER_01: Number two, it allows you to grow with the popularity of the project.
- 1:50SPEAKER_01: So when you are working in the project and you are just starting off and you're just saying, hey, I found this useful.
- 1:59SPEAKER_01: And so maybe you will too.
- 2:01SPEAKER_01: Well, that's just a little bit of work.
- 2:04SPEAKER_01: You just put it out in the community and say, hey, there you go.
- 2:07SPEAKER_01: A few people start to use it, and there's not really much work associated with that.
- 2:12SPEAKER_01: And maybe six months down the road, a year down the road, you start to get paid contracts for it.
- 2:20SPEAKER_01: Maybe people start to pay you for this project as the popularity of your project grows, as more and more people say, yes, I want to use that in the production.
- 2:32SPEAKER_01: And it's not just for a hobby project, but for an actual production application.
- 2:38SPEAKER_01: Well, as that grows, you're going to have more support, you're going to have more issues, you're going to have more work to do, more feature requests, more pull requests to maintain, and so on.
- 2:49SPEAKER_01: Well, with that is going to come more time on your side.
- 2:54SPEAKER_01: But it should be proportional to the amount of money that comes in to pay for that time.
- 3:03SPEAKER_01: Well, as you grow, as the project grows, and as you get bigger, your product gets bigger, and more and more people start using it, so does your income.
- 3:16SPEAKER_01: At some point, it's a part-time job.
- 3:18SPEAKER_01: Later, it's a full-time job.
- 3:20SPEAKER_01: And your time, let's say 40 hours a week now, goes towards your library because that many people are starting to use it.
- 3:29SPEAKER_01: And the benefit for everybody using it is now you're spending 40 hours a week on this instead of 20, or instead of 10, or instead of once, you know, an hour every month.
- 3:40SPEAKER_01: So as the popularity has grown, so does the amount of time you can spend on the project.
- 3:46SPEAKER_01: Eventually, you could potentially even hire staff, which would again benefit the entire community because you have a lot more time to dedicate to this library in proportion with how much it's being used.
- 4:02SPEAKER_01: Now, number three, it allows you to move on when the time comes.
- 4:07SPEAKER_01: We talked about this in the last episode.
- 4:10SPEAKER_01: But if you decide, hey, I'm tired of this, I'm burned out, or I just don't want to work on it anymore.
- 4:18SPEAKER_01: Well, if you have income and you have outgo as well, like you have the time expenditure that goes into maintain open source project, but money coming in to cover those costs, well, it's much easier to pass that on.
- 4:36SPEAKER_01: You can almost sell your library to someone else.
- 4:40SPEAKER_01: You can say, hey, you know what?
- 4:42SPEAKER_01: This makes$100,000 a year, and I want somebody else to take it over.
- 4:48SPEAKER_01: Maybe they take it over for$100,000.
- 4:51SPEAKER_01: Maybe they take it over for nothing.
- 4:52SPEAKER_01: And you say, hey, I want this off my plate, but you have people that will take it because of the fact that it is an income stream.
- 5:00SPEAKER_01: So that means your customers are taken care of.
- 5:03SPEAKER_01: That means they can be more assured that the library will continue beyond your exit, whatever exit type that is, because it has a sustainable monetization strategy.
- 5:18SPEAKER_01: So that's why.
- 5:19SPEAKER_01: Let's go now to how.
- 5:21SPEAKER_01: How do you monetize your open source project?
- 5:25SPEAKER_01: Well, number one, there is a new solution out there.
- 5:28SPEAKER_01: Um, Rob Mensching is an open source maintainer who has come up with the open source maintenance fee.
- 5:37SPEAKER_01: And I'll link it down in the description.
- 5:39SPEAKER_01: Um, you can check that out.
- 5:42SPEAKER_01: But this is an attempt at saying, hey, you know what?
- 5:46SPEAKER_01: There's a way to do this right.
- 5:49SPEAKER_01: You pay to use everything around the code.
- 5:54SPEAKER_01: So when we think about open source, when we think about free open source, we think about open source code that is freely available to share and to use, we think about the code, and that's really what we're talking about: is the open source code.
- 6:10SPEAKER_01: But there's a lot more that goes into open source beyond just the code.
- 6:15SPEAKER_01: So if you look at GitHub and look at a GitHub repository, you see the code and you see, well, here's all the source code.
- 6:22SPEAKER_01: I could, you know, I could clone that down, I could build that source code myself.
- 6:27SPEAKER_01: But there's a lot more that goes into it.
- 6:29SPEAKER_01: There's GitHub issues, there is pull requests, there's releases, there's the README's, there's the discussion forums, there's wikis, there's a whole bunch of other things that go on around the code.
- 6:43SPEAKER_01: So the code, open source and free, but the open source maintenance fee says, hey, if you're just using the code, fine.
- 6:53SPEAKER_01: But if you're using the releases, which you probably are, if you're using the issues, you want to submit issues or review issues or anything else, if you are using things like even adding your own pull requests, which you may say, wait, but I'm donating to your library.
- 7:10SPEAKER_01: Pull requests aren't just donations, because they actually add to the burden of the open source maintainer.
- 7:17SPEAKER_01: It's not just they take away from the burden.
- 7:20SPEAKER_01: Because, sure, that code is done now, but all the bug fixes, are you coming back to fix the bugs in that code?
- 7:26SPEAKER_01: Probably not.
- 7:27SPEAKER_01: Um, all of the maintenance on that code, are you coming back to do that?
- 7:30SPEAKER_01: Probably not.
- 7:31SPEAKER_01: Um, all of the additional expansion of your code base are of the code base, are you coming to help with that?
- 7:38SPEAKER_01: Probably not.
- 7:39SPEAKER_01: So even though a pull request can be valuable, you're still actually taking away in some ways from the repository.
- 7:48SPEAKER_01: Even just the time it takes to review that pull request, to go back and forth on things like styles and making sure it you know it does certain things and it fits in the overall structure of the app and working on does this work the right way and testing it, all the rest of stuff, that's time.
- 8:06SPEAKER_01: So if you're going to do any of those things, the use the releases, use the issues, use pull requests, work on it or talk on the discussion forum, and so on, if you're gonna use any of those, you pay the open source maintenance fee.
- 8:21SPEAKER_01: Now, Rob has some uh suggestions in here, and this is a very new thing, but he talks about the idea that that open source maintenance fee should be at at bare minimum$10, but whatever the library chooses to charge.
- 8:36SPEAKER_01: And if it's$10, that's ridiculously cheap.
- 8:39SPEAKER_01: Okay,$10 a month.
- 8:41SPEAKER_01: If you're using something in production, you should be paying at least that much.
- 8:45SPEAKER_01: So that's one option.
- 8:47SPEAKER_01: And if you say, hey, you know what, if you're gonna use any of these things, you need to be paying the open source maintenance fee of X dollars per month.
- 8:55SPEAKER_01: That's that's a good option, I think, and one of the best I've seen so far.
- 9:00SPEAKER_01: But that's one way to monetize your open source project.
- 9:05SPEAKER_01: Now, number two would be something like a dual license based upon usage.
- 9:10SPEAKER_01: So maybe you say, hey, it's it's free to use if you are an open source maintainer yourself, or if you're doing it for a hobby project or for a small business.
- 9:21SPEAKER_01: But once you get to a certain point, that's when this other license kicks in, and that's where you have to change what you do as far as payment goes.
- 9:32SPEAKER_01: That's another option.
- 9:34SPEAKER_01: Um, another option, kind of similar but different, is to have two products where you have a light version that's free and open source and you know, fully available, and you have a full product or an upgraded product that does even more stuff that is not free to use, and you have to pay for it.
- 9:52SPEAKER_01: That's another option as well.
- 9:54SPEAKER_01: Both of these bring some value because you can say, hey, you know, you can use it at a certain point, but then beyond that, you have to pay for it.
- 10:05SPEAKER_01: Um I do like the idea of small or or no um you know no production use or no um you know license or business use be free.
- 10:19SPEAKER_01: I like that.
- 10:20SPEAKER_01: Um, but I do like the idea of it's very clear that we are making a choice to go to a paid product.
- 10:28SPEAKER_01: That's an option.
- 10:29SPEAKER_01: Uh number four would be support contracts.
- 10:31SPEAKER_01: So you say, hey, you know what?
- 10:33SPEAKER_01: You can use this for free, but if you want support in any way, you're paying for it.
- 10:39SPEAKER_01: It's a little bit like the first option, um, but it's not quite as clear and it doesn't apply to as many people.
- 10:47SPEAKER_01: So you could say, I'm not going to use support, but I'm still using the releases, I'm still maybe imposting issues.
- 10:54SPEAKER_01: Um but you could do that.
- 10:57SPEAKER_01: Okay.
- 10:57SPEAKER_01: It's probably the the least, I kind of plays an order of where I'm like, this is probably the best to the least option.
- 11:05SPEAKER_01: Um, but all of these are potentials, and there's more as well, for how you could potentially look at licensing your open source library.
- 11:15SPEAKER_01: Now, there are other ways of potentially getting money that I don't recommend.
- 11:20SPEAKER_01: Okay.
- 11:21SPEAKER_01: So they have been proven to be, let's say, less than reliable ways.
- 11:26SPEAKER_01: That includes sponsorships.
- 11:28SPEAKER_01: They can be great, but it's feast or famine.
- 11:31SPEAKER_01: Okay.
- 11:31SPEAKER_01: So again, going back to Automapper and Mediator, where Jimmy was working at a company that was basically sponsoring those open source libraries because they were saying, hey, work on the company dime on those things.
- 11:47SPEAKER_01: Well, that went away when he left the company.
- 11:50SPEAKER_01: All of a sudden, the you know, the very well-maintained libraries drop off significantly because Jimmy doesn't have time to do that anymore.
- 12:01SPEAKER_01: And if you're working independently, it's it's no different.
- 12:04SPEAKER_01: Maybe Microsoft sponsors you for a while.
- 12:06SPEAKER_01: That's great.
- 12:07SPEAKER_01: But they probably won't sponsor you forever.
- 12:10SPEAKER_01: And at some point, they're gonna say, hey, we're done now.
- 12:14SPEAKER_01: And all of a sudden you go from maybe$50,000 a year to nothing.
- 12:19SPEAKER_01: That is a tenuous position to be in, where those sponsors you're living based upon the goodwill of sponsors, and those sponsors don't stick around forever.
- 12:31SPEAKER_01: Number two, kind of even worse, is donations.
- 12:34SPEAKER_01: You've probably seen the buy me a coffee or here's the GitHub donation link.
- 12:39SPEAKER_01: How many of you, I'm sure that if you're a developer, you've used open source.
- 12:44SPEAKER_01: How many of you have ever given anything to an open source maintainer?
- 12:51SPEAKER_01: And then of that, if you have, how many have you continued to donate?
- 12:58SPEAKER_01: Or did you do it once?
- 13:00SPEAKER_01: Okay, because you know, just like you, they can't live on one-time donations or short-term donations.
- 13:08SPEAKER_01: Would you want your salary to be dependent on others donating to your costs?
- 13:14SPEAKER_01: Even very large libraries don't have good donation rates and are not getting paid nearly enough for what they're doing.
- 13:23SPEAKER_01: Number three, merch.
- 13:26SPEAKER_01: Okay, merch isn't a horrible idea, but at the same time, it's not a sustainable thing.
- 13:31SPEAKER_01: First of all, the markup rates on merch aren't great, meaning you're not going to get huge percentages of that money.
- 13:39SPEAKER_01: If a t-shirt costs$20, you might get$5.
- 13:42SPEAKER_01: Maybe if you're doing well, you're getting$10, but after merchant fees and store fees and shipping fees and all the rest, everybody else takes out of that pot and you get what's left over.
- 13:55SPEAKER_01: So merch isn't a great way to sustain because also, okay, I bought a t-shirt, now what?
- 14:02SPEAKER_01: Because again, it's kind of like donations where it's a one-time thing usually.
- 14:06SPEAKER_01: You're not buying a new t-shirt every month or every year.
- 14:09SPEAKER_01: You might say, well, yeah, but as more people come on, they buy merch.
- 14:12SPEAKER_01: What's the percentage?
- 14:14SPEAKER_01: Very low percentage of people actually would buy merch.
- 14:17SPEAKER_01: And of those, they're probably buying it once or twice, and that's about it, which means that you have to have an incredible churn rate where you continue to bring new people in and get a percentage of those to buy and continue to do that.
- 14:31SPEAKER_01: It's a it's a feast or famine thing.
- 14:34SPEAKER_01: Maybe if you first offer merch, you get lots of money and lots of people buying merch, and that's great.
- 14:39SPEAKER_01: But it's going to gradually or very abruptly drop off, and all of a sudden you don't have nearly enough income stream to pay for the project.
- 14:51SPEAKER_01: And number four, again, go back to what I talked about with Jimmy, um, employer support.
- 14:56SPEAKER_01: Maybe your employer supports you doing this, and that's great.
- 14:59SPEAKER_01: Your employer won't be around forever, and neither will their benevolence.
- 15:04SPEAKER_01: At some point, your employer is gonna say, either you're gone, or they're gonna say, hey, we don't have time for you to do that anymore.
- 15:13SPEAKER_01: And so, either way, all of a sudden you've lost the ability to support your project.
- 15:19SPEAKER_01: So I would encourage you to have a monetization strategy that doesn't depend on one of those less than stable options.
- 15:29SPEAKER_01: Okay?
- 15:29SPEAKER_01: Now it brings it to our last question, which is when should you start thinking about your monetization?
- 15:36SPEAKER_01: So the answer is now.
- 15:39SPEAKER_01: Now.
- 15:40SPEAKER_01: It doesn't matter whether you have an established product or established library, or you're just thinking about doing a new repository with a new open source project.
- 15:50SPEAKER_01: Either way, now is the time to monetize.
- 15:54SPEAKER_01: You might say, well, Tim, if I monetize now and I'm just starting out, no one's gonna use my library.
- 16:02SPEAKER_01: Well, maybe.
- 16:03SPEAKER_01: And yes, that's going to keep some people out at some point where they're gonna say, hey, you know what?
- 16:09SPEAKER_01: No, I don't like that.
- 16:10SPEAKER_01: I want to have just free, free, free.
- 16:13SPEAKER_01: In some ways, it's actually gonna help you.
- 16:15SPEAKER_01: It's gonna protect you from the people who just take, take, take and never give back.
- 16:21SPEAKER_01: But also, you're setting expectations now so that people know right up front what's going on.
- 16:28SPEAKER_01: And if it even if you don't ever take off, that's that may be better than taking off and trying to change later.
- 16:37SPEAKER_01: Wait until your project has a measure of success is a sure way to alienate your customers.
- 16:43SPEAKER_01: We've just seen this.
- 16:44SPEAKER_01: People feel betrayed by projects who change their monetization strategy after they become popular.
- 16:51SPEAKER_01: It isn't right, but it's reality.
- 16:54SPEAKER_01: So the best way to avoid that is to set up a plan up front for how you're going to sustain yourself and your project long term.
- 17:05SPEAKER_01: Now, if you have any questions, you have any thoughts or comments, feel free to go to the YouTube video and leave those down below.
- 17:11SPEAKER_01: I'd love to respond to them.
- 17:13SPEAKER_01: I'm sure you have some thoughts.
- 17:15SPEAKER_01: All right.
- 17:15SPEAKER_01: Thanks for listening.
- 17:16SPEAKER_01: And as always, I am Tim Corey.
- 17:19SPEAKER_00: Thank you for joining us for this episode of Dev Questions.
- 17:22SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to I am TimCorey.com and enroll in a course.