惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
Recorded Future
Recorded Future
Microsoft Azure Blog
Microsoft Azure Blog
M
MIT News - Artificial intelligence
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
Simon Willison's Weblog
Simon Willison's Weblog
爱范儿
爱范儿
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Visual Studio Blog
H
Help Net Security
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog RSS Feed
美团技术团队
G
GRAHAM CLULEY
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
腾讯CDC
G
Google Developers Blog
Cyberwarzone
Cyberwarzone
T
Tenable Blog
A
About on SuperTechFans
WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
L
Lohrmann on Cybersecurity
C
Cisco Blogs
K
Kaspersky official blog
Recent Announcements
Recent Announcements
Vercel News
Vercel News
C
Cybersecurity and Infrastructure Security Agency CISA
有赞技术团队
有赞技术团队
P
Privacy & Cybersecurity Law Blog
Hugging Face - Blog
Hugging Face - Blog
S
Schneier on Security
Apple Machine Learning Research
Apple Machine Learning Research
Cloudbric
Cloudbric
Scott Helme
Scott Helme
Google Online Security Blog
Google Online Security Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Attack and Defense Labs
Attack and Defense Labs
Google DeepMind News
Google DeepMind News
N
News and Events Feed by Topic
D
Docker
U
Unit 42
S
Security @ Cisco Blogs

Graphite blog

Introducing Code Tours: a new way to review Introducing Cursor Cloud Agents in Graphite Building the future of software development with Cursor Reimagining the PR Page: Designing for speed and focus Graphite changelog [11-20-2025] Graphite changelog [11-04-2025] Graphite changelog [10-16-2025] The future of engineering is collaborative (and already here) Meet Graphite Agent: the next evolution of AI code review Introducing frozen branches: A safer way to build on your teammates’ work Graphite changelog [09-17-2025] How we sped up code search for Graphite Chat Introducing Graphite Chat AI is writing code—here's why it also needs to review that code How I got Claude to write code I could actually ship How we built the first stack-aware merge queue (and why it matters) How we organize our monorepo to ship fast Graphite brings stacking to Tower Code review tooling: Should you build or buy? Making AI code review available to everyone Introducing: The new Graphite + Linear integration Graphite raises $52M and launches Diamond to reimagine code review for the age of AI Why AI will never replace human code review How stacked PRs unblock distributed development teams Graphite is going to Developer Week 2025 Beating the end of year code freeze How Graphite’s eng team ships code remarkably fast Why we chose Anthropic's Claude to power Graphite Reviewer AI code generation will remain fragmented How we redesigned Graphite's landing page in-house Introducing Graphite Reviewer: your AI code review companion How AI code review reduces review cycles to improve developer productivity What if you could get instant feedback on your code? The new developer toolchain Not Rocket Science - How Bors and Google’s TAP inspired modern merge queues Graphite's State of code review 2024 How Google migrated billions of lines of code from Perforce to Piper Going from 0 to 1: How to write better unit tests when there are none Speed up your merges: Parallel CI is now generally available for teams using Graphite’s merge queue Down for less than four minutes a month: how AWS deploys code BitKeeper, Linux, and licensing disputes: How Linus wrote Git in 14 days Graphite is now free for startups and open source projects Launch week wrap-up (May 2024) Reduce CI costs for Buildkite and GitHub Actions Cheaper CI & faster merging with batching How Google does code review The technical learning curve at a startup is gentler than you might think Graphite will now automatically rebase your partially-merged stacks Multiple engineers can now seamlessly collaborate on the same stack of PRs Do you ever outgrow GitHub? From the 80's to 2024 - how CI tests were invented and optimized Graphite changelog [4/10/2024] 🎺 Graphite changelog [4/25/2024] 🐸 How Stack Overflow replaced Experts Exchange How GitHub monopolized code hosting Graphite changelog [3/27/2024] 🤝 The core principles of building a good AI feature Onboarding roulette: deleting our employee accounts daily Graphite changelog [3/13/2024] 🚁 Why Facebook doesn’t use Git How to recreate the Phabricator code review workflow Types of code reviews: Improve performance, velocity, and quality What's the best GitHub pull request merge strategy? Improving team velocity through better pull request practices Moving fast breaks things: the importance of a staging environment Building trust as a software engineer Keeping code simple: moving fast by avoiding over-engineering What's better than GitHub pull request filters? The Graphite pull request inbox 7 Best Phabricator alternatives for PR stacking + code review [2024] Accurate eng estimations: predicting and negotiating the future Tracking and understanding GitHub PR stats: A step-by-step guide 8 pull request best practices for optimal engineering What’s next for Graphite Graphite Q1 Launch week: Stacking with the tools you love Graphite Q1 Launch week: Making stacking seamless Accelerating code review The Mom Test How to use stacked PRs to unblock your entire team Graphite Q1 launch week 2024 The practical and philosophical problems with AI code review Empirically sup code review best practices Call site attribution: how to pinpoint rogue SQL queries throttling your performance Every engineer should understand git reflog Post mortem: we took 124 seconds from you, here's 378 back Your GitHub pull request workflow is slowing everyone down Optimizing CI/CD workflows for trunk-based development Why we use AWS instead of Vercel to host our Next.js app How large pull requests slow down development 3 key lessons in application server optimization Trunk-based development: why you should stop using feature branches Git was built in 5 days Why large companies and fast-moving startups are banning merge commits How long should your CI take? Experimenting with AI code review CRA to AppRouter in 5 Steps: A case study with Graphite Graphite Changelog [10/18/2023] The comprehensive guide to writing the best PR title of all time How 10,000 Developers All Contribute to the same Repo
Phabricator vs GitHub vs Graphite: How do they stack up?
Tyler Hakes · 2024-02-23 · via Graphite blog

Today, many modern software development teams are spread across different time zones, cultures, and technical expertise. As a result, creating, maintaining, and tracking changes to your codebase becomes a crucial part of any development process.

GitHub, of course, revolutionized repository management for many software teams.

Phabricator was spun out from the development team at Meta (Facebook). It introduced many teams to new ways to plan, track, and manage software development.

Graphite offers much of the same functionality as Phabricator, with the added benefit of direct integration with GitHub. No VCS switching required.

Which option is best for your team?

For the purposes of this review, we’ll consider three options:

  1. Graphite

  2. Vanilla GitHub

  3. Phabricator

Let’s look at GitHub’s functionality versus improvements introduced by Phabricator. And how using Graphite with GitHub can offer the benefits of both options.

Setup and repository hosting

First let’s take a look at how to set up Phabricator.

The good news: Phabricator is self-hosted.

The bad news: Phabricator is self-hosted.

Phabricator is a LAMP (Linux, Apache, MySQL, PHP) application that needs to be installed on a machine running Linux or some similar operating system. This means you’ll need some basic system admin skills, and also need to install a web server like Apache, a functional MySQL database, and a PHP installation.

Unfortunately, that’s just the start. The system itself is also quite complex.

As one HackerNews user put it, “There are a lot of moving parts, and the initial setup requires 60 different unique databases. It has a handful of background daemon-like processes that occasionally get wedged.”

Since Phabricator is no longer being actively maintained, you’ll have to fork your own copy of the repo and set it up yourself. There’s no official support.

GitHub and Graphite, on the other hand, are managed services, with reduced overhead and complexity.

Nevertheless, once they’re set up, both GitHub and Phabricator’s Diffusion have similar repository management functionality. Aside from the main difference—GitHub is cloud-hosted—both tools offer the main features you’d expect:

  • Version control system support

  • Branching and merging functionality

  • Access and permissions settings

  • Continuous integration and continuous deployment (CI/CD) integration

Graphite integrates directly on top of GitHub, and does not affect the repository hosting or setup aspects of GitHub.

Commits and pull requests

Here, we start to see the differences emerge between these options.

GitHub (and, by extension, Graphite) uses the Git version control system (VCS) at its core.

Phabricator, on the other hand, can sit atop any of the three most popular version control systems: Git, Mercurial, or SVN (Subversion).

If you have a strong preference for something other than Git, Phabricator is a viable alternative to GitHub.

If you’re happy with using Git in either case, then the differences between using Graphite, vanilla GitHub, and Phabricator become more about their differences in supported workflows.

In GitHub, you can create an issue to communicate bugs, new feature requests, and security threats with your code collaborators. The tool also allows you to clone or fork a repository, work on it without affecting the original codebase, and create a pull request (PR) that notifies the codebase maintainers of proposed code changes. If the maintainers review the PR and accept the changes, GitHub ensures that the new changes get merged with the original codebase.

Traditionally, you might create a single feature branch that contains all of the code changes necessary to push a new feature.

Once you submit a pull request for the branch, it goes through code review and is ultimately merged back into main branch. While this process is happening, further development that depends on these code changes is delayed.

In other words, the GitHub workflow handles pull requests, commits, and merges serially. One at a time.

This creates problems for many teams:

This is one of the main things that Phabricator attempted to solve. Phabricator tackled this by introducing a different workflow known as stacking (AKA stacked pull requests, stacked diffs, or stacked changes).

Stacking is a workflow designed to unblock developers.

As Gergely Orosz explains:

“Stacking refers to breaking down a pull request (PR) for a feature into several, smaller PRs which all depend on each other – hence the term ‘stacked’. It might sound counterintuitive, but this workflow is incredibly efficient by making it easier to review and modify PRs – or ‘diffs’ as we called them at Uber.”

Instead of following the traditional pull request model, you can think of stacking like creating a separate branch for each pull request (Phabricator refers to a pull request as a “differential revision”). And instead of creating pull requests containing multiple commits, you can instead stack multiple, smaller PRs. This means fewer commits per pull request and easier code review.

Technically, you could follow this same workflow using vanilla GitHub, but it presents a few challenges that can make it difficult and messy:

  1. GitHub doesn’t offer a way to “stack” the PRs. They’re not linked in any kind of logical way that would allow you to easily track how and when they contain dependent commits (or the order in which they need to be merged).

  2. Upstream changes have to be handled manually. If you identify a bug or issue with a previous PR, you have to manually apply those code changes to any downstream PRs with git rebase.

In other words: technically, it’s doable. Realistically, it’s not a fun workflow.

Cue: Graphite.

Graphite is built to facilitate the stacking workflow for GitHub users. This means that both the web app and CLI offer features to stack PRs, manage a series of PRs, and perform automatic rebasing upon any changes.

So, if you want the benefits of the Phabricator workflow and stacked PRs, you can simply use Graphite on top of GitHub to get the best of both solutions.

The benefit here is that you can ship faster, and code reviews become significantly easier without sacrificing the creature comforts of GitHub and making the leap to Phabricator.

Code review and merging

GitHub, Phabricator, and Graphite all offer their own code review tools.

In the case of GitHub, code review follows a familiar workflow. Once a pull request is created, reviewers can be assigned. The pull request will enter the queue. After the code review takes place, there may be multiple rounds of feedback and comments. Ultimately, the pull request is finalized and then merged into main.

The Phabricator review workflow is quite similar to the GitHub PR workflow. An author changes the code and requests a review from specific reviewers. Reviewers then get notified, inspect changes, and either accept them or propose further changes. Once all the reviewer conditions are satisfied, the code gets merged upstream to the central codebase.

One key difference is that Phabricator and Graphite make code reviews non-blocking for developers.

The stacked PR workflow also makes code reviews smaller and faster.

There’s generally just one commit per pull request. More reasonably sized PRs mean that code reviewers can more easily and reliably identify issues with commits and easily understand the changes being introduced before approving and merging.

Graphite provides a similar experience to Phabricator, while also introducing some quality-of-life improvements over both vanilla GitHub reviews and Phabricator reviews.

The pull request inbox offers review workflow organization changes that make it simpler to manage and keep track of reviews in progress. Review messages, comments, and feedback appear in a simple interface, organized by necessary action.

This simple interface makes it easy to leave and respond to lots of review comments and quickly see what actions need to be taken. You can create comment threads directly in the context of the pull request. Plus, you can attach files or add memes, macros, and emojis.

Overall, this makes the user experience better for both leaving and resolving code review feedback efficiently.

Both GitHub and Phabcricator offer their own features for issue and bug tracking, task and project management, and other collaboration tools.

GitHub Issues lets you organize project tracking in board, roadmap, and table views. It also offers features to:

  • Break issues into child tasks.

  • Track relationships between issues and tasks.

  • Use customizable fields to organize tasks in alignment with your workflow.

  • Create conversations around each task or issue.

Phabricator’s task management tool is called Maniphest. It’s built around Kanban workboards.

Similar to GitHub’s issue tracking, you can assign parent and child relationships as well as save custom views and searches.

The interface is simple. Perhaps a bit dated at this point, but it gets the job done.

If you’re looking for a radically different workflow for handling bugs, issues, or projects, you can customize further with Phabricactor. Since it’s open source, you’re free to roll your own system to align with your team’s preferred processes. Of course, that costs time and money.

Costs (subscription and operating)

Phabricator is free to install on your local machine. But in terms of lifetime maintenance costs, this may cost you more than both GitHub and Graphite's enterprise plans.

Qt Group did some napkin math on the lifetime cost to deploy and maintain open-source software. They came out at about $135,000.

Now, of course, your cost to operate Phabricator may vary.

But, there’s no doubt that there will be reasonable costs associated with setting up the self-hosted environment and infrastructure. Then you’ll need engineer time to maintain, debug, and ship one-off patches.

On top of that, because this isn’t an actively maintained project, there’s no official support and a waning base of community support available on the web.

How does that compare to the subscription models offered by GitHub and Graphite?

GitHub offers a forever free account along with team and enterprise tiers that are priced on a per-user basis. The free plan offers 2,000 CI/CD minutes along with 500 MB of storage every month for your private repositories. There are no CI/CD or storage limits for your public repositories.

The GitHub team plan at $4 per user a month offers 3,000 CI/CD minutes and 2 GB of storage every month for your private repositories. This plan comes with automated code request review workflows and enables multiple reviewers for a PR. The enterprise plan at $21 per user per month offers 5,000 CI/CD minutes per month and 2 GB of storage for your private repositories. This plan comes with premium support, annual SOC2 reports, and SAML SSO.

Graphite also offers a forever free plan that can be used for up to 3 searchable GitHub repositories and 3 months of searchable PR history. The Graphite team plan offers 30 searchable GitHub repositories and 24 months of searchable PR history. This team plan also comes with detailed insights that identify bottlenecks and an option to merge queue that automatically rebase to eliminate merge conflicts.

Can Graphite help your team ship code faster?

GitHub is the leading repository management tool by far, with over 100 million developers using the platform. However, many open-source enthusiasts and the engineering team at Meta still swear by Phabricator’s code review workflows.

So which one’s right for your team?

Are you looking for the easiest possible solution?

Vanilla GitHub checks most of the boxes in terms of traditional functionality.

Do you want a fully customizable experience and have lots of time or money to throw at deploying and maintaining an open-source solution?

Phabricator offers some major upgrades to the overall developer experience and workflow. This is a reasonable solution for hardcore shops, but probably not feasible for most casual users.

Do you want the best of both worlds?

Graphite offers the innovations and modern workflows offered by Phabricator—but without having to actually manage your own repo hosting system.

Graphite improves upon GitHub to help unblock your team, ship codes faster, and improve code reviews. But you don’t have to spend eons tinkering with your own setup to make it work.

Teams choose to use Graphite + GitHub because:

  • Developer productivity improves by using the stacked PR workflow.

  • Code quality improves because you incentivize developers to create small and specific PRs that are easy to review for bugs, contextual errors, and low-quality code.

  • Cost advantages accrue because you don’t have to spend on hardware, security, or upgrades for an open-source project like Phabricator.

This is why some of the world’s top-performing engineering teams choose to add Graphite to GitHub and unlock the benefits of stacking with the simplicity of familiar code management.

Want to see how it works?

Sign up with your GitHub account and sign up for a free Graphite plan.