Why are some features only available to members?
PhotoPrism is 100% self-funded and independent. Voluntary donations do not cover the cost of a team working full time to provide you with updates, documentation, and support. It is your decision whether you want to sign up to enjoy additional benefits.
Shouldn't free software be free of costs?
Think of “free software” as in “free speech,” not as in “free beer.” The Free Software Foundation sometimes calls it “libre software,” borrowing the French or Spanish word for “free” as in freedom, to show they do not mean the software is gratis.
Have you considered other funding options like venture capital?
Yes, we have considered other options many times. Based on feedback from our community, we decided to fund development with paid memberships that provide additional features and services. Keep in mind that by accepting venture capital, we would lose our independence, which could ultimately ruin our mission.
How do you support the free and open source software community?
Maintainers of non-commercial open source projects and others who frequently volunteer in the community are welcome to contact us with a link to their project or organization for free access to many of our paid products and services.
In addition, when we use software that is freely available and maintained by volunteers or individuals, it is our policy to support them to the best of our ability. For example, by signing up as a sponsor or purchasing a license, but also by submitting pull requests with improvements, spreading the word on social media, and sharing development resources.
How can your software be open source if not all features are free?
The term Open Source was invented as a rebranding of the Free Software movement to emphasize the business potential of sharing source code. So it is not about user rights or offering free products to end users. Instead the focus is on technical aspects and marketing of the software to businesses. Today's usage, and meaning, is much broader though. For example, Open Source development can simply refer to releasing the code of a side project in order to learn, share with others, or get hired.
Free Software, on the other hand, respects the freedom of its users and the community. It is a question of liberty, not price. Since PhotoPrism is not a side project and we believe in Free Software, we use an officially recognized copyleft license, provide as much source code and documentation as possible, and emphasize the importance of funding Free Software. Like anyone else, we also reserve the right to develop some features internally and make that code available to our members first before we may release it. This is because once code is released under a public license, it cannot be taken back, for example if it is unfairly monetized by others. Also, we don't have unlimited capacity to maintain community projects, write documentation, and help users.
That being said, asking for your support (and offering something in return) is necessary to protect the project as a whole and make it sustainable. Becoming a PhotoPrism+ Member is one way to contribute and enjoy additional benefits, but anything that reduces the workload of the core team is much appreciated and will be honored to the best of our ability.
What are the tasks and priorities in your daily work?
Our priorities are (1) providing bug fixes, security improvements, and support, (2) maintaining core functionality, e.g. ensuring compatibility and performance, providing documentation, (3) adding core functionality, e.g. file type support, search filters, config options, (4) working on other features such as multi-user, scalability, and hardware acceleration.
Why don't you communicate your practices and policies more prominently, for example in a blog?
We aim to be as transparent as possible, but need to spend much time on product development. When specific questions come up in our community, we always try to answer them as quickly as possible and also add them to our FAQs for future reference.
When will new features be released?
Our Project Roadmap shows what tasks are in progress and which features are likely to be implemented next. You are invited to give ideas you like a thumbs-up, so we know what's most popular.
Be aware that we have a zero-bug policy and do our best to help users when they need support or have other questions. This comes at a price, as we can't give exact release dates for new features. Our team receives many more requests than can be implemented, so we want to emphasize that we are in no way obligated to implement the features, enhancements, or other changes you request. We do, however, appreciate your feedback and carefully consider all requests.
Since sustained funding is key to quickly releasing new features, we encourage all users to support our mission by signing up as a member or purchasing a commercial license. Ultimately, that's what's best for the product and the community.
Why can't I buy and download a single version?
Unlike traditional offline apps such as Microsoft Office or single-player games, software exposed to the Internet must be updated regularly to stay secure and compatible with the latest standards. Keep in mind that providing this software also involves answering support questions and reviewing bug reports, which is ongoing work.
Can I get a discount if I don't need all the additional features?
We encourage all users to support our mission to protect their freedom and privacy, even if they don't use any paid features, since developing and maintaining the core functionality requires just as much work, if not more. Those features are always available because it is a matter of freedom, not cost. As a result, we unfortunately cannot give you a discount if you don't need all the features of our paid offerings or see less value in them than you are willing to afford.
Can you tell me what features will be released for free since I already have too many paid subscriptions?
Offering much of our functionality for free is a matter of freedom, not cost. However, we can't promise you additional free features because they have to be funded and implemented first. Whenever new features become available, you'll find them in our release notes.
What was the original project funding strategy and communication?
Our official funding page from early 2020 explains it this way (all versions can be found in our public docs repo):
This project is about freedom and privacy, but not necessarily about free beer. We believe that it would be a mistake to state that there will be no costs, because clearly we have huge expenses, your server hardware has a price tag, and then you might want some additional features that need to be developed.
It seems fair to say that users with basic needs will have no monthly costs. We are also much more productive and effective per dollar (or euro) than commercial projects, and learn a lot on top of that.
Nearly all established OSS companies make 90% of their revenue from enterprise customers, so home users and individual developers usually get everything for free. Of course, that doesn't work if you only have private users who refuse to share their data on top of that.
Specific solutions for funding development and maintenance could be to...
- sell a tested and supported version in the app store, while our contributors and other developers can continue to use Docker or build from source code
- offer a geodata, public events, and maps subscription, since OpenStreetMap doesn't want us to use their development API for production, which is perfectly fine
Isn't it bad practice to use a CLA as it helps to unfairly monetize the work of contributors?
Having worked with and developed on open source projects for decades, we understand the concerns of some, often based on blog posts that have nothing to do with our particular situation and the Contributor License Agreement (CLA) we use.
First of all, we did not start the project with the expectation of making a profit, but to protect your freedom and privacy. It should be in your best interest that this goal is funded.
Second, the core team does most of the work on our software, and reviewing and merging pull requests sometimes costs us more time than it saves, especially if the contributors are not yet familiar with software development in general and our project in particular. While the changes may be important to some users, they usually add little value to the overall code that we could monetize in any way. Most of the time, they relate to features we provide for free.
Using a CLA ultimately preserves our ability to license our own software and documentation according to our terms, which is only fair and what anyone in our situation would expect. For example, a license change may be necessary if the license is incompatible with a larger combined work, we want to remove some restrictions of the AGPL/Creative Commons license, or it turns out that someone is abusing the existing license in ways we don't yet know about.
Finally, the lack of a formal contract would also lead to legal uncertainty for us and all users, as some contributors could later claim that their code was never intended as, or authorized to be used as a contribution.