How I AIHow Reddit’s designers build ultra-realistic prototypes with Figma + Cursor
EVERY SPOKEN WORD
25 min read · 5,436 words- 0:00 – 2:31
Introduction to Blair
- BMBlair Metcalf
The distance between design and product is wide. And if we made everyone a builder, they could vibe code new features and products easily. And so we made a harness that uses our design system and all of our components, UX patterns, and it keeps all the designers and product managers on rails. And so this way that you can make a million ideas, they can be reviewed, and then you can pick one, and then that's where we spend our time, and that's what goes into prod.
- CVClaire Vo
I have not heard anybody say, "Okay, go ahead and let you off into your production data and render that."
- BMBlair Metcalf
And the reason why that we do this is because Reddit has personalized data. But if designers are mocking everything in Figma, and then they show that to leadership, leadership's gonna look at that and be like, "This isn't relevant to me." And you don't have to take nine months to get that into prod, see if that works. It saves so much time, and everybody can work on other things. So if you make one of these real world prototypes with real data, they'll put it through the paces of, like some new feature. Search is like a, is a great example to like How I AI, and it knew podcast. Like it's pulling that real data, it sends it to an LLM, ranks it, and then you can test out that design.
- CVClaire Vo
Are designers prototyping the most? Are product managers prototyping the most? Like who is prototyping the most? [upbeat music] Welcome back to How I AI. I'm Claire Vo, product leader and AI obsessive here on a mission to help you build better with these new tools. Today, Blair Metcalf, principal UX engineer at Reddit, and he's gonna show us Reddit Proto, their custom harness for product managers, designers, and anyone else to get their ideas into a production-like prototype they can share with anybody in the company. This is an awesome one for anybody interested in design systems, prototyping, and how to make high quality things without exposing GitHub. Let's get to it. This episode is brought to you by Firecrawl, which gives your AI agents data from the web and beyond. Your agents can search and scrape the web while accessing Alexandra's rapidly expanding library of over 100 million index sources and more than 200 data providers all through one connection. Connect Firecrawl to ChatGPT or Claude to find people and their work emails, pick your fantasy football lineup, or analyze trends for your next marketing campaign. Firecrawl is building the library for super intelligence, bringing more of the world's knowledge into the tools you already use. Go to firecrawl.dev/howiai
- 2:31 – 9:15
Reddit Proto demo
- CVClaire Vo
to get started. Blair, welcome to How I AI. Thanks for joining.
- BMBlair Metcalf
Thanks. I'm glad to be here.
- CVClaire Vo
Well, one of the reasons why I was so excited to have you on the show is I feel like the best teams, their answer to what are we... How are we gonna use prototyping in our product design engineering flow, is eventually they decide, "You know what? We're just gonna build our own, our own rig here. We're gonna build our own prototyping harness, and it's gonna give us exactly what we need for exactly how our team operates." And the folks that do that, and it is not impossible to do, unlock some magic in the team. So walk me through what this is and why you built it.
- BMBlair Metcalf
We wanted to innovate, go faster, and get new features into users' hands. And so we made a harness that uses our design system and all of our components, UX patterns, and it keeps all the designers and product managers on rails. And so this way that you can make a million ideas, they can be reviewed, and then you can pick one, and then that's where we spend our time, and that's what goes into prod.
- CVClaire Vo
So what I'm looking at right now is a little render of the m- the mobile app or the mobile site, um-
- BMBlair Metcalf
Mm-hmm
- CVClaire Vo
... for, for Reddit. So tell me how, how would somebody come to this inside your team and actually design something? What do you think is, is unique? I mean, it has the design system, but what else... You know, why did you build this, and what is super unique about how you approached the, the harness that you built?
- BMBlair Metcalf
When we started working with designers, we wanted to start obfuscating all of Git, what the file structure is. And so we actually made an app on your desktop that just gets you right into a new project, and you would load the boilerplate and name it, and then you would end up here in a vibe coded environment. You can work in any IDE you like, and it sets up like what the app... A starting point.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
And we think of that app as like, you know, this is the whole world, and as people add new features, it's kind of like a mountain, and we absorb that mountain, and it's everyone's starting point.
- CVClaire Vo
So one, if I'm a designer or product manager, I don't have to think about, like, am I cloning the repo? Am I on a branch? Am I running locally?
- BMBlair Metcalf
Right.
- CVClaire Vo
You've created a little custom app that says, "Just start a project. Happy, happy." Um, you name that project, and then you all do the hard work of like a baseline scaffold. And then does that scaffold put the app in a specific state? Like what are the kind of convenience things that you get when you land with this scaffold as a designer or product manager?
- BMBlair Metcalf
That's right. Yeah. So I just showed like how you create a new project. It's cloning the Git. You don't need to know any of that. We'll go back to that screen-
- CVClaire Vo
Mm-hmm
- BMBlair Metcalf
... and you'll just start coding. And the things that you get right out of the bat are examples of like features.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
And this is what every product development team does. They're gonna add new features to the product and their explorations. There's other doodads under here of like navigation. Um, you can change the navigation. You can prevent navigation because some stakeholders click too much, and you don't want them to click.
- CVClaire Vo
[laughs]
- BMBlair Metcalf
We have like-
- CVClaire Vo
I love this.
- BMBlair Metcalf
Yeah. And then so everything is controllable. You can change the device, the theme, and so you can switch to dark. And you can test out every, every, um, every state that you can get in, even like who is a moderator. And so Reddit has complex user ecosystem. And then the nice, the, the nicest doodad here is that you can then use signed in data, and so you'll know if your design works. And this, this helps with all kinds of- Real-time data feeds. So like if you wanted to do search, you can actually do search right here. And before we, we, we started this, I was just playing around and I was wondering, could I add search with these annotations? And surprisingly, I was able to. I commented here, "Make relevant typeaheads trending recent communities, et cetera." And then down here, I said, "Overall direction, using the signed-in Reddit data and real typeaheads as user types in the search box." And then I sent that to Cursor, and it vibe coded it on the spot. And this was just playing around. I was stunned. It worked.
- CVClaire Vo
Okay. So I just wanna kinda like walk this through for folks that, that are listening or maybe missed some of this. So first of all, you have like features as configuration, basically-
- BMBlair Metcalf
Mm-hmm
- CVClaire Vo
... like the ability to toggle on or off features inside this constrained prototype.
- BMBlair Metcalf
Mm-hmm.
- CVClaire Vo
Um, you have the ability to configure the prototype itself in terms of like turning off the interactivity of features like navigation. I love this because if it is a fully like featured sort of prototype, you can kinda go anywhere with it.
- BMBlair Metcalf
Mm-hmm.
- CVClaire Vo
Um, but this is letting a product manager, designer sort of constrain and say like, "This is the piece that I want you to pay attention to." Um, you can obviously switch between devices, but you can also switch between persona views, which I thought was very interesting. And then I wanna make sure people did not miss that, this. One of the things that it looks like you do, and correct me if I'm wrong, is you scaffold it with mocked data, but then you can log in with your account and render production data-
- BMBlair Metcalf
Mm
- 9:15 – 11:19
Annotations to Cursor: the targeted edit workflow
- CVClaire Vo
And then to make modifications to it, just because I'm, I'm kind of inferring based on what you've showed us, you have sort of like a prompt-based thing, but that's ultimately just kicking prompts over to Cursor?
- BMBlair Metcalf
Mm-hmm.
- CVClaire Vo
Is that right?
- BMBlair Metcalf
That's right. Yeah. So the way that this kicked off was I... It's a surprising workflow, but once I showed these annota- Once I wrote the annotations, I just said, "Send to Cursor," and it writes a file, and then I just tell Cursor, "Apply annotations," and it takes the location in the code, the annotation-
- CVClaire Vo
Mm-hmm
- BMBlair Metcalf
... and the overall to kick it off. And you can, with that specificity, you can target any surface, any composite, any component, and add real data to it with very little training.
- CVClaire Vo
Got it. So if I click something in this prototype and write an annotation on it-
- BMBlair Metcalf
Mm-hmm
- CVClaire Vo
... the prototype has already been enriched with this is like roughly where the code is-
- BMBlair Metcalf
Mm
- CVClaire Vo
... this is roughly what this component is, this is what the request is from the user, and so it's like a very targeted, um, edit request in this repo. Is this the real repo, or is this like a, an approximate repo that's just for prototypes?
- BMBlair Metcalf
So yeah. Everything that you asked, I can go into the annotations, I can clear these, and I can say-
- CVClaire Vo
Mm-hmm
- BMBlair Metcalf
... "Make this italics." And so you can target very specific things. It'll use all of our design system tokens, components, et cetera. And then this is the real thing. Um, that launchpad that I showed earlier, it deploys it on our infra.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
And so it basic- it uses in, it uses Kubernetes.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
It's basically like an internal Vercel. Um, and so then you don't have to worry about any deployment, and you can share it. You can share it internally. It'll copy the URL. Or you can share it externally, and you can like scan that. You go through some security, and then now [laughs] it's on your phone. And so then that is a PWA, and these are, these are apps-
- CVClaire Vo
Mm
- BMBlair Metcalf
... that I've already installed, and you can click around them as if you were on desktop, and you can check.
- 11:19 – 14:14
Internal deployment and adoption
- CVClaire Vo
Got it. So that's the way that you... I was, I was curious, so how do you share these prototypes internally? Are you just able to-
- BMBlair Metcalf
Mm-hmm
- CVClaire Vo
... give links to people or QR codes, and then they can pull up and, and play with your prototype? Is that how it works?
- BMBlair Metcalf
Uh, this is a piece that we're working on right now, and it's, it's going into great places. Internally, you can share this URL quickly, like on Slack.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
And we have, we have a dashboard that just keeps everyone's prototypes. Right now there's about 700.
- CVClaire Vo
Yep. [laughs]
- BMBlair Metcalf
The problem with this is it doesn't scale. That list doesn't scale.
- CVClaire Vo
Yeah.
- BMBlair Metcalf
So what we're working on now is a very searchable console.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
So you can find people's prototypes, what areas they work in, um, people, tags, if that, if that feature was like labeled, um, you know, search or growth.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
And then you can go into prototype types. We're gonna go into iOS, Android. And then you can also go through your prototypes, and so what teams you work on. This would be the way that- Everybody can dis- discover quickly who's working on what. It, like, gives visibility to leadership.
- CVClaire Vo
And are all of these prototypes public? Are, are prototypes public by default or private by default? I'm just curious.
- BMBlair Metcalf
Right. Yeah, so internally they're all public. Um, but then like-
- CVClaire Vo
That's amazing.
- BMBlair Metcalf
Yeah. We sh- we need to add that. We should add some ... So you can work under the, in skunk works.
- CVClaire Vo
Yeah, u- under, under the radar. I don't know. I kinda like this idea of, like, everything's public. You can kinda see what people are, are messing around with. I'm, I'm curious, who is prototyping the most? Like, are designers prototyping the most? Are product managers prototyping the most? Like, who is prototyping the most?
- BMBlair Metcalf
Yeah, so it's a mix of designers and product. Um, we have 100% adoption in UX and product, but there are, like, some surprising folks that show up. Like, a visual designer turned out to be one of our best prototypers. An animator turned out to be one of our best prototypers. And what it seems like is these people are, like, great directors, they have huge context, they can describe all of the things. Um, they're, they are vulnerable, and they try things without, like, worry of failing. Um, but yeah, it's, it's a mix. It's almost a perfect mix over design and product, over 150 people.
- CVClaire Vo
This episode is brought to you by Firecrawl, which gives your AI agents data from the web and beyond. Your agents can search and scrape the web while accessing Alexandra's rapidly expanding library of over 100 million index sources and more than 200 data providers all through one connection. Connect Firecrawl to ChatGPT or Claude to find people and their work emails, pick your fantasy football lineup, or analyze trends for your next marketing campaign. Firecrawl is building the library for super intelligence, bringing more of the world's knowledge into the tools you already use. Go to firecrawl.dev/howiai to get started.
- 14:14 – 15:52
How leadership reviews and gives feedback
- CVClaire Vo
I can imagine how this changes how ideas are generated. Um, and I, and I see a lot of teams moving to this more, like, prototype style, um, requirements for designs. What I'm curious is how has this changed how designs are reviewed? Like, how do you give feedback? How do people make iterations? How do they collaborate?
- BMBlair Metcalf
Right. Yeah. And so this is a part that we're working on also, but long story short, these go into, like, leadership reviews.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
Leadership uses them, clicks through them, and, you know, you're getting feedback live. You're getting feedback in Slack. But we wanna add ... You know, you can comment live on the prototype, and so you have those annotations. Those annotations can be kicked off. They could be comments. They could kick off another build.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
If, if a leader just wants to say, like, "Make this change," it could-
- CVClaire Vo
Yep
- BMBlair Metcalf
... it could be live momentarily. Um, but then, um, you know, like, that console, it also has a place for commenting. These are all things that are coming.
- CVClaire Vo
Got it. And so do you feel like this has ch... What, what has this changed in terms of, you know, is it velocity? Is it quality? Like, craft? Where do, where do you feel like the impact to or how you build products has been felt the most?
- BMBlair Metcalf
It's instant alignment. And so if you use systems with high craft, all the velocity, like, comes because you have, you know, alignment with leadership using real data, reviewing real design system components that nobody's hanging up on, like a, a gotcha, and they don't rat hole on a detail. And they can quickly approve it. That goes out to everyone. Nobody... Everybody knows, like, the North Star that they're heading towards.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
But it's,
- 15:52 – 17:50
Engineering handoff and the feature capsule
- BMBlair Metcalf
it's instant alignment.
- CVClaire Vo
And then how does this get handed off to engineering?
- BMBlair Metcalf
Right. Yeah. This is the big puzzle piece here, which is that, like, you know... Can you take this code and send it to prod? Um, so here I've, I've, um, sketched out a fake feature. Um, it's just, like, saving posts to folders. And so would there be a way that we could select a component and then k- copy the example prompt and take this into prod? So under this, um, launch pad, we can also start a new project where we make a feature capsule. So what you do is you ca- copy the location in Figma. You go over to Figma MCP. You create from Figma, and it's gonna make this thing that we call a feature capsule. And what it does is it takes a lot of things. It uses Figma MCP. It goes through all of the design system, maps it to what we know is in prod. It has also incorporated, you know, CI review feedback and engineer feedback into this MCP, and then now it's analyzing all of those, uh, Figma frames, components, and it'll spit out a PRD. And so I'm gonna say, "Yes, this is what you're looking at," and I'll continue. And then it'll generate this PRD. These can get really large. This, we just selected a specific frame, uh, but you could do many surfaces. We've tried the kitchen sink, but we kinda backed... We're, we're going back to just, like, high-fidelity UI. And so here you've got your generated PRD, and it'll say, like, "This is what the user goal is. This is the acceptance criteria." It'll get into details here, links to the, the Figma. And then, uh, once it's done, I'll accept and continue, and you, you save this file
- 17:50 – 21:41
How the custom MCP was built
- BMBlair Metcalf
locally. And then we'll send that to Cursor.
- CVClaire Vo
Can you explain... Do... Go, go a little deeper. If somebody wanted to build this themself-
- BMBlair Metcalf
Mm-hmm.
- CVClaire Vo
Is this a lot of this-
- BMBlair Metcalf
Right
- CVClaire Vo
... you built yourself, or, like-
- BMBlair Metcalf
Mm
- CVClaire Vo
... how did you get here? 'Cause this is really interesting. It's going from a Figma link-
- BMBlair Metcalf
Mm-hmm
- CVClaire Vo
... um, a frame link, all the way through PRD and then something that your Cursor can execute. So just, like, walk us through how it got built.
- BMBlair Metcalf
Right. So we started with the Reddit Proto design system.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
And so we have all the colors and typography Baked into our design system. And then we read prod and we mapped the two.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
Um, so here you have all of the button sizes.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
And so we use Code Connect, and we know that those are... everything is connected.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
This is kind of the whiz-bang moment where, like, you're like, "What am I looking at?"
- CVClaire Vo
Oh, yeah. [laughs] Exactly.
- BMBlair Metcalf
But this right here is, is every single token, component, surface, journey that we know of across RPL, Reddit product language. And so here, this one token is mapped into Figma, into iOS in the GitHub, and into the prototyping GitHub. And here it has picked out that there may be a difference in the actual literal values in the token on some platforms. And so what we, we then take that and we map it to prod code. We submit PRs that do and don't get through CI reviews, and, like, we take all of the, the engineer feedback, and that iterates back. So basically you start with a map, and then you try, fail, iterate, and you refine the MCP through feedback.
- CVClaire Vo
Got it. And, and this is an MCP that you've built?
- BMBlair Metcalf
Mm-hmm. Well, uh, the team. Um-
- CVClaire Vo
Okay
- BMBlair Metcalf
... working with the team.
- CVClaire Vo
I meant you-
- BMBlair Metcalf
Yeah
- CVClaire Vo
... the, the, you know, the collective-
- BMBlair Metcalf
Yeah
- CVClaire Vo
... the collective you.
- 21:41 – 24:55
Quick recap
- CVClaire Vo
Um, I, I really, I really love this. I mean, I think what, uh, folks should take away from this is not just can you build your own prototyping system and can you make it form fit to how your team likes to build things. Um, you can hide away some of the complexity of vibe-coding and prototyping from your less technical friends, um, while still running it in something like Cursor in the background. And then, uh, the idea of building sort of convenience method, um, design system-based MCPs is a really clever one, because a lot of times you're just leaving these LLMs to kind of flail about in the code and find what they think they can find.
- BMBlair Metcalf
Yeah, that, that's exactly it. Like, you know, um, folks say that bots hallucinate. They hallucinate writing code. And our opinion has always been like, "Well, what, what's your goal? What's the context?" And you look at the design system, you look at the end state shape, and then we refine from there. But, um, yeah, this is, this is the, um, this is the MCP using that feature capsule and asking me where it should, which, where it should write the code.
- CVClaire Vo
Mm-hmm. Amazing. And it could write that code basically in, in the app or in a prototype or whatever you might want.
- BMBlair Metcalf
It's, right now it's writing it in a sibling repo, uh-
- CVClaire Vo
Okay
- BMBlair Metcalf
... to keep, uh, prod clean.
- CVClaire Vo
Yeah.
- BMBlair Metcalf
And then it'll iterate, and then it'll send off a draft PR.
- CVClaire Vo
PR.
- BMBlair Metcalf
And then, yeah, and then that'll get reviewed, and may or may not go through. [laughs]
- CVClaire Vo
May or may not. And then can you go back to the Rosetta Stone, because I don't want people to miss this amazing thing that you had, which is you have this like nice visualization of what's going on in our design system. [laughs]
- BMBlair Metcalf
Right.
- CVClaire Vo
Basically, why did you all desi- decide to build this?
- BMBlair Metcalf
Well, so the theory was how do we get the design system into a harness, and then the harness goes into an MCP. And we had made several attempts, and the number one thing was, "Well, I don't know if what's in there." And so I was like, "Well, this is a visual verification, and if I can hunt down and see that I know that a avatar has these colors and is used in these surfaces and is a, is a part of these workflows, I can visually verify, ah, well, I know that the harness, and therefore the MCP, has all of the parts."
- CVClaire Vo
So it was just like kinda... And, and is this how your brain works? Because you're like-
- BMBlair Metcalf
[laughs]
- CVClaire Vo
... "Oh, I can easily visualize." And I'm like, "You can visualize what, man? It's like a bunch of fuzzy auras over here." [laughs] So tell me, like, is this just, is this what, what, what is inside Blair's brain?
- BMBlair Metcalf
This is... Well, yeah, collectively this was what i- was in the team's brain.
- CVClaire Vo
Okay.
- BMBlair Metcalf
But this was like, you know, I was trying to explain this to people.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
Of like you need a single source of truth that's upstream from everything.
- CVClaire Vo
Mm-hmm.
- BMBlair Metcalf
Um, you know, and then when I would show this, people were like, "I know what's in there." It was a visual verification for the team.
- CVClaire Vo
I, I love it, and it's very beautiful. It's very soothing. It needs a little, it needs a little music, though.
- BMBlair Metcalf
What would you play?
- CVClaire Vo
You know? I don't know. Some, some, some Sound Ba- Bath-y kind of stuff.
- BMBlair Metcalf
Oh, there you go. Yeah.
- CVClaire Vo
You know?
- BMBlair Metcalf
Some Brian Eno.
- 24:55 – 29:37
Lightning round and final thoughts
- CVClaire Vo
Um, I love this. I just wanna recap for everybody. Okay, so we saw Reddit Proto, purpose-built prototyping tool for product managers, designers, public by default. Anybody can open these, deployed sort of in your cloud, some controls via config, connection to, um, Cursor, and then a really thoughtful, audited, and contextualized design system that's accessible to this whole harness via a custom MCP.
- BMBlair Metcalf
Nailed it.
- CVClaire Vo
That-
- BMBlair Metcalf
Yeah. That, that is what we do
- CVClaire Vo
... no big deal.
- BMBlair Metcalf
Yeah.
- CVClaire Vo
No big deal. Easy-peasy. Um, this is really... I just... My, my head is spinning. I'm gonna swirl on, like, how much of this I think I can build, because I think it would really change how I think about some of my, um, design system problems. As I noodle on this, let's go to some lightning round questions-
- BMBlair Metcalf
Mm-hmm
- CVClaire Vo
... um, if you're ready. One is just what are some non-work, non-prototyping... Yeah, maybe not non-work, but, like, what are some non-prototyping use cases that you're really loving AI for these days?
- BMBlair Metcalf
Before this podcast, I was working on, um, I was working on making playing cards for the whole team.
- CVClaire Vo
Uh-huh.
- BMBlair Metcalf
And so this is, like, this is the person who, who helped start the, the whole Reddit Proto, uh, project. And so we're making a play- like, a player's, uh... all the players on the team, and then you have, like, all their stats on the back. And what's nice about this is, like, you have to, like, direct this and get it into, like, brand and, um... Yeah. And then everybody will have it in their hand.
- CVClaire Vo
I know. It's so fun to be able to make, like, creative physical goods that are high qual- I mean, again, and these are, like, very high quality, super cute, in- consistent. What, what did you use to generate these? Like, how did... What was the process?
- BMBlair Metcalf
Yeah, so I, I bounced around a bunch of places. Um, but with my bots, I described everyone, and I kinda just, like, ad-libbed.
- CVClaire Vo
Mm.
- BMBlair Metcalf
"This is their," like, you know, "This is their persona." And then I actually took that to, I took that to Gemini.
- CVClaire Vo
Mm.
- BMBlair Metcalf
Gemini could've perform- performed better-
- CVClaire Vo
Yeah
- BMBlair Metcalf
... but, like, uh, ChatGPT ended up making the, the illustration that was perfect.
- CVClaire Vo
Uh-huh.
- BMBlair Metcalf
I took that into Cursor and generated on a high model.
- CVClaire Vo
Oh.
- BMBlair Metcalf
And then that used, like, a, a markdown file to use the prompt that kept them all in the same-
- CVClaire Vo
Yeah, consistent
- BMBlair Metcalf
... aesthetic. Yeah. It was, it was, it was quite a workflow. [laughs]
- CVClaire Vo
Oh, I love it. Super, super genius. I mean, a hidden How I AI at the very, very end of this episode. Okay, my, my last question, I ask everybody this.
- BMBlair Metcalf
Mm-hmm.
- CVClaire Vo
When your MCP is not replying, when Claude is being obstinate, when, you know, whoever it is, when AI is not listening, what is your prompting strategy? How do you get it back on track?
- BMBlair Metcalf
So I don't yell at them. I know some folks do.
Episode duration: 29:40
Install uListen for AI-powered chat & search across the full episode — Get Full Transcript
Transcript of episode zF-J3rMbzZw