Hi @Prashant Deva 👋 nice to meet you and thank you for reaching out!
More than anything, I'm glad you've started stacking because, regardless of which tool you're using, I think smaller PRs benefit everyone and I want more people to be aware of the practice.
Regarding Aviator in particular, they tend to be a little bit more merge queue centric (and I'm not sure if I've heard of a user of the av cli who wasn't a merge queue user). That said, happy to dive into the differences, and if you want even hop on the phone to show you graphite. For context, we've played with aviator ourselves and have a few converts in this channel :) so hopefully we can give you a complete response.
The short version of why we're different:
• Aviator's core product is the merge queue, stacking was added on later to help guide the merge queue on stuff that needs to merge together
• Aviator's stacking is much more manual (you create stacked branches, commit to them manually, and sync them later)
• There is very little notion of a stack persisted to GH (or anywhere outside your local env)
Graphite is built primarily for stacking. The CLI is more complete, as Merrill said, including commands to: jump up and down the stack, rebase portions of stacks onto other stacks, edit history within stacks (reordering branches), collaborate on stacks, etc.
Unlike aviator, we try to do as much of this for you automatically (rather than needing to run stack sync, we detect when it needs to be synced after an amend or commit and do that for you), we also provide stack visualization, better conflict resolution, and generate a comment on GH to help both you and your reviewers navigate your stack.
Our web UI can show you the status of various parts of the stack - including which PRs can be merged and which ones are blocked by something downstack.
That said, give the CLI a shot and form your own opinion. I have yet to find someone that prefers aviator :)
(Cc @Pranathi Peri who's working on docs for this)