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.

Role
Solo designer and builder
Stack
Node CLI, vanilla JS board, Swift menu bar app
Status
Live on npm (0.3.0)
The design-share Workbench: a left rail of branches grouped by person, a live preview in the middle, and a resolved comment anchored to an element on the right
The Workbench. Branches grouped by person on the left, a teammate's live branch in the middle, anchored comments on the right.

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

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

A resolved comment card anchored to a specific element, showing the person, the viewport, the commit hash, and reply and reopen actions
Each pin remembers the element, the viewport, and the commit it was made on.

Proof

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.