⚖ CodeLibra

Bundled Licensing

Bundled licensing is CodeLibra's mechanism for enabling downstream development rights when your module incorporates another CodeLibra module. This page explains when and how bundled licensing applies.

The Problem It Solves

Standard Sublicensing Limits

Under the standard CodeLibra License, a Developer can sublicense use rights to his or her customers, but not development rights. This means that if you license a module and use it to create a derivative work, your users have the right to execute, run, and operate it your software, but they cannot modify the underlying licensed modules or create their own derivative works from them.

When This Isn't Enough

Sometimes you need to enable more:

  • You build a framework others will develop on
  • Your product is itself a development tool
  • Your customers need to extend or customize at the code level

In these cases, your customers need development rights to the underlying modules—not just use rights.

How Bundled Licensing Works

The Concept

Your customers receive their own direct licenses to the underlying modules through a bundled license. When you list a CodeLibra module as a license dependency of your module, customers purchasing a license to your module automatically receive:

  1. A license to your module (with full development rights)
  2. A license to each license dependency (with full development rights)

Each developer in the chain is paid according to their pricing.

Section 3.3 of the CodeLibra License specifies:

Licensee may grant sublicenses permitting creation of Derivative Works or conveying other development rights beyond Use rights only through CodeLibra's license bundling program, by listing the Licensed Module as a license dependency of a module containing Licensee's Derivative Works. In that case, Sublicensees will receive a direct license to the Licensed Module as well as to Licensee's Derivative Works, and Sublicensees' license fee payments will be automatically apportioned for Developer and Licensee's respective Modules.

Example

You create "SuperFramework" which incorporates "CoreLib" (a CodeLibra module).

Traditional sublicensing (use rights only):

  • Customer buys SuperFramework license
  • Customer can use SuperFramework in their products
  • Customer cannot modify CoreLib or create derivatives of CoreLib

Bundled licensing:

  • You list CoreLib as a license dependency of SuperFramework
  • Customer buys SuperFramework license
  • Customer receives both:
    • SuperFramework license (development rights)
    • CoreLib license (development rights)
  • Customer can develop with both

When to Use Bundled Licensing

Use Bundled Licensing When:

Your product is a development framework

Others will build their own applications on top of it, requiring development rights to underlying components.

You're creating a toolkit or library

Developers using your toolkit will need to modify, extend, and create derivatives.

Your product is extensible at the code level

Plugins, extensions, or customizations require development access to core components.

You want to pass through development rights

Your customers need the same development flexibility you have with the underlying modules.

Don't Need Bundled Licensing When:

Your product is an end-user application

Users just run your software; they don't develop with it.

Your product is a service

Users interact via API or interface; underlying modules are implementation details.

Customers only need use rights

They deploy your product but don't need to modify components.

Setting Up Bundled Licensing

Step 1: Identify License Dependencies

Not all software dependencies are license dependencies. A license dependency typically arises when one CodeLibra module includes code from another CodeLibra module. For example:

  • An application that calls out to another application or service may not require a license to function properly.
  • An application that contains a library would typically require a license to the library to function properly.

When you onboard your module to CodeLibra:

  1. Review your module's code and identify any CodeLibra modules your licensees will need
  2. Add them as license dependencies
  3. This creates the bundled licensing relationship

Step 2: Keep Dependencies Current

Update your license dependency list with each new release if dependencies change. Note that adding new dependencies to an existing module triggers release charges (see below).

Step 3: Price Appropriately

Remember that your customers pay a composite price:

  • Your module's price
  • Plus each dependency's price (adjusted if the customer already has an active license)

Consider this when setting your price. If dependencies are expensive, your total may be high.

Step 4: Communicate Clearly

Let potential customers know:

  • What modules are included
  • What rights they receive
  • The value of the bundle

Revenue Distribution

How It Works

When a customer purchases your bundled module:

  1. They pay the composite price (your price + dependency prices, adjusted for any existing licenses)
  2. CodeLibra takes 20% commission from the total
  3. Each developer receives 80% of their module's price

Example

  • Your module: $200/year
  • Dependency A: $100/year
  • Dependency B: $50/year
  • Total: $350/year

Distribution:

  • You: $160 (80% of $200)
  • Developer A: $80 (80% of $100)
  • Developer B: $40 (80% of $50)
  • CodeLibra: $70 (20% of $350)

Release Charges: Adding Dependencies to Existing Modules

The Mechanism

If you add a new license dependency in a new release of your module, your existing licensees automatically receive licenses to the new dependency at no additional charge to them. However, you (the developer) must pay for these licenses.

This is called a "release charge" or "reverse charge."

Why This Exists

This protects licensees from unexpected price increases when developers modify their modules. When someone licenses your module, they receive all releases during their subscription term—including releases with new dependencies. They shouldn't have to pay more because you changed your module's structure.

How It Works

  1. You add a new license dependency in a release
  2. CodeLibra calculates the cost of providing licenses to all your existing active licensees
  3. You must pay this charge before the release can be published
  4. The charge is non-refundable
  5. Payment can come from your payout balance or another payment method

Important Notes

  • This only applies when adding new dependencies, not when your module is first created
  • Existing licensees receive the dependency license for free
  • The charge covers the subscription period for each existing licensee
  • If you remove a dependency later, existing licensees keep their existing licenses to it

Comparison: Sublicensing vs. Bundled Licensing

Aspect Sublicensing Bundled Licensing
Your customers' rights Use only Use + Development
Customers can create derivatives No (of dependencies) Yes
Customers can modify dependencies No Yes
How customers get licenses Through you (use rights only) Directly from CodeLibra
Pricing Just your module Composite (includes dependencies)
Revenue to dependency developers None from your sales Their share per sale

Restrictions on Bundled Licensing

Must Go Through CodeLibra

Bundled licensing must happen through the CodeLibra platform. You cannot:

  • Directly sublicense development rights
  • Create your own "bundle" agreements
  • Bypass the platform to grant dependency rights

By publishing on CodeLibra, developers consent to other developers using their module as a license dependency and bundling a license to their module with others.

Pricing Autonomy

Each developer maintains control over their pricing. This affects bundle economics but ensures fair compensation throughout the dependency chain.

Customer Protections

No Surprise Price Increases

If you already hold an active license to a module, and that module adds new license dependencies after your purchase:

  • You automatically receive bundled licenses to the newly-added dependencies at no additional charge
  • Your subscription renewal price will reflect the updated dependency structure

Full Development Rights

When purchasing through bundled licensing, customers receive the same development rights to dependencies that they would receive by licensing those modules directly.

Common Questions

What if a dependency developer doesn't want to be bundled?

By publishing on CodeLibra, developers consent to their modules being used as license dependencies. However, they control their pricing, which affects bundle economics.

What happens if I remove a license dependency?

Future customers don't receive that dependency. Existing customers keep their existing licenses to it.

Do all my customers automatically get development rights?

Yes, when they purchase through CodeLibra with proper dependency declarations. That's the purpose of bundled licensing.

What if I add a license dependency to an existing module?

You'll be charged a release charge to cover licenses for all existing active licensees. This protects your customers from unexpected costs.