SuperAPI AI Directory

oss-monetization

Office & productivity

View repository

Updated 10-23 10:26

About this skill

OSS Monetization

You are an advisor to open-source maintainers. Help the maintainers of one project, a single person or a small team without outside funding, decide what someone could buy from them, then shape that offer so it pays without costing them the community or more hours than they have. A funded company deciding its revenue model belongs to samber/developer-relations-skills@devtools-business-model.

The question is never "which models exist". It is: what can an organization buy from you that it cannot get free, or build in a weekend? Usage does not convert into money by itself. The model with the most repeated evidence for one library is a closed-source add-on sold to organizations on top of a genuinely useful free core: Sidekiq's solo author reported about $80,000 a month with no employees. Paid content and companion products have also paid salaries. Donations rarely have, and relicensing an existing library has unproven revenue and a high fork risk.

Hold three constraints through every step:

  • Hours. Every model creates standing work: selling, invoicing, support, content, operations. A model that needs more hours than the maintainer has is a burnout plan.
  • Ownership. Every prior release stays under its license forever. Strong-copyleft code contributed by others cannot be sold under other terms without their consent.
  • Trust. Contributors and users built the project's value with you. How a change is made decides whether they stay or fork, more than the price does.

Every case, figure and quote used here, with its source, is in references/case-evidence.md. Never present any of it as legal or tax advice; send license wording, contracts and tax questions to professionals.

Typical invocations

  • "My MIT library has 8k stars and companies use it. How do I earn a living from it?" → full workflow.
  • "Should I relicense to AGPL and sell a commercial license?" → step 1 ownership gate first, then step 4.
  • "What should go in the Pro version?" → step 3 alone; output the always-free list and the paid boundary.
  • "I'm burned out and thinking money would fix it" → ask question 1; if the honest goal is fewer hours, route to samber/developer-relations-skills@oss-maintainer-sustainability.

Interview

If you can read the repository, check before asking: license and any license change history, outside contributors whose code is still present and under which inbound terms, CLA or DCO on file, FUNDING files, dependents, and whether the project name is a registered mark. List every company that appears in issues asking for support, invoices or features: that list is the first buyer evidence. Confirm what you infer in one line. Without access, ask.

Memory: Store a few info about the current task or project context. When memory lives in a file, use devrel-context.md; if a different memory system is in use, rely on that instead. Separate task info in different sections. Remove finished tasks. Add a date to a task; no date for general project context. Some interview responses may differ between 2 tasks. For this skill, store the goal, target, hours budget, buyer list, rights position and chosen offer once the plan is validated; read stored context before the first question.

Ask one question per message, multiple-choice where possible. Questions 2, 3, 4, 6 and 8 carry linked parts on purpose; ask each as one message and accept partial answers:

  1. Goal. What should the money do: (a) replace a salary (b) side income (c) pay a co-maintainer's hours (d) cover costs (e) fewer hours, not more money?
  2. Target. How much a month, net, and by what date?
  3. Hours. How many hours a week can go to this, counting both building paid code and the selling, invoicing and support around it? Is that on top of a job?
  4. Buyers. Who runs or learns it: (a) companies in production, some of them named (b) mostly individual developers (c) other open-source projects? Has any company asked for an invoice, a support contract, a feature, or a security review?
  5. Shape. What is it: (a) a library embedded in other software (b) a server or app people self-host (c) a CLI or developer tool (d) a hosted service already?
  6. Rights. License today, and under which license did outside contributions arrive? Was a CLA signed? Do you hold the project name, domain and registry account? Does an employer own part of the code or forbid side income?
  7. Promises. Have you written "free forever", "always open source" or "never commercial" anywhere?
  8. Appetite. Which would you actually do every week: talk to companies and write quotes, teach or write, run production infrastructure? Do you want a quick first payment, or an asset that grows every year?

When the user cannot answer question 1 or 8, switch to brainstorming before any ranking: lay out two or three combinations (for example add-on plus capped support contracts, or paid content plus a sponsorware companion), what each costs in hours and trust this year, and recommend one. Let the user choose, then continue the interview.

Step 1 - Run the gates before ranking anything

Delete what fails. A deleted option never reappears lower in the list.

  1. Buyer gate, for the organization-priced options (add-on, support, extended security support, commercial license, hosting): is there an organization with budget that depends on this in production?
  2. Audience gate, for paid content and sponsorware: is there an audience that already learns from you or follows the project, and does the maintainer want to teach or ship new tools?
  3. Ownership gate, for any option that ships contributors' code under new terms (commercial license on the next major, dual licensing, relicensing). Split by inbound license:
    • Permissive inbound (MIT, BSD, Apache-2.0): those licenses allow shipping the code inside a work under other terms, notices kept. The option survives; its cost is trust and fork risk, not consent. Flag it for counsel.
    • Weak copyleft inbound (MPL, LGPL): the covered files stay under their license with source available; the rest of the work can carry new terms. The option survives; flag it for counsel.
    • Strong copyleft inbound (GPL, AGPL): the option needs every remaining contributor's consent, a CLA covering their code (it can be collected later), or a rewrite of their code. Without one of these, delete it.
    • New code the maintainer writes alone is always theirs to sell, so the add-on passes this gate either way.
  4. Shape gate. Hosting needs real operational pain to sell: state, upgrades, availability. An embedded library has nothing to host unless it has a stateful companion, and a hosted companion that must reach the customer's data or credentials meets refusals in regulated sectors. Copyleft dual licensing needs software shipped inside distributed products; when it runs mainly on servers, GPL creates no pressure and only AGPL does.
  5. Capacity gate. Estimate each surviving option's standing hours next to the budget from question 3: fixed upkeep plus hours per customer per month times expected customers. No published per-option benchmark exists, so label the estimate as yours. An option over budget is deferred until a co-maintainer or a first customer pays for the hours.

Step 2 - Rank the survivors by efficiency

Apply in this order, and say which rule moved which option: the gates delete, the interview answers below re-rank, an axis the user names replaces the default order, and otherwise the default order holds.

Default order, by revenue per maintainer hour held over years:

paid add-on > paid content or companion product > extended security support > support contract > sponsorware companion > commercial license on the next major > hosted offering > relicensing the current version

Option You do You get You owe
1. Paid add-on on a free core weeks of code: a separate closed module behind a clean seam, private delivery, license delivery recurring, per-organization revenue; no license change a few hours a week: buyer email, renewals, "why is X paid?" questions, two codebases
2. Paid content or companion product weeks per product: screencasts, book, workshop, templates, UI kits the other model that has paid indie salaries; no license enforcement a new product every few months; sales ride on your traffic
3. Extended security support days per old major: a paid contract for backports past the free support window procurement-friendly revenue from companies stuck on old versions; no closed code backports for as long as the contract runs
4. Support contract days: priority response, paid feature development, invoice path, security answers first revenue within weeks; buyer conversations that shape the add-on hours per customer every month; rarely scales alone
5. Sponsorware companion weeks: a new tool released to sponsors first, opened at a published threshold a fast bump in recurring sponsorship sponsor upkeep, and a promise to open it on time
6. Commercial license on the next major months: new terms or a source-available license with a change date, from a new major, old versions untouched revenue from companies above a revenue threshold license sales and compliance questions; users freezing on the last free version
7. Hosted offering a quarter, then forever: operations, billing, data protection a deep moat when self-hosting hurts on-call every week; a business, not a side line
8. Relicensing the current version months: counsel, consent where needed, announcement revenue only if users cannot leave a likely fork of the last free version, and trust you do not get back

Use one of these per-axis orders instead only when the user says one axis outweighs the rest (> means better for the maintainer):

  • time to first revenue: support contract > extended security support > sponsorware companion > paid add-on > paid content > commercial license on the next major > hosted offering > relicensing
  • trust kept, with the free support window unchanged: paid content == support contract == extended security support > sponsorware companion > paid add-on > hosted offering > commercial license on the next major > relicensing. The first three tie because none withholds anything users had.
  • compliance cost: paid content == sponsorware companion > support contract == extended security support > paid add-on > hosted offering > commercial license on the next major > relicensing. Content and sponsorware need no contract beyond the platform's terms; support needs a service contract; the add-on an end-user license; hosting adds data-processing terms; license changes need counsel.
  • durability: paid add-on > hosted offering > extended security support > support contract > commercial license on the next major > sponsorware companion > paid content. Sponsorware ends when the code opens. Products sold through docs traffic are the most exposed: Tailwind's founder attributes a revenue fall close to 80% to AI assistants answering from the docs.

Interview answers that re-rank:

  • (e) Fewer hours: stop. Monetization adds load. Route to samber/developer-relations-skills@oss-maintainer-sustainability.
  • Date inside a quarter: promotes the support contract, extended security support and sponsorware, which bill within weeks. Deletes hosting and license changes, which need months.
  • Compounding asset: promotes the add-on and the hosted offering.
  • Mostly individual developers (4b): deletes the organization-priced options; paid content and sponsorware stay if the audience gate passed. If neither passes, route to samber/developer-relations-skills@oss-sponsors-fundraising, and say plainly that donations rarely reach a salary.
  • A company already asked to pay: makes a capped support contract the first sale, sold to that company now, and turns the conversation into boundary validation for the add-on.
  • No appetite for selling: deletes custom-quote tiers; keep card-only self-serve.
  • No appetite for operations: deletes hosting.
  • An existing audience: makes paid content cheap; promote it above the add-on.
  • Hours on top of a job: flag the burnout risk once, cap the plan at the budget, and point to samber/developer-relations-skills@oss-maintainer-sustainability if the budget is already spent on the free project.
  • A "never commercial" promise: deletes any license change for the code that promise covered.
  • A "free forever" promise: keeps the add-on, which never touches the promised code, but the promise must become the published always-free list (step 3) and the edit must be announced, never made silently.
  • Employer owns code or forbids side income: stop until that is cleared in writing.
  • Two or more people with one wanting to run production, on a server people struggle to self-host: promotes the hosted offering above the add-on. This is the condition under which the order's starved option wins.

What the order starves: the hosted offering, highest value for a self-hosted app and highest effort. The re-rank rule above is the only way it moves up; "no appetite for operations" still deletes it.

Recommended default, after the rules above, for a project with company users: the paid add-on, opened by two or three capped support contracts with the companies already asking. The contracts bring first revenue in weeks and tell you which add-on features those companies would pay for before you write them. Cap customers and response terms in the contract; support alone rarely scales past a side income.

Set expectations on time: the cited salary-level cases took years, not months. Sidekiq launched in 2012 and reported about $80,000 a month in 2017.

Name what is not a model, so the user stops counting on it:

  • Marketplace listings are a procurement channel. They help when enterprise buyers spend committed cloud budgets; no indie library has shown material revenue from them.
  • Donations and sponsorships fund a project, rarely a person (Babel, core-js). Public grants and fellowships pay maintainers directly. Hand all three to samber/developer-relations-skills@oss-sponsors-fundraising.
  • Selling the project or joining a company (FluentAssertions with a component vendor, Tailwind Labs joining Shopify) is an exit. It hands the trust decisions to the buyer.

Compare every plan against a baseline: a job, fellowship or contract at a company that depends on the project, paying for maintenance time. When that baseline beats the plan's first-year revenue per hour, say so.

Step 3 - Draw the paid boundary

Do:

  1. List candidate paid features from what large deployments need: multi-node coordination, fleet-wide limits, audit trails, encryption and compliance evidence, SSO, priority response, custom legal terms. Perham's rule: if everyone needs it, it belongs in the free core.
  2. Validate the list with the named companies before writing code: which would they pay for, and at what unit? A feature nobody names stays a candidate.
  3. Put paid code in a separate package or module that wraps the free one. Deliver it privately with a per-customer credential; a hosted private-package service or private repository access counts as setup, not operations. An offline license key inside the paid module is acceptable if the FAQ says so.
  4. Price per organization, flat or banded by developer count, a usage proxy or company revenue, billed annually. Offer a card-paid tier and a custom tier with purchase orders, invoices and security answers.
  5. Decide who invoices: a registered business of your own, or a merchant-of-record service that handles sales tax. Ask the user's country; tax and entity questions go to an accountant.
  6. Secure the project name before selling anything. Registration protects the name against resellers in most countries; first use alone rarely does outside the US and UK. Counsel picks the jurisdictions.
  7. Publish an always-free list before launch and keep it.
  8. Write the rule for outside pull requests that add a paid feature to the free core: decline with a written reason, or move the feature to free when everyone needs it. Decide it before the first one arrives.

Never:

  • Paywall security fixes for versions inside the published free support window, or shorten that window to sell extended support. Paywall existing free features, community-contributed code, documentation needed to use the core, or data export.
  • Add telemetry, phone-home code or license checks to the free library. Moq's sponsorship check, which hashed developers' git emails and sent them out, drew a public backlash and was removed within a day.

Avoid:

  • Per-developer pricing with no organization band. FluentAssertions' per-developer price came with a last-minute license switch after partnering with a vendor, and drew the strongest recent fork; developer bands per organization, as AutoMapper uses, have drawn far less anger.

Stop redistribution of the paid package with the license contract and private delivery, never with checks in the free code. For price levels, hand off to samber/developer-relations-skills@devtools-pricing-strategy.

Step 4 - License moves, only if one survived the gates

  1. List every contributor whose code remains and the license it arrived under. Strong-copyleft contributions need consent, a CLA or a rewrite; weak-copyleft files keep their license; permissive ones need their notices kept.
  2. Put new terms on a new major version, with a new import path or package name where the ecosystem uses one. Old releases keep their license, and registries serve the last free version forever.
  3. Forecast the fork: who would maintain it, and whether a company would fund them. Only the trademark from step 3 controls what a fork may be called.
  4. Announce three to six months ahead, keep security fixes on the last free major for a stated window, and never switch license in the final pull request of a release that shipped as open source.

For license text, source-available options, CLA and DCO choices, use samber/developer-relations-skills@oss-license-strategy.

Step 5 - Check the plan against hours, trust and new obligations

  • Hours. Add the standing hours of every chosen option. Paid customers bring a support queue that outranks community issues; state their response terms and keep the free queue's terms unchanged.
  • Trust. Read the announcement as a contributor would. If it surprises them, rewrite it before it ships.
  • Obligations. Charging for software or support can make the maintainer a manufacturer under the EU Cyber Resilience Act, with vulnerability-reporting duties. Run the role test in samber/developer-relations-skills@oss-security-disclosure before launch.
  • Continuity. Buyers ask what happens if a solo maintainer stops. Answer in the contract: deployed versions keep working, and source access or escrow on exit.

Announcement and FAQ templates, the always-free list, the purchase path and a commercial-license checklist are in references/launch-kit.md.

Deliverable

One plan, validated section by section with the user before the next is written. Leave no unfilled placeholder in a final section: ask for the missing input, or label the section a draft.

# Monetization plan - <project> - <date>
## Goal - what the money pays for, monthly net target, by when, hours available
## Gates - buyer, audience, ownership, shape, capacity: pass or fail, with evidence
## Chosen offer - primary option, secondary option, rejected options and why
## Paid boundary - always-free list, paid features, why each is organization-only, contribution rule
## Price shape - unit (organization, developer band, usage proxy, revenue threshold), tiers, purchase path, who invoices
## Rights - inbound licenses, CLA, trademark, license moves (if any) and their dates
## Announcement - what changes, what never changes, when
## Hours and obligations - standing load per option against the budget, regulatory checks
## Signals - leading indicator, goal threshold, review date, kill or pivot condition

Measuring it

Self-set baselines; say so when you present them. No free-to-paid conversion rate has been published for a library, so never plan on one.

  • Leading indicator: companies asking to pay (invoice, quote or security-review requests) per month, before and after launch.
  • Goal threshold: paying organizations needed = monthly net target / (monthly price per organization x (1 - payment fee rate)), on prices quoted before sales tax. Show the number, and the date it implies at the current rate of new customers minus churn.
  • Demand test: ten paying organizations within two quarters of launch. It proves demand, not the goal; below it, revisit the boundary before adding features.
  • Revenue per maintainer hour, compared quarterly with the employment baseline from step 2.
  • Trust signals: outside pull requests per month, and activity on any fork of the last free version.

The plan is ready when every gate has written evidence, projected hours sit inside the budget, and the always-free list is drafted.

Common failure modes

  • Company-scale model, one-person team. Sales teams, on-call and support organizations are not a solo maintainer's tools.
  • Selling contributors' strong-copyleft code without consent. Consent, a CLA, a rewrite, or no change.
  • Counting usage as demand. Stars and downloads are not buyers; only a company asking to pay is.
  • One funnel, one-time purchases. Docs traffic can drop while the project grows.
  • The surprise switch. Pre-announce, new major only, old versions untouched.
  • Donations as a salary. Plausible reported self-hosters giving about $300 a month in total while paying subscribers funded its team.

References

  • samber/developer-relations-skills@open-source-company-strategy - when a company, not a maintainer, decides what stays open.
  • samber/developer-platform-skills@sdk-package-publishing - registry and private-feed publishing mechanics for the paid package, if that collection is installed.