Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handsontable drops open source for a non-commercial license #5831

Closed
krzysztofspilka opened this Issue Mar 4, 2019 · 17 comments

Comments

Projects
None yet
@krzysztofspilka
Copy link
Member

krzysztofspilka commented Mar 4, 2019

Recently, we had a long and heated internal discussion about the licensing model of Handsontable. We noticed that building a sustainable business based on open source licensed software has become much harder. At the same time, we observe an increasing competition in the developer tools market. It is far more competitive than it was when we started this project back in 2011. Taking that into account, to ensure the longevity of Handsontable, we made a decision to change the way we distribute Handsontable.

Here is a summary of the changes that take effect starting with version 7.0.0, which is scheduled for March 6, 2019:

  • Handsontable Pro is merged into Handsontable CE (Community Edition)
  • The combined software is called “Handsontable”
  • Handsontable 7.0.0 is the successor to both Handsontable CE 6.2.2 and Handsontable Pro 6.2.2
  • The MIT license is replaced with a custom, ‘free for non-commercial and evaluation’ license
  • The Handsontable Pro package on NPM is marked as deprecated and the repository on GitHub is archived (made read-only)

This is a significant change for all of us. Let us explain the reasoning behind this decision.

Our reasons behind the change

Being able to see how Handsontable has grown over the last 8 years makes us proud. Each day, thousands of developers use it to add to their apps with better data management capabilities. Countless commercial and open source projects depend on Handsontable.

However, it never developed all the traits of an authentic open source project. In an ideal world, it would gather a community of people collaborating and sharing ideas over a common goal. In such a situation you would expect the open source project to sustain itself with the help of the community. However, this wasn’t the case with Handsontable CE. Essentially, it was kept running thanks to the money earned from Handsontable Pro. Unfortunately, our observation is that the ratio of commercial to free users is about 1 to 25. Hence, the only way for us to keep investing in the product is to convert more free users into paying.

We want to grow as a company whose only mission is to continuously improve Handsontable. We have an ambitious roadmap and a passionate team. What we need is a more balanced business model that would support our long-term goals.

The new license

The new, custom-written license is for everyone using Handsontable for non-commercial purposes. Our intention is to provide free software especially to:

  • Scientists conducting research and development
  • Students and teachers
  • Those who want to experiment with the software
  • Authentic not-for-profit organizations
  • Companies conducting development and tests

On the technical side, except for the license, nothing changes in terms of the availability and openness of Handsontable. It stays on GitHub and we will review pull requests when they appear.

However, we understand that you may not be able to use the new license. In such a case, you can purchase a commercial license or stay with Handsontable 6.2.2.

For Handsontable Pro customers, the only things that change are the GitHub repository and the NPM package name. The Handsontable Pro repository will be archived (made read-only).

Exciting times ahead

The decision announced today will allow us to focus better on the development of the product. We are securing reasonable funding for the company by making sure that commercial products are based on a commercial version of Handsontable. It is important for us to sustain the company in the long-term. We are excited to see what the future holds for us!

“Change is the essential process of all existence.” Spock, Star Trek

Our pledge

We believe in the power of authentic open source projects. We know that Handsontable wouldn’t have existed without open source libraries created by passionate developers. That is why we are excited to announce that we will be giving 1% of our monthly net profit back to open source creators. We haven’t yet decided which project to support. If you have any suggestions, please tweet them to us.

Who stands behind Handsontable

Handsontable is developed and maintained by Handsoncode, now a 14-person company which was founded by Marcin Warpechowski and Chris Spilka in 2015 in Gdynia, a charming city in northern Poland.

Thank you

We are very thankful to all of our contributors, users, and customers. We are opening the second chapter in Handsontable’s history, but we know that this is only possible because of you, the people who’ve written the first chapter with us.


Chris Spilka and Marcin Warpechowski

@MikhailTatsky

This comment has been minimized.

Copy link

MikhailTatsky commented Mar 4, 2019

As competitor I understand you pretty well.
We had to do the same step in past and it helped us to get some extra money.
Nowadays there are too many players on this market and the main who beat all is ag-Grid 😟

@handsontable handsontable deleted a comment from AMBudnik Mar 4, 2019

@krzysztofspilka

This comment has been minimized.

Copy link
Member Author

krzysztofspilka commented Mar 4, 2019

@MikhailTatsky a good point about the market, but it wasn't the main reason that caused this change. After all, there are a lot more competitive markets with many successful players on them. We try to focus on our own roadmap instead of chasing other companies' goals.

@Reinmar

This comment has been minimized.

Copy link

Reinmar commented Mar 4, 2019

Cross-post from https://twitter.com/reinmarpl/status/1102563394761170944:

Curious why not GPL or another less-permissive license? The issues that you explained resonate very well for me. We chose a bit different path, though, by moving to GPL (ckeditor/ckeditor5#991).

@alvarotrigo

This comment has been minimized.

Copy link

alvarotrigo commented Mar 4, 2019

Reasonable move! Hope you the best guys! 👍

@krzysztofspilka

This comment has been minimized.

Copy link
Member Author

krzysztofspilka commented Mar 4, 2019

@Reinmar you know us and you can imagine that it wasn’t an easy or hasty decision. We put a lot of thought into that, therefore, it took us nearly a year before we finally settled on a new license in place of the MIT.

As far as I know, CKEditor is widely adopted in software licensed under GPL or alike. The best-known example of this is Drupal that uses “GPL 2 or later”. This alone puts CKEditor in a completely different context. It’s a logical move for CKEditor 5 to be compatible with their most notable customer’s software.

Handsontable is a completely different case. None of the popular open source projects use it as a dependency. Maybe it’s due to its niche-characteristics - after all, we’re talking about a data grid with a very specific design. Having said that, we didn’t feel obliged to use a specific license. We chose not to use GPL for many reasons, and here are some of them:

  1. What triggers the terms of GPL is distribution. And Handsontable is used mostly in internal systems that are not meant to be distributed in any way. Corporations could still use Handsontable without any obligations whatsoever.
  2. GPL wasn’t created with complex web apps in mind. As Handsontable is never used as a standalone app, it remains unclear how GPL would affect other components.
  3. GPL is vague. It doesn’t fit the modern development of JavaScript apps. When it comes to the web, we like permissive licenses, and understand commercial terms. GPL is just not our thing.
  4. The share-alike term is draconian and aggressive. We understand that it plays an important role in the development of a specific type of products such as databases and operating systems, but in our opinion, it’s a contradiction to what we consider as “freedom”.

@krzysztofspilka krzysztofspilka unpinned this issue Mar 6, 2019

@TobiasBg

This comment has been minimized.

Copy link

TobiasBg commented Mar 7, 2019

Just for clarification: Unfortunately, this means that Handsontable 7 can not be used/bundled/shipped with projects that require a license like GPL2 (say, a WordPress plugin, for example), right?

@AMBudnik

This comment has been minimized.

Copy link
Contributor

AMBudnik commented Mar 7, 2019

It is not an easy case Tobias. In most of the cases if you bundle a commercial license with anything it makes it commercial. You can (theoretically) push one part of the app in one license but mention another... but I would recommend to contact it with a legal department as Handsontable has a custom license.

@gajus

This comment has been minimized.

Copy link

gajus commented Mar 8, 2019

I have a question about affordability of the current Handsontable proposition.

I have a hobby/ side SaaS project where I would want to use what originally was available under CE.

Is there a pricing model for this?

Even the internal app license for 1 developer is currently unaffordable for such project – USD 590.

It would be nice to have a license attached to number of external users or some other metrics.

@uptonking

This comment has been minimized.

Copy link

uptonking commented Mar 11, 2019

can I continue to use handsontable ce 6.2.2 in my project which may be commercial later?
it should be better if I fork and maintain 6.2.2 under MIT 😏

@AMBudnik

This comment has been minimized.

Copy link
Contributor

AMBudnik commented Mar 11, 2019

@uptonking you can do whatever you want with the Handsontable CE 6.2.2 and lower. It is under MIT license

@AMBudnik

This comment has been minimized.

Copy link
Contributor

AMBudnik commented Mar 11, 2019

@gajus please share the project details with our Sales team sales@handsontable.com. They will pick the best offer for you.

@gajus

This comment has been minimized.

Copy link

gajus commented Mar 11, 2019

@gajus please share the project details with our Sales team sales@handsontable.com. They will pick the best offer for you.

My point is.. I originally bought the license for USD 99 just two years ago. Since then the price skyrocketed to USD 500 per developer for internal use. I am genuinely curious how many customers you have with that pricing, but it must be enterprises.

@ShanaMaid

This comment has been minimized.

Copy link

ShanaMaid commented Mar 11, 2019

best wish to you

@AMBudnik

This comment has been minimized.

Copy link
Contributor

AMBudnik commented Mar 11, 2019

@gajus we have different types of Clients from one-person projects to enterprises. Plus, we offer discounts for start-ups so it gets a bit cheaper.

@jontro

This comment has been minimized.

Copy link

jontro commented Mar 12, 2019

Maybe consider donating to the open source projects you bundle with this product?

@adrianfish

This comment has been minimized.

Copy link

adrianfish commented Mar 14, 2019

Have you totally ceased development of the 6.x branch? No backporting of bugfixes?

And, I presume we can fork this at 6.2.2 and enable things like column hiding in that fork? How hard would that be?

@krzysztofspilka

This comment has been minimized.

Copy link
Member Author

krzysztofspilka commented Mar 17, 2019

@jontro that is an excellent idea! However, some authors don't provide any way to donate their projects (take pikaday for instance).

@adrianfish All versions of Handsontable preceding v7.0.0 are released under the MIT license. You can fork them and then use in accordance with that permissive license. Unfortunately, v6.2.2 doesn't contain Pro features such as Hiding Columns.

There are no plans for maintaining the OSS version in the future. That would make the development complex again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.