Development

GitHub Review 2025: Why 100 Million Developers Cannot Be Wrong (Mostly)

AM
Arjun Mehta
March 15, 2025
16 min read
HEAD feature/new-auth hotfix/security-patch init Version control is not about storing code. It is about telling the story of how it was built.

Before I say a single word about GitHub, I want to talk about the problem it actually solves. Because I think a lot of people -- especially junior developers -- think of GitHub as "the place where code lives on the internet" without really understanding WHY it matters, and that misunderstanding shapes how they use the platform.

Version control is not about backing up your code. That is the least interesting thing it does. Version control is about being able to say "this exact combination of code was what shipped on Tuesday," and then also being able to say "and here is every single change that happened between Tuesday's release and Thursday's release, who made each change, why they made it, and what it was supposed to fix." It is about being able to run two experiments simultaneously on different branches without them interfering with each other, and then deciding which one to keep. It is about letting five developers work on the same codebase at the same time without overwriting each other's work. It is about being able to undo a change from three weeks ago without losing everything that happened since.

Git, the version control system created by Linus Torvalds in 2005, solved this problem at the technical level. GitHub, founded in 2008, solved it at the human level. Git gives you the mechanics of branching, merging, and history. GitHub gives you the SOCIAL layer -- the pull requests where humans discuss changes, the issues where they track work, the profiles where they build reputations, the organizations where they collaborate. That social layer is what made GitHub the center of the software development world, and it is the reason I am still using it in 2025 despite genuine competition from GitLab and others. The code could live anywhere. The community only lives on GitHub.

The Microsoft Acquisition Actually Worked Out

I need to address this because I was one of the people who was nervous when Microsoft bought GitHub for 7.5 billion dollars in 2018. The open-source community had a complicated relationship with Microsoft at the time -- memories of "embrace, extend, extinguish" were still fresh, and there was real fear that GitHub would be enshittified into a Microsoft marketing vehicle. I seriously considered migrating my projects to GitLab that summer.

I am glad I did not. Under Microsoft, GitHub made private repos free for everyone. GitHub Actions launched and became genuinely excellent. Copilot was invented. Codespaces brought cloud development to the masses. Security features like Dependabot and code scanning were dramatically expanded. The free tier got more generous, not less. The platform got faster, not bloated. Whatever you think about Microsoft as a company, their stewardship of GitHub has been, by any reasonable measure, a success. The platform is better in 2025 than it was in 2018 in virtually every dimension. GitLab folks might disagree with me here and they have valid points about self-hosting and integrated DevOps, but purely as a product, GitHub has improved impressively.

Pull Requests Are Where Software Actually Gets Built

The pull request is GitHub's most important invention. Full stop. It is the workflow that turned code review from a painful, asynchronous, email-based chore into a structured conversation that happens naturally as part of building software. And GitHub's implementation is still the gold standard -- Bitbucket's feels clunky by comparison, and while GitLab's merge requests are functionally equivalent, the UX is not as polished.

Here is what a pull request looks like on my team. A developer creates a branch, makes changes, pushes, and opens a PR. GitHub shows the diff with syntax highlighting and word-level change detection. The developer writes a description explaining WHAT changed and WHY. GitHub Actions automatically kicks off our CI pipeline -- tests, linting, type checking, build. Dependabot checks if any new dependencies have known vulnerabilities. Code scanning runs static analysis. If everything passes, green checkmarks appear. I get a review notification, leave inline comments on specific lines of code, suggest concrete edits the developer can accept with one click, and either approve or request changes. The developer addresses the feedback, pushes new commits, and the cycle repeats until everyone is satisfied. Then we merge.

A Pull Request Is Not Just Code -- It Is a Conversation Branch + Code Open PR + Describe CI Checks Pass/Fail Review + Discuss Merge to main This workflow alone is why most teams choose GitHub. Everything else is gravy.

That entire flow is tightly integrated in a way that no combination of separate tools can match. The PR shows CI status, security scan results, deployment previews, and reviewer comments all in one place. Context switching is minimal. Nothing falls through the cracks. When I briefly used Bitbucket at a previous job, the PR experience felt like GitHub from three years ago -- functional but missing the polish. GitLab's merge requests are closer to parity, but the UI is busier and less intuitive, especially for developers coming from GitHub.

GitHub Actions Changed How I Think About CI/CD

Before Actions, my team used CircleCI. It was fine. But every time I wanted to change our build pipeline, I had to context-switch to the CircleCI dashboard, navigate a completely separate UI, and maintain YAML configs that lived... I honestly was never sure where they lived. Were they in the repo? In CircleCI's dashboard? Both? The cognitive overhead of maintaining a separate CI/CD platform was constant low-grade friction.

Actions eliminated that friction by putting the automation configuration inside the repository as YAML workflow files. Your CI/CD lives next to your code. It is version-controlled. It is reviewed in pull requests. It is searchable. And the trigger system is wonderfully flexible -- you can trigger workflows on pushes, PR events, issue comments, schedule (cron), manual dispatch, or even webhook events from external services. The marketplace has thousands of community-created actions for everything from deploying to AWS to posting Slack notifications to running database migrations.

The free tier gives you 2,000 minutes per month on Linux runners, which is more than enough for most small to medium projects. Our team's React app with a TypeScript check, ESLint, Vitest tests, and a production build runs in about 3 minutes per PR, so 2,000 minutes translates to roughly 660 PR builds per month on the free plan. That is a lot of PRs. GitLab gives you 400 free CI/CD minutes per month on its free tier, which is significantly less generous -- and one of the reasons I have not seriously considered switching. Jenkins gives you unlimited minutes because you are running it on your own infrastructure, but then you are also MAINTAINING it on your own infrastructure, which is a full-time job that nobody wants.

Copilot: I Was a Skeptic. I Am a Convert.

When GitHub Copilot first launched, I rolled my eyes. AI-generated code sounded like a recipe for subtle bugs and security vulnerabilities, and the early demos felt like parlor tricks -- autocompleting FizzBuzz is not the same as writing production code. I refused to try it for almost a year.

Then a colleague showed me what it actually does in a real development workflow, and I started my free trial that same afternoon. Here is what changed my mind: Copilot does not just autocomplete code. It understands context. When I am writing a function and type a comment like "// validate that the email format is correct and the domain is not disposable," Copilot generates a surprisingly accurate implementation. When I am writing tests, it infers what I am testing from the function signature and generates reasonable test cases. When I am writing documentation, it generates JSDoc comments that are actually correct. The chat interface lets me ask "refactor this function to use async/await instead of .then() chains" and get a working rewrite.

The integration depth with GitHub is what makes Copilot better than competing AI coding tools. Copilot for Pull Requests generates descriptions and summaries. Copilot in the CLI helps me construct complex git commands I can never remember (interactive rebase syntax, anyone?). Copilot Workspace lets you go from an issue description to implementation plan to code changes across multiple files, with human review at every step. No other AI coding tool has this level of platform integration, and it is a genuine competitive advantage.

Is it worth ten dollars a month? For me, absolutely. I estimate it saves me 30-60 minutes per day on boilerplate, documentation, and test writing. For a junior developer, I think the value is even higher because it fills knowledge gaps in real time. The business tier at nineteen dollars per user per month adds organizational policy controls and IP indemnity, which matters for companies worried about licensing issues. The enterprise tier at thirty-nine dollars adds internal codebase fine-tuning. Between Actions and Copilot, you could argue that GitHub is actually two products worth paying for that happen to also come with excellent code hosting.

Security: This Is Where GitHub Got Serious

GitHub's security features have expanded massively and they now form a legitimate reason to choose the platform. Dependabot watches your dependencies and creates PRs to update vulnerable packages, often before you even know a vulnerability was disclosed. It is free on all plans and it has caught genuinely dangerous vulnerabilities in my projects -- a lodash prototype pollution issue, a compromised npm package, an OpenSSL vulnerability in a Docker base image. Each time, Dependabot opened a PR with the fix before I saw the security advisory.

Code scanning powered by CodeQL runs static analysis that finds actual security bugs, not just style violations. Secret scanning detects API keys and credentials that were accidentally committed across over 200 provider patterns. I once committed an AWS access key to a private repo (terrible, I know) and GitHub flagged it within seconds. The secret was revoked by AWS before I even saw the alert because GitHub and AWS have a partnership for automatic revocation. That feature alone has probably prevented thousands of breaches.

The catch is that GitHub Advanced Security -- which includes the most powerful features like custom CodeQL queries, dependency review in PRs, and security overview dashboards -- is only available on the Enterprise plan at twenty-one dollars per user per month. That is a big jump from the four-dollar Team plan, and it means mid-sized companies that need security features beyond Dependabot and basic scanning face an expensive upgrade. GitLab includes security scanning (SAST, DAST, dependency scanning, container scanning) on its Ultimate tier, which is more expensive per user but includes it as part of a broader package rather than a separate upsell.

The Codespaces Question

GitHub Codespaces gives you a cloud development environment -- essentially VS Code in the browser backed by a server in the cloud -- that launches from any repository. For open-source contributions, this is incredible. You find a project, click "Create codespace," and in under a minute you have a fully configured development environment with all dependencies installed, editor extensions loaded, and the project ready to run. No local setup. No "works on my machine" problems. No fighting with dependency versions.

For day-to-day development on my own projects, I still prefer local VS Code. The latency of typing in a browser-based editor, even on a good connection, is noticeable. My fingers can tell the difference between local keystroke response and remote keystroke response, and after an hour of coding in Codespaces, the slight delay wears on me. Some developers on my team use Codespaces full-time and love it, especially those with less powerful laptops. It is a personal preference thing.

The free tier gives you 120 core-hours per month, which is enough for roughly 60 hours on a 2-core machine. That is plenty for open-source contributions and occasional use, but not enough for full-time development if you are on a team without a paid plan.

Project Management: The One Area Where GitHub Still Trails

GitHub Issues and Projects have improved a LOT. Custom fields, multiple views (board, table, roadmap), automation, and iteration tracking make GitHub Projects a usable project management tool. For our team's workflow -- which is pretty simple sprint-based development -- it works. But compared to Linear or Jira, it is basic. No dependencies between issues (without workarounds). No burndown charts. Limited reporting. No way to estimate story points natively.

For teams that do not need heavy project management -- and that includes most small to mid-sized development teams, honestly -- GitHub Projects is enough. For teams coming from Jira with established processes around sprints, epics, capacity planning, and release management, GitHub Projects will feel like a downgrade. The advantage of keeping everything in GitHub is that issues and PRs are natively connected -- you close an issue by merging a PR, and that connection happens automatically. In Jira + GitHub, that connection requires an integration plugin and it frequently breaks.

Where GitHub Leads vs Where It Lags BEST IN CLASS Pull Requests / Code Review Community & Open Source Network Copilot AI Integration / Actions CI/CD NEEDS WORK Project Management (vs Jira/Linear) Built-in Security Scanning (vs GitLab) Self-Hosting Options (vs GitLab CE)

What It Costs and Whether That Is Fair

The free plan gives you unlimited public and private repos, 2,000 Actions minutes per month, 500 MB of Packages storage, community support, and Dependabot. For an individual developer, this is remarkably generous. I have side projects that have lived on the free plan for years without hitting a single limit.

The Team plan at four dollars per user per month adds protected branches, code owners, draft PRs, and 3,000 Actions minutes. For small professional teams, this is the sweet spot. The jump to Enterprise at twenty-one dollars per user per month is steep and mostly justified by Advanced Security, SAML SSO, audit logging, and GitHub Enterprise Server for self-hosting. If your organization needs SSO -- and most companies above 50 people do -- you are locked into the Enterprise tier regardless of whether you need the other features. That pricing gate feels aggressive.

Adding Copilot on top makes the per-user cost significant. A developer on Enterprise with Copilot Business costs forty dollars per month. For a 100-person engineering team, that is forty-eight thousand dollars per year just for GitHub + Copilot. Is it worth it? Probably, when you consider that the alternatives (GitLab Ultimate at ninety-nine dollars per user plus a separate AI coding tool) cost even more. But it is a meaningful line item that engineering managers need to justify.

What I Think About Going Forward

GitHub's biggest strength is its network effect, and that is also the thing that should make you slightly uncomfortable. Over 100 million developers. 400 million repositories. The default home for virtually all major open-source projects. When a single company -- Microsoft -- controls the platform where most of the world's open-source code lives, that concentration of power deserves scrutiny. GitHub has been a good steward so far. The question is whether that will always be the case, and there is no guarantee.

The emergence of GitLab, Sourcehut, Gitea, Forgejo, and Codeberg as alternatives is healthy for the ecosystem. I think every developer should at least understand that alternatives exist and periodically evaluate whether GitHub is still the right choice for their specific needs. For most people, it will be. The community, the tooling, the integrations, and the pace of innovation make GitHub hard to leave. But it is good to know the door is there.

The AI integration trajectory is what excites me most. Copilot Workspace -- going from an issue description to a working implementation with AI assistance -- is a glimpse of what software development will look like in the next few years. If GitHub continues to lead in AI-assisted development while keeping its free tier generous and its platform open, it will maintain its dominance. If it starts gating basic AI features behind expensive tiers or making decisions that prioritize Microsoft's interests over the developer community's, the alternatives will be ready.

For now, GitHub is where I build software. It is where my open-source contributions live. It is where I hire developers based on their contribution history. It is where I go to learn from other people's code. It has earned that position not just through features but through the community it enabled. That community is GitHub's real product, and it is the thing that no competitor has figured out how to replicate.

Strengths

  • Largest developer community with unmatched network effects for open source
  • Pull request workflow is the best in the industry for code review
  • Actions provides excellent CI/CD with a generous free tier
  • Copilot integration is deeper and more useful than any competing AI coding tool
  • Security features -- Dependabot, code scanning, secret detection -- are genuinely valuable
  • Free tier is remarkably generous with unlimited private repos
  • Codespaces eliminates "works on my machine" for open-source contributions

Weaknesses

  • Project management is basic compared to Linear and Jira
  • Enterprise pricing gate at twenty-one dollars per user is steep for SSO alone
  • Advanced security features locked behind the most expensive tier
  • Concentration of open-source infrastructure under Microsoft raises long-term concerns
  • Copilot costs extra on top of platform subscription
  • Occasional outages affect global developer workflows and CI pipelines

Score: 4.8 / 5

GitHub earns a 4.8 because it is the most complete, most polished, and most connected code collaboration platform available. The pull request workflow is the best in the industry. Actions is a genuinely excellent CI/CD solution. Copilot's integration depth makes it more valuable here than any standalone AI tool. The security features protect code at scale. And the community -- 100 million developers building, sharing, and collaborating -- is an asset that cannot be replicated by any competitor regardless of feature parity.

It misses the perfect score because of the Enterprise pricing jump that gates important features like SSO and Advanced Security behind a significant paywall, because project management still trails dedicated tools, and because concentrating this much of the world's code infrastructure under one corporate umbrella is a legitimate long-term risk that the industry should take seriously. But on the merits of the product as it exists in 2025, GitHub is the default for a reason. It earned it.

Comments (3)