Jump to table of contents

About PKP

What is the Public Knowledge Project? #

PKP is an academic project supported by Simon Fraser University (Canada) and Stanford University (USA). We develop (free) open source software, conduct research, and provide services to improve the quality and reach of scholarly publishing. To learn more, read our latest Annual Report.

Is your software really free? #

Yes, all of our software is free to download, use, and modify under the open source GNU General Public License (GPLv3). There are no licensing fees and you can customize the software to meet your needs. While our software is free, you may need to pay for the technical infrastructure and expertise required to host your journal, press, or preprint server online.

How do you afford to develop and maintain your software? #

Open source software is free to download; it is not, however, free to build, maintain or support. PKP relies on three primary sources of revenue: grant funding, community sustainers, and revenue from PKP Publishing Services. We also rely on volunteer and in-kind contributions from individuals and organizations around the world. Contributors write documentation, translate software, develop code, and support accessibility and usability studies. If you use our software and would like to contribute, either financially or by sharing your expertise, please contact us.

How much does your software cost to develop? #

It is very difficult to estimate the cost to develop open source software. Unlike commercial software, our software is developed by both paid staff and community contributors (i.e., volunteer/in-kind time donated by individuals and organizations). Open Hub provides cost estimates for open source projects using the Basic COCOMO Model. According to their calculation, the estimated cost to develop OJS 3 is $2,537,099.

Can I modify your code? #

Yes. PKP software is open source and licensed under the GNU General Public License (GPLv3). This means that you can modify our software. To install or modify our software you must first agree to the terms and conditions listed in our software license.

If you plan to add custom features, either on your own or by hiring a software developer, please keep in mind the following: Would these features benefit other users? What is the best way to add support for these features? And will your custom features be maintainable in the long term with future updates to the software?

If you have any doubts or questions, please contact us to discuss your ideas. If your code submissions or patches are beneficial to other users, please post on our Issue Tracking System and PKP Community Forum.

How can I contribute to development or develop a plugin? #

PKP has developer documentation on how to get started with PKP software development and how to write plugins. All development is managed in PKP’s Github repository.

Where do you announce security vulnerabilities? #

PKP announces all valid security vulnerabilities, and their respective fixes when available, via the PKP Community Forum, our news blog, our social media accounts, and our application download pages. All fixes are also published in PKP’s Github repository. In the event that a third party discloses a security vulnerability, we request that a public disclosure isn’t made until a fix is available, at which time we work with the third party to notify the public of the vulnerability and the fix.

How can I report a security vulnerability? #

Please send a detailed description of the vulnerability to our support email: support@publicknowledgeproject.org. We will respond to you as quickly as possible with an evaluation of the vulnerability.

If it is in fact a vulnerability within our software (and not a hack due to a general server/software misconfiguration, a vulnerability in another software application, or something dressed up to look like a vulnerability, which we do see on occasion), we will proceed with next steps: identifying and publishing a fix, and then disclosing the issue and fix to the public.

Another option is to submit an issue (and, if available, a patch in the form of a pull request) via Github.