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 · 35 comments
Closed

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

krzysztofspilka opened this issue Mar 4, 2019 · 35 comments
Assignees

Comments

@krzysztofspilka
Copy link
Member

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

@MikeTatsky
Copy link

MikeTatsky 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
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
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
Copy link

Reasonable move! Hope you the best guys! 👍

@krzysztofspilka
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
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
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
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
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
Copy link
Contributor

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

@AMBudnik
Copy link
Contributor

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

@gajus
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
Copy link

best wish to you

@AMBudnik
Copy link
Contributor

@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
Copy link

jontro commented Mar 12, 2019

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

@adrianfish
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
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.

@adrianfish
Copy link

adrianfish commented Mar 21, 2019

@krzysztofspilka

I saw that you commented on CKeditor 5's licensing decision.

ckeditor/ckeditor5#991 (comment)

What do you make of their decision to continue supporting open source projects? I'm a member of the Sakai (an LMS) community where we use both CKEditor and Handsontable, so I'm really pleased that they've clarified their position on their open sourced offering.

@redchair123
Copy link

With all due respect @krzysztofspilka you completely muddied the waters by changing the primary repository in the same exact way that Elastic muddied the waters with their primary repository. For more context, see https://aws.amazon.com/blogs/opensource/keeping-open-source-open-open-distro-for-elasticsearch/ , the relevant quote is:

At AWS, we believe that maintainers of an open source project have a responsibility to ensure that the primary open source distribution remains open and free of proprietary code so that the community can build on the project freely

If you wish to focus on a pure commercial product, that is well within your right. However, by using the original endpoint to do so, you've surreptitiously ensnared everyone who is referencing the repository or NPM package without a proper version pin. The expectation is that the Github and NPM endpoints https://github.com/handsontable/handsontable/ and https://www.npmjs.com/package/handsontable respectively contain open source code under the original license. If you wish to change that, then make a new endpoint (handsontable-next ?) and archive this project.

... or maybe your plan was to trap unsuspecting users, and if so this is a terrible business model not too dissimilar to patent trolling.

@adrianfish
Copy link

@Niggler That kind of sums up my concerns about the decision. I've always found the mixture of pro and community features in one repo confusing - it's hard to even match up the CE and Pro version numbers. I personally would never contribute to a project that withholds features, such as being able to hide a column, from the CE version, but yet will likely merge community contributions into their pro version. Handsontable could literally just shut their repo at any time and even remove their artefacts from maven and NPM repos, so we forked it at 6.2.2. Not ideal, but there you go.

@redchair123
Copy link

@adrianfish the community would benefit from a community-supported open source fork, is your fork publicly available?

@adrianfish
Copy link

@Niggler I don't think we can commit to that at the moment - this was more of an emergency measure in case they pull their repos and we've no current plans to update it. We need some time before our next major release to work out alternatives or whether we'll stick with Handsontable. It's at:
https://github.com/sakaicontrib/handsontable. It's been reset to the 6.2.2, MIT licensed, tag.

@samuelcolvin
Copy link

samuelcolvin commented Mar 26, 2019

I've been a fan of handsontable since about 2014, but this decision makes me very sad.

I can entirely understand the desire to manage one unified code base, and charge for it. But to me your price point ($590/developer + $1290/product) is deeply mistaken for a bunch of reasons:

  1. All of us who manage and contribute to open source projects get a kick out of our software being used - all other things being equal, more users is better. This price point will loose you 99.9% of potential users, where a lower price point and/or a different pricing model might not.
  2. Almost any company would prefer 1m customers paying $1/month than 1 customer paying $1m/month - lower risk of catastrophic customer loss and each customer has less pricing power.
  3. Even ignoring 1 and 2 I'd be amazed if your revenue was higher charging $1880/year than $50/month - perhaps I'm wrong about this and you've done a wonderful job of selling to enterprise, I agree that other products seem similarly eye-watering, but I'm still amazed - $1880/year for a js library!
  4. One definition of anti-social is "something that would break society if everyone did it". Take a minute to image a world where every successful software project made this move: node, webpack, react, angular, vue, bootstrap, python, rails, django, etc. etc. etc. - we've all decided to charge $2000/year - what would handsontable inc.'s toolchain or website cost? Would you have even learnt to code? The software industry would look like the aviation industry; the world would be a less fun place.

Personally I'll use the 6.2.2 MIT licenced version, if someone is keen to start and maintain an MIT fork, I'd be happy to contribute.

@krzysztofspilka
Copy link
Member Author

krzysztofspilka commented Mar 26, 2019

@Niggler

Correct me if I'm wrong, but isn't AWS the reason why most the popular open source projects changed their license (e.g. Redis Modules)? As for Handsontable, the original endpoint was bumped to a new 7.0 major version. That new version is backward-incompatible, and there is a message about the new license in the console during installation. Also, if you don't pass the license key, you will see a notification displayed right below the grid. There's no way we mislead anyone.

@samuelcolvin

I totally understand your concerns about our pricing strategy. However, I can assure you that in this niche market we won't get 1M users paying us $1. About 75% of our customers hire more than 500 employees. I don't see a point in charging these corporations $1 for the license. We offer a discount for startups and a free license for education and evaluation purposes. Fair and square.

Webpack is so popular that it raised massive funds ($440k+), Angular is backed by Google, React is backed by Facebook and node is sponsored by Google, IBM and Microsoft, among others. You're probably not comparing apples to apples.

As for "(...) if someone is keen to start and maintain an MIT fork, I'd be happy to contribute.". I haven't seen you contribute to Handsontable before. Why would you want to contribute to a fork of Handsontable now?

@krzysztofspilka krzysztofspilka pinned this issue Mar 26, 2019
@redchair123
Copy link

redchair123 commented Mar 26, 2019

@krzysztofspilka if you want to stop developing the open source version, that is perfectly fine. The proper way to handle it is to archive this repo and deprecate handsontable on npm, sticking to the already-proprietary handsontable-pro moniker. By making these endpoints proprietary, you are creating confusion with sites that are using UNPKG or some other CDN expecting to receive the open source build. I understand why you want to do it, to make it appear that the paid offering is popular by leveraging the download and star counts of the open source.

Overall, what I think you miss is that many of the sales came from people who wanted to support the open source effort. I have recommended handsontable to friends over the years and many of them ended up purchasing developer licenses.. You are destroying the hard-earned goodwill from the community and the implied future sales that accompany it

Since it's not too late to reverse course, just as food for thought: other companies in the space continue to maintain open source libraries even as they expand their proprietary offerings. ag-grid comes to mind, with their MIT-licensed community edition. They seem to be growing even in the presence of the open source option, and they cleanly separate the open source https://github.com/ag-grid/ag-grid from the proprietary https://github.com/ag-grid/ag-grid-enterprise . Many of the aforementioned developers who would support handsontable are likely to switch to supporting an alternative like ag-grid primarily based on the fact that they have an open source build. I think you underestimate the importance of the open source offering in your actual sales.

@samuelcolvin
Copy link

Thanks for the response @krzysztofspilka. I don't want to end up in a boring argument, but I think a couple of your points deserve a response, so I'll reply then shut-up.

However, I can assure you that in this niche market we won't get 1M users paying us $1

I wasn't suggesting you charge $1 just as I wasn't accusing you of charging £1m, I would have thought that was fairly clear.

You're probably not comparing apples to apples.

I'm not comparing anything, I'm simply asking you to imagine what would happen if all open source software (illustrated by a bunch of popular projects) decided to charge. However, I get you're not backed by google or facebook and I respect your decision to charge, I just think it's a shame you couldn't conceive of a pricing model that allowed more people to appreciate what you've developed.

As for "(...) if someone is keen to start and maintain an MIT fork, I'd be happy to contribute.". I haven't seen you contribute to Handsontable before. Why would you want to contribute to a fork of Handsontable now?

I haven't contributed to HOT because it's always "just worked" for me, hence why I'm a fan, and hence why I'm disappointed you've decided to end it's open source development.

I'm offering to contribute to a new open source software project based on v6.2.2 so handsontable as an open source project doesn't die - in many senses a compliment to you and not a particularly odd offer I think.

@krzysztofspilka krzysztofspilka unpinned this issue Mar 26, 2019
@floatingatoll
Copy link

FYI, your GitHub issue was linked this morning here [1], which may help explain why this thread suddenly lit up again. Good luck with the new approach!

[1] https://news.ycombinator.com/item?id=19488642

@blackorzar
Copy link

Hello guys,
I would like to suggest you to include a "Powered by Handsontable" with a link to your page for the non-commercial version (like at the bottom of the grid). It is something similar to what hotmail did when they started (they included a footer with "Send by Hotmail"). I think this could attract more potential customers.

@krzysztofspilka
Copy link
Member Author

krzysztofspilka commented Mar 27, 2019

@blackorzar
I know that some libraries do that but I think we're good without it. Since v7.0.0 we require passing the license key in the settings' object. If you pass a phrase 'non-commercial-and-evaluation' as a key value, you won't see anything but your data grid.

@myliang
Copy link

myliang commented Mar 28, 2019

guys,
can pay attention to this table component. x-spreadsheet

@krzysztofspilka
Copy link
Member Author

krzysztofspilka commented Mar 28, 2019

@myliang It looks neat! I see that it's based on canvas, just like SpreadJS and other similar products. This makes it hard to hack and customize. Nevertheless, I'm impressed:)

pombredanne added a commit to nexB/scancode-toolkit that referenced this issue Apr 6, 2019
See handsontable/handsontable#5831

Signed-off-by: Philippe Ombredanne <pombredanne@nexb.com>
@pphod
Copy link

pphod commented May 25, 2019

We have alternatives such as jExcel. https://bossanova.uk/jexcel and https://github.com/paulhodel/jexcel

@gajus
Copy link

gajus commented May 27, 2019

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

I did contact Handsontable sales as suggested @AMBudnik and the minimum price for my hobby SaaS is USD 2080/ year. I struggle to imagine this project being used by anything else than corporate clients moving forwards.

@ghost
Copy link

ghost commented Jul 29, 2019

@gajus I totally agree with you.
@krzysztofspilka please check https://www.syncfusion.com/products/communitylicense

Syncfusion community license is offering full product line free for companies and individuals with less than $1 million USD in annual gross revenue and 5 or fewer developers! They response any e-mail within 12-24 hours. Impressive!

With this pricing strategy you could only attract big companies. If I were you I would make it appealing for small businesses which will eventually turn into a paying customers.

@pphod
Copy link

pphod commented Jul 29, 2019

@myliang It looks neat! I see that it's based on canvas, just like SpreadJS and other similar products. This makes it hard to hack and customize. Nevertheless, I'm impressed:)

jExcel is based on pure HTML tables. https://www.bossanova.uk/jexcel/v3/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests