← All posts

Selling in plans on Moatless

November 4, 2026 · Zach Daniel

You can now sell a listing in more than one plan. A starter kit can have a Standard plan and a Pro plan with team billing and SSO. A component library can sell its core components in one plan and its premium blocks in another. The same code can be sold under licenses for one developer or a whole team.

Each plan includes everything in the plans below it, so it costs more. A buyer who starts on a lower plan can upgrade later, paying the difference between the plan's price and what they paid for theirs.

Ways to use plans

Here are some of the ways we expect sellers to use them, and how each one is set up.

A lite and a full starter kit. Standard is the app itself: auth, a dashboard and your core features. Pro adds the parts that took longest to build, such as billing, teams and SSO. Keep the Pro code in a pro folder of the same repository, or in a repository of its own. Standard buyers never get it, and Pro buyers get both repositories.

Open core packages. If your codebase is a Hex or npm package, sell the core as one package and the extras as another that depends on it, such as acme_kit and acme_kit_pro. Each plan's code is its own package, so Pro buyers add both as dependencies, and Standard buyers only see the core.

A component library. Sell your core components in one plan and premium blocks or full page templates in another. Each plan's code is a shadcn registry, and Moatless merges them into one for each buyer, so a Pro buyer installs any component with npx shadcn add, and a Standard buyer is told which plan a Pro component is in.

Licenses for bigger teams. Sometimes the code is the same for everyone, and what differs is who can use it. Make plans with no code of their own, such as Solo, Team and Enterprise, priced for each, and describe the license each one comes with.

Support or early access. A top plan can add something other than code: a support channel, priority fixes, or a say in what you build next. If it comes with code, such as releases from a branch before they're ready for everyone, give it a source of its own and build it from that branch.

Whichever you pick, updates work the same way. Each plan can have its own updates price, and subscribers are only charged for a release that changes the code of their plan or one below it, so a release that only touches Pro costs Standard subscribers nothing.

For sellers

1. Add a plan. On your listing's page under Sell, the Plans section has an Add a plan button. The listing's own price and code become its first plan, so the first time, you'll name that too. Standard is a good default.

2. Price it. Each plan costs more than every plan below it. If your listing sells updates, each plan has its own updates price, which its subscribers pay for each month (or year) in which you publish a release.

3. Say what it adds. The description is shown to buyers next to the plan's price, under "Everything in Standard, plus:".

4. Give it code of its own, or not. A plan can be just a different license or support, with no code of its own. Or it can come with its own code, which only its buyers get, from any of these:

  • Another repository, connected from GitHub or by git URL, such as acme/kit-pro.
  • One folder of a repository, such as pro, if you keep every plan in one repository. That folder is left out of the other plans' code, so Standard buyers never get pro/.

Each plan's code reaches its buyers as a repository of its own, at its own address:

git clone https://moatless.store/git/acme/kit/pro.git

Since each plan's code is a repository of its own, code in the pro folder can't reach the Standard code with a relative path like ../lib. If your Pro code builds on Standard, have it depend on it as a package.

A few things worth knowing:

  • Every plan is released together. Publishing a release builds every plan with code of its own, from the same tag, unless you give a plan another one. If any plan can't be built, the release isn't published, and you'll see which plan and why.
  • Subscribers only pay for changes to their plans. A plan whose code didn't change in a release keeps its last commit. Subscribers are only charged for a release that changed the code of their plan or one below it, and only they are emailed about it. A release that only changes Pro isn't charged to Standard subscribers.
  • Packages work per plan too. If your listing is a Hex package, each plan's code is a package of its own. If it's a shadcn registry, each plan's components join the ones below it, for that plan's buyers. Files and npm packages you upload can be for a plan, and a plan built from GitHub gets its own GitHub release's files.
  • Your agent can set it up. The Moatless MCP server can add, change and remove plans, and the guide it follows explains how.

For buyers

A listing sold in plans shows them side by side, each with what it adds. Pick one in the buy panel and check out as usual.

If you already have a plan, the listing shows what upgrading to each plan above it costs you: the difference from what you paid, along with the latest release. If you subscribe to updates, your subscription moves to the new plan's updates price once you've upgraded. Your library has a clone command for each repository you have, and the files for your plan.

Happy Hacking!

  • Zach