Skip to content

Open core

Open core

Cbox Billing is open core. The base app (cboxdk/cbox-billing, MIT) is complete and self-hostable on its own. A private composition (cbox-billing-cloud) overlays five commercial plugins on top of the base image — and it does so with zero edits to the app, purely through Laravel auto-discovery and a console-kit runtime socket.

The two halves

Open base Commercial composition
Repo cboxdk/cbox-billing (public, MIT) cbox-billing-cloud (private, proprietary)
Contains The app + its public vendor tree No app source, no plugin source — just the overlay + prod config
Image ghcr.io/cboxdk/cbox-billing ghcr.io/cboxdk/cbox-billing-cloud (FROM the base)

In this section

Page What
The plugin model The console-kit socket — how a plugin registers nav, UI, features, and migrations without touching the app.
Capability gating Deny-by-default: features (presence) vs entitlements (the license-backed CapabilityGate).
Commercial plugins What each of the five plugins adds.
Composition How the cloud overlay composer requires the plugins with a build secret.

The two gates (never conflated)

The app is careful to separate two different questions:

  • Is the plugin installed? → a console-kit feature (a hard presence gate). When off, the page is hidden and its routes 404.
  • Does the plan/license entitle it? → the CapabilityGate (deny-by-default, license-backed). When the entitlement is absent, the capability stays locked.

"Plugin installed" is never the same as "plan entitles." A plugin can be present but locked. See Capability gating.