DesignFlow
A working Figma plugin that saves design decisions — so the why behind a change doesn't disappear.

MY ROLE
Product Designer — research, design, prototype, and build
SCOPE
Design tooling · Figma plugin · 0-to-1 · self-initiated
TIMELINE
FY26
OUTCOME
Working React + TypeScript plugin prototype, usable end to end
Overview
The goal is to share design knowledge across the whole org
Across a big design org, teams change shared components to fit their own products — denser tables, complex filters, permission rules, small workflow fixes. That work is useful, and other teams could reuse it. But it stays buried inside one person's Figma file. So the same problem gets solved again and again. And worse than the repeated work is the repeated thinking — the reasoning behind each decision gets lost. I kept seeing designers ask around for "that table someone made," or trade screenshots in Slack, because there was no reliable way to find existing work. Nobody asked me to fix this. I built DesignFlow because the pattern was too consistent to ignore.
Research
Tested if it was even possible before designing anything.
Before I designed a single screen, I checked whether the core idea could actually work in Figma. Three things stood in the way:
You can't freely move components between files. Figma only shares a component across files if it's published to a team library, and most changes are unpublished frames.
You also can't add design content from outside the editor — Figma's web API can only read design content, not create it, so a normal web app can't do this. Only a plugin running inside Figma can.
And a plugin only knows the file it's currently open in, which I needed for links back to the source, and only once it's published privately to the org.
This research shaped the whole product. The dream version — "copy it straight into my file" — was fighting the platform. I could build a heavy engine to rebuild designs piece by piece, or find a simpler model that worked with Figma's limits. I chose the second.
Final design
A real working plugin, not a clickable mockup
Browse
Opens on search rather than a list you browse, because the problem was finding existing work, not wanting to reuse it. You can filter by category, sort by recent or trending, and open the source file directly from a card.
Component details
Shows the reasoning next to the preview, because a screenshot records what changed but not why it changed. It also shows the author, product, status, date, and any discussion, so you know who to ask if the notes don't cover it.
Publishing
You select the frame yourself instead of the plugin detecting it, because a wrong guess costs more trust than the click saves. The plugin fills in what the file already knows, and requires a reason — the one thing no system can capture on its own.
Next step
The design is ready but there are more things to figure out
What's left isn't design work. It's the org side: log-in, a shared backend, governance, ownership, and getting teams to adopt it. One thing became clear as I talked to people internally: the technical problem was mostly solved, but the organizational one wasn't. Later, leadership added an AI idea intake form to collect internal ideas. But there was still no clear process to review, sponsor, or adopt them. The form gathered ideas — it didn't create the system to turn good ideas into supported products. That gap is exactly the one DesignFlow ran into.

Impact
Named a problem the org hadn't named, and turned it into a working product. Built a real React and TypeScript plugin rather than mockups, so the interactions were tested inside Figma. Chose link-don't-copy, which is what made it buildable within Figma's limits. Kept contributing to one step, with the reason as the only required field.
What I learned
The hardest part wasn't building the plugin. It was creating the conditions for it to adapt and survive. Figma's limits shaped how I built it. Dell's limits showed a bigger challenge: great internal tools need an owner, clear rules, and a path to adoption. The interface was buildable. The system around it wasn't there yet.



