Your friends and coworkers are all raving about GitHub, and you want in on the action. You start wondering, is GitHub free?
You’re smart enough to research on your own, so you head over to GitHub and see what it is and how much it costs to get started.
You first notice that many plans come with various differences. A lot of the terminology is weird and hard to understand.
You’re overwhelmed by the choices and end up not knowing if you really need to pay at all. Is the free tier enough for you?
That’s where this guide comes in. Let’s go.
GitHub is a distributed service that allows for remote Git repositories. This enables you to host your repositories in an environment that allows others to contribute to your project in parallel. Don’t know how to use Git? Take a look at our Getting Started with Git guide so that you’re setup for success and ready to contribute to projects with confidence.
Comparing Plan Prices
There have been some changes in the way GitHub charges for its plans in 2020. Previously, the free plan only offered public repositories. Now you have the ability to create unlimited public and private repositories on the free plan.
Update 4/16/2020: GitHub now offers all core features for free. Teams can now collaborate with unlimited repositories and unlimited collaborators on the free tier. The Team plan has also been reduced from $9 / user / month to $4 / user / month.
Let’s take a look at what you get for each pricing tier. Some word choice for feature descriptions isn’t intuitive, so we’ll do our best to decipher for you.
FreeBasic for teams and devs
- Unlimited public/private repositories
- 2,000 Action mins/mo
- 500MB packages storage
- Automated security updates
- Community Support
- Everything in Free, plus
- Required reviewers
- 3,000 Action mins/mo
- 2GB packages storage
- Code owners
EnterpriseSecurity and compliance
- Everything in Team, plus
- SAML SSO
- 50,000 Action mins/mo
- 50GB packages storage
- Advanced auditing
Seems straightforward, right? But what’s up with some features with zero explanations or links to explanations? Let’s break it down.
… help you automate your software development workflows in the same place you store code and collaborate on pull requests and issues. You can write individual tasks, called actions, and combine them to create a custom workflow. Workflows are custom automated processes that you can set up in your repository to build, test, package, release, or deploy any code project on GitHub.GitHub Help Page
In other words, it’s a CI/CD workflow builder. Each plan allows you a certain amount of time that GitHub’s engine can process your workflow. Note that this only applies to private repositories. Public repositories can have infinite Action minutes.
If you have no plans to use CI/CD features then these minutes are irrelevant.
You can enable this feature on your repository if you think you need some extra protection. When GitHub publishes a security vulnerability notice, you have the option to create an automated pull request with a fix for whatever that vulnerability is.
For example, if you have a dependency on a library that has a vulnerability, you’ll be able to merge in changes automatically for a fix to that library.
If you don’t have any dependencies (rare, but can happen), then this feature won’t be important for you.
This feature allows you to store project dependencies and compile/build outputs for distribution to the community. For example, your project might compile to an exe with dll dependencies and other resources (like images and sounds). Your CD process might create a zip of the outputs and store that artifact to the packages store.
Public repositories receive this feature for free with no documented limit. Private repositories are stuck with a size dictated by the payment plan or by going over and paying per the rules of “overages.”
If you don’t plan to use GitHub as your artifact store then you can ignore this storage limit.
By defining individuals and teams in a CODEOWNERS file, you can dictate who is responsible for the repository. According to the documentation, it seems that the only benefit of this feature is to automatically tag people to review code as part of the pull request process.
For enterprise teams, this might be a more useful feature. It’s common to have repositories with many owners (on a team) to step in during code review time. This distributes the code review load so that completing the pull request process is more efficient.
This feature is only available for public repositories on the Free plan. Paid plans enable you to start tracking code owners in private repositories as well.
… allows repository maintainers to privately discuss and fix a security vulnerability in a project. After collaborating on a fix, repository maintainers can publish the security advisory to publicly disclose the security vulnerability to the project’s community.GitHub Help Page
This is another case of a useful team and enterprise feature. Let’s say you are on the team that maintains a critical library like openssl. When you find a released vulnerability in a public version of code, you would be scrambling to get it fixed and communicate that out to the community. It’s that second part which has been notoriously difficult in the past.
With the Advisories feature, you can collaborate internally to get it fixed and then notify all downstream consumers of your library that you’ve identified, discussed, and fixed a vulnerability that needs to be patched.
For compliance purposes, auditing is critical depending on the industry of your enterprise. Some of the most common logs are: pushed changes, pulled changes, authentication, repository setting changes, branch updates, user administration tasks, and much more.
Comparing Plan Features
Plan comparisons can be overwhelming. The advanced terminology, weird business naming conventions, and sometimes unclear documentation can make the process of choosing a paid plan more confusing than it needs to be. Let’s try to break it down where the differences matter.
|Packages||500 MB||2 GB||50 GB||50 GB|
|Draft pull requests||Public||All||All||All|
|Private collaborators||Unlimited||Org size||Org size||Org size|
|SAML & LDAP||No||No||Yes||Yes|
One interesting plan offered by GitHub is aimed exclusively at nonprofit organizations and charities. Officially titled as “GitHub for Good,” it states that those entities can’t be affiliated with governments, academia, businesses, political campaigns, or religions.
The details of what exactly you get under this plan aren’t documented well. We were only able to find language indicating that you will get unlimited private repositories and unlimited users.
GitHub Can Be Used for More Than Code
Remember that GitHub isn’t just for code. While it is true that the primary users of GitHub are managing code repositories and software products, the fact remains that GitHub is just a remote repository of files managed by Git under the hood.
If you’re a nonprofit with text documentation, images, videos, or very simple static web pages, you can still use Git (and GitHub) to collaborate on those materials.
This gives you the freedom and safety of backups, version control, collaboration, and distribution of those materials. If you want feedback or corrections from the public at large, you can even begin taking pull requests from external users.
As we noted in our software developer guide, source control and code collaboration is a hot topic that many developers wish had more focus during school. When students step out into the real world to join the software industry, it is critical that they understand how to collaborate on a distributed product. With the bundle of educational tools, GitHub has built an amazing amount of tools for students and teachers alike.
Get the Student Developer Pack
As a student, you’re eligible for a lot of free and discounted stuff that you might not even know about. GitHub’s Student Developer Pack is one of those little known perks. Just look at that list. There are 100+ discounts and free products at your disposal.
Start by grabbing a free domain, free SSL certificates, discounted hosting, free development environments, and a lot more. And we’re not talking about low-level products here. You’re eligible for Azure credits, JetBrains tools, AWS education, and Heroku discounts.
Become a Campus Expert
If you’re over 18 and a student in good standing at a college or university, you can apply to become a GitHub Campus Expert. It seems to be a program that GitHub is using to train evangelists. This gives students free skills and gives GitHub free advertising and on boarding for generations to come.
GitHub will provide training for public speaking, technical writing, leadership, and software development using GitHub and related tools.
If you want to learn more about GitHub and like helping other students, it might make sense to apply for the program to build your own campus reputation.
Join the Campus Program
Similar to the Enterprise plans, the GitHub Campus Program offers schools and their faculty with free access to GitHub Enterprise Server and GitHub Enterprise cloud products. That’s a great deal for every department and faculty member.
You’ll also get free training regarding Git and GitHub through the Campus Advisors program (see below), streamlined access to onboard your students to the Developer Packs, and access to new features and GitHub swag. We aren’t sure what kind of swag you get but free stuff doesn’t hurt.
While it does seem like a nice program, there are some restrictions that schools should keep in mind. You can’t focus on just one department at your university. Instead, your university must offer and support access to every department even if those departments don’t care or don’t want access. Another requirement is to elect a dedicated administrator to pass the training program offered by GitHub.
Start a GitHub Classroom
For a smaller and more focused version of the Campus Program, teachers can participate in the GitHub Classroom program. This is a great program because it encourages teachers to engage their students like they’re already in the software industry.
Most computer science and software engineering classes try to teach students as if they exist in complete isolation with no tools at their disposal. Yes, teaching the fundamentals is necessary. No, forcing students to suffer endlessly with subpar tooling is not beneficial.
This program allows teachers to track student progress by creating shared repositories, tracking commits against milestones, and showing off finished projects. A dashboard allows teachers to track student progress and unique links are accessible for students to submit to standard university management platforms.
Become a Campus Advisor
Through the GitHub Campus Advisor program, teachers can get training about how to use Git and GitHub in the classroom. Like the Campus Expert Program, this gives GitHub free advertising and onboarding in exchange for critical skills training to teachers.
You’ll get official support, swag every semester, workshop kits, and special invites to education events.
It’s simple to get started. Once you’ve joined the program, you can work your way through modules regarding topics such as general Git skills, network activity, and student workflows.
Teachers can often get stuck in the same routine each semester. Technology is always changing, student’s expectations and needs are always shifting, and the tools available to teachers are always improving. Why not jump on board and try something new?