I'm exploring variations in software business models and came across what I'd call a "closed core" approach: the main system is proprietary, but all additional modules are open-source.
- Are there examples of companies adopting this model?
- What are the potential benefits or pitfalls?
- How does it impact community engagement and software adoption?
Benefits: you can abuse the users, pitfalls: you can be abused by the Government.
I hate to use software where developer party considers I need some "engagement" and the fact I have installed the software at all as "adoption", for me these are clear notices that you are doing some scam.
Benefits: no risk of hyperscaler takeover or fork or future software licensing fiasco, business model of selling software is proven, either license or SaaS
Challenges: no halo effect, harder to get contributions (but you can do 'open development' and get bugs and feature requests from community; we do), some devs get less excited about solution, have to address continuity concerns earlier (maybe?)
We have a FAQ on our site addressing this question.
Hard to tell about community engagement because straight comparisons are hard, but it definitely retards uptake to some extent. Using a free downloadable option can help; we definitely have customers who kick tires before they talk to us.
Really depends on your target market too: devs care more about OSS, business users don't.
Since the market is security, it makes a lot of sense to open-source as much as possible without compromising our market positioning.
I believe several other security-related companies (Tailscale comes to mind) also adopt this philosophy.
I'm kidding, sort of, games that rely on "user generated content" often feel like exactly this.
Many examples across the industry:
- Autodesk AutoCAD (closed) + Plugins/Addons (many open)
- MS Windows (closed) + Many 3rd party programs (open)
- Github (closed) + Github Actions (open)
- Npm (closed) + Npm modules (mostly open)
> "What are the potential benefits or pitfalls?"
Benefits:
- Harder to replicate, the company gets to keep the "secret sauce" a secret
- Opening up a way to "extend" the platform means 3rd party developers add value to your system
- The core isn't open, so less effort is required to maintain compare to OpenSource
Pitfalls:
- Closed-source is hard to verify, company is essentially saying "trust me bro"
- Less innovation, as user's can't contribute to the core
> "How does it impact community engagement and software adoption?"
There's hardcore FOSS advocates that will hate anything not fully open. But a business has to make money and protect it's IP, having a "closed core" is one way to do that and ensure a sustainable business model.
Another approach is the opposite, open-core + closed-premium-addons. An example of this is "React Admin"
- Open Core -> https://github.com/marmelab/react-admin
- Premium Modules Offering -> https://react-admin-ee.marmelab.com/