Skip to content

Module Licensing

Every module is designed to support independent licensing.

This page documents the architectural convention for how modules should be designed over the long term. It is not a claim that every planned module is already sold, priced, or enforced separately in production. For the current entitlements model and middleware behavior, see Entitlements.

Important

This is documentation of the licensing convention. It does not change billing code, marketplace implementation, pricing, or catalog rows.

Licensing postures

A module may be:

PostureMeaning
Included by defaultInstalled automatically for workspaces (typically is_default_included)
FreeAvailable without charge, but not necessarily auto-included for every workspace
BillableOffered as a paid marketplace module

These postures can change over product releases without redesigning the module’s internal architecture.

Current free opt-in categories (examples)

CategoryExample modulesNotes
CRMContacts, Companies, Calendar, Meetings, Activities, Communication TemplatesFree Marketplace opt-in (is_billable=false, not default-included)
CRMWhatsApp Cloud (whatsapp-cloud)Billable Marketplace ($29 / $290, catalog 1.0.0; Cloud API inbox MVP)
SalesOpportunities, Resellers, Reseller PayoutsFree Marketplace opt-in under category sales; Sales Pipeline is not a separate SKU
CollaborationTeam ChatFree Marketplace opt-in under category collaboration (team-chat, catalog 1.3.2; not billable yet)
OperationsHelp DeskFree Marketplace opt-in under category operations (help-desk, catalog 1.0.0; internal ticketing MVP)
OperationsKnowledge Base, ProjectsFree Marketplace opt-in under category operations (knowledge-base, projects; catalog 1.0.0; KB internal-only; not billable)
OperationsAssetsFree Marketplace opt-in under category operations (assets, catalog 1.0.0; equipment/fixed-asset register; not billable; no hard deps)
OperationsDocumentsFree Marketplace opt-in under category operations (documents, catalog 1.0.0; flat file library; not billable; hard dep on Storage)
StorageStorage (+ packs)Free storage unlocks 1 GB; billable packs storage-10storage-1000 set total allowance (mutually exclusive)

Default-included today: Leads, Tasks, ToDos only. Paid examples: Branded, Automation, Storage packs. See Entitlements.

Long-term rules

Documented product and engineering expectations:

  1. Some modules may always remain free — for example core CRM capabilities the platform chooses to keep included or non-billable.
  2. Some modules may become billable in future releases — schema and catalog fields already anticipate is_billable, pricing, and subscription source without requiring a redesign.
  3. Future modules must be designed to support independent licensing — do not hard-code assumptions that Module A is always free, always included, or always bundled with Module B.
  4. This is an architectural convention — teams should design modules as independently licensable even when the first release ships them as default-included or free.

Design implications for engineers

When building a module:

  • Gate routes and UI with module:{slug} and Spatie permissions — never fold licensing into role permissions.
  • Keep the module installable on its own (aside from declared dependencies).
  • Avoid embedding “always available” assumptions for sibling modules.
  • Prefer catalog + subscription + middleware patterns already used by Leads and Tasks.
  • Treat Marketplace activation and workspace subscriptions as the licensing surface; do not invent a parallel plan/feature/limit system (forbidden under platform freeze).

Relationship to dependencies

Module dependencies and module licensing are related but distinct:

ConcernQuestion
DependencyDoes this module need another module’s capability to work?
LicensingIs this module included, free, or billable for a workspace?

A required dependency may itself be free or billable. Optional integrations must degrade gracefully when the optional module is not licensed/installed.

Official documentation for the EloSync SaaS Platform.