/dear-github

An open letter to GitHub from the maintainers of open source projects

Dear GitHub,

You have done so much to grow the open source community and make it really accessible to users. Somehow you have us chasing stars and filling up squares, improving the world’s software in the process.

However, many of us are frustrated. Those of us who run some of the most popular projects on GitHub feel completely ignored by you. We’ve gone through the only support channel that you have given us either to receive an empty response or even no response at all. We have no visibility into what has happened with our requests, or whether GitHub is working on them. Since our own work is usually done in the open and everyone has input into the process, it seems strange for us to be in the dark about one of our most important project dependencies.

The problems we most frequently have, and our best ideas for how to address them, are:

  • Issues are often filed missing crucial information like reproduction steps or version tested. We’d like issues to gain custom fields, along with a mechanism (such as a mandatory issue template, perhaps powered by a newissue.md in root as a likely-simple solution) for ensuring they are filled out in every issue.

  • Issues often accumulate content-less “+1” comments which serve only to spam the maintainers and any others subscribed to the issue. These +1s serve a valuable function in letting maintainers know how widespread an issue is, but their drawbacks are too great. We’d like issues to gain a first-class voting system, and for content-less comments like “+1” or “:+1:” or “me too” to trigger a warning and instructions on how to use the voting mechanism.

  • Issues and pull requests are often created without any adherence to the CONTRIBUTING.md contribution guidelines, due to the inconspicuous nature of the “guidelines for contributing” link when creating an issue and the fact that it often contains a lot of information that isn’t relevant to opening issues (such as information about hacking on the project). Maintainers should be able to configure a file in the repo (interpreted as GFM) to be displayed at the top of the new issue / PR page instead of that link. Maintainers can choose to inline content there and / or link to other pages as appropriate.

Hopefully none of these are a surprise to you as we’ve told you them before. We’ve waited years now for progress on any of them. If GitHub were open source itself, we would be implementing these things ourselves as a community—we’re very good at that!

Signed,

  • Adam Bradley (@adamdbradley), maintainer of Ionic
  • Addy Osmani (@addyosmani), maintainer of TodoMVC
  • Andreas Tolfsen (@andreastt), maintainer of Selenium
  • Andrew Sampson (@codeusa), maintainer of Borderless-Gaming
  • Ariya Hidayat (@ariya), maintainer of PhantomJS
  • Ashley Williams (@ashleygwilliams), Developer Community Manager, npm
  • Ben Briggs (@ben-eb), maintainer of PostCSS
  • Cătălin Mariș (@alrra), maintainer of HTML5 Boilerplate
  • Christopher Chedeau (@vjeux), maintainer of React Native
  • Dan Abramov (@gaearon), maintainer of Redux
  • Dave Methvin (@dmethvin), maintainer of jQuery
  • Daniel Rosenwasser (@drosenwasser), maintainer of TypeScript
  • Didier Baquier (@dbaq), maintainer of Cordova SMS
  • Domenic Denicola (@domenic), maintainer of WHATWG Standards
  • Dylan Schiemann (@dylans), maintainer of Dojo Toolkit
  • Feross Aboukhadijeh (@feross), maintainer of WebTorrent
  • Forbes Lindesay (@ForbesLindesay) maintainer of Pug (formerly known as Jade)
  • Henry Zhu (@hzoo), maintainer of JSCS
  • Jack Humbert (@jackhumbert), maintainer of QMK Firmware
  • James Kyle (@thejameskyle), maintainer of Babel
  • Jaydson Gomes (@jaydson), maintainer of HarmonicJS
  • Jesus Rodriguez (@foxandxss), maintainer of ui-bootstrap
  • John-David Dalton (@jdalton), maintainer of Lodash
  • Juriy Zaytsev (@kangax), maintainer of Fabric.js
  • Ken Wheeler (@kenwheeler), maintainer of Slick
  • Kent C. Dodds (@kentcdodds), maintainer of angular-formly
  • Mario Zechner (@badlogicgames), maintainer of libGDX
  • Matthew McClure (@mmcc), a maintainer of Video.js
  • Merrick Christensen (@iammerrick), maintainer of Squire.js
  • Nicholas C. Zakas (@nzakas), maintainer of ESLint
  • Nicolás Bevacqua (@bevacqua), maintainer of dragula
  • Nikita Putsenko (@nlutsenko), maintainer of Bolts.framework, Parse SDK
  • Pascal Hartig (@passy), maintainer of TodoMVC
  • Paul Miller (@paulmillr), maintainer of Brunch
  • Rashiq Ahmad (@rashiq), a maintainer of Kiwix
  • Ricardo Cabello (@mrdoob), maintainer of three.js
  • Ryan Cavanaugh (@searyanc), maintainer of TypeScript
  • Sam Saccone (@samccone), maintainer of Marionette
  • Simon Boudrias (@SBoudrias), maintainer of Yeoman
  • Sindre Sorhus (@sindresorhus), maintainer of Yeoman
  • Stefan Penner (@stefanpenner), a maintainer of Ember.js
  • Timothy Gu (@TimothyGu), a maintainer of Pug (formerly known as Jade)
  • Trek Glowacki (@trek), a maintainer of Ember.js
  • Sashko Stubailo (@stubailo), a maintainer of Meteor
  • Vlad Filippov (@vladikoff), a maintainer of Grunt
  • Graeme Yeates (@megawac), a maintainer of Backbone
  • Chris Rebert (@cvrebert), a maintainer of Bootstrap
  • Wesley Cho (@wesleycho), a maintainer of UI Bootstrap
  • Zeno Rocha (@zenorocha), maintainer of Clipboard.js

View other signatures

Are you the maintainer of a project on GitHub and want to sign as well? Please sign here