Skip to content

License control system #1356

@VanquishedWombat

Description

@VanquishedWombat

This is a feature request, not a bug.

What do I want?

Small-scale JavaScript software developers to receive a viable income for their work

This requires intellectual property protection (tick) AND income protection. In other words some kind of licensing process.

Context

Making software for which the user pays voluntarily is not a viable income plan. Often the work undertaken is novel, requires significant skills and experience, needs many hours to develop, and the developer needs to take on some personal hardship to create it. If it was easy everyone would be doing it!

What are the issues?

The first part of turning the product of such work into a viable income stream is protection of the materials, which JS Obfuscator accomplishes well.
The second part is getting paid.

Obfuscating code is good once, but the first user can publish even the obfuscated code and other users can then get it for free. The domain lock feature solves this problem, but requires per-sale effort to configure. I literally have to rebuild / obfuscate my code for every domain lock I need.

But let’s say I make a sale. However, as a one-off sale to recoup my investment I need to charge a high price. The buyer will be put off by that and so we may agree to prefer a rental model in which the buyer pays per month or year. This meets my requirement of getting paid in small amounts which will add up to achieve the full return of my investment. I do not mind as I know I have a good, reliable product. If the software does not meet the hopes of the buyer then they cut their losses at the end of the first payment. But if the product is good, both I and the buyer are happy.

But how can I enforce that repeat business? How can I get the buyer to pay for next year, and the year after? Domain lock does not solve this.

Licensing controller
An ideal answer would be some kind of licensing control. Let's imagine a process where I write my software product and include within it a license controller. Let’s say the license is an encoded string that includes the domain and a use-until date.

If this license is used by a third party via another domain then they fall foul of the domain lock and the software does not run. Within say 30 days of the use-until date the software shows a warning about imminent expiry. And after the use-until date the software displays a suitable message informing that the license has run out of time and the software does not run.

This meets both the requirements of stopping a buyer publishing the software as their own work, and limits their use for the paid-for period. They want to carry on using it - they pay again.

Additionally, the 'smart' part is in the license controller component that I used in my build. My software does not have to be altered 'per sale'. The only part that changes per sale is the license code. My software could be set to run in a restricted demo mode if not licensed.

So the technical overhead per sale is that the sales process must be able to generate a valid license code as part of its internal process.

Crack that and suddenly you empower millions of software developers to start getting paid a viable and repeatable amount for their work.

So what should JS Obfuscator do about this?

You have the capability to Obfuscate code. Extend that capability to make a license controller which would be a small software module or object that receives a license string and reacts based on data within that string. You can join the dots on that for yourself.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions