The secret to better AI prototypes: Why Tinder’s CPO starts with JSON, not design | Ravi Mehta (product advisor, previously EIR at Reforge)
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/ X: https://x.com/ravi_mehta — Where to find Claire Vo: ChatPRD: https://www.chatprd.ai/ Website: https://clairevo.com/
- Published
- Published Sep 29, 2025
- Uploaded
- Uploaded Jun 13, 2026
- File type
- POD
- Queried
- 00
- Source
- podcasters.spotify.com
Full transcript
Showing the full transcript for this episode.
AI-generated transcript with timestamped sections.
[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 LLM by starting to separate out the idea of not just generating the UI, but also by helping it with the data. [00:30] 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. - I just think about the human parallel to this, which is, [00:40] 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. [00:59] It's a 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 [01:07] 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 [01:17] Genius. I'm really excited. Welcome 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.
[01:30] Today, I am giving you elite prompting strategies from Ravi Mehta, [01:35] 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 [01:45] 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. [02:00] Let's get to it. [02:01] This podcast is supported by Google. Hey, everyone. Shrestha 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 Flash Lite is ideal for low-latency, high-volume tasks. Start building in Google AI Studio at AI.dev. [02:30] 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. [02:42] 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... [02:55] 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, um,
[03:14] product managers and designers and other folks to get their ideas across. [03:18] 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. [03:25] 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 Incline. [03:35] 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 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. And when you're using prototyping to understand and to advance established products, the game is a little bit different [04:05] that you have to adhere to. And then you have existing data and functionality that you have to [04:11] 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. The other way that people create prototypes is with design-driven prototyping, where you actually
[04:41] blow them in and then the prototyping tool takes those and they bring those [04:45] to life. But it occurred to me when we're building products, a common thing in the product life cycle 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 [05:00] 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. 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 why don't we start, we'll take a look at how someone might [05:30] I typically use more of a spec-driven type of approach to prototyping. I'm using Reforged Build, which is a new prototyping tool specifically designed for product 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 the product. [05:51] 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 Trip Advisor, 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, a multiplayer
[06:16] not a single player activity. So we wanted to understand like, how do you create a trip itinerary? [06:20] feature that is really multiplayer from [06:22] the start, and I thought prototyping is a great way to [06:26] explore that idea. So here's how you might typically start to build a prototype around that idea and explore it. [06:32] Yeah. And I have to say, make it look nice is a commonly used clairvoy prompt when going into these AI tools like make it good. Very sophisticated prompting, prompting techniques. So I think this is, you know, ripped from the headlines sort of vibe prototyping prompting right here. [06:50] It's funny because it does work. I find that AI is often very responsive to a little bit of pushing in product. [06:55] 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. [07:06] It has a certain set of pieces of data in it. [07:10] There's user profiles and people can comment. It's like very functionally [07:14] descriptive. [07:15] Definitely. And so, what's pretty amazing is that this will work. It's not a lot of context. [07:21] But if I hit create, we'll go in and [07:24] The tool will create a plan. The Reforge build tool does a really nice job of asking you some follow-up questions. [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 UX design. You're asking them to think about the underlying data structure. You're asking them to figure out the code automatically. [07:44] architecture. So there's a lot that needs to be done. And
[07:49] you know, at the end of the day, it's, you know, [07:52] It's capable of doing it, [07:54] 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. 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 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. [08:24] - Thank you. [08:24] the code generation. And right now it's going in and it's starting to write the code, starting to come up with a componentized plan. So, you know, 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. [08:43] 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 called lib.moc.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 going to show. So let me actually cut over to this particular prompt. So make a website for planning a Paris trip. [09:09] already built so we can kind of see what that looks like. [09:12] 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 slack this to a designer? Make a website with a three day itinerary for Paris with multiple people in comments.
[09:30] 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. [09:51] And then, [09:52] 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 that it follows almost the same pattern, but much, much faster, much more efficient. [10:12] I mean, it's pretty amazing with that little context that you can get to what we have here, but we definitely do do better. So this is. [10:19] the finished prototype based on that prompt. We can see it generated 22 different files. [10:24] 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. [10:38] but it's also got some problems. So for example, SendRiverCrews, 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 [10:49] They do know some URLs that are out there, but they'll hallucinate other URLs. [10:53] 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. [10:59] 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.
[11:08] 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. [11:13] Parisian hotel. [11:15] This is also not the best photo of the Eiffel Tower. No. I mean, it is one of the more important parts of the Eiffel Tower. It is an important part, yes. [11:24] Okay. So we're looking at this. It's, I mean... [11:28] 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... [11:39] 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. [11:47] 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 [11:53] the LLM by starting to separate out the idea of not just generating the UI, [11:58] but also by helping it with the data. And so the idea behind this approach is that rather than starting with [12:04] a prompt like we have here, [12:06] Let's start with a data set. And so I'll go over to Claude, and I'll ask it to generate [12:13] some data so i've got a prompt here [12:16] 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. [12:24] The destination is Paris. The itinerary should include an itinerary name, cover photo, and date range covering three days. [12:30] 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. There should be 12 to 15 items in total.
[12:45] The Adams. [12:46] 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. [12:57] tags to describe them, a photo and a short description. Some items should have notes for one or more travelers. [13:02] The node should be in chronological order and respond to each other like a message thread for each itinerary item. [13:09] And so here we have like essentially a data schema specification. And it's a lot more detailed than what we put in upfront. So we're cheating. [13:18] a little bit, but oftentimes [13:20] 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. [13:28] 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... [13:37] 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... [13:47] 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, [13:59] a data model. [14:01] 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? [14:06] about the travelers. And so just thinking about it from a data first perspective helped me understand the future. [14:12] a little bit better. [14:14] 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, I've added in the Unsplash MCP server. And so MCP servers are a great way for Claude to be able to access external services.
[14:44] 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, [14:53] 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 hallucinated URLs that you'll often get? [15:09] 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. OK, so you've. [15:26] - Created this prompt. I must call out for the power users of Claude. I bet you could create a Claude project. [15:33] 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 share what this this generates. So you put this into Claude, you connect the MCP, and then you generate something. [15:48] Yeah, absolutely. So let's [15:50] Start it up. [15:51] Okay. [15:53] And is there any reason you chose Claude over any other tool, any particular affection for... [15:59] The model, the app, any of that stuff, or just it's the one you reach for? [16:04] - I do love Claude, I find it's pretty consistent. I use Chatty and Claude, sort of a 50/50 split, during the day, but anytime I wanna generate data that feels
[16:15] like human and authentic i find myself going to claude and i wanted to go to claude here because [16:20] Particularly because of the conversations between the travelers. I thought Claude would do a nicer job. [16:25] generating those. [16:27] Great. And what I want to call out here for folks that are maybe not watching on video and are listening is, [16:32] Claude is starting to generate this comprehensive JSON and then [16:36] calling the search photo tools in the Unsplash MCP over and over again to generate [16:44] Paris cover photo, avatar photos, attractions, [16:49] 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. [16:57] searching through stock photos, trying to find which one is representative. It just takes so much time. And because [17:03] 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. [17:12] Absolutely. 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. [17:35] So it's taken that natural language prompt that we had, said, OK, here's the data schema, and I'm going to fill out the data schema with pretty authentic information.
[17:45] And 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, OK, and what data goes into this code and what images? [18:15] 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:27] I think so. And I think that's the fundamental concept behind agents is you want [18:31] individual agents with individual context working together in sequence to get to an output. [18:36] rather than trying to do it all in one go. And here, Claude has done a 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 Mamar. [18:53] you know, the type of item, it's tagged with different relevant tags that are fun and interesting. There's URLs for images. [19:01] And now we have actually a much more detailed [19:04] spec in the form of data for this trip itinerary platform. And so now we can actually just copy this JSON [19:13] go back to our build tool.
[19:16] And now our prop doesn't even need to be very detailed. And so we could do something like, [19:20] Generate a chip itinerary feature based on the sample data below. [19:23] paste it in so we have all that sample data here [19:28] and then hit create. [19:30] 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, you're going to be able to do that. [19:42] the AI doesn't get [19:44] 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:50] You just gave me an idea. So this is an impromptu how I AI idea, but there are so many... [19:57] 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 [20:10] 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 [20:40] 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 a thousand words long?" Or, "What happens when
[20:52] 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. [21:00] 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, but AI will do it for you and help you help you test some stuff. [21:20] This is really true for UGC experiences, right? Because the content that users provide is never as beautiful as what we put into it. [21:26] into Figment, it's nice to see how it's actually going to look to users. [21:30] 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 or a tennery, but we didn't necessarily have conversations. [21:39] you could throw that JSON into Claude and say, hey, to the JSON, 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. [21:51] 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. [21:57] Well, and I'm not going to presume your age. We're both 21 years old. But this is also making me think back [22:04] 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.
[22:22] or of text. And I'm just thinking... [22:24] Just the fact that you could put pseudo realistic content at scale in your designs. I even think about [22:32] going past, you know, [22:34] 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 [22:44] 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. [22:53] 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. [23:07] Absolutely. And [23:09] It... [23:10] It's one of these things where it works much better with stakeholders and with users is if you have authentic data. [23:15] I 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, you know, they do, um, [23:24] They need to kind of have something that looks and feels as it actually will be in order for you to get realistic feedback. [23:30] Okay, we got a prototype. [23:33] 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 [23:48] Day two. [23:50] Day three.
[23:52] - Oh look, we got a full Eiffel Tower. [23:55] Yeah. [23:56] Um, [23:58] 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. [24:07] which is especially important when you're prototyping for a consumer because people are very sensitive. [24:11] to this. [24:13] We've got tags. [24:14] We've got comments. [24:16] avatar photos. 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. [24:26] 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. [24:35] of the data [24:37] 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... [24:52] the right data, some of these like metadata components, like how long it might take for you to spend time at an attraction. [25:00] accurate avatars, which I like. I think the old avatars were just little [25:05] initials avatars, but these are actually like real people. They're friends. Emma, Oliver, and Marcus are apparently going on this trip. It really does look like a much higher quality experience here. [25:17] And we can take a look at the before. [25:21] Let's see.
[25:23] And yeah, this is a good start, but it's not [25:26] sort of the level of quality that we want and that we need. [25:30] Yeah, and it almost is a lot cleaner too. I was noticing in the old prototype, there's like a lot of [25:36] 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. [25:46] 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. [25:53] 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:04] Yeah, 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, [26:15] 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, [26:26] 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 engineering. [26:37] the experience and 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. [26:44] 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,
[26:55] we have a sample data file. And so we can go in and we can change this. Let's say, you know, actually... [27:03] We want Marcus to be called Mark rather than Marcus. [27:08] We can go in here and let me see where. [27:10] Marcus is... Change his name to Mark. [27:14] Just need to reload. [27:17] There we go, Mark. Change Mark. [27:19] Same thing with the photo. Like, you know, this is kind of a good Paris photo, but we can probably find something better. [27:24] from Unsplash, so let's just search for Paris. [27:28] This one's a great one. [27:30] Copy the image address, come back here. [27:33] If we look, we've got the cover photo. [27:35] We can just replace that. [27:38] And then again, [27:40] Reload. [27:41] Boom. New Föra. [27:43] 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. 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 [28:13] 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. You may have already seen Persona in action if you've verified your LinkedIn profile or signed
[28:43] platforms, and now it can power yours too. Visit withpersona.com slash howiai to learn more. [28:53] You're replacing these sort of piecemeal. But if you wanted to stamp out a bunch of different versions of this completely different [29:00] You're working with just the data file, right? [29:03] Yeah, so we can actually just go back into Claude. [29:06] And now we can just say something like, [29:10] Now generate... [29:11] an itinerary for the same travelers going to Thailand. [29:14] Yep. [29:16] So I'll get that. [29:18] This chat already has all the context. It knows what the schema is. [29:23] It's going to go back out to Unsplash to grab all those photos. [29:28] And it's going to generate a new itinerary. Same people, different track. [29:32] And then once we have that JSON file, [29:34] We can actually take that [29:36] and apply it directly to. [29:39] the prototype. [29:40] I was just thinking about, again, going back to when we had to walk uphill both ways in Photoshop for our designs. [29:50] the speed at which you can create versions of your design is really helpful. And [29:56] One of the things that I'm thinking about here is, [29:59] Great, go ahead and localize this in Spanish or go ahead and localize this in another language. Let me see what that looks like. [30:05] Or even when you want to extend the design going back to, and maybe this just my engineering brain likes this, go back to... [30:13] 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.
[30:24] I think is just a really nice primitive on which to standardize your prototyping efforts. [30:32] Absolutely. And then it allows you to be much more flexible in terms of what you're doing. [30:36] and allows you to work on the functionality separate from [30:39] the data model. So for example, here, [30:41] Let's say I wanted to add a feature where [30:44] 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. [30:52] 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, [31:01] the functionality is totally dynamic rather than baked into the prototype, which it often is. [31:06] Awesome. I really like this. And, you know, again, we're looking at the... [31:10] data modeling, the design of things, but I'd be remiss not to mention [31:14] how helpful it is. [31:16] to have the content researcher, especially on a consumer experience of [31:21] what hotel should I put in? What attractions should I put in? 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, [31:33] the top, you know, hotels in Paris for people in their 20s and 30s. [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. [31:44] 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. [31:51] someone who's younger who's going to Paris for the first time, and then you could test this feature with itineraries that really make sense.
[31:57] for the user who's using the tool. [32:00] 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. [32:08] We can look at day two and see that we've got a couple of other [32:12] 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 [32:23] the code, we can see, okay, we've got [32:26] the data here [32:27] Let me... [32:29] Copy that over. [32:31] And then I could just replace this. [32:34] and then reload. [32:35] And now we have a Thailand trip. [32:37] - That was thrilling to watch. [32:41] - All super easy. - And those free time blocks stayed. We have great photos here. [32:49] 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, we overwrote that, but that's easy enough to change. Yeah, that's easy to change. We can go back here and update it. [33:02] This is awesome. Okay, so to recap for folks, instead of just prompting into your prototyping tool, you can use your favorite. [33:10] general LLM tool, in this instance, Claude, to actually generate a JSON schema of the data. [33:16] that you want to represent in your experience. [33:20] Go into your prompting tool. [33:22] your prototyping tool say, generate a user experience based on this data, paste the data in,
[33:28] then use that data schema as the basis for iterations and updates and then even [33:34] swap out that data schema with entirely new content and watch how your [33:39] experience, you know, adapts to new content or show that to different user segments or just really impress your boss. So [33:47] Yeah, absolutely. 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. 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 [34:13] 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, [34:28] get to work a lot with media and one of the things that we're looking at here is [34:33] the media aspect of it, the photos, really do make the experience. [34:37] It does, absolutely. [34:39] 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... [34:53] Mid-journey again. [34:55] Unlike how Claire does it, which is just like float in the mid journey model till something cool comes out with a little bit more structure than that.
[35:03] Yeah, let's do it. So I was playing around with MidJourney a lot, trying to get mock data [35:10] for a project I was working on. And I was working with a designer named Finn Sturdy, who has done just a brilliant job. [35:18] 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. And as we looked at 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, simple prompt. And I think what's great about these tools is even if [35:44] 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. [35:52] But let's say we want to just... [35:53] have a stock image of an office chair. [35:55] You might just type in Office Chair. I know you're probably gonna type in more than that, but let's see what it generates. [36:02] So it's gonna go through, it's gonna look at references. These are still pretty nice office chairs. [36:07] Um... [36:08] The photo is nice. [36:11] Mm-hmm. [36:12] 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. [36:19] Yeah. [36:20] And the way that we can get to a much better end result [36:24] is to think about three things: the subject, [36:27] the setting and the style. So, [36:29] I use a new prompt. [36:31] This will actually generate much better results. We're very clear about the subject that we want, which is an empty, stylish,
[36:39] 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 [36:55] better results. And then the last thing we want is a particular style. And there's a couple of things that can help with [37:02] defining style. [37:04] 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. [37:34] which is a very warm film stock that generates really beautiful kind of like golden hour. [37:40] type of results. [37:41] So I've started that generation. [37:44] And now we're going to get something much more usable than the initial prompt. [37:48] 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. [38:03] 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.
[38:13] It used to be so continuously slow. [38:16] Fast now. Okay. [38:18] We got a pretty, I mean, I want that to be my office. Who cares about the chair? [38:22] Ha ha ha. [38:24] 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 [38:35] giving you these different variations. So here's another one. [38:38] another one, another one, all really beautiful and very usable if that's something [38:44] that you're looking for. [38:46] And what was key here is thinking about the prompt in terms of how a photographer might describe things rather than, [38:54] 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, [39:03] I want really soft, [39:05] 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 [39:13] a different lighting setting which will change the mood [39:16] quite a bit. [39:18] And as one of the [39:20] 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... [39:33] Art literacy is really important. [39:36] the ability to describe design is really important i don't think people spend enough time [39:43] 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.
[39:58] um locations i i think like language [40:02] is now such a foundation for technology that if you're not investing in your linguistic skills, [40:09] you're going to miss out on your ability to create these like high quality assets, at least at this point. [40:13] I totally agree. And I think the two fundamental inputs into creating something [40:18] 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. [40:25] that vision and with AI, [40:27] it's completely 10x to everyone in terms of the craft. Anyone now can create photos or music or other things. [40:33] other things, but the taste is really important. How do we take that [40:36] incredible power and use it to create something that meets the needs that we have, whether creatively or professionally. [40:43] Yeah, and if you don't feel like you have the natural skills to look at a photo like this and say... [40:48] what makes a photo like this make me feel this way or look this way? [40:52] Hack is take this photo. [40:54] drop it in like a clot or a chat GPT and like have it describe it back to you. [40:59] in language and it can give you, it can kind of be a train and exercise ground for giving you language. [41:05] 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. [41:16] how they might describe them better. [41:18] And as you develop that understanding, you'll also develop a vocabulary around it, which I think is incredibly powerful for prompting. [41:25] Yep. [41:26] Great. So we have a... [41:28] Beautiful chair. It's a trestle desk. You got a beautiful chair. It is an autumn rainy morning. Autumn scene.
[41:33] Another one, you've got the raindrops. You've got Milan in the background. Yeah. Another one. [41:39] another one. So very quickly we've gone from this kind of beautiful morning light [41:45] to this kind of softer light, not by describing the light itself, [41:49] but by shifting the setting and having the LLM kind of figure out [41:52] what is the appropriate lighting for that setting. [41:55] Now I have to ask a question: Is this photo and this prompt a reflection of being a [42:02] 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, place. [42:16] Design within reach here. [42:18] That would be amazing. [42:20] One could dream. If only you could see my desk right now. It's tiny and filled with... [42:25] Yeah. [42:26] Battery and Stream Deck and all sorts of stuff. So again, you can use Midjourney 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 New York. [42:42] to the photo and said it's a modern glass American architect's office. [42:47] And what's interesting, I think a lot of times people think a lot about the foreground in... [42:51] their photos, but not what the background is. And the background is just as important to providing [42:56] a sense of place. And now, you know, we... [42:59] Go ahead, yeah. So remind me again, we need subject,
[43:03] We need location. [43:05] We need light. [43:06] And just pick film or a camera as your cheat code. [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? [43:20] and you and i were hypothesizing before the show that the reason why film or camera could be a cheat code here [43:27] 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. [43:42] - Yeah, absolutely. And like, let's show an example of that. So, [43:46] film stock is often metadata that is associated with a photo. And so here I've changed from the Fuji film stock to Kodak [43:53] which is a really beautiful [43:55] black and white stock that [43:58] is very contrasty and has a lot of grain. So rather than telling the LLM I want grain, which can often overdo it, or I want contrast, [44:08] We're saying we want it to look like Kodak Tri-X. [44:11] Oh, it is really beautiful. [44:14] 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. [44:20] a little bit more contrast, a little bit more character to it. Yeah, a little bit more texture to it. [44:26] 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. And I think that goes to...
[44:36] how these models were trained because they're trained on data that likely has [44:42] descriptions or metadata around the images, and they're trying to create [44:46] 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. [44:56] 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. [45:10] 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... [45:22] the media. And so if you know photography terms, [45:26] 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. [45:44] 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. [45:54] 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, [46:02] It's awesome. And I want to see more people in the arts, actually. [46:05] Absolutely. And this lowers the barrier. And there's good things about that and bad things about that. But I think it's better, the more people in the world that feel empowered to create.
[46:14] The better will I'll feel, the better will I'll be. And not everybody can afford these fancy cameras either. No. You know? [46:23] Oh, amazing. Okay, so you have a person now that we're generating. Yeah. [46:27] So I'm generating a person. So young man with brown hair, uh, [46:32] and eyes at golden hour. And I've added in some of that camera metadata that you're talking about. So [46:37] 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. [46:51] 50mm lens is a very common focal length for [46:54] portraits [46:55] F1.2 says I want a really blurry background, like incredibly blurry background so it's kind of, [47:01] 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. 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. And I can kind of show you, you know, if we actually generate [47:30] an image, but we don't include any of that camera information, sometimes the results are more in that uncanny valley. [47:37] Now what I do have to call out here is all of these generated images have a quite mournful [47:44] 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
[47:55] A happy young man. [47:57] OK, all right, that sounds good. In the bright morning sun. We will do that. OK, oh, so you did do a portrait of a young man. [48:05] with brown hair and eyes. So same... [48:07] original subject prompt without all the [48:10] location, lighting, film, camera, metadata, [48:14] And we got... [48:16] like sketches. [48:17] - Yeah, we got sketches and that's fine, 'cause we didn't tell the image generation model that we wanted a photo. [48:22] Yeah. [48:23] 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... [48:29] 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 [48:39] realm of training data around high-end photography. [48:43] 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 you back to... [48:59] your very [49:00] Far breadth... [49:02] work of generating JSON to do AI prototypes to AI mid-journey photography prompting. So, you know, as I said, Enterprise Girl B2B. [49:14] square boxes 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. [49:22] So there are two questions on this point. One is, [49:25] What do you think AI PMs and product teams in consumer products do?
[49:30] really need to how are the skills that they need to develop different [49:35] than maybe ones that are working in BDB. What do you think of the opportunities are for consumer product teams with AI? [49:41] I think AI for consumer is incredibly exciting, and there's a whole lot of consumers that are using [49:46] the big tools like Cloud and ChatGPT. [49:49] 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. [50:00] The reason why is very clear, and so businesses are adopting this stuff [50:05] very quickly. [50:06] 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 exists. [50:15] 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 could 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, [50:45] And the way I think to do risk that is by focusing on those needs and really understanding the underlying psychology. [50:52] 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.
[51:02] extreme levels of delight, [51:05] which is how can you create really rich engaging delightful experiences those like beautiful [51:11] 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 chat bot. [51:31] But if you can think what what could I do today that I couldn't do yesterday for this user? [51:36] I think there are a lot of answers where AI really unlocks your ability to deliver something [51:42] 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. [51:54] And I think that delight piece is so important. [51:56] A lot of times as PMs, we prioritize things as must have, nice to have, [52:01] won't do. [52:02] 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. And we have to reserve some of our time. [52:10] for the delightful things that make the product stand out. [52:13] Yep. Oh, I love it. Okay. And then my last question is, [52:17] 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.
[52:33] 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 data set do you want to be in to get a result. And when you use word, 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, [52:59] output and it puts it in a different training space. [53:01] - Okay, I love it. And again, I think this is the prompting strategy of choice of parents who are always telling their kids like, [53:08] You can do, I know. [53:10] 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 [53:18] Yeah, so I've got a sub stack, so Ravi on product, and you can find me at Ravi-Meta.com. [53:23] dot 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 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? [53:53] 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 through Reforge. [54:03] Awesome. Well, thank you so much for showing us all your amazing workflows. They're very useful.
[54:08] Awesome. Thank you so much for having me. This has been really fun. [54:18] 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. You can see all our episodes and learn more about the show at howiaipod.com. See you next time.
Want to learn more?
Ask about this episode