Case study · Open source · 2026
design-share: see every designer's branch, without thinking like an engineer
A zero setup CLI that turns every open git branch into a shared board with live previews and anchored comments. No SaaS, no accounts, no visible server. Git is the only backend.

The problem
Design teams now ship code, so the latest design work lives on a git branch. That branch stays invisible to anyone who does not already think like an engineer. Seeing a teammate's work in progress means knowing it exists, finding the branch name on GitHub, wiring up a deployment URL, and carrying a lot of tribal knowledge. Review happens late, feedback scatters across Slack and Figma and calls, and plenty of good work is simply never seen by the rest of the team.
Branches are invisible unless you are already thinking like an engineer. A branch holds the latest design work, yet finding it takes GitHub, branch names, deployment URLs, and tribal knowledge.The framing
Signals
- A firm constraint I set myself. No SaaS, no accounts, and no visible server for anyone to run or pay for.
- A friction target. A designer should reach a teammate's live branch in one command.
- The real usage context. Designers clone a repo from the company they work for, then want to see teammate branches without ever leaving that repo.
The bet
The core decision was to make git itself the backend. Shared state, meaning who shared what plus every comment, lives in a hidden git ref called refs/design-share/state, pushed through the origin remote the team already uses. This keeps the promise of no SaaS literally, because authentication, permissions, and transport already exist. The ref sits outside the branch list, so it stays invisible in GitHub.
Previews render locally through hidden worktrees. Opening a teammate branch checks it out silently and runs the repo's own preview command on the viewer's machine, so a preview survives the author closing their laptop. The whole thing installs and runs with one command.
npx design-shareOne command, zero runtime dependencies
Why this was the rational bet under the constraints: git as the backend removed the hardest distributed problem, which is reaching a teammate's laptop across networks and sleep. It also meant zero new infrastructure for any team, since every git host already works.
What I built
- The board. A left rail grouped by person shows every shared branch. Clicking one opens its live preview in place, with viewport toggles for desktop, tablet, and mobile.
- Previews without checkout. A teammate branch runs in a hidden worktree inside git land, so your own working copy is never touched.
- Comments that close their own loop. A pin anchors to the exact element, the viewport, and the commit. When the author pushes new work, open pins flag "updated since pin," so "is this fixed yet?" answers itself.
- A menu bar app. A tiny native macOS app keeps the board and previews alive after the terminal closes and badges its icon when teammates pin comments on your branches.

Proof
- Built and tested end to end with a fixture of two clones talking to the same remote.
- Shipped a native macOS menu bar app around 1MB, signed with my Apple Developer ID, then notarized and stapled so Gatekeeper accepts it.
- Published to npm and iterated in public from 0.1.0 through 0.3.0. The package is about 85KB across 21 files with zero runtime dependencies.
- Version 0.3.0 added review requests between teammates: a presence roster, a header picker, and auto resolve when the requested person comments.
- Launched with a post inviting design teams to try
npx design-share.
Reflection
The moment that sharpened the product: I had added a "copy link" button on comments, then realized a localhost link would never open on a teammate's machine, so I removed it and leaned harder on git as the shared layer. That kept the promise of no visible server honest.
What I would do next: pixel level diffing for the "updated since pin" badge, which today compares commits rather than rendered output. I also keep the trust model visible on purpose, because running a teammate branch runs their preview command on your machine, the same as checking the branch out yourself.