{"id":5387,"date":"2022-02-07T01:00:00","date_gmt":"2022-02-07T00:00:00","guid":{"rendered":"https:\/\/alvarotrigo.com\/epa\/open-source-dark-side\/"},"modified":"2024-02-05T20:23:32","modified_gmt":"2024-02-05T19:23:32","slug":"open-source-dark-side","status":"publish","type":"post","link":"https:\/\/alvarotrigo.com\/blog\/open-source-dark-side\/","title":{"rendered":"Open Source: The Dark Side [And how I escaped it]"},"content":{"rendered":"<p>First of all I want to clearly state that open source has changed my life, allowed me to quit my 9-5 job, and dedicate my time to the things I love.<\/p>\n<p>There are plenty of good things that come out of it and I still believe it still can bring so much good to the table for so many people.<\/p>\n<p>However, I&#8217;ll be focusing on the <strong>dark side of open source<\/strong> in this article. A side that not many people talk about but that web developers tend to suffer in silence.<\/p>\n<p>A side that only comes to light from time to time with news like <a href=\"https:\/\/www.theverge.com\/2022\/1\/9\/22874949\/developer-corrupts-open-source-libraries-projects-affected\" target=\"_blank\" rel=\"noopener nofollow\">the ones regarding Faker.js<\/a>. Where the world got surprised by a corrupted version of some widely-used open source libraries.<\/p>\n<h2 class=\"wp-block-heading\" id=\"the-current-open-source-landscape\">The current open source landscape<\/h2>\n<p>Have you ever stopped to look at the <a href=\"https:\/\/github.com\/search?l=JavaScript&amp;q=stars%3A%3E100&amp;s=stars&amp;type=Repositories\" target=\"_blank\" rel=\"noopener nofollow\">GitHub landscape<\/a>?<\/p>\n<p>It&#8217;s not unusual to see companies leading the top starred\/forked and used libraries out there.<\/p>\n<ul class=\"wp-block-list\">\n<li>Angular (Google)<\/li>\n<li>Font-Awesome (Twitter)<\/li>\n<li>React (Facebook)<\/li>\n<li>Bootstrap (Twitter)<\/li>\n<li>Tensorflow (Google)<\/li>\n<li>Flutter (Google)<\/li>\n<li>VsCode (Microsoft)<\/li>\n<\/ul>\n<p>Why is this? Can&#8217;t we all do open-source projects? What&#8217;s going on here?<\/p>\n<h2 class=\"wp-block-heading\" id=\"open-sourcing-the-code-is-just-the-beginning\">Open sourcing the code is just the beginning<\/h2>\n<p>\n\t\t\t<a href=\"#\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t<video width=\"680\" height=\"382\" muted autoplay loop playsinline>\n\t\t\t\t<source src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/open-sourcing-is-beginning.webm\" type=\"video\/webm\"\/>\n\t\t\t\t<source src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/open-sourcing-is-beginning.mp4\" type=\"video\/mp4\" \/>\n\t\t\t\tYour browser does not support the video tag.\n\t\t\t\t<\/source><\/source><\/video>\n\t\t\t<\/a>\n\t\t<\/p>\n<p>I myself sum more than 38K stars on my open-source projects at GitHub and I&#8217;ve suffered the open-source dilemma in some way or another.<\/p>\n<p>Here&#8217;s the thing: \ud83d\udc47<\/p>\n<p>We can all play at home on a rainy day and come up with a great idea we get motivated with.<\/p>\n<p>Then, with a bit of luck, we can gain some track and carry some people with us on the way. Gain some stars, become a trending dev a couple of days, and have a usable and decent project.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Related article:<\/strong> <a href=\"https:\/\/alvarotrigo.com\/blog\/open-source-web-browsers\/\">Best Open Source Web Browsers<\/a><\/p>\n<\/blockquote>\n<p>But then we realize it is not only about building it, adding it to your CV, and keeping going with your life as if nothing happened.<\/p>\n<h2 class=\"wp-block-heading\" id=\"the-maintenance-open-source-dilemma\">The maintenance open-source dilemma<\/h2>\n<p>\n\t\t\t<a href=\"#\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t<video width=\"680\" height=\"382\" muted autoplay loop playsinline>\n\t\t\t\t<source src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/maintenance-dilemma-open-source.webm\" type=\"video\/webm\"\/>\n\t\t\t\t<source src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/maintenance-dilemma-open-source.mp4\" type=\"video\/mp4\" \/>\n\t\t\t\tYour browser does not support the video tag.\n\t\t\t\t<\/source><\/source><\/video>\n\t\t\t<\/a>\n\t\t<\/p>\n<p>It is a constant flow of new bugs, issues, questions, enhancements\u2026 A never-ending task demanding constant monitoring.<\/p>\n<p>And of course, the more popular it gets, the more time it will require from you. (This is the trap!)<\/p>\n<p>That&#8217;s what I like to call: <em>&#8220;The maintenance dilemma&#8221;<\/em>.<\/p>\n<p>At some point in time, you\u2019ll have to make a decision:<\/p>\n<ul class=\"wp-block-list\">\n<li>1- You stop maintaining it.<\/li>\n<li>2- Or you keep doing it.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\" id=\"open-source-and-life-choices\">Open source and life choices<\/h2>\n<p>\n\t\t\t<a href=\"#\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t<video width=\"680\" height=\"382\" muted autoplay loop playsinline>\n\t\t\t\t<source src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/open-source-coding-dark-side.webm\" type=\"video\/webm\"\/>\n\t\t\t\t<source src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/open-source-coding-dark-side.mp4\" type=\"video\/mp4\" \/>\n\t\t\t\tYour browser does not support the video tag.\n\t\t\t\t<\/source><\/source><\/video>\n\t\t\t<\/a>\n\t\t<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" data-src=\"https:\/\/alvarotrigo.com\/blog\/assets\/imgs\/2022-02-07\/maintenance-issues-open-source.jpeg\" alt=\"Open and closed GitHub issues - Open Source Dark Side\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\"><\/figure>\n<p>If you keep doing it, you\u2019ll probably have to sacrifice your own free time.<\/p>\n<p>You\u2019ll have to choose between a barbecue with friends during the weekend or fixing bugs and closing issues by yourself at home.<\/p>\n<p>Between chilling out with a movie or adding a new &#8220;urgent&#8221; feature.<\/p>\n<p>And of course, do not even think about creating any other new open source projects with those great ideas you have in mind.<\/p>\n<p>You know you won\u2019t have time for it unless you decide sleeping is for losers, and at that point, your life is at risk.<\/p>\n<h2 class=\"wp-block-heading\" id=\"open-source-contributors-and-community\">Open source contributors and community<\/h2>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" data-src=\"https:\/\/alvarotrigo.com\/blog\/assets\/imgs\/2022-02-07\/open-source-community.jpeg\" alt=\"Open Source Community - The Dark Side\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\"><\/figure>\n<p>&#8220;But Alvaro, won\u2019t open-source projects get maintained and supported by the good people in the open-source community?  I\u2019m sure they won\u2019t just die!&#8221;<\/p>\n<p>Are you sure about that?<\/p>\n<p>I bet you&#8217;ve found tens of unmaintained or dead projects with no support and issues getting accumulated.<\/p>\n<p>Unless the project is quite promising and you decide to invest your life in it, the answer is &#8220;no&#8221;.<\/p>\n<p>The <em>&#8220;community&#8221;<\/em> tends to just use your <em>&#8220;free&#8221;<\/em> project and few are the one&#8217;s willing to help maintain and improve a project in the long term.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Related article:<\/strong> <a href=\"https:\/\/alvarotrigo.com\/blog\/open-source-database\/\">Best Open Sourced Databases<\/a><\/p>\n<\/blockquote>\n<p>In fact, sometimes the more they want to help the more of a burden they put on your shoulders.<\/p>\n<p>Now, on top of all you do, you&#8217;ll have to review their pull request, understand it and potentially get into a conversation to fix that issue\/feature you&#8217;ve never thought of.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Here&#8217;s a great article by <a href=\"https:\/\/twitter.com\/geerlingguy\" target=\"_blank\" rel=\"noopener nofollow\">@geerlingguy<\/a> explaining why <a href=\"https:\/\/jeffgeerling.com\/blog\/2016\/why-i-close-prs-oss-project-maintainer-notes\" target=\"_blank\" rel=\"noopener nofollow\">he won&#8217;t allow pull requests on his open-source projects<\/a><\/p>\n<\/blockquote>\n<h2 class=\"wp-block-heading\" id=\"is-open-source-actually-good%3F\">Is open-source actually good?<\/h2>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" data-src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/is-open-source-good.gif\" alt=\"Is open-source good?\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\"><\/figure>\n<p>So, is open source great after all?<\/p>\n<p>Sure! But especially if developers working on them don&#8217;t burn out, get crazy or abandon the project for good.<\/p>\n<p>Great open-source projects tend to be the ones maintained by developers who get paid to work on those and can maintain a balance in their lives.<\/p>\n<p>Those who can dedicate their full time and effort to improve them.<\/p>\n<p>That&#8217;s why I believe having a company behind a project tends to result in a better project and in some way gives you the security that the project won&#8217;t get unmaintained next week.<\/p>\n<h2 class=\"wp-block-heading\" id=\"how-not-to-burn-outbuilding-open-source-projects\">How not to burn outbuilding open source projects<\/h2>\n<p>\n\t\t\t<a href=\"#\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t<video width=\"680\" height=\"382\" muted autoplay loop playsinline>\n\t\t\t\t<source src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/open-source-burn-out-dark-side.webm\" type=\"video\/webm\"\/>\n\t\t\t\t<source src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/open-source-burn-out-dark-side.mp4\" type=\"video\/mp4\" \/>\n\t\t\t\tYour browser does not support the video tag.\n\t\t\t\t<\/source><\/source><\/video>\n\t\t\t<\/a>\n\t\t<\/p>\n<p>I&#8217;ve been working on my open source project for about 7 years and recently reached its record of 114K npm downloads in a week.<\/p>\n<p><em>&#8220;But Alvaro, how? Didn&#8217;t you burn out?&#8221;<\/em><\/p>\n<p>After 3 years of working on my side open source project for free along with my 9-5 developer job, I decided to try selling paid extensions.<\/p>\n<p>6 months after that I quit my job to dedicate full-time to it.<\/p>\n<p>Since then I noticed things become less of a burden for me.<\/p>\n<p>I happily answer emails, Stackoverflow questions, Github issues, Webflow forums, Youtube comments, Linkedin DMs, Facebook DMs, and Twitter.<\/p>\n<p>I don&#8217;t see it as a sacrifice anymore but as a great opportunity to work on what I like.<\/p>\n<p>Every feedback I get, every bug report, every possible enhancement someone suggests, is a potential improvement of my product. And now I&#8217;m able to see it this way instead of a time-eater monster.<\/p>\n<h2 class=\"wp-block-heading\" id=\"the-healthy-open-source-relationship\">The healthy open-source relationship<\/h2>\n<p>\n\t\t\t<a href=\"#\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t<video width=\"680\" height=\"382\" muted autoplay loop playsinline>\n\t\t\t\t<source src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/healthy-open-source-relationship.webm\" type=\"video\/webm\"\/>\n\t\t\t\t<source src=\"https:\/\/cdn.jsdelivr.net\/gh\/alvarotrigo\/blog-assets\/videos\/open-source-dark-side\/healthy-open-source-relationship.mp4\" type=\"video\/mp4\" \/>\n\t\t\t\tYour browser does not support the video tag.\n\t\t\t\t<\/source><\/source><\/video>\n\t\t\t<\/a>\n\t\t<\/p>\n<p>It is now when I can fully dedicate myself to it if I need\/want and I can create a better experience for developers by providing fast support, fixing bugs quicker, and giving them the security that the project won&#8217;t just die. Unlike probably 80% of the projects on Github.<\/p>\n<p>This is definitely a win-win in my case. It&#8217;s good for me AND it&#8217;s good for developers who want to use it.<\/p>\n<p>I&#8217;ve been lucky to find this equilibrium, but not everybody can.<\/p>\n<p>When this doesn&#8217;t happen, <strong>the dark side<\/strong> might end up turning down some projects on the way.<\/p>\n<h2 class=\"wp-block-heading\" id=\"other-open-source-dark-stories\">Other open source dark stories<\/h2>\n<p>This is my story and my point of view, but there are many others you can listen to with much bigger open source projects.<\/p>\n<p>Here&#8217;s a great talk from <a href=\"https:\/\/twitter.com\/fat\" target=\"_blank\" rel=\"noopener nofollow\">@fat<\/a>, from Bootstrap and Bower, explaining why he feels guilty creating open-source projects and the cost of it:<\/p>\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\">\n<div class=\"wp-block-embed__wrapper\">\n<iframe title=\"dotJS 2012 - Fat - What Is Open Source &amp; Why Do I Feel So Guilty?\" width=\"500\" height=\"281\" data-src=\"https:\/\/www.youtube.com\/embed\/UIDb6VBO9os?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe>\n<\/div>\n<\/figure>\n\n<p>And on a related note, <a href=\"https:\/\/vimeo.com\/53373707\" target=\"_blank\" rel=\"noopener nofollow\">here&#8217;s another talk by Desandro<\/a> (the creator of Masonry, Flickity and other JS libraries). The name of the talk: &#8221; Open-source ain&#8217;t free&#8221;.<\/p>\n<h2 class=\"wp-block-heading\" id=\"final-thoughts-on-open-source\">Final thoughts on open source<\/h2>\n<p>I personally believe it&#8217;s up to us to define what open source looks like and what&#8217;s relationship we want to develop with it.<\/p>\n<p>Each of us will have to decide how to deal with it, and there&#8217;s no good or bad decision. But if you are burning out, then stop and reflect.<\/p>\n<p>And remember: <em>\u201cIf Once You Start Down The Dark Path, Forever Will It Dominates Your Destiny.\u201d<\/em><\/p>\n<p>I&#8217;m Alvaro Trigo, <a href=\"https:\/\/twitter.com\/imac2\" target=\"_blank\" rel=\"noopener nofollow\">@imac2<\/a> on Twitter. Creator of <a href=\"https:\/\/alvarotrigo.com\/fullPage\/\">fullpage.js<\/a>.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>The article was originally posted <a href=\"https:\/\/twitter.com\/imac2\/status\/1363884529149218820\" target=\"_blank\" rel=\"noopener nofollow\">on Twitter<\/a>.<\/p>\n<\/blockquote>\n<h2 class=\"wp-block-heading\" id=\"related-articles\">Related articles<\/h2>\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/alvarotrigo.com\/blog\/linux-web-browsers\/\">Top web browsers for Linux<\/a><\/li>\n<li><a href=\"https:\/\/alvarotrigo.com\/blog\/web3-browsers\/\">Best Web3 Browsers 2023<\/a><\/li>\n<li><a href=\"https:\/\/alvarotrigo.com\/blog\/web-browsers-ubuntu\/\">Top Web browsers for Ubuntu<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Open source is not always beautiful. Open source can have a dark side and I&#8217;m here to tell you how it looks and how to fix it!<\/p>\n","protected":false},"author":1,"featured_media":5386,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[105],"tags":[16,17],"class_list":["post-5387","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-developing","tag-design","tag-web"],"acf":[],"_links":{"self":[{"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/posts\/5387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/comments?post=5387"}],"version-history":[{"count":5,"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/posts\/5387\/revisions"}],"predecessor-version":[{"id":8919,"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/posts\/5387\/revisions\/8919"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/media\/5386"}],"wp:attachment":[{"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/media?parent=5387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/categories?post=5387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alvarotrigo.com\/blog\/wp-json\/wp\/v2\/tags?post=5387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}