I maintain a project called hacker-laws. It is a collection of laws, theories, patterns and so on.

The repo is here:


It was pointed out that the MIT License is not appropriate, as it is for code. I think the correct license should be:


I have three related questions:

  1. Is the CC-BY-NC license correct in this case? I want people to use the content freely, but ideally attribute the source, and not use it commercially
  2. Can I publish the content in a physical book one day and sell it?
  3. If I do decide to publish it, how can I best ensure that contributors understand it may be published, and make sure they are comfortable and consent? I would list all contributors but want to make sure all is done openly and fairly.

The idea of publishing into a book will likely never happen, but I'd like to ensure there is at least the possibility!

Thanks in advance!

  • Why do you want to use the Creative Commons "NC" (non-commercial license) yet allow people to publish the content in a book and sell it? To me this implies commercial use, even if you sell each copy for a nominal fee.
    – Brandin
    Dec 5, 2019 at 7:14

2 Answers 2


The CC BY-NC license is most likely not the license you want if you are accepting contributions from others and you are considering publishing the work also as a physical book.

As soon as there are multiple copyright holders to a work, all of them are bound by the license terms under which the contributions were made (which is typically the same license under which the work is offered). This means that you also wouldn't be able to exploit your project commercially and selling physical books will most likely be considered commercial use (unless you can make it very clear that you don't get any financial gain out of it).

As you were also considering the MIT license, the CC BY license closest to the MIT license in terms of permissions and obligations. Another possibility would be the CC BY-SA license, which requires derived works to be under the same license

  • Many thanks, it seems CC BY-SA is the most appropriate. Appreciate the advice!
    – Dave Kerr
    Dec 6, 2019 at 3:50

You can use the CC-BY-NC license and sell your content, but you missed the chance.

In order to make sure you are the only person to sell your content, you must state that all contributions are donations to the project before accepting pull requests. You can add a statement like this to the contribution guidelines:

Please feel free to improve the quality of this content by submitting pull requests. A merged PR will make you appear in the contributor list. It will, however, be considered a donation of your work to this project. You are still bound by the conditions of the license, meaning that you are not considered an author or owner of the content once it has been merged in.

The statement above comes from The JavaScript Way contribution guidelines.

You can learn more about making money from opensource books from this article: How to launch your own open source book that’s popular and profitable. I hope this answer can help you when you start a new project.

Another method: asking contributors to provide an agreement (CLA) to transfer the copyright to you. This method was suggested by Yihui Xie.

  • 1
    I am not sure if that statement from The JavaScript Way actually holds up in court, especially for contributors who cannot legally waive their right to be considered an author of their own works. It can be seen as a transfer of copyrights, but even that sometimes needs an explicit acknowledgement from the person giving up the rights. Oct 8, 2020 at 17:22
  • I think the problem is also related to morals, not just laws. If peoples wanting to contribute to an opensource book disagree with the guidelines, they had better not send their pull requests.
    – Cyrus Yip
    Oct 9, 2020 at 8:19
  • I think no contributor really does something to make money from others' opensource books. Say that a person sends a pull request to The JavaScript Way. Later on, the person claims that he is co-author of the book and prints the book to sell. Perhaps the person will be criticized by opensource communities because of that. No one likes being criticized. What's more, reputation is important in opensource communities. If a person does something wrong in an opensource community, others will know and even remember it.
    – Cyrus Yip
    Oct 9, 2020 at 8:48
  • I add another method(using Contributor License Agreements) to this answer. I think that method can help authors to avoid legal issues.
    – Cyrus Yip
    Oct 10, 2020 at 12:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.