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:

  1. 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.

  2. 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.
  3. 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.
  4. 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?

  • Hi @PhilipKendall That answers quite a few of my concerns. I'm still reading about it, particularly dual-licensing. I haven't heard of this before. But I don't think those answers covers point #3. What stops someone gutting all mentions of trails/user licenses, and uploads it to the app store, piracy website, or other channel to offer for free. They're not making money off it, so that's not commercial use, right?
    – Alexander
    Dec 22, 2020 at 15:38
  • 2
    The point here is that you can't do want you want to do with an Open Source (as defined by this site) license - an Open Source license must allow commercial use, and we don't give advise on how to write/choose a non-Open Source license. Dec 22, 2020 at 15:53
  • Right, that part I understand now. The distinction between "source available" and "open source" is new to me, and very clarifying. Do you know any of any other resources for info on licensing of this kind?
    – Alexander
    Dec 22, 2020 at 16:03
  • 1
    We have a question here although it suffers from the "link-only answer" problem. Dec 22, 2020 at 19:27