The worst offender is a slack notification[0] deep link into a PR I need to review.
It loads in stages, and the time from click to first diff is often so frustratingly long that I end up copying the PR ID and going to GitHub instead.
Sometimes I give up while Graphite is still loading and use the shortcut C-G to go to GitHub.
The second issue might be the landing page. I love what it shows compared to GitHub, but it's often slow to display loading blocks for things that haven’t even changed. Reloads are usually fast after that — until sometime later, maybe a day, when it slows down again.
I don't know why it feels worse than Linear, even though there are clearly many similarities in how it's supposed to load.
The guest instance isn’t so much about loading speed, but usage speed.
When I submit a stack of PRs, I get a nice carousel to fill in PR titles/descriptions and choose where to publish each PR.
What’s missing for me there is access to files and diffs, so I can re-review before publishing. I often end up closing it and going back to the PR list instead.
[0] Thank God for those! You've made them much more useful than GitHub's. Also, the landing page is far more helpful in terms of what’s displayed.
It's so cool that Git is considering first class change IDs!! That's huge! This sounds similar to what we had at Facebook to track revisions in Phabricator diffs. Curious if anyone knows the best place to read about this?
The fundamental problem is that git doesn't track branches in any sane way. Maybe it would be better to fix that? Fossil remembers what branch a commit was committed on, so the task branch itself is a change ID. That might be tricky to solve while also allowing git commands to mess with history of course. Fossil doesn't have that problem.
we still do stacked diffs — it's our bread and butter, and many of our existing customers, some of whom have been with us since the beginning, are finding a ton of value from both diamond comments and chat. i loved working on the CLI, i loved working on chat, and i'm excited to continue building tools that make code review less of a pain.
the core problem that stacked diffs and that adding AI to the PR page solve are the same — code reviews slow devs down and force unnecessary context switching.
stacked prs help you get around this by allowing you to manage your work in way that makes it easier to organize in an author and easier to deal with as a reviewer.
AI can help you get around this by making it easier to review PRs when you open the page, and save you the context switch of going back to your editor to make a tweak that a reviewer suggests.
Graphite has always been about shortening the cycle time and reducing the amount of busy work from writing code to getting it merged, and we'll continue building features that speed up that cycle.
the best part is — you can still pay for Graphite, and you don't have to use ANY of our AI features. we're still constantly shipping improvements to our CLI, optimizing our merge queue for our larger enterprise deployments, continually working on making the PR page more modern and easier to use than GitHub's and working with the same customers that we have since the beginning to do so.
would love to hear what you think we can do better to address your needs
to be direct, there's really nothing for you to do — it's a branding issue. if i were to link graphite to any of the devs i know that are actually interested in improving their development workflow, they would immediately close out after one look at the landing page. they have zero interest in AI and certainly won't pay for it to be shoved down their throats. graphite is now perceived as an AI company first, not a developer company.
you state that users don't 'have to use ANY of our AI features' — does that mean you have an opt-out toggle that fully hides any mention of it (e.g. in your 'AI-powered PR page')? if so, how long will that stick around? how long will your core products remain unsullied once your investors start to pressure you to push AI more? these sort of concerns around long term direction keep myself and others from adopting graphite.
(views expressed in this comment are my own, not those of graphite)
we have a number of large customers that feel the same way and are fully opted out of anything AI-related.
in my experience, our foremost goal is bring graphite to more people. i have seen many cases where folks get us in the door with diamond and then begin championing stacking which leads to a ton of organic spread that it otherwise may not get.
we have seen a ton more signal that ai is the easier way to get more committed folks in the door than signal that we are losing potential customers over having it as an option. if that were not true, we probably would not have gone in this direction.
i would love for graphite-lovers to make more noise about stacking as well and see no reason it can't happen in parallel - every month i see more and more conversations about stacking happening in the wild, and more and more of them reference us directly!
Yeah – the key thing here is that there is work to be done on the server, so JJ likely either needs its own forge or a GitHub App that handles managing PRs for each JJ commit.
I'm a huge fan of the JJ paradigm – this is something I'd love for us to be able to do in the future once one or both of:
- we have more bandwidth to go down this road
- JJ is popular enough that its worthwhile for us to do
That said I'd also love to see if anyone in the community comes up with an elegant GH app for this!!
As a satisfied customer of yours, the prospect of having to give up Graphite is the main thing keeping me from giving jj a try at my day job.
Ironic, since if there are a bunch of people in my boat, the lack of us in jj's user base will make it that much harder for jj to cross the "popular enough to be worth supporting" threshold.
My ideal is really just a version of `gt sync` and `gt submit` that handle updating the Graphite + Github server-side of things let you use `jj` for everything else, I think it could feel super nice. Probably not as simple as my dreams, but hopefully something we can get to with enough interest!
Surprised that’s your take considering Diamond is one of the code review bots that are ahead of the pack. Curious why you think that’s the case? Is it a technical limitation? Or something about human code review that is just fundamentally hard to copy?
AI will certainly make human code review easier — the goal being to keep up with the velocity of changes to existing large systems.
"Code review" as defined as a human in the loop getting the final say on whether a change will be made to the system will be the absolute last thing to go. That process may look very different as both the inputs massively increase in scale and the methods get disrupted by AI.
>"Code review" as defined as a human in the loop getting the final say on whether a change will be made to the system will be the absolute last thing to go. That process may look very different as both the inputs massively increase in scale and the methods get disrupted by AI.
I know this is probably not something you can divulge but I look forward to how your team at Graphite plans to solve this! (Would also love your personal take!)
We've already soft launched the next step toward this to some existing Graphite users, so I'm fine sharing!
We're adding an agentic chat sidebar to the pull request that can help you gather context to understand a PR and make pre-merge changes without needing to leave the PR page. Open beta next week.
We're only going to spend more and more time looking at diffs as the amount of them increases, so the tools that we use here need to evolve as well. "AI code review" should be an interactive experience that directly builds on how code is reviewed today, not just a bot that comments on your PRs.
In exploring `gh` CLI extensions recently I found at least 2 devoted to being a better PR review interface. I've also seen [Trag](https://usetrag.com/) and others pop up.
Hey! Mostly just rebase out of habit actually, but I've been exploring --update-refs recently.
Two things come to mind that I don't love about `gt`:
- the philosophy of "every commit is a PR" falls apart sometimes. Sometimes I want to logically separate commits in a PR—but not every commit passes CI. This makes it easier to review. Or call out optional changes that can easily be dropped.
- It broke my workflow in a few ways. The one thing I notice the most is that I like to "pop" a commit into staged changes and make edits. So I can easily see a diff of what I'm editing. I expected `gt modify` to do this. So instead I git reset --soft, commit, and `gt submit`
We (Graphite) love Jujutsu – comes up in conversation all the time here.
A prior version of the CLI is open source, the core data model (using git refs to store some extra data about what a branch's parent is) is still the same. https://github.com/withgraphite/graphite-cli
We've talked about supporting other clients, but don't currently have the bandwidth to build something like that – definitely something I am personally passionate about making sure happens at some point.