logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

free-software-free-infrastructure.md (8908B)


  1. ---
  2. title: It is important for free software to use free software infrastructure
  3. date: 2022-03-29
  4. ---
  5. *Disclaimer: I founded a project and a company that focuses on free software
  6. infrastructure. I will elect not to name them in this post, and will only
  7. recommend solutions I do not have a vested interest in.*
  8. Free and open source software (FOSS) projects need infrastructure. Somewhere to
  9. host the code, to facilitate things like code review, end-user support, bug
  10. tracking, marketing, and so on. A common example of this is the "forge"
  11. platform: infrastructure which pitches itself as a one-stop shop for many of the
  12. needs of FOSS projects in one place, such as code hosting and review, bug
  13. tracking, discussions, and so on. Many projects will also reach for additional
  14. platforms to provide other kinds of infrastructure: chat rooms, forums, social
  15. media, and more.
  16. Many of these needs have <abbr title="Projects which do not use a license compatible with the Free Software guidelines, i.e. non-FOSS.">non-free</abbr>,
  17. proprietary solutions available. GitHub is a popular proprietary code forge, and
  18. GitLab, the biggest competitor to GitHub, is partially non-free. Some projects
  19. use Discord or Slack for chat rooms, Reddit as a forum, or Twitter and Facebook
  20. for marketing, outreach, and support; all of these are non-free. In my opinion,
  21. relying on these platforms to provide infrastructure for your FOSS project is a
  22. mistake.
  23. When your FOSS project chooses to use a non-free platform, you give it an
  24. official vote of confidence on behalf of your project. In other words, you lend
  25. some of your project's credibility and legitimacy to the platforms you choose.
  26. These platforms are defined by network effects, and your choice is an investment
  27. in that network. I would question this investment in and of itself, and the
  28. wisdom of offering these platforms your confidence and legitimacy, but there's a
  29. more concerning consequence of this choice as well: an investment in a non-free
  30. platform is also a *divestment* from the free alternatives.
  31. Again, network effects are the main driver of success in these platforms. Large
  32. commercial platforms have a lot of advantages in this respect: large marketing
  33. budgets, lots of capital from investors, and the incumbency advantage. The
  34. larger the incumbent platform, the more difficult the task of competing with it
  35. becomes. Contrast this with free software platforms, which generally don't have
  36. the benefit of large amounts of investment or big marketing budgets. Moreover,
  37. businesses are significantly more likely to play dirty to secure their foothold
  38. than free software projects are. If your own FOSS projects compete with
  39. proprietary commercial options, you should be very familiar with these
  40. challenges.
  41. FOSS platforms are at an inherent disadvantage, and your faith in them, or lack
  42. thereof, carries a lot of weight. GitHub won't lose sleep if your project
  43. chooses to host its code somewhere else, but choosing [Codeberg], for example,
  44. means a lot to them. In effect, your choice matters disproportionately to the
  45. free platforms: choosing GitHub hurts Codeberg much more than choosing Codeberg
  46. hurts GitHub. And why should a project choose to use your offering over the
  47. proprietary alternatives if you won't extend them the same courtesy? FOSS
  48. solidarity is important for uplifting the ecosystem as a whole.
  49. [Codeberg]: https://codeberg.org
  50. However, for some projects, what ultimately matters to them has little to do
  51. with the benefit of the ecosystem as a whole, but instead considers only the
  52. potential for their project's individual growth and popularity. Many projects
  53. choose to prioritize access to the established audience that large commercial
  54. platforms provide, in order to maximize their odds of becoming popular, and
  55. enjoying some of the knock-on effects of that popularity, such as more
  56. contributions.[^popular] Such projects would prefer to exacerbate the network
  57. effects problem rather than risk some of its social capital on a less popular
  58. platform.
  59. [^popular]: I should note here that I'm uncritically presenting "popularity" as a good thing for a project to have, which aligns, I think, with the thought processes of the projects I'm describing. However, the truth is not quite so. Perhaps a topic for another day's blog post.
  60. To me, this is selfish and unethical outright, though you may have different
  61. ethical standards. Unfortunately, arguments against most commercial platforms
  62. for any reasonable ethical standard are available in abundance, but they tend to
  63. be easily overcome by confirmation bias. Someone who may loudly object to the
  64. practices of the US Immigration and Customs Enforcement agency, for example, can
  65. quickly find some justification to continue using GitHub despite their
  66. collaboration with them. If this example isn't to your tastes, there are many
  67. examples for each of many platforms. For projects that don't want to move, these
  68. are usually swept under the rug.[^1]
  69. [^1]: A particularly egregious example is the [Ethical Source](https://ethicalsource.dev/) movement. I disagree with them on many grounds, but pertinent to this article is the fact that they publish (non-free) software licenses which advocate for anti-capitalist sentiments like worker rights and ethical judgements such as non-violence, doing so on... GitHub and Twitter, private for-profit platforms with a myriad of published ethical violations.
  70. But, to be clear, I am not asking you to use inferior platforms for
  71. philosophical or altruistic reasons. These are only one of many factors which
  72. should contribute to your decision-making, and aptitude is another valid factor
  73. to consider. That said, many FOSS platforms are, at least in my opinion,
  74. functionally superior to their proprietary competition. Whether their
  75. differences are better for your project's unique needs is something I must leave
  76. for you to research on your own, but most projects don't bother with the
  77. research at all. Rest assured: these projects are not ghettos living in the
  78. shadow of their larger commercial counterparts, but exciting platforms in their
  79. own right which offer many unique advantages.
  80. What's more, if you need them to do something differently to better suit your
  81. project's needs, you are empowered to improve them. You're not subservient to
  82. the whims of the commercial entity who is responsible for the code, waiting for
  83. them to prioritize the issue or even to care about it in the first place. If a
  84. problem is important to you, that's enough for you to get it fixed on a FOSS
  85. platform. You might not think you have the time or expertise to do so (though
  86. maybe one of your collaborators does), but more importantly, this establishes a
  87. mentality of collective ownership and responsibility over all free software as a
  88. whole&nbsp;&mdash; popularize this philosophy and it could just as easily be you
  89. receiving a contribution in a similar manner tomorrow.
  90. In short, choosing non-free platforms is an individualist, short-term investment
  91. which prioritizes your project's apparent access to popularity over the success
  92. of the FOSS ecosystem as a whole. On the other hand, choosing FOSS platforms is
  93. a collectivist investment in the long-term success of the FOSS ecosystem as a
  94. whole, driving its overall growth. Your choice matters. You can help the FOSS
  95. ecosystem by choosing FOSS platforms, or you can hurt the FOSS ecosystem by
  96. choosing non-free platforms. Please choose carefully.
  97. Here are some recommendations for free software tools that facilitate common
  98. needs for free software projects:
  99. - Code forges: [Codeberg], [Gitea]\*, [Gerrit]\*, [GitLab]†
  100. - Instant messaging: [Matrix], [Libera Chat](https://libera.chat)[^2]
  101. - Publishing: [Codeberg pages], [Write.as], [PeerTube]
  102. - Social media: [Mastodon], [Lemmy]
  103. - Mailing lists: [FreeLists], [public-inbox]\*, [Mailman]\*
  104. \* Self-hosted only \
  105. † Partially non-free, recommended only if no other solutions are suitable
  106. [Gitlab]: https://gitlab.com
  107. [Gitea]: https://gitea.io/en-us
  108. [Gerrit]: https://www.gerritcodereview.com
  109. [Mailman]: http://www.list.org
  110. [FreeLists]: https://www.freelists.org
  111. [Mastodon]: https://joinmastodon.org
  112. [Lemmy]: https://join-lemmy.org/
  113. [PeerTube]: https://joinpeertube.org/
  114. [Write.as]: https://write.as/
  115. [Codeberg pages]: https://codeberg.page/
  116. [Matrix]: https://matrix.org/
  117. [public-inbox]: https://public-inbox.org/public-inbox-overview.html
  118. [^2]: I have made the arguments from this post to Libera staff many times, but they still rely on GitHub, Twitter, and Facebook. They were one of the motivations for writing this post. I hope that they have a change of heart someday.
  119. P.S. If your project is already established on non-free platforms, the easiest
  120. time to revisit this choice is right now. It will only ever get more difficult
  121. to move as your project grows and gets further established on proprietary
  122. platforms. Please consider moving sooner rather than later.