In short
Data-driven AI prototyping for product teams—separating UX generation from data/media generation using JSON schemas, then using MCP tools to fetch real photos (reducing broken-image hallucinations). Also covers structured prompting for Midjourney images using “subject + setting (incl. lighting) + style” and camera/film metadata.
Guests
Ravi Mehta, product advisor; previously CPO at Tinder and product leader at Facebook and TripAdvisor. Host: Claire Vaux (product leader, AI obsessive). Google DeepMind sponsor segment; Persona sponsor segment. Midjourney workflow references designer Finn Sturdy.
Key claims
Design systems/UX descriptions aren’t the foundation; data models are. Provide the LLM a structured JSON dataset (or production-like data) so the prototyping tool “uses it as is,” improving quality and iteration speed. Use Unsplash MCP to avoid hallucinated URLs. For images, describe like a photographer; film stock/camera metadata improves aesthetics and reduces uncanny results.
Notable examples
Paris trip itinerary prototype (22 files) with broken photo URLs and wrong Eiffel/hotel images in the “vibe” approach; improved version using Claude-generated JSON plus Unsplash MCP (real Eiffel Tower/avatars, richer comments). Switching the same travelers from Paris to Thailand by swapping JSON. Midjourney: “empty stylish office chair” improved by specifying setting/lighting and Fujicolor C200; Kodak Tri-X for grain/contrast; Leica/50mm f/1.2/Fujifilm Provia for portrait aesthetics.
Written by AI. May contain mistakes. Listen to the episode to check what was said.
Chapters
Tap a time to open that second in VOIntroduction to Data-Driven Prototyping
0:00 to 1:22
Learn how data-driven prototyping can enhance product development.
“PMs and designers are prompting prototyping systems that they don't quite understand how to get the best outcomes from.”
Exploring Prototyping Workflows
2:31 to 5:02
Hear about the pros and cons of vibe coding and prototyping approaches.
“I'm excited to see some of these workflows that are going to be really useful for me.”
Spec-Driven vs. Design-Driven Prototyping
5:02 to 8:24
Understand the differences between spec-driven and design-driven prototyping.
“And so I started to play around with, can you do that from a prototyping standpoint?”
Building a Prototype for a Paris Trip
8:24 to 10:39
Learn how to create a prototype for a multi-user trip planning website.
“And right now it's going in and it's starting to write the code.”
Enhancing Prototypes with Data Schemas
10:39 to 13:08
Discover the importance of data schemas in building effective prototypes.
“So for example, SendRiverPrews, it tried to get a photo, but now that's failing.”
Using External Media for Realistic Prototypes
13:08 to 14:01
Explore how to incorporate real media into prototypes using Unsplash.
“And so here we have like essentially a data schema specification.”
Data-Driven Prototyping Insights
14:01 to 27:46
Learn how to enhance AI prototypes using data models and external media.
“And this is a nice way to kind of think about the feature.”
Prototyping with JSON for AI Products
28:53 to 33:04
Explore the benefits of using JSON data files in prototyping AI products.
“So we can actually just go back into Claude.”
The Role of Content Research in User Experience
33:04 to 34:13
Understand how content research impacts the design of user experiences.
“I think this is going to be just as popular as Ryan Carson teaches Claire how to appropriately vibe code.”
Leveraging MidJourney for Quality Images
34:13 to 37:54
Learn how to effectively use MidJourney to generate high-quality images.
“Yeah, we use the Unsplash MCP to get these real kind of like free stock images here into your prototypes.”
Show all 18 chapters
Crafting Effective Prompts for AI Image Generation
37:54 to 41:29
Discover techniques for writing prompts that enhance AI-generated images.
“If you have like a parent that is not yet bought into AI or does not understand what it can do, get them in MidJourney.”
Using AI in Design: Background and Context
41:29 to 42:00
Examine the significance of context in AI-generated design elements.
The Importance of Background in Image Generation
42:00 to 43:11
Learn how background elements enhance the storytelling in images.
“probably very expensive, easy to ruin, design within reach here?”
Using Photography Terms for Better AI Outputs
43:12 to 45:56
Understand how specialized language affects the quality of AI-generated images.
“Which includes the lighting and then style.”
Challenges in AI-Generated Imagery
45:57 to 48:28
Explore the aesthetic challenges that arise when generating images with AI.
“And I want to see more people in the arts actually.”
Consumer AI Opportunities and Challenges
48:29 to 52:14
Discover the unique challenges in consumer AI product development compared to B2B.
“And that's because it's trying to use the average of all of this training data rather than these photos, which are saying, okay, I want to actually be in the realm of training data around high-end photography.”
Effective AI Prompting Strategies
52:15 to 53:02
Learn techniques to improve the effectiveness of AI prompts.
“locations where you fantasize yourself to be, when AI is not doing what you want, what is your prompting strategy?”
Exploring AI Strategy and Competitive Advantages
53:03 to 54:00
Find out how to build competitive products using AI technology.
“of parents who are always telling their kids, like, you can do, I know, So I know that you're a capable kid.”
Transcript
Automatic transcript. May contain errors.0:00PMs and designers are prompting prototyping systems that they don't quite understand how to get the best outcomes from. I'm always impressed that a prototype gets generated, but sometimes it's just like not quite what I need for the product I'm building or the experience I'm trying to craft. And so I know you have come up with this system called data-driven prototyping, which you're going to show us. The thing that we can do is we can help the LLM by starting to separate out the idea of not just generating the UI, but also by helping it with the data. So I've got a prompt here. It says using JSON because we want it to be structured data.
0:32Generate a sample itinerary that I can use to prototype a shared trip itinerary feature. The destination is Paris. I just think about the human parallel to this, which is searching through stock photos, trying to find which one is representative. It just takes so much time. And because an MCP now can like programmatically go through the tasks to be done using these external tools, it just makes it a lot faster to get higher quality media into your prototypes. So this is the finished prototype based on that prompt. We can see it generated 22 different files. It's a really nice componentization.
1:01It's got a little bit of sample data in there and it generated mock data. So we can see what day one looks like. We've got some photos in there. We can see what day two looks like. This will be you teaching me how to actually bring some data and structure to my vibe designing and prototyping. This is genius. I'm really excited.
1:22Welcome back to How I AI. I'm Claire Vaux, product leader and AI obsessive. here on a mission to help you build better with these new tools. Today, I am giving you elite prompting strategies from Ravi Mehta, who was CPO at Tinder and a product leader at places like Facebook and TripAdvisor. Ravi's going to show us how design systems and UX descriptions are not the foundation of great prototyping. In fact, JSON and data models should be. He'll also walk us through how to use structured prompting in mid-journey to get high quality photos and images for your prototypes. Let's get to it.
2:01Ravi Mehta:This podcast is supported by Google. Hey everyone, Sreshta here from Google DeepMind. The Gemini 2.5 family of models is now generally available. 2.5 Pro, our most advanced model, is great for reasoning over complex tasks. 2.5 Flash finds the sweet spot between performance and price. And 2.5 Flashlight is ideal for low latency, high volume tasks. Start building in Google AI Studio at AI.dev. Hey Ravi, thanks for coming on How I AI. I'm excited to see some of these workflows that are going to be really useful for me. Thanks so much for having me. I'm excited to go through it too. I've been having a ton of fun playing with these things.
2:42Yeah, so we've seen a lot of engineers lean into vibe coding and some of the pros and cons of that. And what I am also seeing, which I think you are probably seeing is product managers and designers doing like vibe prototyping where, you know, if we're saying people are writing code, they don't understand. I might, I might argue that PMs and designers are prompting prototyping systems that they don't quite understand how to get the best outcomes from. And I think these are such cool tools for product managers and designers and other folks to get their ideas across. But a lot of times, I've been personally dissatisfied with the outcomes of my prototypes.
3:23I'm always impressed that a prototype gets generated. But sometimes it's just like not quite what I need for the product I'm building or the experience I'm trying to craft. And so I know you have come up with this system called data driven prototyping, which you're going to show us that's going to help us close that gap between using sort of like vibe-based price or vibe-based prompting into these prototyping tools into something a little bit more structured that you think gets better quality. Yeah, absolutely. And I've been playing a lot with prototyping, both for people that are doing zero to one, as well as people that are using prototyping to understand established products.
3:58And when you're using prototyping to understand and to advance established products, the game is a little bit different because you have existing UI that you have to adhere to. And then you have existing data and functionality that you have to adhere to. And oftentimes, the thing that's really important is how do you provide the right context to the Vibe coding tool? And I think that there's two common ways that people do that. The first is like spec-driven prototyping, where you write a really detailed prompt. You try to make that as specific as possible to give the tool enough context to create the thing that you need.
4:33The other way that people create prototypes is with design-driven prototyping, where you actually start with images. You might start with wireframes. You might start with Figma designs. You upload them in, and then the prototyping tool takes those, and they bring those to life. But it occurred to me when we're building products, a common thing in the product lifecycle between design and specification is when engineering starts to take a look at what you want to build, one of the first things that they do is they say, here's the data schema that's actually going to drive the front end. And by doing that, they take some of the things that are a little bit ambiguous around designs or specs, and they codify them in a really concrete way.
5:09And so I started to play around with, can you do that from a prototyping standpoint? And I want to show how you can use this technique to create prototypes that are a lot more functional and then a lot more flexible so that you can change them to test different data sets for different purposes. So you can get really good, accurate user feedback. So why don't we start, we'll take a look at how someone might typically use more of a spec-driven type of approach to prototyping. I'm using Reforge Build, which is a new prototyping tool specifically designed for product teams that are working with established products.
5:44It's been really good. I think one of the things I've noticed about it is it just generates very clean code that's much more usable in terms of taking things into production. So here I've got a short prompt. So make a website for planning a Paris trip with multiple people, include some activities, hotels and restaurants over three days, add user profiles and let people comment on things, make it look nice. So I was thinking about when I was at TripAdvisor, we wanted to create a trip itinerary planning feature. But what we figured out as we were doing the spec for that is trip planning is often a multiplayer activity, not a single player activity.
6:17So we wanted to understand like, how do you create a trip itinerary feature that is really multiplayer from the start? And I thought prototyping is a great way to explore that idea. So here's how you might typically start to build a prototype around that idea and explore it. Yeah. And I have to say, make it look nice is a commonly used Clairvaux prompt when going into these AI tools. Like, make it good. Very sophisticated prompting techniques. So I think this is ripped from the headlines sort of vibe prototyping prompting right here. It's funny because it does work. I find that AI is often very responsive to a little bit of pushing in product.
6:56Yeah. Okay, great. So you're using this sort of very common experience-based description of what you want to see, right? Very functional. It's a website. It has a certain set of pieces of data in it. There's user profiles and people can comment. It's like very functionally descriptive. Definitely. And so what's pretty amazing is that this will work. It's not a lot of context. But if I hit create, we'll go in and the tool will create a plan. The Reforge build tool does a really nice job of asking you some follow-up questions. And you're actually asking them to do multiple things all at the same time.
7:36You're asking them to think about the UX design. You're asking them to think about the underlying data structure. You're asking them to figure out the code architecture. So there's a lot that needs to be done. and at the end of the day, it's capable of doing it, but because you're asking it to do so many different things, the output is kind of an average across those things rather than really spiking each of those areas, which you want it to be. As a product team, you have someone who's great at design, you have someone who's great at product, you have someone who's great at engineering, thinking about all of those things.
8:11One of the things that I like a lot about the Reforge tool is it asks you follow-up questions to help make your prompt better, which is important for making sure that the system has as much context as it needs. I'll just skip that for now so it gets into the code generation. And right now it's going in and it's starting to write the code. It's starting to come up with a componentized plan. So it's going to use reusable UI primitives. It knows sort of overall what it's trying to do, which is create a full prototype with mock in-memory state. And so it's actually doing the work to say, okay, we need a data model here.
8:44and as part of doing this, it will create that underlying data model as well. And you can see here, it's creating a file. It's called libmoc.ts. But at the end of the day, because it's trying to do so many different things at once, the end result typically is not as high quality as the approach that I'm gonna show. So let me actually cut over to this particular prompt. So make a website for planning a Paris trip already built. So we can kind of see what that looks like. Great. And one of the things that I wanna reflect on while you're pulling that up is I think the exposure of the reasoning is really interesting because I was reflecting on your prompt and I was like, what if I slack this to a designer?
9:24We're like, make a website with a three day itinerary for Paris with multiple people in comments. I would get, I probably wouldn't even get back a list of questions. I would get, yeah, find time on my calendar so we can talk about this. And it's so funny that you can do that iterative process of taking a very high level idea, actually getting back some structured questions to help the sort of design side be in the product side be flushed out. And then it can go into, okay, what would an engineer think about implementing this in like two or three responses. And so I just I reflect on it as a accelerated version of the product development process we all know and love.
10:06And it's just so interesting that it follows almost the same pattern, but much, much faster, much more efficient. I mean, it's pretty amazing with that little context that you can get to what we have here, but we can definitely do better. So this is the finished prototype based on that prompt. We can see it generated 22 different files. So really nice componentization. It's got a little bit of sample data in there and it generated mock data. So we can see what day one looks like. We've got some photos in there. We can see what day two looks like. But it's also got some problems. So for example, SendRiverPrews, it tried to get a photo, but now that's failing.
10:44And that is actually a hallucination problem. A lot of times when these tools are trying to create media, they do know some URLs that are out there, but they'll hallucinate other URLs. And then you'll get broken links like this. I want to call out another one on day one. if you go to day one this looks like a hotel in french polynesia but not in paris yeah it's a really good point yeah this is definitely not the right photo i hadn't even noticed that yeah so i'm like that i mean i want to go there it looks like a great hotel but it does not look like a parisian parisian hotel this is also not the best uh photo of the eiffel tower no i mean it is the one of the more important parts of the it is an important part yes okay so we're looking at this it's i mean in 30 seconds.
11:30Very impressive, right? As I said, like we're impressed that these prototypes can be generated at all. And what I think you're calling out is, it's good, not great. Like if a designer brought this to you, you'd be like, let's just go back to the Figma board and try something else. Absolutely. And it's gonna take a lot of back and forth to get it to the level that you want. But the thing that we can do is we can help the LLM by starting to separate out the idea of not just generating the UI, but also by helping it with the data. And so the idea behind this approach is that rather than starting with a prompt like we have here, let's start with a data set.
12:08And so I'll go over to Claude, and I'll ask it to generate some data. So I've got a prompt here. It says, using JSON, because we want it to be structured data, generate a sample itinerary that I can use to prototype a shared trip itinerary feature. The destination is Paris. The itinerary should include an itinerary name, cover photo, and date range covering three days. There should be three to four travelers associated with the itinerary. Each traveler should include a first name, last name, avatar photo, and preferred travel style like foodie or history buff. For each day, include a collection of things to see on that day.
12:42There should be 12 to 15 items in total. The items should be a hotel for day one, popular things to see on each subsequent day. Each item should include a name, a start time, a duration, a star rating, number of reviews, tags to describe them, a photo and a short description. Some items should have notes for one or more travelers. The notes should be in chronological order and respond to each other like a message thread for each itinerary item. And so here we have like essentially a data schema specification. And it's a lot more detailed than what we put in up front. So we're cheating a little bit.
13:19But oftentimes, teams that are working on existing products will already know what their data schema is. And so you'll have a head start, not just with the schema, but also with the data. Well, and I'll also say that the cheat code here, even though you really are describing a pretty detailed data schema, you're not talking about relationships. You're not talking about, you know, parent-child relationship, foreign keys, none of that stuff. You're really just describing the components of the data structure in natural language, which probably took you a minute or two to type out, or if you're using voice, even less than that.
13:52And so it does allow you to get a lot more detail that will eventually be more structured without having to force yourself to write a data model. Absolutely. And this is a nice way to kind of think about the feature. Like, what are the key things I'd want to see in the itinerary? What are some of the key things about the travelers? And so just thinking about it from a data first perspective helped me understand the feature a little bit better. Another really important part of the data is media. So avatar photos and photos that are actually of the Eiffel Tower, actually of the hotel that you're planning to stay at.
14:25And so for this particular prompt, I've added in the Unsplash MCP server. And so MCP servers are a great way for Cloud to be able to access external services. the Unsplash MCP server can take in a particular query like Eiffel Tower or a particular hotel name and then pass back a photo that matches that query so that when we generate the mock data, we're actually getting real URLs from Unsplash. And so if I go in here, I look at my tools. One of the tools that's active here is the Unsplash MCP server. It's pretty easy to install. There's a tool called Smithery, which makes it easy to get up and running.
15:01And this was a key unlock for me. It's like, how do you actually pull in actual photo data versus some of the hallucinated URLs that you'll often get. Or do what I do, which is go sit on the Unsplash site and search through and find ones that I like and all that kind of stuff. So I did not know this MCP existed and it will definitely shortcut a lot of my kind of prototyping workflow. So I'm excited to see how this works. Okay, so you've created this prompt. I must call out for the power users of Claude. I bet you could create a Claude project to create prompts like this for data models. So there's probably a whole meta cycle you can do here to make even this a little bit more efficient.
15:41But let's share what this generates. So you put this into Claude, you connect the MCP, and then you generate something? Yeah, absolutely. So let's start it up. Okay. And is there any reason you chose Claude over any other tool, any particular affection for the model, the app, any of that stuff or just it's the one you reach for? I do love Claude. I find it's pretty consistent. I use Chachupty and Claude, sort of a 50-50 split during the day. But anytime I want to generate data that feels like human and authentic, I find myself going to Claude. And I wanted to go to Claude here because, particularly because of the conversations between the travelers, I thought Claude would do a nicer job generating those.
16:27Great. And what I want to call out here for folks that are maybe not watching on video and are listening is Claude is starting to generate this comprehensive JSON and then calling the search photo tools in the Unsplash MCP over and over again to generate a Paris cover photo, avatar photos, attractions, I'm sure hotels and restaurants. And so it's super, I just think about, again, I think about the human parallel to this, which is searching through stock photos, trying to find which one is representative. It just takes so much time. And because an MCP now can like programmatically go through the tasks to be done using these external tools, it just makes it a lot faster to get higher quality media into your prototypes.
17:12Absolutely. And, you know, this will take a long time. You know, it's interesting with AI. I think certain things are moving a lot faster with AI. Other things aren't. You know, it's much faster for me to create a document these days than it is to create a presentation in a lot of cases. And here just, you know, manually going through the photos is really challenging. But it went, it got all those photos, and now it's generating the JSON. So it's taken that natural language prompt that we had, said, okay, here's the data schema, and I'm going to fill out the data schema with pretty authentic information.
17:45And I want to do a callback to your first prototype, which is I'm sure this or a version of this is what's populating your first prototype. But it was one, as you said, one of many jobs that the prototyping tool had to do. It not only had to think through user experience, technical implementation, writing the code, it also had to go, okay, and what data goes into this code and what images? And I do think the idea of taking sort of critical parts of that workflow and giving a dedicated sort of prompt and tool to those critical parts and taking that job off the sort of general building can ultimately end up in higher quality, or at least I'm guessing that's our hypothesis here.
18:26I think so. And I think that's the fundamental concept behind agents is you want individual agents with individual context working together in sequence to get to an output rather than trying to do it all in one go. And here, Claude has done a really good, really nice job with this prompt. We now have an incredibly detailed data set. We've got the travelers that are here, the messages that they're sharing back and forth, the items that they want to see, like Momart, the type of item. It's tagged with different relevant tags that are fun and interesting. There's URLs for images. And now we have actually a much more detailed spec in the form of data for this Chipper Itinerary platform.
19:09And so now we can actually just copy this JSON, go back to our build tool. And now our prompt doesn't even need to be very detailed. And so we could do something like generate a Chipper Itinerary feature based on the sample data below, paste it in. So we have all that sample data here. And then hit create. And now there's a ton of really interesting, very specific context that's available to the prototype. And what I found was interesting about this approach is when you provide data in this way, the AI doesn't get fuzzy with it. Actually, we'll just take the data and use it as is and then build the rest of the experience around the data.
19:50You just gave me an idea. So this is an impromptu how I AI idea, but there are so many SQL generation and data schema exploration MCPs. And I was just thinking as I'm prototyping apps, I should just hit our production database and come up with sample, like example JSON that represents actually the real data that somebody would use in some of our features and then use some of that to prototype it. And so there is, you know, we're showing a completely fictionalized set of data, but you could, I could imagine a world in which you can actually pull a representative set from your production data or production-like data to really give your prototypes a real feel for how your users are using them.
20:39And as a product leader, I've done this a lot in product and design reviews where I say, yeah, but what happens when the user's profile is, you know, a thousand words long? Or what happens when the Eiffel Tower photo is vertical and we crop it horizontal, like how we thought about all these things? And actually putting that real data in helps you stress test the user experience in a way that I think is really important, where designers are never going to put a vertically inappropriately cropped photo in their beautiful Figma designs. You're never going to get that like accidental broken experience.
21:15But AI will do it for you and help you test some stuff. This is really true for UGC experiences, right? Because the content that users provide is never as beautiful as what we put into Figma. It's nice to see how it's actually going to look to users. The other interesting thing is like if you have a set of data that you can pull out, but you want to augment it in some way. So let's say we had a trip itinerary, but we didn't necessarily have conversations. You could throw that JSON into Claude and say to Claude, augment this JSON with information about the travelers and their conversations. And it'll go in.
21:49It'll start with the JSON that you have and it'll flow in the data that you need. And so you can iterate on the data that you already have to get to something that you need for your prototype. Well, and I'm not going to presume your age. We're both 21 years old, but this is also making me think back to how much lorem ipsum I put in mock-ups for very young people. You used to have to put placeholder text and placeholder images in your designs. And there was actually a cottage industry of funny lorem ipsum generators on the internet where you copy and paste paragraphs of code or of text. And I'm just thinking just the fact that you can put pseudo realistic content at scale in your designs.
22:31I even think about going past, you know, fake data. I've seen so many designs where designers just like grab the component and duplicate it down the page. So it looks all the same and the number of comments are the same and all that kind of stuff. And I do think it's really helpful to be able to generate this sort of like full surface area of the data model and the design experience without so much manual burden on a designer, a content designer, a product manager, an engineer trying to figure out what goes in each component and what are the versions of each of those components. Absolutely. And it's one of these things where it works much better with stakeholders and with users is if you have authentic data.
23:14I think as product builders, we're used to thinking about data separately from the UX, and sometimes we just gloss it over, but users never do. And so as a result, they do need to kind of have something that looks and feels as it actually will be in order for you to get realistic feedback. Okay, we got a prototype. Yeah, so we got a prototype, much cleaner than the other prototype. We have a list of all of the travelers. We have what's happening on each of the days. We have beautiful photos for the different things in the itinerary. So I can click on day two, day three. Oh, look, we got a full Eiffel Tower.
23:58Absolutely. And it's a beautiful shot, right? It's pulling the stuff off on Splash and it's working on pulling out their most popular images. So they look really good, which is especially important when you're prototyping for consumer because people are very sensitive to this. we've got tags we've got comments um avatar photos so all of this feels much richer than um than it does if you just have it generate both the data and the functionality at the same time yeah this is i mean you know we're doing a before and after comparison but this is just a lot richer it's a lot more it's the accuracy of the data significantly improves the perceived quality of the design.
24:41I mean, honestly, you know, there are some components of this that are similar of the old design, not exactly, but it's really interesting to see how just having the right photo, the Eiffel Tower, the right data, some of these like metadata components, like how long it might take for you to spend time at an attraction, accurate avatars, which I like. I think the old avatars were just little initials avatars, but these are actually like real people. their friends, Emma, Oliver, and Marcus are apparently going on this trip. It really does look like a much higher quality experience here. And we can take a look at the before.
Read the full transcript
25:21Let's see. And yeah, this is a good start, but it's not sort of the level of quality that we want and that we need. Yeah, and it almost is a lot cleaner too. I was noticing in the old prototype, there's like a lot of little emojis and things that are filled in here and there that you as a product person or designer might not want in. But when you say like, here's my clean data schema, here's the media I want and the media I don't want, it gives you sort of a much more modern look and feel to this experience. And I think that's because of the separation of concerns. The tool has been able to focus on what is the right UX around this data set rather than simultaneously figuring out the UX, simultaneously figuring out the data set.
26:04Yeah. And what I want to call out is so many people that I've spoken to are really worried about getting design systems into these prototyping tools but have really underinvested in what you're showing, which is like the data models. And I was actually talking to somebody yesterday and they said, what context do I need to make sure I always give my PRDs and my prototyping tools to generate? And I said, get your engineering to give your definition of your data schema and just copy and paste that in. That is like one of the first things I think you should do because it's the right level of constraints around the experience.
26:37And you're just showing sort of the next level of this, which is populating that, extending it, and then putting it into a prototyping tool. And then what's really nice about this, and we just generated it on the fly, so I'm going to have to see where the code is. But if we go into the files, we have a nice breakdown. and if we go into lib, which is often where the data ends up, we have a sample data file. And so we can go in and we can change this. Let's say, you know, actually we want Marcus to be called Mark rather than Marcus. We can go in here and let me see where Marcus is. Change his name to Mark.
27:14Just need to reload. Ah, there we go, Mark. Change Mark. Same thing with the photo. Like, you know, this is kind of a good Paris photo, but we can probably find something better from Unsplash. So let's just search for Paris. This one's a great one. Copy the image address. Come back here. If we look, we've got the cover photo. We can just replace that. And then again, reload. Oh, it looks so nice. It does look really nice. It's coming together. This episode is brought to you by Persona, the B2B identity platform helping product, fraud, and trust and safety teams protect what they're building in an AI-first world.
27:57In 2024, bot traffic officially surpassed human activity online. And with AI agents projected to drive nearly 90 % of all traffic by the end of the decade, it's clear that most of the internet won't be human for much longer. That's why trust and safety matters more than ever. Whether you're building a next-gen AI product or launching a new digital platform, Persona helps ensure it's real humans, not bots or bad actors, accessing your tools. With Persona's building blocks, you can verify users, fight fraud, and meet compliance requirements, all through identity flows tailored to your product and risk needs.
28:34You may have already seen Persona in action if you verified your LinkedIn profile or signed up for an Etsy account. It powers identity for the internet's most trusted platforms, and now it can power yours too. Visit withpersona.com slash howiai to learn more. You're replacing these sort of piecemeal, but if you wanted to stamp out a bunch of different versions of this completely, you're working with just the data file, right? Yeah. So we can actually just go back into Claude. And now we can just say something like, now generate an itinerary for the same travelers going to Thailand. Yep. So I'll get that.
29:18This chat already has all the context. It knows what the schema is. It's going to go back out to Unsplash to grab all those photos. And it's going to generate a new itinerary. Same people, different trip. And then once we have that JSON file, we can actually take that and apply it directly to the prototype. I was just thinking about, again, going back to when we had to walk uphill both ways in Photoshop for our designs. Like, the speed at which you can create versions of your design is really helpful. And, you know, one of the things that I'm thinking about here is, great, go ahead and localize this in Spanish or go ahead and localize this in another language.
30:03Let me see what that looks like. Or even when you want to extend the design going back to, and maybe this just my engineering brain likes this, go back to, let's update the data model first and then let the design cascade out of the data model as opposed to putting buttons on the front end and then working our way back into the data model. I think is just a really nice primitive on which to standardize your prototyping efforts. Absolutely. And then it allows you to be much more flexible in terms of what you're doing, and allows you to work on the functionality separate from the data model. So for example, here, let's say I wanted to add a feature where, you know, I want to be able to see blank cards if people have time in between activities.
30:48So we can kind of see where the free time is in the day. it'll go in and it'll implement this functionality using that data set so if we want to put a new data set in here or change anything the functionality is totally dynamic rather than baked into the prototype which often is awesome i really like this and you know again we're looking at the data modeling the design of things but i'd be remiss not to mention how helpful it is to have the content researcher, especially on a consumer experience of what hotels should I put in? What attractions should I put in? What do they actually look like? And maybe your designer's been to Paris.
31:28Maybe they have not. And you certainly don't want them spending time Googling the top hotels in Paris for people in their 20s and 30s. This does, in addition to doing the scaffolding, it actually does the right research on the content and what to put in here and feels pretty realistic. And you might actually have two different itineraries, one for someone who's older who's going to Paris for their third or fourth time, someone who's younger who's going to Paris for their first time, and then you could test this feature with itineraries that really make sense for the user who's using the tool. So now we have the free time cards added in.
32:03We've got four hours, four and a half hours between checking into our hotel and our dinner. We can look at day two and see that we've got a couple of other time blocks in here. So now Claude is completely done generating our Thailand itinerary. And so we can actually just swap out the itinerary. If we go into the code, we can see, okay, we've got the data here. Let me copy that over. And then I could just replace this and then reload. And now we have a Thailand trip. That was thrilling to watch. All super easy. and those free time blocks stayed we have great photos here sophia and emma i bet he's named marcus though because we made that edit in a different tool so i think so yeah if we were yeah we look we overrode that but that's easy enough to change yeah that's easy to change we can go back here uh and update it this is awesome okay so to recap for folks instead of just prompting into your prototyping tool you can use your favorite general LLM tool, in this instance, Claude, to actually generate a JSON schema of the data that you want to represent in your experience.
33:20Go into your prompting tool, your prototyping tool, say generate a user experience based on this data, paste the data in, then use that data schema as the basis for iterations and updates, and then even swap out that data schema with entirely new content and watch how your experience, you know, adapts to new content or show that to different user segments or just really impress your boss. So yeah, you've completely changed. I think this is going to be just as popular as Ryan Carson teaches Claire how to appropriately vibe code. This will be you teaching me how to actually bring some data and structure to my vibe designing and prototyping.
34:02This is genius. I'm really excited. I know you're working on a blog post. if it's out we'll link to it but this is this is great and again one of the things I want to call out I am just a really lucky b2b enterprise girl we just work with like form fields and buttons like the fanciest I get is like my button has a gradient in it but you with your your consumer product background get to work a lot with media and one of the things that we're looking at here is the media aspect of it, the photos, really do make the experience. It does, absolutely. Yeah, we use the Unsplash MCP to get these real kind of like free stock images here into your prototypes.
34:45But I know you've also been working on generating great photos yourself. So you want to show us a little bit about how to use MidJourney again, unlike how Claire does it, which is just like float in the MidJourney model until something cool comes out with a little bit more structure than that? Yeah, let's do it. So I was playing around with MidJourney a lot, trying to get mock data for a project I was working on. And I was working with a designer named Finn Sturdy who has done just a brilliant job of kind of figuring out how to get stellar results out of MidJourney that feel really curated and feel like a creator director has helped to design them.
35:27And as we looked at how he was prompting things, we discovered a few things about how you can use really specific wording within your prompts to elevate the images. So let's just start out with a very simple prompt. And I think what's great about these tools is even if you're not very descriptive, you're still going to get pretty good results. I mean, you could see the content on MidJourney is already beautiful no matter what you're looking at. But let's say we want to just have a stock image of an office chair. You might just type in office chair. I know you're probably going to type in more than that, but let's see what it generates.
36:02So it's going to go through. It's going to look at references. These are still pretty nice office chairs. The photo is nice. But is it really usable? Like, is it the sort of thing that you would drop into a catalog or something like that? It probably isn't there. Yeah. And the way that we can get to a much better end result is to think about three things. the subject, the setting, and the style. So I'll use a new prompt. This will actually generate much better results. We're very clear about the subject that we want, which is an empty, stylish office chair, and then really clear about the setting.
36:42And the setting includes both the placement in the room and the lighting. Lighting is a really key part of setting that photographers think a lot about. And if you talk about the lighting in the prompt, you're going to get much better results. And then the last thing we want is a particular style. And there's a couple of things that can help with defining style. The sort of thing that a lot of people do is they try to describe it, but that's generally not how photos are tagged. And so the idea here is to think about, well, how would a photographer actually describe a particular photo? And they might use cultural references or location references.
37:20And then oftentimes they'll use camera metadata or other information about the shoot. And so in this particular case, we've added in a keyword for the film stock that we want to emulate, Fujicolor C200, which is a very warm film stock that generates really beautiful kind of like golden hour type of results. So I've started that generation. And now we're going to get something much more usable than the initial prompt. Yeah. And as somebody who was a early MidJourney user, I think MidJourney is like the gateway drug to consumer AI. If you have like a parent that is not yet bought into AI or does not understand what it can do, get them in MidJourney.
38:04You're going to get some weird Facebook posts, but they're going to be unlocked on something really, really special. But what I would say is I'm shocked at how fast it's gotten. It used to be so continuously slow and it's fast now. Okay, we got a pretty, I mean, I want that to be my office. Who cares about the chair? So beautiful. We've got the Italian kind of cultural cues. We've got the beautiful lighting. It's a great chair. This is definitely a usable photo. We've also, you know, I think one of the things Mid Journey excels at is giving you these different variations. So here's another one, another one, another one.
38:40All really beautiful and very usable if that's something that you're looking for. And what was key here is thinking about the prompt in terms of how a photographer might describe things rather than telling the AI what you want. So, for example, you know, we could change the setting and a photographer is probably not going to say, I want really soft lighting. Instead, they're going to describe the setting, which is an autumn, raining morning. So we're going to take this exact same scene and move it into a different lighting setting, which will change the mood quite a bit. And as one of the four people in technology that have a liberal arts degree, I have to call out.
39:25I do think this moment where we're using natural language to generate assets across the board, especially media assets, art literacy is really important. The ability to describe design is really important. I don't think people spend enough time articulating what taste means, articulating what elegance means, what quality, what style means. And even going through this practice of understanding reference art styles, reference devices like digital cameras or film, locations, I think language is now such a foundation for technology that if you're not investing in your linguistic skills, you're going to miss out on your ability to create these high quality assets, at least at this point.
40:13I totally agree. And I think the two fundamental inputs into creating something are taste and craft. And so taste is the ability to know what's good or what you want. Craft is the ability to actually achieve that vision. And with AI, it's completely 10x to everyone in terms of the craft. Anyone now can create photos or music or other things, but the taste is really important. How do we take that incredible power and use it to create something that meets the needs that we have, whether creatively or professionally. Yeah. And if you don't feel like you have the natural skills to look at a photo like this and say, what makes a photo like this?
40:49Make me feel this way or look this way. Hack is take this photo, drop it in like a clot or a chat GPT and like have it describe it back to you in language. And it can give you, it can kind of be a train and exercise ground for giving you language into these prompts. So I think people need to put a little effort into training themselves how to write good prompts and kind of backwards engineering out of things that they like, how they might describe them better. And as you develop that understanding, you'll also develop a vocabulary around it, which I think is incredibly powerful for prompting. Yep.
41:26Great. So we have a beautiful chair. It's a trestle desk. It is an autumn rainy morning. Another one. You've got the raindrops. You've got Milan in the background. Another one. Another one. So very quickly, we've gone from this kind of beautiful morning light to this kind of softer light, not by describing the light itself, but by shifting the setting and having the LLM kind of figure out what is the appropriate lighting for that setting. Now I have to ask a question. Is this photo and this prompt a reflection of being a parent that works at home and just imagining what it would be like to have a completely empty, clear desk looking out at Milan in a stylish, probably very expensive, easy to ruin, design within reach here?
42:18that would be amazing one could dream if only you could see my desk right now it's tiny and filled with you know battery and stream deck and all sorts of stuff exactly so again you can use mid-journey for commerce and for escapism here a hundred percent yes and then if you'd rather be in new york than milan you know here we've just added uh new york to the photo and said it's a modern glass american architect's office and what's interesting i think a lot of times people think a lot about the foreground in their photos but not what the background is and the background is just as important to providing a sense of place and now okay you know we go ahead so remind me so remind me again we need subject we need location we need light and just pick film or a camera as your cheat code.
43:10Yeah. So subject, what do we want? Setting, where is it? Which includes the lighting and then style. How do we want it to look? And you and I were hypothesizing before the show that the reason why film or camera could be a cheat code here is we suspect that these models are trained with a set of metadata that includes that information. And so when you narrow in on that data set, you get a more refined source of content that's generating these images. Yeah, absolutely. And let's show an example of that. So film stock is often metadata that is associated with a photo. And so here I've changed from the Fuji film stock to Kodak Tri-X, which is a really beautiful black and white stock that is very contrasty and has a lot of grain.
44:01So rather than telling the LLM, I want grain, which can often overdo it, or I want contrast, we're saying we want it to look like Kodak Tri-X. Oh, it is really beautiful. And you can kind of get a sense of it. It's not quite, you know, just creating something black and white. It's a little bit more than that, a little bit more contrast, a little bit more character to it. Yeah, a little bit more texture to it. And I think what's interesting here is there's a lot of meaning that comes with the film stocks. So not only are we getting a different style, we're also getting interesting compositions.
44:34And I think that goes to how these models were trained, because, you know, they're trained on data that likely has descriptions or metadata around the images, and they're trying to create a mapping between the language and the image. And so when you use photographic language, it looks at the higher quality photos in the data set. Well, and you know, there's a lot of and rightfully so anxiety in the arts and the creative professions around some of these tools. And when I hear you speak about how to get higher quality assets out of here, I think what a head start folks with a creative with a photography with an arts background, actually have in this kind of world where it still is really anchored in the technical aspects of the media.
45:23And so if you know photography terms, then you can actually prompt. I've seen a lot of like F-stop terminology and prompts, all those sorts of things. You can actually prompt it significantly better than someone off the street who's like, I know how to write code, but I don't understand what Kodak film stocks are out there. And so, you know, I just I do think for folks in the arts, I hope you can look at some of these opportunities and see where you actually have a leap ahead of folks and bringing something like this with your own creative vision, with your own photography or art, I think is going to be a really interesting way people build even, you know, more amazing things in the future.
46:00So I think it's it's awesome. And I want to see more people in the arts actually. Absolutely. And this lowers the barrier. Yeah. You know, and there's good things about that and bad things about that. Yeah. But I think it's better. You know, the more people in the world that feel empowered to create, the better will I'll feel, the better will I'll be. And not everybody can afford these fancy cameras either. No. You know? Oh, amazing. Okay. So you have a person now that we're generating. So I'm generating a person. So young man with brown hair and eyes at golden hour. And I've added in some of that camera metadata that you were talking about.
46:36So Leica, that's like an$8 ,000 camera, right? So that's not accessible to most people. But by mentioning it here, it puts the image generation model into the space that it's learned from around those cameras, which makes for more beautiful and more aesthetic images. 50 millimeter lens is a very common focal length for portraits. F 1.2 says I want a really blurry background, like incredibly blurry background. So it's kind of ethereal looking. And then Fujifilm Provia is a good portrait film stock that people use. And so here we've got a great image that embodies that. And we can go through and see the other ones.
47:15And all of these have sort of an aesthetic quality that's sometimes hard to get out of AI. They're not in that uncanny valley that we often see with images that are generated of people. And I can kind of show you, you know, if we actually generate an image, but we don't include any of that camera information, sometimes the results are more in that uncanny valley. Now, what I do have to call out here is all of these generated images have a quite mournful aesthetic to them. There's rain. These men are looking very concerned through these windows. And so I'm going to challenge you after we get off the podcast.
47:53I want you to email me a happy young man. Okay. All right. That sounds good. We will do that. Okay. Oh, so you did do a portrait of a young man with brown hair and eyes. So same original subject prompt without all the location, lighting, film, camera, metadata. And we got like sketches. Yeah, we got sketches and that's fine because we didn't tell the image generation model that we wanted a photo. And one of them is a photo, but you can see this photo kind of has that uncanny look to it. It's a little bit too perfect. And that's because it's trying to use the average of all of this training data rather than these photos, which are saying, okay, I want to actually be in the realm of training data around high-end photography.
48:43Okay, you have given us such a great way to structure our prompts. I have given everybody homework to study the arts to make yourself better at these AI tools. Let's do a couple lightning round questions and get you back to your very far breadth work of generating JSON to do AI prototypes to AI mid-journey photography prompting. So, you know, as I said, Enterprise Girl, B2B, Squareboxes and Forms. What I love about what you're showing us is there is a lot of work in consumer that can be really accelerated by AI. So there are two questions on this point. One is, what do you think AI PMs and product teams in consumer products really need?
49:31How are the skills that they need to develop different than maybe ones that are working in B2B? What do you think of the opportunities are for consumer product teams with AI? I think AI for consumer is incredibly exciting. And there's a whole lot of consumers that are using the big tools like Claude and ChatGPT. I think one of the nice things about B2B is the ROI of AI is usually pretty clear. Like if we can accelerate a workflow, we can make someone faster, we can make someone more capable. The reason why is very clear. And so businesses are adopting this stuff very quickly. For consumers, it's not always really clear what the consumer value proposition is and what problem you're solving for them.
50:14And not every problem is worth solving for consumers. So just because you can do it with the technology doesn't mean that people want to actually do it. And so I think really good consumer AI is grounded in an understanding of consumer psychology and consumer needs and then maps in, well, how does AI fit with that psychology and those needs rather than starting from a technology first solution and say, okay, you know, we can do all these really cool things. Let's create a consumer app around that and hope that we're solving a need. And so there's a little bit of magic, I think, that has to happen with consumer.
50:45And the way I think to do risk that is by focusing on those needs and really understanding the underlying psychology. Well, and I would just say, as you were saying that some of the kind of like psychological needs that I think are underserved simply by the limitations of technology, time and space on teams are like extreme levels of delight, which is how can you create really rich, engaging, delightful experiences, those like beautiful, you know, parts of the app that tend to get shaved off in scope reduction exercises. I think that's a real opportunity. And then the other thing is making products feel really personalized, either to the place you're at, the people that you're with or what we know about you.
51:29And so it doesn't have to look like a chatbot. But if you can think, what could I do today that I couldn't do yesterday for this user? I think there are a lot of answers where AI really unlocks your ability to deliver something very special, even if it looks like a tag or a comment or a photo. And so it's, you know, what is the tool behind the scenes versus what is the expression of the product? I think you can differentiate a little bit. And I think that delight piece is so important. A lot of times as PMs, we prioritize things as must have, nice to have, won't do. And I used to tell my teams, if we cut all our nice to haves, our product is not going to be nice to have.
52:07And we have to reserve some of our time for the delightful things that make the product stand out. Yep. Oh, I love it. Okay. And then my last question is, other than giving it reference locations where you fantasize yourself to be, when AI is not doing what you want, what is your prompting strategy? How do you get it back on track? Do you have any tricks? I try to be very encouraging. And I've been using the word elite a lot. So you are an elite sales coach or you are an elite photographer. And so just elevate its expectation to itself. And sometimes that will help it generate better results. And I think what it's doing is it's, a lot of prompting is like, what space of the training data set do you want to be in to get a result?
52:50And when you use the encouraging words, it's not that you're actually encouraging the AI, it's that those words are associated with really high quality output and it puts it in a different training space. Okay, I love it. And again, I think this is the prompting strategy of choice of parents who are always telling their kids, like, you can do, I know, So I know that you're a capable kid. I know that you can do, I know you can do your homework. Okay, well, where can we find you and how can we be helpful to you? Yeah, so I've got a sub stack. So Ravi on product, and you can find me at ravi-meta.com.
53:24You can also find me on LinkedIn. So please follow me. I've got a class that Brian Balfour and I launched with Reforge. It's on AI strategy. So the question that we were answering with that class, which is really important for us as product builders, is not only how do you understand the technology, how do you integrate it into your product, but what does this mean for you competitively? What do you need to do to create a product that's going to win in the market, I think in the most intense environment that we've seen in the history of tech? So we launched that in April, had a really great first cohort.
53:56We're launching the next cohort in October. So check that out if you're interested in learning more about AI strategy that's available through Reforge. Awesome. Well, thank you so much for showing us all your amazing workflows. They're very useful. Awesome. Thank you so much for having me. This has been really fun. Thanks so much for watching. If you enjoyed the show, please like and subscribe here on YouTube or even better, leave us a comment with your thoughts. You can also find this podcast on Apple Podcasts, Spotify or your favorite podcast app. Please consider leaving us a rating and review, which will help others find the show.
54:28You can see all our episodes and learn more about the show at howiaipod.com. See you next time. Thank you.
From the publisher
Ravi Mehta, now a product advisor, has built and scaled products used by millions. His past roles include Chief Product Officer at Tinder, Entrepreneur in Residence at Reforge, and senior product leadership positions at Facebook, TripAdvisor, and Xbox. In this episode, Ravi demonstrates his data-driven approach to AI prototyping that produces dramatically better results than traditional "vibe prototyping." He also shares his structured framework for generating professional-quality images in Midjourney that look like they were shot by a professional photographer.
What you’ll learn:
- Why most product managers and designers are “vibe prototyping” with AI and getting mediocre results
- How to use JSON data models instead of design systems as the foundation for better AI prototypes
- A simple three-part framework for structuring Midjourney prompts to get professional-quality photos
- How to use Claude and Unsplash’s MCP server to generate realistic data and images for your prototypes
- Why real data (not Lorem Ipsum) is critical for getting meaningful feedback from stakeholders
- The film stock “cheat code” that instantly elevates your AI-generated photos
—
Brought to you by:
Google Gemini—Your everyday AI assistant
Persona—Trusted identity verification for any use case
—
Where to find Ravi Mehta:
Website: https://www.ravi-mehta.com/
Reforge: https://www.reforge.com/profiles/ravi-mehta
LinkedIn: https://www.linkedin.com/in/ravimehta/
—
Where to find Claire Vo:
ChatPRD: https://www.chatprd.ai/
Website: https://clairevo.com/
LinkedIn: https://www.linkedin.com/in/clairevo/
—
In this episode, we cover:
(00:00) Introduction to Ravi and data-driven prototyping
(02:31) The problem with “vibe prototyping” in product development
(04:18) Spec-driven prototyping vs. data-driven prototyping
(05:27) Demo: Spec-driven approach to prototyping
(08:26) Limitations of the basic AI prototype approach
(11:24) The data-driven prototyping approach explained
(12:08) Demo: Data-driven prototyping
(17:45) Creating a prototype with the generated JSON data
(23:33) Comparing the quality difference between approaches
(26:44) Modifying the prototype
(28:53) Benefits of this approach
(34:40) Structured Midjourney prompting
(36:20) The subject-setting-style framework for better image prompts
(44:27) Using camera metadata to refine your results
(48:54) Lightning round and final thoughts
—
Tools referenced:
• Claude: https://claude.ai/
• Reforge Build: https://www.reforge.com/build
• Midjourney: https://www.midjourney.com/
• Unsplash MCP: https://github.com/okooo5km/unsplash-mcp-server-go?utm_source=chatgpt.com
—
Other references:
• Reforge AI Strategy Course: https://www.reforge.com/courses/ai-strategy
—
Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, email jordan@penname.co.




