Skip to content

Remove open core licensing model#1483

Open
mattwoberts wants to merge 2 commits intomainfrom
remove-open-core
Open

Remove open core licensing model#1483
mattwoberts wants to merge 2 commits intomainfrom
remove-open-core

Conversation

@mattwoberts
Copy link
Copy Markdown
Contributor

Summary

  • Removes the open core structure introduced in PR Content Moderation, revamped UI, and new "open core" licensing for some features. #1388, moves all code from commercial/ back into the main codebase
  • Self-hosters now get all features (including content moderation) unconditionally
  • For the hosted multi-tenant instance, pro features are gated behind isPro (based on subscription status)
  • Removes the license key validation system entirely
  • Renames HasCommercialFeatures to IsPro throughout backend and frontend
  • Adds RequirePro middleware with route groups for clean pro feature gating
  • Disables moderation at entity level when not pro, preventing orphaned moderation queues on downgrade

Changes

  • Handlers: Moved commercial handler implementations into main codebase, removed handler registry pattern
  • Services: Moved SQL implementations into main postgres service, removed license service
  • Frontend: Moved components/pages from @commercial into standard paths, removed build aliases
  • Routes: Pro features grouped under RequirePro() middleware
  • Entity mapping: IsModerationEnabled forced to false when isPro is false

Test plan

  • Verify go build compiles cleanly
  • Verify golangci-lint run passes (0 issues)
  • Run full test suite with make test
  • Self-hosted: confirm all features including content moderation are available
  • Hosted pro: confirm moderation works as expected
  • Hosted free: confirm moderation page returns 403 and UI hides moderation controls
  • Hosted downgrade scenario: confirm moderation is effectively disabled (no orphaned queue)

mattwoberts and others added 2 commits March 17, 2026 08:49
…-hosters

Moves all code from the commercial/ folder back into the main codebase
and removes the open core structure introduced in PR #1388. Self-hosters
now get all features (including content moderation) unconditionally.
For the hosted multi-tenant instance, pro features like content
moderation are gated behind the isPro flag (based on subscription).

- Move commercial handlers/services/components into main codebase
- Remove handler registry pattern (direct handler calls in routes)
- Remove license key validation system entirely
- Rename HasCommercialFeatures -> IsPro throughout
- Add RequirePro middleware with route groups for pro feature gating
- Disable moderation at entity level when not pro (prevents orphaned queues)
- Remove @commercial build config aliases (webpack, esbuild, tsconfig, lingui)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant