3

I am developing an application (Budibase) that will be used to build and host web applications. My application is a Low Code Development Platform. Think Wordpress, except that the output would be a Web 2.0 Application (e.g. like Trello), instead of a website.

Core to my application is a JavaScript library. This JavaScript library will be run on both client (browser) and server (NodeJS web server). This library is the single most important component of the system.

My goals are

  1. To allow any application built with the system to be closed source
  2. To prevent another project/organisation using any of our code to build a competing, closed sourced (or relicensed) Low Code Platform.

So, overall, I wish to license using a GPL-like license. AGPL feels right to me.

However, I believe that AGPL causes an issue. The core library is distributed to the browser, and used by every (closed source) application that is built on the platform.

I feel like the core library should be

  1. AGPL when linked in a web server environment

  2. MPL when linked in a browser environment

Do you know of any examples like this in the world?

Or do you have any alternative suggestions as to how I could license my core library?

Do you think my "dual OS licence" suggestion would be acceptable today? (this is purely opinion, I know, thought I'd sneak it in)

2

Taking the question from the end, backwards: dual-licensing is completely acceptable these days. You do, at the very least, have to get CLAs from contributors; that definitely discourages some contributors, but it's no show-stopper.

I feel like the core library should be

  1. AGPL when linked in a web server environment

  2. MPL when linked in a browser environment

This won't fly, because someone can take the library code out of the browser package under MPL. They can then use that as the basis for their competing server-side offering, which will therefore not be required to be AGPL.

My goals are

  1. To allow any application built with the system to be closed source
  2. To prevent another project/organisation using any of our code to build a competing, closed sourced (or relicensed) Low Code Platform.

So, overall, I wish to license using a GPL-like license. AGPL feels right to me.

Really? AGPL (like any copyleft license) does (2) but won't do (1), and weak free licences do (1) but won't do (2).

I think you need to rethink. You seem sincerely to want to do free software but at the same time you wish your code not to be usable by a competitor. You really need to decide on one or the other, because freedom doesn't exclude someone else's right to improve on your mousetrap.

Personally, I'd recommend doing this all under AGPL. It doesn't prevent competitors setting up, but it would require any that used your code to release their own code to any user, so that relevant improvements could be re-incorporated into your offering. Failing that, abandon the idea of doing this with free licences, in which case it's off-topic for this site.

  • Thank you. To be clear - I have no problem with a competitor using our code - so long as they are open source. My issue is around the output of the project. It ouputs other applications. These outputs should be able to be closed source.... but the output always links the core library, so (i assume) cannot be GPL – Mike S Apr 12 at 12:14
  • 2
    Maybe you should have multiple projects. The core library that things are linked to which could be LGPL. The web server piece that would be AGPL., and the generator piece that is GPL. Anyone using code from any of those projects must open source their code. But things simply generated by your project would not need to be. Think gcc. And closed source can link to LGPL libraries. – jmarkmurphy Apr 13 at 3:27
  • @jmarkmurphy this was my thinking. It's slightly risky because someone could still wrap the core library (LGPL) in closed source code - and compete. But i suppose its not that risky as we would still control the core library – Mike S Apr 16 at 15:18
-1

If those are your goals, then you shouldn't go open source at all.

Because if you want "any application built with the system to be closed source" then you can't use any restrictive licenses like GPL, AGPL, MPL etc. and because of these licenses you would render your whole product useless for most people.

But if you really want to go open source, then the best license ever is MIT license. While MIT license would legally leave a door open for your competition to use your code against you, in reality this rarely happens. Because of the following you get, if your framework is awesome, and the bad PR your potential competitors would face.

  • "then you can't use any restrictive licenses like GPL... " so... wordpress is GPL. If i create my website using wordpress, i do not have to open source it. I feel like MIT is very risky. If the project is successfull, there is nothing stopping are well funded company taking the code, closing the source and blowing us away with marketing. – Mike S Apr 16 at 15:14
  • furthermore... "the bad PR your potential competitors would face" ... if they are closed source, using my MIT library - nobody has to know that they are using my library. – Mike S Apr 16 at 15:23
  • If someone is able to blow you away with their marketing, then you are doing something very wrong. Besides, do you have any real life examples something like that ever happening? Also, everything can be decompiled, nothing stays secret forever. And do you think you wouldn't recognise a clone of your product? – Smart455 Apr 16 at 19:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.