Inspiration
During hackathons, work, and personal projects, I have many stacked merge requests that become hard to maintain. When the base changes, every branch above it needs a rebase. A flat list of MRs doesn't show which in the stack are broken or what depends on what. I wanted something I could leave open next to my editor that shows the status of my merge requests and the whole train at once. Something I can action merge requests from without having to switch to worktree, git branch, etc. in my terminal.
What it does
MR Solar draws your open merge requests as planets around a Sun, which is your main branch. A planet has different visual characteristics depicting the status of the merge request:
- Merge conflict: the planet cracks
- Failed pipeline: a red glow around the planet
- Branch older than two weeks: rings
- Review comments: moons
- Someone else's branch: a different colour, and no sync buttons
There’s a legend mapping the above.
Hovering over the planet gives more details about the merge requests. Clicking on it allows you to perform actions. Cascade Sync opens Terminal and runs claude "/cascade-sync <branch>", a Claude Code skill that rebases that branch and everything stacked on it. Then a gold ring travels up the train, and each planet's cracks fade. Merge stays disabled until GitHub is connected.
How we built it
I used the Devpost Learn skill pack in Claude Code to write a scope, PRD and spec first, then built it in four slices, checking each one before moving on. The server is plain Node.js with no dependencies. It streams the branch graph to the browser over server-sent events. The page is a single HTML file using D3.js for the layout, SVG for the planets and canvas for the starfield.
Challenges we ran into
Keeping it small was the hard part. I started adding feature and led to having a lot of things half baked.
Accomplishments that we're proud of
Being able to finish the MVP with beautiful visualisations
What we learned
I learned how to better separate the real MVP from nice-to-haves. I fixed this by checking each claim against the running app. My AI projects tend to fill up with half-finished features, but having a proper lifecycle framework gave it more structure.
What's next for MR Solar
Pull real merge requests from the GitHub and GitLab APIs, show Claude's rebase progress live instead of simulating it, and turn on Merge.

Log in or sign up for Devpost to join the conversation.