QuestPDF development and licensing opportunities #491
Replies: 23 comments 61 replies
-
Hello, just wanted to notice you that the link on your website leads to localhost. |
Beta Was this translation helpful? Give feedback.
-
I don't think this is a good idea. It means open source software using a standard license can no longer reference this project without changing their license to a non-standard license. A "MIT except ..." license is no longer a MIT license, it is a custom license. How would you deal with outside contributions? Will you maintain separate codebases so those future 3rd party contributions become accessible under MIT or will those only be accesible for those who can adopt the custom license? What if they diverge? Would people/companies still want to contribute to a project under the custom license? |
Beta Was this translation helpful? Give feedback.
-
In the survey, there are a couple of interesting comments. As this discussion is mostly about discussing negative impact of the licensing change, and about finding better alternatives, I would like to present my thoughts about rised concerns:
I have applied around two years ago (link), without any success. I was hoping for recognition and promotion. It turns out that the .NET Foundation is not interested in small projects. Now, taking into account the state of that group, internal frictions and problems, I am not interested in joining any more. As an example, you may find a big uproar when the ImageSharp library left the foundation - in my personal opinion, the foundation couldn't handle this case worse.
This is a relatively new concept. I am sure that most of the OSS maintainers are currently thinking about this movement. Because the general community consensus about hybrid licenses is not clear, I decided to create the survey. I want to learn more and discuss any concerns before taking any action 😊
I totally get your point. Way before I started QuestPDF development, my opinion was quite similar. Once I am on the other side, not a consumer anymore but a creator, I have started to realize all difficulties related to maintaining OSS. I truly believe that the vast majority of OSS start with a person who wants to share the experience and help the entire community by creating something new. But when those attempts are successful, the same person needs to lead a huge popular project, with certain duties and expectations. This is not software development anymore but also marketing, documentation writing, public relations, creating long-term strategies, offering support. And of course... everything in your spare precious time. After all, we all have jobs, hobbies, families. Should that person decide to increase his OSS priority over hobbies? Or worse, over family? So the questions begin to appear. What should that person do to maintain the project? Maybe sponsorship? Well, that does not work. Very few developers and companies decide to sponsor OSS projects, especially when the project is a niche. And you still need to pay taxes and accountancy costs for every donation. From time to time, we hear frustrated maintainers who are dedicating their lives to thanklessly support important libraries without much help. For us, developers, updating a library to a new version is usually as simple as just changing a single number. But behind that number, somebody needed to spend a dozen of evenings of hard work. Trust me, developing an OSS project with a plan to turn it into a successful business in the future, is the worst business plan ever. If anybody thinks about such a strategy, I highly recommend to abandon that idea! Don't think that sponsorship is comparable to regular developer salary, quite the opposite. OSS is about helping the community, not about making money. I am thankful for everybody who trusts QuestPDF, who decided to use it as a dependency, and especially who helps the project in any way. Being trustworthy is my priority, hence I decided to discuss the entire topic with the Community. I am prepared that the presented idea may come with mixed emotions. That being said, I am sure that everyone cares (or should care) about stability of his dependencies. I want to ensure that everybody, who uses or will use QuestPDF, can be certain about its availability and quality in the future. I hope you understand that this is not about taking advantage over the situation in an unfair way, rather about solicitude of the project and all its users 😊 |
Beta Was this translation helpful? Give feedback.
-
I would like to provide my response to a couple of more comments from the survey. Here it goes 😁
The survey and this discussion are purely to asses the idea with the Community and to find a proper way to ensure QuestPDF future. There is nothing decided yet. Based on your concerns, I understand that you are working in a corporation that may be required to purchase the paid license. Is it really that bad to not only get a great library but also proper support?
The dual license is one of the possibilities, one that I consider as the most viable. I am open to discuss any alternatives. Please notice that the idea is to offer the paid version only to biggest companies. What is better? Pay for the library, have access to proper support, and rely on solid dependency? Or use a library that may fix the bug you are encountering not immediately, but after a couple of months? Of course, I am exaggerating a little bit, but it shows the point. How is it, that in real life, everyone knows that nothing is free, but suddenly in software managers are highly scared of paying for quality? And therefore maintainers need to think about so radical steps such as license change?
I also fear that there is no hope for open-source projects. Well, in such a case, we all need to accept that the entire industry relies on fragile projects developed by enthusiasts. Projects that may suffer with quality and stability issues, just because their maintainers don't have time to develop them. Maintainers that could be way more tired and frustrated than I am, and may do stupid things.
Over two years ago, when I decided to publish the library under the MIT license - this was my conscious and deliberate decision. I fully accepted that the project is not a business and I need to develop it in my spare time as the commitment to the .NET Community. Now, the situation is different: if I want to push to project forward, I need to increase its importance in my life. Otherwise, it will always be at the very end of the list.
The QuestPDF library is a part of the GitHub Sponsors program for around 8 months. This has started thanks to encouragement and a great help from JetBrains. Huge thanks to all QuestPDF sponsors! 🥰 The primary problem in this approach is the amount of funding. Right now, the GitHub Sponsors program is around 3% of my income, so quite negligible. I tend to think about it as a way of appreciation rather than funding for a next feature. Also, I need to pay taxes and accountancy costs for each donation. All things considered, GitHub Sponsors does not change the situation in any significant way.
QuestPDF right now uses the MIT license, meaning it is free for commercial usage, in any form. The proposed This is quite similar to what has happened to EPPlus. Isn't it the most hated library at this moment just because of that change from open-source to no-commercial license?
I would like to improve the documentation, create more tutorials and generally make the development experience better. Consultation and support should be the last resort option in my opinion. This reduces the need of having a paid support, right? In terms of feature priority - this is tricky. I cannot promise to develop new features when an external company decides to pay for it. Some features may require a significant architecture change or to be implemented from scratch. Something that may take months to make it right. Avalonia is a huge framework, there is plenty of areas that may require consulting services. But mainly because the official documentation suffers from lack of examples. (I understand why the documentation looks this way, QuestPDF documentation has a similar problem, just an observation)
My goal is to ensure QuestPDF stability, quality and availability, to build trust that this is solid dependency. In order to continue library development, I need to increase its importance over other activities; including job, hobbies and family. This is the primary reason of assessing the paid license. I don't feel any need to build a profitable business. This is not in the scope. |
Beta Was this translation helpful? Give feedback.
-
Hi, just an idea, not sure if anything like this exist. Is it possible that this package is free to use when user have existing license like Jetbrain Rider? and you share a piece of cake from them? Idea comes from packages within Unreal Engine Store, they have many packages mentioned that they're free to use if used in Unreal Engine. Since you already have support from Jetbrains, you can talk to them if something like this already exist. Just my 2 cents. No idea if this will work. I still hope this package can remain MIT license. But I understand your struggle. Update: I just noticed your roadmap has 2 things: previewer and secure and signing, I believe you can lock these 2 into separate commercial license. |
Beta Was this translation helpful? Give feedback.
-
Leading a popular open-source project is a blessing, but also involves additional responsibilities and requires a lot of time. I would like to ensure QuestPDF stability and future development, and allow the project to reach its fullest potential. I am looking for ways to increase its priority in my life, a way that is financially safe and time viable. I am considering a hybrid license, so to minimize the impact: keep open-source nature, offer fully-featured library for free for commercial usage for the vast majority of users, and fund the development by being professional and by offering priority support for largest businesses. I started this discussion to assess available options before performing any changes. You can find the full story here. @bennetbo @girlpunk @rstm-sf @AntonyCorbett Your help is exceptional! Thank you for your engagement in features development and providing an excellent Community support. Would you like to share your perspective about ensuring library stability? @matkoch @maartenba Your decision to showcase the project in the @Laptop765 @markgould @GilchristT @TaylorEdm @pespinho @NaseemHajoj @thomasstevens89 @OrganizationUsername @insulationman @knoxyz @HYDRA2568 @innercitypressure @great-work-told-is You are/were QuestPDF sponsors. I highly appreciate your financial help, you really give me motivation to push forward! What is your opinion about financing open-source development? @SvizelPritula @schulz3000 @knoxyz @loxsmoke @CollinAlpert @emanueleguastella @danielchalmers @simusr2 @fredericoregateiro @warrantyvoids @SvizelPritula @schulz3000 @donmurta @jcl-aadlab @lmingle @avobelk @thomasstevens89 @Dismall @pha3z @qcz @pespinho Thank you for contributing to QuestPDF and offering your help. Even small changes are meaningful when done by many. What is your perspective in this topic? @jnyrup @wieslawsoltes You have much more experience in the open-source world. I would love to know your opinion. Please share your thoughts. @JimBobSquarePants You went through a similar process with the ImageSharp library. Would you like to share your experience and conclusions? How viable is this movement? How many companies decide to purchase the Enterprise license? Do you have any licensing concerns or recommendations? |
Beta Was this translation helpful? Give feedback.
-
@MarcinZiabek I'm more supportive of open core projects (like GitLab, but with sensible tiers), as they are more clear whether one can use them or not and cannot be used in a commercial project accidentally. Furthermore your question about the planned pricing in the survey is very ambiguous. Is it per developer or is it a single licence for the whole company? |
Beta Was this translation helpful? Give feedback.
-
Marcin,
I've enjoyed watching the project evolve over time.
The desktop application where I use QuestPDF was converted from Java.
Initially, I had a very limited budget. I specifically chose only MIT or
Apache projects when possible because I expect there will be fewer than 100
users.
From the initial version of QuestPDF it has done everything I needed to do
for making a simple report. QuestPDF along with Units.NET and Helix toolkit
have given this project a nice polish. Now that I know the project won't be
scrapped I can go back and provide support to the projects which made this
project possible.
I like the MIT license. But I also understand and would support the move to
a hybrid license because it still makes a project like mine possible.
Laurence
…On Sat, Feb 25, 2023, 1:31 PM Marcin Ziąbek ***@***.***> wrote:
Leading a popular open-source project is a blessing, but also involves
additional responsibilities and requires a lot of time. I would like to
ensure QuestPDF stability and future development, and allow the project to
reach its fullest potential. I am looking for ways to increase its priority
in my life, a way that is financially safe and time viable.
I am considering a hybrid license, so to minimize the impact: keep
open-source nature, offer fully-featured library for free for commercial
usage for the vast majority of users, and fund the development by being
professional and by offering priority support for largest businesses.
I started this discussion to assess available options before performing
any changes. You can find the full story here.
<https://www.questpdf.com/project-future-post.html>
------------------------------
@bennetbo <https://github.com/bennetbo> @girlpunk
<https://github.com/girlpunk> @rstm-sf <https://github.com/rstm-sf>
@AntonyCorbett <https://github.com/AntonyCorbett> Your help is
exceptional! Thank you for your engagement in features development and
providing an excellent Community support. Would you like to share your
perspective about ensuring library stability?
@matkoch <https://github.com/matkoch> @maartenba
<https://github.com/maartenba> Your decision to showcase the project in
the JetBrains OSS Power-Ups was essential to help it achieve broader user
base. Thank you for your trust and giving me a chance. Please share your
opinion.
@Laptop765 <https://github.com/Laptop765> @markgould
<https://github.com/markgould> @GilchristT <https://github.com/GilchristT>
@TaylorEdm <https://github.com/TaylorEdm> @pespinho
<https://github.com/pespinho> @NaseemHajoj
<https://github.com/NaseemHajoj> @thomasstevens89
<https://github.com/thomasstevens89> @OrganizationUsername
<https://github.com/OrganizationUsername> @insulationman
<https://github.com/insulationman> @knoxyz <https://github.com/knoxyz>
@HYDRA2568 <https://github.com/HYDRA2568> @innercitypressure
<https://github.com/innercitypressure> @great-work-told-is
<https://github.com/great-work-told-is> You are/were QuestPDF sponsors. I
highly appreciate your financial help, you really give me motivation to
push forward! What is your opinion about financing open-source development?
@SvizelPritula <https://github.com/SvizelPritula> @schulz3000
<https://github.com/schulz3000> @knoxyz <https://github.com/knoxyz>
@loxsmoke <https://github.com/loxsmoke> @CollinAlpert
<https://github.com/CollinAlpert> @emanueleguastella
<https://github.com/emanueleguastella> @danielchalmers
<https://github.com/danielchalmers> @simusr2 <https://github.com/simusr2>
@fredericoregateiro <https://github.com/fredericoregateiro> @warrantyvoids
<https://github.com/warrantyvoids> @SvizelPritula
<https://github.com/SvizelPritula> @schulz3000
<https://github.com/schulz3000> @donmurta <https://github.com/donmurta>
@jcl-aadlab <https://github.com/jcl-aadlab> @lmingle
<https://github.com/lmingle> @avobelk <https://github.com/avobelk>
@thomasstevens89 <https://github.com/thomasstevens89> @Dismall
<https://github.com/Dismall> @pha3z <https://github.com/pha3z> @qcz
<https://github.com/qcz> @pespinho <https://github.com/pespinho> Thank
you for contributing to QuestPDF and offering your help. Even small changes
are meaningful when done by many. What is your perspective in this topic?
@jnyrup <https://github.com/jnyrup> @wieslawsoltes
<https://github.com/wieslawsoltes> You have much more experience in the
open-source world. I would love to know your opinion. Please share your
thoughts.
@JimBobSquarePants <https://github.com/JimBobSquarePants> You went
through a similar process with the ImageSharp
<https://github.com/SixLabors/ImageSharp> library. Would you like to
share your experience and conclusions? How viable is this movement? How
many companies decide to purchase the Enterprise license? Do you have any
licensing concerns or recommendations?
—
Reply to this email directly, view it on GitHub
<#491 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADVMHOQPJBIARD7VBXXRSLWZJFWVANCNFSM6AAAAAAUZSZK5I>
.
You are receiving this because you were mentioned.
Message ID: <QuestPDF/QuestPDF/repo-discussions/491/comments/5109940@
github.com>
|
Beta Was this translation helpful? Give feedback.
-
While I haven't used this library for a while, I must say I really enjoyed working with it. It should be noted that a license along the lines of "MIT unless you have a lot of money" will not be considered FOSS by any common definition. You say that open source projects could use this library, but that isn't acually true, as it's license would be incompatible with most projects licences. Therefore, I would have to recommend an oposite approach. Instead of adding limitations to permissive licences, you should consider adding/selling exceptions to a strong copyleft license. Since QuestPDF would probably be commonly used on servers, this would probably be the AGPL. While this would mean that any company of any size could still use QuestPDF for free, it would also mean that they would have to release the application as FOSS to anyone who receives their binary or connects to their server, which would make it unviable to use in proprietary software, unless they buy a different license from you. It should be noted that this might not affect the usage of QuestPDF in internal tools, since these are never shared with anyone. |
Beta Was this translation helpful? Give feedback.
-
I'm a one man shop who has only four clients who are handled after my day job. All of the clients are mechanical/structural engineering firms with revenue in the millions per year with $0/year coming from software offerings. They all have either a legal department or lawyer on retainer who care about the licenses on my dependencies. Only one of them has an in-house developer who understands both code and licenses.
I'm worried that with upcoming licensing changes, the code that I provide them at the completion of a job will not be enough for them to maintain the solution I've created for them and might make it impossible.
I'm already sick of explaining why I'm using an old version of EPPlus and why they shouldn't update it. I'd hate for Legal to tell my customers that they aren't allowed to make small changes and edit it because of a word like "AGPL" anywhere.
|
Beta Was this translation helpful? Give feedback.
-
My advice.
P.S FOSS and the OSI approved set of licenses are not the same thing. |
Beta Was this translation helpful? Give feedback.
-
My five (non significant cents) on this: Look at the product of bogus library (github) . What is suggest you do is create pre-made templates for various documents, and put them in a seperate library. If this is something that could be an option, I'd recommend reaching out to the guy who made bogus. Hope you find a good solution :-) |
Beta Was this translation helpful? Give feedback.
-
QuestPDF is unique with its HMTL less template and fluent API approach making it easy to consume and the previewer making prototyping experience the first of its kind. Thanks MarcinZiabek for the undeniable work and effort so far. I would wish for it to stay open source and we can actually help to contribute to it and hopefully @microsoft can adopt it just like Polly as a standard for PDF generation in the .NET ecosystem. You can start up a GitHub sponsorship program and we can be part of it. Even selling merchandise can also be a way of sustaining this wonderful project. |
Beta Was this translation helpful? Give feedback.
-
Large corporation perspective here (so large that the survey is blocked by our internet filter). I'm looking for something to replace iText Sharp because they changed the license from LGPL to AGPL a while back, making open source use impossible for us (although I only work on internal tools, our lawyers would not OK the use of AGPL). We are still using the old LGPL version, but that has potential problems too. The problem with large corporations is not that we can't afford to buy a license, it's that spending that money is very difficult. I'd have to go to our purchasing department and they and the lawyers would review and potentially want to negotiate the license with you. You would also be subjected to our vendor management process, and "some dude maintaining the software in his spare time" is unlikely to be seen as an acceptable risk there. Who knows what else they would require in order to be able to spend a few hundred dollars! In other words, I probably wouldn't even bother trying. You will probably have more luck with the startups that have lots of cash but haven't built the corporate structures to crush productivity yet! :-) |
Beta Was this translation helpful? Give feedback.
-
A couple of weeks have passed since the beginning of this discussion and the related survey. I would like to thank everybody for being so active and sharing various important perspectives. Making the decision is surprisingly difficult, especially when being able to only guess about the future and broader community reaction. When you care about the project very much, and feel highly uncertain about its future, it takes a great effort to do every little step... But it has finally happened, I made a first significant step towards the hybrid licensing model. There is a new Pricing page that hopefully explains everything clearly and concisely. If anybody has any questions or suggestions, now it is the perfect time to make final touches. Please share your opinion 😁 In the meantime, I am cooperating with Paddle to setup the payment process. My second priority is to address a couple of bugs and prepare a next Special thanks to |
Beta Was this translation helpful? Give feedback.
-
As part of the transition, I am working on the improved developer experience related to the updated licensing. Just after nuget installation, during document generation, the library throws an exception that describes both licenses, available options and informs how to set up license configuration. The purpose of this exception is to make sure that new and existing users are fully aware about the license. This option does The current exception message is as follows:
As @JimBobSquarePants has mentioned, there is no reason to enforce any license keys of any sort. Therefore, the license configuration is quite straighforward: QuestPDF.Settings.License = LicenseType.Community; For more information, please refer to the following commit 76844dc and its associated branch. I am happy to hear your feedback. Maybe the whole idea with an exception is unnecessary? Maybe the exception message should be redacted differently or misses something important? Any ideas are very welcome 😁 Once again, thank you for your patience and help! |
Beta Was this translation helpful? Give feedback.
-
Marcin, First of all I want to thank you and also let you know that you really built a great peace of software. I just moved some parts of a project from a commercial nuget to yours due the MIT license. So my opinion will probably be biased ;-) Anyway, I think it is fair that you want to get funding for the software and personally I think also the pricing is ok for larger companies. My personal issue is that I think in the end people may miss reading the license terms and just think it's MIT so it's free. Companies just want to be sure that they are licensed correctly and these things are somehow hard to track. Often in startups you have Dev's taking the components, not knowing about the revenue and once it passes 1mio nobody thinks about it. Personally I would prefer to have addons that you need to pay for which are also a game-change. Like mentioned that could be previewer which I would also pay even if not in the 1mio limit, because it makes you save a lot of time. The signing probably something larger companies use, so fair to pay for it. So to sum up, obviously it would prefer that it stays MIT/free forever, but I fully understand your position, so just make sure it does not get a mess between the two licenses. Thanks |
Beta Was this translation helpful? Give feedback.
-
I am not sure I understand how the MIT license works in the following scenario: if I fork your code to add some local changes and I'm not making any money, I'm able to use MIT license. But then what if some big business finds my fork and uses it? My version of the code would only be covered under MIT, which means they could bypass your proprietary license? What happens if I build an open source application and later want to dual license my app? Do I have to obtain a license for your library if one of my licensees meets the revenue requirement? Do I tell them they need to contact you for a license for the PDF part? |
Beta Was this translation helpful? Give feedback.
-
Update: as part of the new dual-licensing introduction, I have performed the following actions:
I want to thank everybody for helping me in this tremendous effort! You are great 🥰 |
Beta Was this translation helpful? Give feedback.
-
Imagine this, I have raised these THESE SAME CONCERNS almost 9 months ago, and author "assured me " (more like shrugged it off) that it is not going to happen: If I was not one asking, and I was not getting down-voted I would have not said anything here. Hiveminds do hivemind stuff, but this is a good time for me to learn my lesson and trust my 10 years of experience more than some community hivemind. |
Beta Was this translation helpful? Give feedback.
-
I understand where you're coming from in feeling like you need to provide some sort of revenue stream to move the project forward, but I will say that I'm disappointed. It comes across as a bait-and-switch tactic where we get hooked on a great thing, only for the carpet to get pulled out from under us and told to pay up or else. I have no issue with new projects starting off directly with a commercial model. That's clear up front and there's no misaligned expectations. We'd have known from the start what we'd be paying for. What's not good is promoting it as free forever, drumming up popularity of the project, then shifting gears towards charging for it and ostracizing a big part of your base. I discovered QuestPDF on Reddit and it seemed like a breath of fresh air. It seemed easy to use, nicely structured code, and best of all it was modern and free. That was a big help at a time when we were still using old versions of iTextSharp and were trying to look for a less expensive path forward. See, the big problem with instituting a charge for your library half-way through is not just that it provides doubt for the future, but that it causes one to consider what they're getting for the amount they're paying for. It was a no-brainer to choose Quest being free over other expensive enterprise choices. But now there's hardly a reason for us to choose Quest when the $3000+ it'll cost us yearly is just as expensive, if not more, than other competitors out there in the enterprise market. Arguably, some others offer more than what Quest does, but why not get more for what you pay for? Maybe this would have been less of an issue if your prices were lower, but you're pricing yourself pretty high in an enterprise market and I don't see that ending as well as you think it will. I don't want this to come across as "Aww the poor $1M+ company can't afford $3k a year" since we absolutely can, but it's a hard sell to buy Quest over anything else if we're back to evaluating everything available on the paid market. |
Beta Was this translation helpful? Give feedback.
-
I just spent an hour reading through the different opinions. It is very interesting to look at the different points of view! I myself am active in the open source area and can understand that the maintainer has decided to take this step, even if I would be happy if there had been another way. The real problem is that you have to force people to pay for a project they use. Unfortunately, very few companies invest money back into the open source projects they use. In the end you get angry about the way the project is going to be financed. Which from my point of view most maintainers don't want. Shortly a question about licensing |
Beta Was this translation helpful? Give feedback.
-
Would like to add some notes here. First fully support the change and direction. There is detailed story in the issue LICENSE_change_notice of the project. Option b) is And its completely fine to switch from a) to b) once a projects grows over self-managed capability. Explanation: So the best way with b) is Dual license (c)FOSS. We can call this loosely enforced funding. *-I believe model like this is an excellent solution, almost without any downsides. One could further work out more complicated scenarios such as when Library is used as dependency in another library with FOSS and then that other library is used by a company with high revenue. What would be the best rules of engagement for those edge cases. To make it somewhat standardized, or al least have few option that the project owner can choose from. |
Beta Was this translation helpful? Give feedback.
-
Please read a full story behind this discussion, click here (this post has been removed from the webpage, link will return 404 from now on)
As a project owner and primary developer, I am responsible for ensuring QuestPDF stability and availability in the future. I would like to dedicate more of my time, and provide proper support and maintenance over the upcoming years. However, this decision needs to be time viable and financially safe.
I am seriously considering a hybrid licensing model. Recently more and more open-source projects are choosing this path.
For the vast majority of users, nothing changes. The library is still open-source, fully featured, and free for commercial usage (via the MIT license).
The only difference is applied to enterprise. Every company/individual with high enough (value yet to be determined) annual gross revenue that uses QuestPDF in a closed-source for-profit project will be obligated to purchase the QuestPDF Enterprise license for each year of development. This version will provide additional, professional, high-priority support.
Please share your thoughts here or via the survey 😁
Beta Was this translation helpful? Give feedback.
All reactions