I'm working on a desktop app. It's a passion project today, but I'm hoping it'll be part of my path to becoming a full time indie dev.
In my development process, I've benefited a lot from looking at the design/architecture/etc. of open source software, and using it as learning material that inspired my own original work. I found this hugely beneficial and inspirational, so I want to "pay it forward" by letting others have access to my source code, so that they can learn from it just as I did.
At the same time, I want to monetize this app to make a living.
- I don't like the user experience of ads.
- I don't want to gut my app and move functionality to a server, just to force people to pay for ongoing subscriptions
- I also don't think a "it's free, but commercial support is paid" model like that of Red Hat or Canonical would work, because my app is geared towards end-users who wouldn't want to pay for support contracts.
- Thus, I think I'll most likely go with a "paid app, with a free full-featured trail" model.
These seem like conflicting desires.
Here's roughly the things I'm looking for:
I want users to have to pay for the app to download and use the official (released by me) binary, distributed through the app store, my own website, or other official channels.
I want users to be able to build their own binary, modify the source, tinker with it, etc. even without paying for a user license, but only for personal use.
By the time they've done that, I'm willing to let them have it. Hopefully the proximity to the tools/source will nudge them towards poking around the code and learning about it.
- However, I don't want a company to create a build, and use it internally as a way of circumventing the app's price.
I don't want users to be able to build a binary, and gut the licensing, and redistribute it (though that'll obviously happen 🏴☠️, I still don't want it to be legally allowed)
- I also don't want a company to create a build and use it internally, without paying for user licenses.
I don't want to disallow users from voluntarily contributing changes if they so wish, but I don't want them to have any expectation of an ownership stake in the commercial app's revenue, or anything like that.
I could easily make this work by open-sourcing parts of the app e.g. the backend, while withholding the parts necessary to make it do anything useful (e.g. the UI). But this sucks, because it's intentionally hamstrung, and hides the UI source, which might be interesting/helpful to some.
Is there a license that threads this needle?