I am making a web app and would like to use CKEditor5 with its non-commercial license (GNU General Public License Version 2 or later). I've read through this, but am still not sure I understand my obligations.

My frontend is a React app which is being compiled alongside a CKEditor5 build, so I'm pretty sure I'm obligated to make all of that source code publicly available. But what about my backend code that the frontend interacts with through a REST API, can I keep it closed source? I can't find any clear explanation of what the boundary is of GPL license infectiousness.

This question seems similar where the answer states all code in your application must have a GPL-compatible open-source license and the project as a whole (including the binaries) must be distributed under the GPL license., but what defines the boundaries of the "project", can I consider two pieces of code communicating over a REST API to be separate projects?

  • Will you be distributing your app or just offering it as a service?
    – Craig
    Aug 27, 2021 at 17:04
  • @Craig I will be offering the frontend as a deployed website, not sure what you mean by "service". Users will go to my domain and use the website and make accounts, their data will be saved on my backend (sent from the frontend using HTTP requests). I'm not sure what "distributing" really means in the context of websites, I assume that counts as distribution. I also may distribute it as a compiled Electron desktop app (the same frontend code, and it would be sending HTTP requests to the same backend).
    – pyjamas
    Aug 27, 2021 at 17:08

1 Answer 1


If you are running the software on your own servers and only allowing other people to interact with it, you are not distributing or conveying the software so the GPL restrictions do not apply. (If you are using software covered by the AGPL the restrictions would apply)

But if you are distributing it to your users as a compiled Electron desktop app that frontend code that includes CKEditor code would be covered by the GPL.

If the application requires the backend to work it likely that the frontend and backend should be considered part of a single combined work and thus must all be covered by the GPL. see https://www.gnu.org/licenses/gpl-faq.en.html#GPLInProprietarySystem and https://www.gnu.org/licenses/gpl-faq.en.html#GPLWrapper

  • Your first link it says However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and nonfree programs communicate at arms length, that they are not combined in a way that would make them effectively a single program., so I'm still unsure whether HTTP requests from frontend to backend are "at arms length" enough that I can keep frontend GPL and backend not.
    – pyjamas
    Aug 27, 2021 at 22:23
  • 2
    If the application requires the backend to work it likely that the frontend and backend should be considered part of a single combined work, I could make an 'offline mode' so that my frontend is still useful without the backend, so the backend just adds extra functionality, maybe that would put me in the clear? I'm curious if there are any examples of this, either case law or real world products.
    – pyjamas
    Aug 27, 2021 at 22:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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