How I AI - The secret to better AI prototypes: Why Tinder’s CPO starts with JSON, not design | Ravi Mehta (product advisor, previously EIR at Reforge)

Episode Date: September 29, 2025

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 lead...ership 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 resultsHow to use JSON data models instead of design systems as the foundation for better AI prototypesA simple three-part framework for structuring Midjourney prompts to get professional-quality photosHow to use Claude and Unsplash’s MCP server to generate realistic data and images for your prototypesWhy real data (not Lorem Ipsum) is critical for getting meaningful feedback from stakeholdersThe film stock “cheat code” that instantly elevates your AI-generated photos—Brought to you by:Google Gemini—Your everyday AI assistantPersona—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-mehtaLinkedIn: https://www.linkedin.com/in/ravimehta/X: https://x.com/ravi_mehta—Where to find Claire Vo:ChatPRD: https://www.chatprd.ai/Website: https://clairevo.com/LinkedIn: https://www.linkedin.com/in/clairevo/X: https://x.com/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.

Transcript
Discussion (0)
Starting point is 00:00:00 PMs 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 LOM by starting to separate out the idea of not just generated 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. Generate a sample itinerary that I can use to prototype a shared trip itinerary feature. The destination is Paris.
Starting point is 00:00:37 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.
Starting point is 00:01:01 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. 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.
Starting point is 00:01:22 Welcome back to How IAI. I'm Clarevote, 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 is CPO at Tinder and a product leader at places like Facebook and TripAdvisor. Ravi's going to show us how design systems and U.X 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
Starting point is 00:01:56 photos and images for your prototypes. Let's get to it. This podcast is supported by Google. Hey everyone, Shrestha here from Google DeepMind. The Geminae 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.
Starting point is 00:02:26 Start building in Google AI Studio at AI. that. Hey, Ravi, thanks for coming on How IAI. 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. Yeah, 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 argue that PMs and designers are prompting prototyping systems that they don't quite understand how to get the best outcomes from.
Starting point is 00:03:10 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. 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 that's going to help us close that gap between using sort of like vibe-based prompting into these prototyping tools, into something a little bit more structured that you think it's 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
Starting point is 00:03:55 that are using prototyping to understand established products. And 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 deep,
Starting point is 00:04:25 details prompt. You try to make that as specific as possible to give the tool enough context to create the thing that you need. The other way that people create prototypes is with design driven prototyping. We actually start with images. It 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
Starting point is 00:05:03 that are a little bit ambiguous around designs or specs, and they codify them in a really concrete way. And 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 when 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
Starting point is 00:05:41 teams that are working with established products. It'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.
Starting point is 00:06:05 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. So we wanted to understand, like, how do you create a trip attenary feature that is really multiplayer from the start, and I thought, you know, 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 clairvo prompt when going into these AI tools. Like, make it good, very sophisticated prompting, prompting. So I think this is, you know,
Starting point is 00:06:46 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. Yeah. 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, you know, pieces of data in it. There's user profiles and people can comment. It's like very functionally descriptive. Definitely. And so like, you know, what's pretty amazing is that this will work. You know, it's not a lot of context. But if I hit create, will 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.
Starting point is 00:07:32 And you're actually asking them to do multiple things all at the same time. You're asking them to think about the U.S. 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, you know, 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,
Starting point is 00:08:03 which you want it to be. You know, 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. One of the things that I like a lot about the Reforge tools that 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
Starting point is 00:08:37 mock in-memory state. And so it's actually doing the work to say, okay, we need a data model here. And 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 libmock.ts. But at the end of the day, because it's trying to do so many different things at once, the end results typically is not as high quality as the approach that I'm going to 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 want to 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
Starting point is 00:09:22 slack this to a designer? 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. Totally. 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 and 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. And it's just so interesting
Starting point is 00:10:08 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.
Starting point is 00:10:30 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, San River Pruise, it tried to get a photo. but now that's failing. And that is actually a hallucination problem. A lot of times when these tools are trying to create media,
Starting point is 00:10:49 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.
Starting point is 00:11:05 Yeah, this is definitely not the right photo. I hadn't even noticed that. Yeah. So I'm like, 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 photo of the Eiffel Tower.
Starting point is 00:11:18 No. I mean, it is one of the more important parts of the Eiffel Tower. It is an important part, yes. Okay, so we're looking at this. It's, I mean, in 30 seconds, very 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.
Starting point is 00:11:40 Like if a designer brought this to you, you'd be like, let's just go back to the, to the Figma board and try something else. Absolutely. And it's going to 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 LOM 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 dataset. And 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.
Starting point is 00:12:24 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 stuff. like foodie or history buff. For each day, include a collection of things to see on that day. There 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
Starting point is 00:13:01 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. But 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.
Starting point is 00:13:28 Well, and I'll also say that the cheat code here, even though you're 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, you know, even less than that. And 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.
Starting point is 00:14:03 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, help 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. And so for this particular prompt,
Starting point is 00:14:27 I've added in the unsplashed MCP server. And so MCP servers are a great way for Claude to be able to access external services, the unsplashed 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. And this was a key unlock for me. It's like how do you actually pull in actual photo data versus some of the
Starting point is 00:15:06 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. But let's show 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
Starting point is 00:15:54 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 chatty between 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 Cloud would do a nicer job generating those. Great. 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
Starting point is 00:16:41 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 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. Absolutely. And, you know, this will take a long time.
Starting point is 00:17:15 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 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 now I'm going to fill out the data schema with pretty authentic information.
Starting point is 00:17:45 And I want to do a call back 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
Starting point is 00:18:19 building can ultimately end up in higher quality, or at least I'm guessing that's our our hypothesis here. I think so. And I think that's the fundamental concept behind agents is you want, you know, 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.
Starting point is 00:18:45 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, Marr, you know, the type of item. It's tagged with different relevant tags that are fun and interesting. There's URL for images. And now we have actually a much more detailed spec, you know, in the form of data for this chip-rightenery platform. And so now we can actually just copy this JSON. Go back to our build tool.
Starting point is 00:19:15 And now our prop doesn't even need to be very detailed. And so we could do something like generated chip-retinerary feature based on the sample data below, paste it in. 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. You just gave me an idea. So this is an impromptu how I,
Starting point is 00:19:54 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, you know, 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. And as a product leader, I've done this a lot in product and design reviews where I say,
Starting point is 00:20:45 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 tests 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. But AI will do it for you and help you test some stuff. This is really true for UGC experiences, right?
Starting point is 00:21:22 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 retina array, but we didn't necessarily have conversations. You could throw that JSON into Claude and say, hey, to the JSON, to say to Claude, augment this JSON with information about the travelers and their conversations, and it'll go in, it'll start with the JSON that you have, and it'll flow in the data that you need.
Starting point is 00:21:53 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 Lorham Ipsum I put in mockups 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 like funny Laura Mobsum generators on the internet where you could like 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. I even think about going past, you know, fake data.
Starting point is 00:22:35 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 the 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, it works much better with stakeholders and with users is if you have authentic data. I think as product builders, we're used to thinking about data separately from the UX,
Starting point is 00:23:18 and sometimes we just gloss it over, but users never do. And so as a result, you know, they do, they 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.
Starting point is 00:23:47 So I can click on day two, day three. Oh, look, we got a full Eiffel Tower. Absolutely. 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, avatar photos.
Starting point is 00:24:17 So all of this feels much richer 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. I 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, they're friends, Emma, Oliver and Mark. or apparently going on this trip.
Starting point is 00:25:12 It really does look like a much higher quality experience here. And we can take a look at the before. Let's see. And yeah, you know, 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
Starting point is 00:25:40 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 this separation of concerns. The tool has been able to focus on what is the right U.S around this data set rather than simultaneously figuring out the U.S., simultaneously figuring out the data set. Yeah.
Starting point is 00:26:05 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. and you're just showing sort of the next level of this, which is populating that, extending it,
Starting point is 00:26:42 and then putting it into a prototyping tool. And then what's really nice about this, and we just generated 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.
Starting point is 00:27:01 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. Just need to reload. There we go, Mark. Change Mark.
Starting point is 00:27:19 Same thing with the photo. 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.
Starting point is 00:27:33 If we look, we've got the cover photo. We can just replace that. And then again, reload. Oh. New photo. It looks so nice. It does look really nice. It's coming together.
Starting point is 00:27:47 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. In 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,
Starting point is 00:28:19 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. You may have already seen persona in action if you, you've 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 how IAI to learn more. You're replacing these sort of piecemeal, but if you wanted to stamp out a bunch of different
Starting point is 00:28:58 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. This chat already has all the context.
Starting point is 00:29:21 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. It just, I was, I was just thinking about, again, going back to when we had to, like,
Starting point is 00:29:45 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. Let 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
Starting point is 00:30:14 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 it allows you to work on the functionality separate from the data model.
Starting point is 00:30:40 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. So 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,
Starting point is 00:31:12 but I'd be remiss not to mention how helpful it is to have the content researcher, especially on a consumer experience of what hotel should I put in? What attractions should I do? And what do they actually look like? And maybe your designer's been to Paris. Maybe they have not. And you certainly don't want them spending time Googling like the top, you know, hotels in Paris for people in their 20s and 30s,
Starting point is 00:31:38 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 itineries, 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 can test this feature with itineries
Starting point is 00:31:56 that really makes sense for the user who's using the tool. So now we have the free time cards added in. We'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.
Starting point is 00:32:30 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. I think so, yeah. If we were, we look.
Starting point is 00:32:56 We overwrote that, but that's easy enough to change. Yeah, that's easy to change. We can go back here 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. Go into your prompting tool, your prototyping tool, say generate a user experience based on this data,
Starting point is 00:33:26 paste the data in, then use the data. 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, absolutely. You've completely changed.
Starting point is 00:33:49 I think this is going to be just as popular as Ryan Carson, he 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. This 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 consumer product background,
Starting point is 00:34:28 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. But 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 mid-journey again, unlike how Claire does it,
Starting point is 00:34:56 which is just like float in the mid-journey. model till something cool comes out with a little bit more structure than that. Yeah, let's do it. So I was playing around with Mid Journey 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 of getting how to get stellar results out of Mid Journey that feel really curated and feel like a creator, director has helped to design them. And as we look, it like 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 like a very simple
Starting point is 00:35:40 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. So it's going to go through. It's going to look at references. These are still pretty nice office chairs.
Starting point is 00:36:08 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.
Starting point is 00:36:31 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. And 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.
Starting point is 00:36:56 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. And 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, Fuji Color 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.
Starting point is 00:37:44 And now we're going to get something much more usable than the initial prompt. Yeah. And as somebody who was a early mid-journey user, I think Mid-Journey 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 mid journey. You'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 jealously slow and it's fast now. Okay, we got a pretty, I mean, I want that to be in 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 usable photo. We've also, you know, I think one of the things mid-journary sells at is giving you these different variations. So here's another one, another one, another one, all 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,
Starting point is 00:38:53 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,
Starting point is 00:39:15 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. I 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,
Starting point is 00:39:45 articulating, what elegance means, what quality, what style means. And even going through this practice of understanding. reference art styles, reference, you know, devices like digital cameras or film, locations. I think like 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. I totally agree.
Starting point is 00:40:14 And I think the two, you know, fundamental inputs into creating something are taste and craft. And so taste is the ability to know what's good or what's, what you're 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, make me feel this way or look this way,
Starting point is 00:40:51 hack is take this photo, drop it in like a clotter, 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 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 vocation. vocabulary around it, which I think is incredibly powerful for prompting. Yep. Great. So we have a beautiful treer. It's a trestle desk.
Starting point is 00:41:30 It is an autumn rainy morning. Another one. You've got the raindrops. You've got Milan in the background. Yeah. Another one. Another one. So very quickly we've gone from this kind of beautiful morning light to this kind
Starting point is 00:41:46 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 chair? That would be amazing. one could dream. If only you can 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
Starting point is 00:42:31 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 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 in their photos, but not what the background is. And the background is just as important to providing a sense of place. And now, 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.
Starting point is 00:43:11 Yeah. 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 like 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 Triax, which is a really beautiful black and white stock that is very contrasty and has a lot of grain.
Starting point is 00:44:01 So 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 triax. Oh, it is really beautiful. And you can 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.
Starting point is 00:44:34 And I think that goes to how these models were trained because 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 dataset. 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
Starting point is 00:45:15 have in this kind of world where it still is really. anchored in the technical aspects of the media. And so if you know photography terms, then you can actually prompt. I've seen a lot of like F-stop, you know, 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.
Starting point is 00:45:48 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. So I think it's, it's awesome. And I want to see more people in the arts actually. In here. Absolutely. 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 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 a young man
Starting point is 00:46:30 with brown hair and eyes at Golden Hour. And I've added in some of that camera metadata that you were talking about. So Lyca, that's like an $8,000 camera, right? So that's not accessible to most people. But by mentioning 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. 50mm lens is a very common focal length for portraits. F1.2 says I want a really blurry background, like an incredibly blurry background. So it's kind of ethereal looking. And then Fujifilm Provia is a good portrait film 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. And 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.
Starting point is 00:47:27 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. I want you to email me a happy young man. Okay. All right. That sounds good. In the bright morning stuff. We will do that.
Starting point is 00:48:01 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. One of them is a photo. But you could see this photo kind of has that uncanny look to it. It's a little bit too perfect.
Starting point is 00:48:31 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. Okay, 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 back. Yeah, sounds good.
Starting point is 00:48:57 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, square boxes and forms. What I love about what you're showing us is there's a lot of work in consumer that can be really accelerated by AI. So there are two questions on this point.
Starting point is 00:49:24 One is, what do you think AI PMs and product teams in consumer products really need to? How are the skills that they need to develop different than maybe ones that are working in BDB. What do you think that the opportunities are for consumer product teams with AI? I think AI for consumers is incredibly exciting, and there's a whole lot of consumers that are using the big tools like Claude and ChatGBT. I think one of the nice things about B2B is the ROI of AI is usually pretty clear.
Starting point is 00:49:54 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. And 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,
Starting point is 00:50:35 okay, 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. And 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,
Starting point is 00:50:54 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, what we know about you. And so it doesn't have to look like a chatbot, but,
Starting point is 00:51:32 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 are nice to haves, our product is not going to be nice to have.
Starting point is 00:52:07 And we have to reserve some of our time for the delightful things that make the product stand out. Yep. 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 expectations of 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
Starting point is 00:52:48 data set do you want to be in to get a result. And when you use the encouraging words, it's not that you're actually encouraging the AI. It's that, you know, 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, I know that you're a capable kid. I know that 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 substack. So Ravi on product. And you can find me at Ravi dash meta.com. You 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
Starting point is 00:53:44 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. We're launching the next cohort in October. So check that out if you're interested in learning more about AI strategy that's available to 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 this 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,
Starting point is 00:54:21 Spotify, or your favorite podcast app. Please consider leaving us a rating and review, which will help others find the show. You can see all our episodes and learn more about the show at how IAIIPod.com. See you next time.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.