Simple licensing solution?

I agree with all said here.
If I were to start with plugins again, I would simply add a nagging screen to buy, that appears after 30 seconds and reappears every 5 minutes or so. The user needs to click that away, and has to buy a “pseudo secret” code the users have to buy and enter.
That code will be shared eventually, but at least you get something from the honest users. This also helps to gauge interest without investing too much. You will see how much use there will be.

Pro-Tip: add some analytics (anonympous counter, careful with GDPR) and a field to signup to your newsletter, that might turn out to be even more valuable than the income…

Thank you so much, everyone, for your valuable insights. I am probably going to go with some simple solution that would only prevent casual sharing. I had this one idea with Easy Digital Downloads’ licensing addon. The addon would provide the license-key generation and an API for activation, validity checking, and things like that. By design, the API call to activate a license takes an URL, since WordPress plugin licenses are website tied. You can, however, pass any identifier you want. I’d use a machine-id from the user’s computer. The license key and machine-id are then stored somewhere in the user’s computer. Every once in a while, the plugin would check if the stored machine-id is still the same or similar enough. This way, even if the user copies the key file and the plugin to another computer, the machine-id won’t match, and the plugin would require reactivation. Although this approach won’t prevent someone from bypassing the checking, it should be good enough for me. Anything I missed? This way, only the initial activation would need internet access.

Luckily, with things like AWS server side isn’t an issue any more. I run all my licensing as AWS services and because I don’t breach any of their threshholds( something like 4,000,000 executions a month) everything is free.

Ideally you’d want to be able to revoke licenses (e.g. refund, or resale) so you’d want to check with the license server periodically.

Of course, I would try to check also the license validity from the server. If a plugin is refunded or a license deactivated, it is unlikely that the user will then always produce music offline.

The most important point for me is that you have the order information somewhere (email address, payment date, and full name).
This way you could start with a simple solution and change the key and activation process later with a plugin update and prepare the new keys also for the existing users.

1 Like

What are peoples thoughts here on using only the functionality suggested in the JUCE “Unlock” tutorial, i.e. username/password that checks user status on a server (e.g. free/paid).

The limitations I understand to this approach are:

  • not able to sell via third parties (who will require license keys)
  • does not support offline authorisation

For the time being I am fine with those limitations, but I may be missing something…?

It seems to be the route ROLI took with their plugins.

For what it is worth—I use pretty much the stock JUCE Unlock approach. My needs are low volume, but it works, and actually is very fast. Normally, once user enters their information, it is literally only a second until they are unlocked.

1 Like