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

推荐订阅源

月光博客
月光博客
L
LangChain Blog
Jina AI
Jina AI
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
S
Secure Thoughts
T
The Exploit Database - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
Project Zero
Project Zero
T
Threat Research - Cisco Blogs
量子位
G
GRAHAM CLULEY
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
CERT Recently Published Vulnerability Notes
The Hacker News
The Hacker News
C
Cisco Blogs
Scott Helme
Scott Helme
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
V
V2EX
博客园 - 三生石上(FineUI控件)
T
Tor Project blog
P
Proofpoint News Feed
雷峰网
雷峰网
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
PCI Perspectives
PCI Perspectives
博客园_首页
L
LINUX DO - 最新话题
IT之家
IT之家
有赞技术团队
有赞技术团队
博客园 - Franky
Hacker News: Ask HN
Hacker News: Ask HN
Last Week in AI
Last Week in AI
The Cloudflare Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
美团技术团队
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
AWS News Blog
AWS News Blog
S
Security Affairs
T
Tailwind CSS Blog

Graphite blog

Introducing Code Tours: a new way to review Introducing Cursor Cloud Agents in Graphite Building the future of software development with Cursor 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? Phabricator vs GitHub vs Graphite: How do they stack up? 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
Reimagining the PR Page: Designing for speed and focus
Sara Verdi · 2025-11-25 · via Graphite blog

Every single Graphite user passes through the PR page. But over time, we realized that one of our most important surfaces was also one of our most cluttered. “Customers were coming to the PR page and it was too overwhelming, recalls lead designer Cameron Collis. The experience worked, but it lacked the clarity and focus we pride ourselves on. So, we decided to rebuild it from the ground up.

Since most of our users are familiar with GitHub’s PR page, we wanted to create something that felt instantly recognizable, yet distinctly Graphite. “The main goal was a tidier visual experience. We wanted to reduce visual clutter, noise, redundant labels, and any unnecessary decorative elements,” Cameron adds. 

So, we set out on tightening what worked, simplifying what didn’t, and making the page feel faster, clearer, and more aligned with how developers actually review code. In this post, we’ll explore some of the design thinking that went into one of our largest iterations of the PR page to date.

Our design thinking

Beyond the visual overhaul, the original brief for the redesign included a few hard feature requirements—most notably floating comments and a rich text editor. These weren’t last-minute additions or experiments, they’d been on our minds for years. The PR page redesign finally gave us the space to build them the right way.

Eli Howey, one of the lead software engineers on the project, recalls how those constraints opened creative possibilities rather than limiting them. “That was a nice way to start the project,” he said. “It gave us more room to explore different ideas. It made us really focus on a new vision instead of being tied to some of the previous decisions.”

Newfound accessibility with a rich text editor

The decision to add rich text editing came from a simple observation: not everyone reviewing code is fluent in markdown. On GitHub, most text inputs, like comments and PR descriptions, are plain markdown fields. While that’s familiar to many engineers, it can be alienating to others. Designers, PMs, and less-technical collaborators often contribute to reviews, too, and syntax formatting shouldn’t be a barrier to participation.

By introducing a rich text editor, we’re making PR discussions feel more natural and inclusive. You can now format text, add emphasis, and structure your thoughts visually, without needing to remember markdown syntax. It’s a small detail that makes Graphite feel more human.

Floating comments, on the other hand, were a direct response to years of user feedback. “Reviewers tend to read files line by line, top to bottom. But when a long comment thread breaks up the diff view, it disrupts them. They lose their place or scroll up and down trying to reorient themselves,” Eli explains. Over time, that friction adds up.

Floating comments solve that problem elegantly. Instead of embedding long threads directly in the diff, comments now hover contextually beside the relevant code. They stay accessible without obstructing your view to keep you immersed in the review itself.

This was one of those changes that sounds simple but required deep rethinking of how the PR page was structured. It forced us to reimagine not just how comments look, but how they behave, for example, how they appear, anchor, and disappear as you read.

Challenges: Rethinking the stack

The stack—the sequence of PRs linked together—is a core part of the Graphite experience. It gives you context, helps you navigate related changes, and makes merging smoother. But figuring out where it should live on the redesigned page was surprisingly difficult.

Cameron recalls, “The stack is an interesting one. A lot of people felt like the natural place for it was in the middle of the page, since that’s where the actual PR content lives.” Others argued for a sidebar approach. “It felt intuitive,” Eli explains, “because moving through a stack is a bit like browsing, going back and forth between related things.”

So we tried it. We moved the stack to the left sidebar. And it didn’t work. Once we built it, we realized just how dense the information inside each PR card really was. Each item had to display multiple details: PR titles (often long ones), status indicators, comment counts, lines changed, and more. In the narrow sidebar, that content felt cramped. The visual hierarchy broke down, and the scrollable column introduced its own usability issues.

“The information and content that’s in the stack is really hard to work in,” Cameron says. “It just takes up too much space in a narrow sidebar.” And beyond layout, there was also a conceptual mismatch. Some stacks have multiple PRs; others have just one. For those simpler cases, dedicating an entire sidebar to the stack felt unnecessary.

Ultimately, we found that the horizontal layout we’d previously used was still the most flexible and readable way to represent stacks. It allowed for more breathing room, better scanning, and clearer visual relationships between PRs. So, in the end, the stack stayed where it belonged: anchored within the flow of the PR itself, not off to the side. It’s a small but important example of how we balanced ambition with pragmatism when evolving Graphite’s core experiences.

Building through iteration

We approached the redesign the same way we approach everything at Graphite: Through constant iteration and dogfooding. Every internal rollout became a mini stress test. We’d catch small visual issues or interaction bugs, adjust, and push again. We do this to ensure that users get the best version of Graphite by the time we roll out a new launch. 

Those dozens of refinements compounded into a page that feels smoother, sturdier, and more intuitive with every click. The PR page is where developers spend most of their time in Graphite, and it deserves to feel effortless. As we continue testing, dogfooding, and refining, our goal remains simple: to make Graphite the fastest, most intuitive way to move code forward. “This redesign was all about bringing the code back into center focus,” Eli says. “And I think we’ve come up with something that does exactly that for users.”