Frequently Asked Questions (FAQ)
Below, you'll find a compilation of frequently asked questions about PayDevs, based on numerous emails and interactions with our maintainers and users. We hope that these answers will provide you with a clear understanding of the ideas, goals, and concepts behind PayDevs and shed light on how we operate.
What is PayDevs?
PayDevs is a package registry and monetization platform designed to support developers in earning money for their open-source packages.
How does PayDevs work?
Developers and companies pay to get access to our registry and the packages within. They can use our registry just like the original ones (e.g., NPMjs.com).
We compensate developers based on the number of users of their package(s) we can count. Therefore, the developer have no direct business relationship with the users and no associated liability or obligations.
What is the mission of PayDevs?
The mission of PayDevs is to create a sustainable ecosystem for open-source development by providing developers with a platform to monetize their packages.
Our goal is to incentivize and support developers in continuing to contribute to the open-source community while also enabling them to generate revenue from their work - hopefully even work full-time on their projects.
PayDevs aims to foster innovation, collaboration, and long-term viability in the open-source world by offering a fair and transparent monetization model that benefits both developers and users.
Who can use PayDevs?
PayDevs is designed to be used by developers who create and maintain open-source packages. It is open to individual developers, teams, and organizations who wish to monetize their packages and receive compensation for their contributions.
What are the benefits of using PayDevs for me as a Maintainer?
PayDevs provides a cost-free platform for you to monetize your open-source packages, allowing you to earn income from your hard work. It offers a way to generate revenue for your contributions and ongoing maintenance efforts.
Without PayDevs, you would have to apply another Monetization approach and be responsible for managing various business-related aspects such as selling future versions independently, handling international taxes, generating invoices, managing billing processes, and maintaining accounting records.
PayDevs simplifies the monetization process by providing a centralized platform that shields you from these tasks, allowing you to focus on developing and maintaining your packages without the added administrative overhead.
What are the benefits of using PayDevs for me as a User?
By using the packages on PayDevs, you directly contribute to the financial support of the developers who created them. Your payment helps incentivize developers to continue maintaining and improving their packages, fostering a sustainable ecosystem for open-source software.
How can I help?
If you are a maintainer, you can help by creating and publishing your own open-source packages on the PayDevs platform. As a user you can contribute by registering and paying the subscription fee to support the maintainers of the packages you use.
Furthermore, providing feedback and suggestions helps improve the PayDevs platform. Whether it's reporting bugs, suggesting new features, or sharing ideas for enhancements, your input can contribute to the ongoing development and refinement of the platform.
How can I stay updated on news and updates?
To stay updated on news and updates from PayDevs, you can subscribe to the PayDevs newsletter, follow PayDevs on social media platforms like Twitter, LinkedIn, and Facebook, regularly visit the PayDevs blog, and join the PayDevs Discord Server.
These channels provide regular updates, announcements, and relevant information to keep you informed about the latest developments within the PayDevs ecosystem.
How does PayDevs differ from NPM and other registries?
The key difference between PayDevs and other registries like NPM is that PayDevs focuses on helping maintainers to monetize their open-source packages. Unlike NPM, which primarily provides a free and open registry, PayDevs introduces a closed registry that allows developers to generate income from their work before abandoning their projects.
While PayDevs currently does not offer additional features such as enhanced support, quality control, or license monitoring for our paying users, we will address these features in the future.
Functionality related Questions
How do I get started with PayDevs?
To get started with PayDevs, you can follow these steps:
- Register: Visit the PayDevs website and register as a maintainer or user by providing the required information.
- Confirm Email: Confirm your email address for both the PayDevs website and the PayDevs NPM registry.
- Set Registry: Use the command-line package manager of your choice to set the PayDevs registry as your default registry by running the appropriate command:
- For npm:
npm set registry https://npm.paydevs.com/
- For yarn:
yarn config set registry https://npm.paydevs.com/
- For npm:
- Login: Use the npm command line package manager of your choice (e.g., npm, yarn, pnpm) to login with your PayDevs NPM registry username and password.
- For npm:
- For yarn:
- For npm:
By following these steps, you can start using the PayDevs NPM registry as you would use the open NPMjs.com registry.
How do I use the PayDevs registry?
After registration and email confirmation you can use the package manager of your choice to install, update or upgrade your dependencies as you normally would. The PayDevs registry will give you access to both closed packages on PayDevs registry and the open packages on NPM.
What are the main features of PayDevs?
PayDevs offers a hassle-free monetization solution for open-source maintainers. By publishing their libraries on PayDevs' closed registries, maintainers can earn income without dealing with individual customers, billing, or taxes. PayDevs handles the calculations and monthly payouts based on the number of users, freeing up maintainers to focus on coding and enhancing their libraries.
Users get a convenient and unified platform for accessing open-source libraries. Subscribing to PayDevs grants users access to the entire registry for a flat rate of $1 per month for private users or $150 for corporate users. This unified billing system simplifies access to multiple libraries and supports the sustainability of maintainers. Users can explore a wide range of libraries while contributing to the growth of the open-source community.
Furthermore, PayDevs offers several key technical features that enhance the experience for both maintainers and users:
Registry Infrastructure: PayDevs operates a reliable and scalable registry infrastructure that hosts the libraries and handles the distribution process. This infrastructure ensures efficient access to packages and seamless integration with popular package managers like npm, yarn, and pnpm.
Payment and Payout Systems: PayDevs provides a secure payment system for users, handling billing, invoicing, and payment processing. On the other side, PayDevs calculates the earnings for maintainers based on the number of users of their libraries and facilitates monthly payouts.
Package Management Integration: PayDevs seamlessly integrates with existing package management workflows. Maintainers can easily publish new versions of their libraries to PayDevs' registry using familiar package manager commands. Users can configure their package managers to access PayDevs' registry, enabling smooth installation and updates of packages.
By combining these technical features, PayDevs creates a comprehensive platform that simplifies monetization for maintainers while providing users with a convenient and sustainable way to access open-source libraries.
Do I have unrestricted access to the registry after registration?
Yes, after registering as a user on PayDevs, you will have unrestricted access to the registry. You can browse, search, and download packages from the registry as per your requirements. The registration process grants you access to both closed and open packages available on PayDevs and NPMjs.com.
How can I reset my password for the PayDevs Website?
To change your password for PayDevs website, navigate to your Account Page and locate the "User Data" section. Within that section, you will find the option to "Change Password" for your website account (not the registries).
Please ensure that you choose a strong and secure password to protect your account.
How can I reset my password for the PayDevs NPM registry?
To change your password for PayDevs NPM registry, navigate to your Account Page and locate the "NPM Registry Data" section. Within that section, you will find the option to "Change Password" for your account in PayDevs NPM registry.
Please ensure that you choose a strong and secure password to protect your account.
I did not get my confirmation email(s) - what can I do?
If you have not received your confirmation email(s), there are a few steps you can take:
Wait a few minutes: In some cases, it may take over 15 minutes for the confirmation email(s) to arrive. Give it a little time and check your inbox again.
Check your Spam or Junk folder: Sometimes, confirmation emails may be mistakenly filtered as spam. Check these folders in your email account to see if the confirmation email(s) landed there.
Check Email Filters: Remember to also check your email account's settings and any filters you may have set up that could be affecting the delivery of emails.
Verify your email address: Double-check that the email address you provided during registration is correct. If there was a typo or mistake in your email address, you may not receive the confirmation email. In this case, update your email address in your account settings and request a new confirmation email.
Contact customer support: If you have followed the above steps and still haven't received the confirmation email(s), reach out to PayDevs customer support(firstname.lastname@example.org) for further assistance. They will be able to help you resolve the issue and ensure you can access your account properly.
Please remember that you have to confirm your email addresses for the website and all registries. Currently, that means you have to confirm the email address for the PayDevs Website and the PayDevs NPM registry - even if they are the same.
Functionality for Maintainers
What is required for me to register as a maintainer?
Payouts and publication rights are granted exclusively for the packages that the maintainer has ownership rights to. To be eligible for payouts on PayDevs, maintainers must be registered as the maintainer of a package on npmjs.com.
In cases where multiple maintainers are involved, only one of them can register as the beneficiary to receive the payouts. If there is a need to distribute the payouts among maintainers and other contributors, it is recommended to utilize a fiscal host platform like Open Collective.
Where can I view the packages for which I have publication rights?
To get the list of packages where you have the publication right to please visit your Account Page and locate the "NPM Registry Data" section. Under "Authorized Packages" as well as "Package Accounting" you'll find the list of packages we've identified that you have access to.
If you think packages are missing, please refer to the
_npmUser.email field in the JSON data of the latest version on the NPM registry. For instance, if you wish to check the package
react, you need to have acces to and register using the email address
email@example.com (see: https://registry.npmjs.com/react/latest - as of writing this is version 18.2.0) for the PayDevs NPM registry.
How do I publish a package to PayDevs NPM registry?
To submit your own open-source project to PayDevs, you can follow these steps:
- Register as a maintainer on the PayDevs website.
- Upload your project to the PayDevs registry by publishing a new version of your package using the provided commands and the PayDevs registry URL. (NOTE: you only have the right to publish packages you are the maintainer of in NPMjs.com! WARN: If you want to publish new projects please first create the package in NPMjs.com (this helps avoid naming conflicts) )
npm publish --registry https://npm.paydevs.com/
- Inform your users about the new location of your package on PayDevs. You can use social media platforms, update your Readme.md file, or add comments to the version on the public registry to redirect users to PayDevs.
- Engage with the PayDevs community, promote your project, and encourage users to support your work through the PayDevs platform.
By following these steps, you can make your package available on the PayDevs NPM registry and benefit from its monetization features.
How can I un-publish my package from PayDevs?
To unpublish a package from PayDevs NPM, you can use the package manager of your choice and execute the unpublish command. For example, if you are using
npm, you can run the following command:
npm unpublish <package-name> --registry https://npm.paydevs.com/
It's important to note that once you unpublish a package, it will be removed from the PayDevs NPM registry, and users will no longer be able to access or download it. However, if the package is available on the public registry it will still be downloadable from there.
Where can I see my payout information?
The payout information is shown in your Account Page under "Payout Info".
The payout information for every of your packages can be found in the "Package Accounting" section of "Package Registry Data".
Functionality for Users
How can I access packages on the PayDevs registry?
To access packages on the PayDevs NPM registry, you have to register and then you have to configure your package manager to use the PayDevs registry by setting the registry URL to "https://npm.paydevs.com/". After setting the registry, you can use the usual package manager commands such as "npm install" or "yarn add" to install packages from the PayDevs registry.
Where can I see my payment information?
The payment information can be found in your your Account Page under "Payment Info".
Is it possible to make my library paid for companies only while remaining free for individual users?
No, we collect payments from all users to fairly compensate the maintainers. Providing free accounts could be easily misused by individuals or companies who are unwilling to contribute financially. We believe in ensuring a fair and sustainable model where everyone contributes to the continued development and maintenance of open-source projects.
What kind of payment system are you using?
PayDevs utilizes a payment system that allows users to make payments securely and conveniently. Currently, we've integrated Stripe and PayPal as payment and payout providers.
Will there be payouts in country X?
The availability of payouts and payments on PayDevs is dependent on the supported countries and payment providers. For the most up-to-date information regarding which countries are eligible for payouts and which payment methods are supported, please refer to the respective pages of our payment providers, such as Stripe and PayPal. These pages provide details about the countries where their services are available, ensuring transparency and clarity regarding the payment options on PayDevs.
How does PayDevs make money?
PayDevs deducts a 30% processing fee from the payments before distributing them to the maintainers.
This fee helps cover the costs of operating servers, employee salaries, legal expenses, handling international taxes, sponsorship of specific open-source projects, as well as the development and maintenance of new registries and package managers. Additionally, fees from payment processors and applicable taxes may also apply.
It's important to clarify that maintainers do not have to make any separate payments or incur additional costs for participating in the payouts.
Payouts for Maintainers
How much does PayDevs cost me as a Maintainer?
PayDevs does not charge any fees or costs to maintainers for using its services. As a maintainer, you can register on PayDevs and upload your open-source software packages to the PayDevs registry without incurring any expenses.
How does PayDevs measure package usage?
We measure package usage by tracking the number of unique users who access and download packages from our registry within a given month. Regardless of the frequency of package downloads by a user, whether it's once or a thousand times, they are counted as a single user. This approach ensures that each user is accurately accounted for in determining the usage and monetization of packages on our platform.
How much will I earn as a Maintainer of package X?
The earnings of a maintainer for a specific package on PayDevs depend on various factors, including the number of users who access and download the package from our registry. To calculate your potential earnings, we use a formula that takes into account the number of users (U) and their payments (P), as well as the dependencies (D) of those users on other packages. The exact amount you will earn as a maintainer of package X can be determined by applying this formula to the specific user and dependency metrics associated with your package.
For more detailed information on how payouts are calculated, you can refer to our Maintainer Introduction or reach out to our support team.
What about other maintainers and contributors?
The distribution of payouts among maintainers and contributors is determined by the receiving maintainer, as they are best positioned to assess the contributions and importance of each individual.
We recommend utilizing a fiscal host platform like Open Collective or using the funds to enhance the project itself, such as offering bounties for challenging bugs, developing new features, or investing in project-related improvements like acquiring a new logo.
Ultimately, the decision on how to allocate the earnings should be made collaboratively within the project team to ensure fairness and project growth.
What about developers from upstream dependencies?
If you're interested in providing financial support to the upstream dependencies used by your package(s), there are several options available. You can explore platforms like thanks.dev, stackaid.us, Open Collective, or Github Sponsors, which provide avenues for contributing to the projects that your packages rely on. These platforms enable you to express gratitude and offer financial support to the maintainers and contributors of those dependencies, fostering a sustainable ecosystem for open-source software development.
When should I withdraw funds from Stripe or PayPal?
For payouts via Stripe Connect you can "store" your funds for up to 90 days. Then you have to transfer the funds to your connected bank account, credit card, etc. More information can be found in the Stripe Connected Account Agreement.
What taxes do I have to pay?
As a maintainer, it is your responsibility to ensure compliance with tax regulations in the country where you reside or are subject to taxation.
When receiving payouts from PayDevs, you are liable for paying any applicable taxes on those earnings.
If you register a company as the recipient of the funds, the payout will include the applicable sales or value-added tax (VAT) and will be accompanied by an invoice.
Payments by Users
What's the difference between a private user and a corporate user?
The main difference between a private user and a corporate user on PayDevs lies in the type of account and the associated pricing. A private user refers to an individual developer who uses PayDevs for personal or non-commercial purposes. They pay a flat rate of $1 per month to access the entire registry.
On the other hand, a corporate user represents an employee in an organization or company that accesses PayDevs for their development needs. They are billed at a higher rate of $150 per month per user.
The distinction between private and corporate users allows PayDevs to collect and distribute more money from larger companies (e.g., Google) than smaller ones (i.e., an Startup with three developers).
What is the refund policy?
PayDevs currently does not have a refund policy in place. As a user, when you make a payment for accessing packages on the PayDevs registry, it is considered a non-refundable contribution. We encourage users to carefully consider their subscription before making a payment.
If you have any specific concerns or questions regarding payments or subscriptions, we recommend reaching out to the PayDevs support team at firstname.lastname@example.org. They will be able to provide further assistance and address any issues you may encounter.
How can I financially support a developer or project directly?
If you would like to provide additional financial support directly to a developer or project on PayDevs, you can consider various options such as thanks.dev, stackaid.us, Open Collective, or Github Sponsors.
How can I access PayDevs?
Once registered, you can access the PayDevs registry by directing your package manager (such as npm, yarn, or pnpm) to use the PayDevs registry the same way you use NPM today.
What are the system requirements to run this software?
PayDevs is not a software or tool that you run on your local system. It is a platform and service that operates as a registry for software libraries, enabling monetization for open-source maintainers.
As a user or maintainer, you can access PayDevs through your preferred package manager, such as npm, yarn, or pnpm, which have their own system requirements. These package managers can be installed on various operating systems, including Windows, macOS, and Linux.
To use PayDevs effectively, ensure that you have a compatible version of your chosen package manager installed and a stable internet connection to access the PayDevs registry and related services.
What are the programming languages supported by PayDevs?
Usage related Questions
How do I install packages from the PayDevs Registry?
To install open source software from the PayDevs Registry, you can follow these general steps:
Make sure you have the required package manager installed on your system, such as npm, yarn, or pnpm.
Set the registry URL for your package manager to the PayDevs Registry. For example, with npm, you can run the following command:
npm set registry https://npm.paydevs.com/
Authenticate with the PayDevs Registry if necessary. Depending on your package manager, you may need to log in using your PayDevs credentials. For npm, you can use the following command:
Once you've set the registry and logged in, you can install packages from the PayDevs Registry just like you would with NPM. For example, with npm, you can run:
npm install package-name
The package manager will fetch the package from the PayDevs Registry and install it in your project.
It's important to note that the specific installation process may vary depending on the package manager and the project's documentation. Make sure to consult the documentation of the open source software you're installing for any additional instructions or specific requirements.
Can I use npm, yarn, or pnpm?
Yes, you can use npm, yarn, or pnpm with PayDevs. PayDevs supports popular package managers like npm, yarn, and pnpm, allowing you to seamlessly integrate PayDevs into your existing development workflow.
Simply configure your package manager to use the PayDevs registry URL, and you'll be able to install and manage packages from PayDevs just like any other package repository.
Whether you prefer npm, yarn, or pnpm, PayDevs provides compatibility with these package managers to ensure a smooth experience for users.
Do I need to switch between registries to get all my dependencies?
No, you do not need to switch registries to get all your dependencies. PayDevs has an uplink to the public NPM registry, which means that packages available on the public registry are also accessible through the PayDevs Registry.
When you set the registry URL for your package manager to the PayDevs Registry, it will automatically fetch packages from the PayDevs Registry. If a package is not found in the PayDevs Registry, the package manager will seamlessly fall back to the public registry to retrieve the package.
This allows you to manage your dependencies and access both closed and open packages without the need to switch between registries. The PayDevs Registry provides a unified and convenient experience for accessing your dependencies while also supporting maintainers who choose to monetize their software libraries.
Do I have to publish separately on PayDevs or will it pick the latest version from NPM?
To make new or special versions of your package available on PayDevs, you need to publish it separately on the PayDevs registry using the specified commands and configuration.
PayDevs has an uplink to the public NPM registry, which means that all versions of packages available on the public registry are also accessible through the PayDevs Registry.
You have the option to choose different publishing strategies, such as beta-publishing, delay-publishing, or exclusive-publishing, as mentioned in the documentation. It is important to ensure that you publish new versions specifically to the PayDevs registry to make them accessible to users through PayDevs.
Workflow related Questions
How can I integrate PayDevs into my existing workflow?
Integrating PayDevs into your existing workflow is straightforward. As a maintainer, you simply need to publish your package to the PayDevs registry using the appropriate commands for your package manager (e.g., npm, yarn, pnpm). Once published, users can access your package by directing their package manager to the PayDevs registry.
If you have an existing CI/CD pipeline, you can configure it to use the PayDevs NPM registry by updating the registry URL or setting the appropriate environment variables and add the token for the PayDevs NPM registry. This ensures that your builds and deployments continue to work seamlessly with the packages from PayDevs.
What tools are available for publishing on PayDevs and/or NPM?
Currently, we don't offer additional tools to manage different publication strategies (e.g., to delay-publish packagaes). However, we plan to develop or support those projects in the future.
Can I use PayDevs alongside other package repositories?
Yes, you can use PayDevs NPM registry alongside other registries for publishing and downloading packages. You have multiple options to achieve this:
- You can directly target the desired registry by specifying it through the registry option of your package manager, for instance, using
npm publish --registry https://npm.paydevs.com/.
- Alternatively, you can switch between registries manually by configuring your package manager to use PayDevs registry with commands like
npm set registry https://npm.paydevs.com/.
- Furthermore, if you already have a private registry, you can redirect it to PayDevs NPM registry to establish a chain of registries, ensuring that your packages are accessible through multiple repositories (e.g.,
you --> company registry -> NPMhas to change to
you --> company registry --> PayDevs registry --> NPM).
PayDevs operates as a separate registry, and you have the flexibility to choose which packages you publish to PayDevs and which ones you publish to other repositories like the public NPM registry.
Are there any special requirements for using PayDevs with CI/CD systems?
Continuous Integration / Continuous Delivery systems typically require authentication to access private package registries. To use PayDevs NPM registry in your CI/CD workflow, ensure that you provide the necessary authentication credentials, such as an authentication token, during the package manager configuration step.
For example, in Vercel you can set the "NPM_RC" environment variable to set the NPM Registry. (see their description for Private Dependencies)
Privacy and Security Questions
Privacy related Questions
How is my personal data protected?
We only collect and retain the personal data necessary for providing our services and do not store unnecessary or excessive information.
Furthermore, we maintain the confidentiality of your personal data and do not share it with third parties without your consent, except as required by law or as necessary for the provision of our services.
- PayDevs collects only the necessary user data required for registration, publication rights, payment and payout processing. We strive to minimize the collection and retention of personal information.
- PayDevs collects information to improve its services and to provide users with improved or additional features and to identify bugs in our systems.
- PayDevs takes steps to protect user data from unauthorized access, use, and disclosure.
Who will see my payouts?
Currently, payout information is accessible only to the responsible maintainer. However, as part of our future plans, we are considering different approaches to provide greater visibility and transparency. This may include options for other associated maintainers to have insights into the monetization of their projects or the potential for sharing "open data" to recognize and promote well-founded projects. We are committed to continuously improving our platform and ensuring a fair and transparent system for all participants.
Who will see my payments?
Your payments are handled securely and privately by the payment providers you choose such as Stripe or PayPal. PayDevs respects your privacy and ensures that your payment information is treated with utmost confidentiality. Your payment details are only accessible to the necessary payment processors and relevant financial institutions involved in the payment process.
Maintainers will only have access to information regarding the number of private and corporate users utilizing their package, along with the aggregated total of payments received from those users. This data allows maintainers to gain insights into the user base and the overall financial support their package is receiving, without revealing specific details or identities of individual users.
Security related Questions
How do I report a security vulnerability?
Contact our security team and send an email to email@example.com with detailed information about the vulnerability. Include a clear description, steps to reproduce, and any supporting evidence or proof of concept.
How can I protect myself from security vulnerabilities?
To protect yourself from security vulnerabilities while using PayDevs and other online registries, we recommend the following best practices:
Keep software up to date: Ensure that you are using the latest versions of software packages, libraries, and dependencies. Stay informed about security updates and patches released by the maintainers.
Use strong and unique passwords: Choose strong, complex passwords for your PayDevs accounts. Avoid reusing passwords across different services. Consider using a password manager to securely generate and store your passwords.
Be cautious of phishing attempts: Be vigilant of phishing emails, messages, or websites that attempt to trick you into revealing sensitive information. Pay attention to email senders, URLs, and avoid clicking on suspicious links or providing personal information unless you are certain of the source's authenticity.
Regularly review your account activity: Keep an eye on your PayDevs account activity and review any unusual or suspicious actions. Report any unauthorized access or suspicious activity to the PayDevs support team.
Stay informed about security practices: Stay updated on security best practices and guidelines. Follow reputable security blogs, subscribe to security notifications, and educate yourself on common security threats and mitigation techniques.
By implementing these measures, you can enhance your security posture and minimize the risk of falling victim to security vulnerabilities.
Frequent User Questions
What guarantees do I have as a paying user for ongoing project development?
None. Guarantees for ongoing project development or maintenance depend on the individual maintainers of each package. PayDevs does not provide any guarantees or have control over the future development or maintenance of specific projects.
However, by financially supporting packages, you contribute to incentivizing maintainers to improve the quality of their project and continue developing new features. The availability of funding can help sustain the long-term maintenance and improvement of the packages.
Furthermore, if a package maintainer experiences a burnout or lacks the time to dedicate to the project due to other obligations, the alternative to not providing funding could be the eventual abandonment of the project.
Frequent Maintainer Questions
How can I switch from the public registry (e.g., NPM) to PayDevs?
To switch to PayDevs, you simply need to publish your package to the PayDevs NPM registry. However, there are different ways of handling the old versions on the public registry. Here are some options:
- Soft Switch: You publish a new minor version (e.g., 1.2) exclusively on PayDevs. Then you can decide if you want to:
- Make bug fixes available to the public: You continue maintaining the "old" minor version (e.g., 1.1) on the public registry to provide bug fixes, ensuring that users have access to stable and reliable software, while refraining from introducing new features.
- Make no public maintenance anymore: Transition to exclusive publishing on PayDevs by discontinuing updates on the public registry, ensuring that all new features and bug fixes are available exclusively through PayDevs.
- Fork premium lib: You create a new major version (e.g., 2.x) with additional features or quality aspects such as better security, performance, more documenttion, more convenient methods, etc. and publish it exclusively on PayDevs. Then you can decide if you want to:
- Continue developing and maintaining the "old" major version (e.g., 1.x) separately without including the features available in the "new" premium library.
- Deprecate the "old" major version and manage its maintenance in a similar way as described in the "Soft Switch" approach mentioned above.
- Delayed public publishing: Develop and maintain the public library as usual, but you publish new versions on PayDevs first and make them available on the public registry after a certain period of time, such as six months later.
When and what should I publish on PayDevs?
When you publish a new version to PayDevs, you have the flexibility to choose from different strategies for making it available.
- Dual-publish: You publish a new version of your package on the NPM registry and it automatically becomes available on the PayDevs registry due to PayDevs uplink to NPM. Please note that the incentive for users to pay for an PayDevs account will be completely voluntary and we are unlikely to measure many users of your package.
- Delay-publish: You release first on PayDevs registry and a few weeks or months later on the public registry. By offering early access to early adopters, you provide them with an incentive to support your package. Meanwhile, the broader user base will still have access to the package, but they will need to wait until the version is published on the public registry.
- Beta-publish: You publish "beta" versions of your package on the public registry, while reserving the final master versions exclusively for PayDevs. This approach may prompt users to question the availability of the master versions and potentially consider switching to PayDevs. Users who prioritize flawless libraries may opt to switch, potentially increasing your payout. Those who are not dependent on perfect libraries may continue to work with the public beta versions.
- Nofix-publish: You can choose to publish major and minor versions (e.g., "1.2.0") of your package on the public registry, while reserving all patches and bugfixes (e.g., "1.2.2") exclusively for PayDevs. This may lead users to question the availability of the patches and potentially consider switching to PayDevs. Users who are not dependent on flawless libraries may continue to work with the public version, while users seeking higher quality may opt to switch, potentially increasing your payout.
- Dual-License-publish: You can choose to publish an (A)GPL licensed version of your package on the public registry, while offering a separate MIT/Apache licensed version exclusively on PayDevs. This may intrigue users who prefer a non-GPL version and motivate them to subscribe to PayDevs. Users with commercial applications would probably need to pay via PayDevs to access the non-GPL version, without requiring much additional effort from you as a maintainer.
- Exclusive-publish: You exclusively publish your new versions on PayDevs and cease publishing on the public registry, maximizing the number of users who will convert and be measured, thereby maximizing your payout.
- Split-publish: You create a new branch or major version (e.g., v2.0) with additional features exclusively published on PayDevs, following an OpenCore model. This allows you to cater to users seeking the new version and its features, potentially converting them to pay for your package on PayDevs.
How do I notify users about the switch to PayDevs?
If you decide to publish a new version of your package to the PayDevs registry, it's likely that your users may not notice any new released updates on a new platform.
To ensure that your users are informed about the switch to PayDevs, there are several approaches you can consider. Here are some suggestions for notifying your users about the change:
Smooth Paths: Easy and polite ways to inform your users are (especially, if done several weeks beforehand):
- Readme.md: An effective approach is to add the new location to your Readme.md file. This ensures that readers of your GitHub and NPM page will see the updated information. Including the information in the Readme.md file helps to reach a wider audience and ensures that users have clear visibility of the change.
- Social Media or Newsletter: Another effective method is to post the new location on social media platforms (e.g., Twitter or Reddit), your community platform (e.g., Discord, Slack), or a newsletter. It's helpful to provide an explanation of why you have made the switch to PayDevs. This helps users understand the reasoning behind the change and ensures they are well-informed.
- Special Version Number: By adhering to the principles of Semantic Versioning, you can include a helpful comment in the version field on npmjs.org. For example, you can use annotations like
1.2.0-LAST-FREE-PACKAGEto indicate the switch to PayDevs or the final free version respectively. This approach allows developers to easily identify the interruption and read about the full story on your Blog, Readme.md, etc.
- Deprecate methods (esp. for Java): To effectively notify developers about the transition, you can consider publishing a final version that deprecates specific methods or even the entire package. By doing so, users will receive warnings in their integrated development environments (IDEs) regarding the deprecated methods, prompting them to take notice of the change. In this scenario, the alternative or new version available on PayDevs can serve as a suitable drop-in replacement, ensuring a smooth transition for users.
Uncomfortable Paths: These approaches are more noticeable and can potentially create some discomfort for your users, which may result in a minor outcry:
- Breaking the build: You can release a "farewell version" that intentionally disrupts the build process or renders the package non-functional, effectively notifying your users about the transition. This prompts users to either pin the last stable version or migrate to the new version on PayDevs.
- Public Beta, Hidden Master: You can adopt a strategy of publishing "beta" versions on the public registry (e.g., "1.2.2-beta"), while reserving the final master release (e.g., "1.2.2") exclusively for PayDevs. This approach may generate curiosity among your users who come across the beta versions and wonder about the final releases. It presents them with a choice to either work with the beta versions or transition to PayDevs for access to the stable releases.
Disruptive Paths: These techniques interfere more with the users' build process and may cause some discomfort among your users, potentially leading to negative reactions. It's important to consider the potential impact and response from your user community before employing these approaches:
- Interrupting versions: You can choose to continue publishing to the public registry, but intentionally make every second (or random) version non-functional or break the user's build process. This approach, similar to "Breaking the build," requires your users to pin and freeze a working version and periodically reassess the situation.
- License Change: One approach to get users to switch is to change the license of your package on the open registry, to a copyleft license such as GPL. This change may compel companies to switch, remove the package, or stick with the last non-GPL version. It's important to note that you cannot retroactively change the license for already published versions. Additionally, any license change requires the consent and agreement of all maintainers, developers, and contributors who have contributed to the package.
The choice of strategy and way to notify users about the switch to PayDevs ultimately lies with you (the maintainer), as you know your package and community best. It's important to recognize that if users choose not to pay for access, you don't have a contractual obligation to provide ongoing support or updates. While it may be challenging to lose some users in the process, it's better to make that difficult decision than to risk abandoning the project altogether.
Will my users not use an alternative library?
There is a possibility that some users may explore alternative libraries if they find the transition to a new registry inconvenient or if they prefer to not support maintainers.
However, it's important to communicate the reasons behind the registry change and emphasize the benefits that users will gain by continuing to use your package. Highlighting unique features, ongoing maintenance, and the value your package provides can help retain user trust and encourage them to stick with your project.
Additionally, as more packages migrate to PayDevs, it creates a network effect where the collective adoption of PayDevs by maintainers increases the incentive for users to join the platform. Users may realize that by embracing PayDevs, they gain access not only to your package but also to a growing ecosystem of packages that are exclusively available on PayDevs.
Can't the users just build the package themselves?
Yes, but they would loose semantic versioning and had to identify which state the project is in and select the branch and decide on a version number on their own. Very error prone, inconvenient, and probably not worth the $1 per month. Furthermore, the more packages switch to PayDevs the more packages they have to build on their own.
Can't other people not just publish the package on the open registry?
No, only the original maintainers who have access to the handle on the registry are able to publish the package on the open registry (e.g., npmjs.com) under its designated name.
Can't the users just fork and build the package under a new name?
Yes, technically users can access the source code and build the package themselves, but it requires them to work on the project independently or constantly rely on copying your code, which can be restricted by using an appropriate license.
Support and Troubleshooting Questions
What do I do if I encounter a problem or bug?
If you encounter a problem or bug while using the PayDevs website, our registries, or any specific package from the PayDevs registry, there are a few steps you can take:
Troubleshoot: First, try to identify the nature of the problem and check if it's specific to the website or package you're using or a more general issue. Look for error messages, consult the package's documentation, maybe try a AI such as ChatGPT, and search for existing bug reports or discussions related to your issue.
Report the Issue: If it's a problem with our websites please write us at firstname.lastname@example.org. If you believe you've encountered a bug or a problem that needs attention, it's helpful to report it to the maintainer of the package. You can typically do this by creating a new issue on the package's GitHub repository or following the maintainer's preferred method of bug reporting. Provide detailed information about the problem, steps to reproduce it, and any relevant error messages or logs.
Seek Community Support: If you're not sure whether the issue is specific to the package or if you need assistance in troubleshooting, consider reaching out to the community surrounding the package. This can be done through platforms like GitHub Discussions, StackOverflow, developer forums, or project-specific communication channels such as Discord or Slack. Other users and maintainers may be able to provide guidance or help in resolving the problem.
Contribute to the Solution: If you have the skills and knowledge to fix the issue yourself, consider contributing a fix or a suggested solution to the package's repository. Open-source projects often welcome community contributions, and your help in resolving the problem can benefit both the project and other users facing similar issues.
Remember that the process may vary slightly depending on the specific package and its development community. Always refer to the package's documentation, repository, or community channels for guidelines on issue reporting and troubleshooting.
How can I contact customer support?
To contact customer support for PayDevs, you can reach out at email@example.com. Feel free to describe your issue or inquiry in detail, and the support team will assist you with any questions or problems you may have.
We strive to provide prompt and helpful assistance to address your concerns and ensure a smooth user experience.
How can I report a security issue?
If you discover a security vulnerability or potential exploit, please immediately reach out to PayDevs through their dedicated security email address at firstname.lastname@example.org.
Please provide a detailed description of the vulnerability, including steps to reproduce it if possible, so that the PayDevs team can investigate and take appropriate measures to address the issue.
Your responsible disclosure is greatly appreciated and helps maintain the security of the PayDevs platform.
How can I suggest a feature for PayDevs?
If you have a suggestion for a new feature or improvement to the PayDevs platform, your feedback is valuable and welcomed.
You can share your feature suggestion by reaching out to PayDevs through email (email@example.com) or other official communication channels. You can consider posting your suggestion on the PayDevs Discord server, Reddit community, or Twitter.
The PayDevs team and community members can then provide feedback, discuss the feasibility, and consider the inclusion of your suggested feature in future updates of the PayDevs platform.