16

OK, so I'm experimenting a bit with Electron (formerly Atom Shell) and trying to see how this could work in a real app.

Now, given that the app is going to be commercial, I'll also have to think of some license generation scheme.

In the past, I've worked with FastSpring for payment processing (+ CocoaFob for license generation) and I've lately switched to Paddle - which admittedly works very smoothly, especially when using their SDKs - on Mac.

So, I'm thinking how this whole thing good be done - given that, now, the application won't just be an OS X one, but a Windows one as well. And that I won't be having full control over the app, given that the app will be pretty much only HTML/CSS/JS.

Any ideas on how to approach this? Has anyone done that successfully?

Greg Bell
  • 2,032
  • 1
  • 18
  • 18
Dr.Kameleon
  • 22,532
  • 20
  • 115
  • 223
  • Did you find a solution in the end? I'm in a similar boat. – stilliard Jan 22 '16 at 09:04
  • @stilliard Well, unfortunately, I cannot say I have... – Dr.Kameleon Jan 22 '16 at 12:18
  • 1
    @dr-kameleon, ok, thanks anyway for the reply, i'll update back here if i find anything :) – stilliard Jan 22 '16 at 13:24
  • 1
    @stilliard I hit this same issue last year and have been working on building a generalized solution for other apps. What I have so far is a licensing REST API that can easily integrate with payment gateway APIs like Stripe using webhooks: https://keygen.sh. – ezekg Apr 12 '17 at 17:08
  • https://discuss.atom.io/t/selling-an-electron-app/24894/3 – Merovex Aug 22 '17 at 10:31

2 Answers2

2

I have been looking for something similar for a while, and so far I think I will need to roll up my own.

This is the idea, using Rhino Licensing as a good starting point, why not just generate a signed document with the required information?

The closest I found so far is the NPM package license-key to generate a signed license with metadata.

cprieto
  • 400
  • 2
  • 14
  • If you're not keen on rolling your own, I've been building a set licensing and distribution APIs that can help you accomplish your goals without reinventing the wheel or dealing with hosting your own services: https://keygen.sh. – ezekg Dec 07 '17 at 17:39
  • @ezekg but, what happens when you need to install the app on client servers with no access to internet? I'm looking for a case where I need to put a licence on my nodeJS application but it will be installed on a datacenter without Internet access!! – Daniel Henao Jun 02 '20 at 04:04
  • @DanielHenao you can use cryptographically signed license keys for that, which keygen.sh offers. But the gist is that you'd want to take some data that you want to utilize in the offline environment and sign it using RSA, then encode the data and signature values into hex or base64 and deliver the encoded string (or "key") to the offline application. You can then verify those values using your RSA public key, which can be embedded into your application code. This answer includes some code if you wanted to do it yourself: https://stackoverflow.com/a/44933048/3247081 – ezekg Mar 18 '21 at 13:15
-1

IANAL of course...

The smart thing would be to use a package manager, where dependencies are all explicitly called out, and then you can generate documentation based off of that.

If you're using NPM for your javascript dependencies you can use License Sniffer to drill down the dependencies and generate some documentation.

Bower also has this module to do something similar for bower components.

Drew Harwell
  • 134
  • 2
  • 6