/ opinions

Pros of Using GitHub Organizations

I consider myself an average developer. I'm not at the point where I can say I've started something that has thousands of stars on github. I can't say that hundreds of people have contributed to my projects.

But that's okay!

Since starting my github in 2010, I've come a long way. Part of that may be due to my time on github being 28% of my life. Crazy to think about... at first I had no idea what git even was. I was probably one of those people who thought git = github and vice versa. When I was 15~ I made a mobile blogging platform that had over a thousand downloads which felt like a million to me back then. It was the worst PHP code ever written, and that's saying a lot. I was so excited about my creation that all I wanted was for more and more people to use it and help me build it.

The point is...

Fast forward 6 years and here I am today. I have a github organization called Legitcode. Since starting it about two years ago, friends and random people have contributed to projects on it. It's nothing impressive, maybe a few hundred stars, few thousands monthly npm installs, but it has taught me many things. I'm going to briefly cover why I think you should move your projects to an organization, and a few downsides I see to doing so.

Orgs Give Credibility

We've all done it. Needing a quick solution, we search google, "Laravel Geocoder," we come across one package, and another one that is almost identical. They both have similar star counts and recent commits. Which do you choose? Without knowing it, you may choose the one done under an organization. A good friend of mine told he regularly does this.

To me, organizations give a level of credibility to a project. I worry about a lone developer supporting, fixing, or finding bugs. A team, however, gives me some assurances that surely between all of them it will be found.

Problems with Personal Repos

Too Inclusive

When releasing something, it's normal to want many people to adopt your package. If you're lucky enough to release something that others want to use and contribute to, you may be stunting its growth by not moving to an organization. The reason is, other developers think that you may not be open to changes and additions. Does the author want this feature? Is this person very protective and picky? If the answer is yes, contributing to a library like this is going to be difficult. This can be especially true on a new repo with no outside contributions. People may assume it's not PR-friendly.

Are contributions even wanted?

By keeping something under your personal name, you are telling everyone else that you're the owner. Those who stumble on it may assume you don't want others working on it. I know that this is not always the case, but on some level, I always wonder why a big project isn't in some sort of group.

Slow Moving

Here's the scenario: I love you're amazing charting library. I need to be able to hide labels and only show them on hovering over a chart. Sadly, your library doesn't support it, so I send in a PR, and move on to something else. Why? Because nobody wants to switch to using a fork, only to switch back (hopefully) an hour later to the main author's release. This right here is a big problem. I have seen many personal repos be incredibly slow to accept even the most minute pull requests.

If your project has had incredible amounts of contributions, it may not even be your project anymore. I personally feel that if others are doing much of the work, you should share ownership. It helps let everyone know that you're equal in the open source community.

Benefits for Personal Repos

Building a Portfolio

It's much easier for recruiters and anyone looking into your work history to see your personal github repos. Anyone viewing the project will see your name right at the top of the page. Building a personal brand is a big deal. Some would say that your name is worth more than anything. After all, it can be all about who you know when trying to find a job.

More Control

Allowing other people to become admins on your project is usually a given when switching to an organization. This could lead to someone accepting a pull request that you do not agree with. Yes, you can simply not grant anyone else access, but if you are a busy person with many things on your plate, you'll want to let those you trust accept and review pull requests.

That's it

A personal repo doesn't have any other benefits. When it's yours, you are in control, and everyone sees your name. The difference here is you have a little less recognition than on an organization, but this can be fixed. Using something like all-contributors can be added to your readme to show off anyone who has helped.

General Tips

Whichever way you decide to go, there's a few things you can do to get others on your side. The moment I see a pull request that is helpful, code is good, and the user is eager, I will add the user as a contributor to the repo. This let's them know they're on the team. Obviously this cannot be done at a large scale, but can be helpful when getting the ball rolling. There's zero downside to this as well. You can protect your branches and require pull request reviews. They can't do anything without another person approving, so chances are slim for anything to go wrong.

Conclusion

Personal repos are not bad and I cannot generalize a whole community. These are just the things that pop into my mind when I first view a github project. I'd love to know if you've ever had similar feelings when you see a personal project vs one under an organization, please let me know in the comments or on Twitter :)

TL;DR: Organizations show that the community is the owner, not the first person to do a git push. Does this matter? Does anyone think about it before contributing? Maybe, maybe not, that's for everyone to decide on their own!