[{"data":1,"prerenderedAt":292},["ShallowReactive",2],{"article-the-product-decision-no-algorithm-could-make":3},{"page":4,"related":248},{"id":5,"title":6,"slug":7,"date":8,"_updatedAt":9,"external":10,"categories":11,"featuredMedia":16,"blocks":33,"menu":18,"foot":18,"seo":243},"TtJluPcXSsO1g22c8p9Y-g","How We Build: The Product Decision No Algorithm Could Make","the-product-decision-no-algorithm-could-make","2026-07-07","2026-07-07T19:28:11+01:00","",[12],{"id":13,"slug":14,"title":15},"MRKCA8y-RtSXQRHCBbP9Og","innovation","Innovation",{"id":17,"alt":18,"title":18,"focalPoint":19,"width":21,"height":22,"thumbnail":23,"small":24,"medium":25,"responsiveImage":26,"video":18},"dK2xC2RySO-eJ3vgjjD6aA",null,{"x":20,"y":20},0.5,1920,1360,"https://www.datocms-assets.com/157026/1783448045-the-product-decision-hero.png?auto=format&fit=max&h=800&q=95&w=800","https://www.datocms-assets.com/157026/1783448045-the-product-decision-hero.png?auto=format&fit=max&h=1440&q=95&w=1440","https://www.datocms-assets.com/157026/1783448045-the-product-decision-hero.png?auto=format&fit=max&h=2000&q=95&w=2000",{"srcSet":27,"webpSrcSet":10,"sizes":28,"src":29,"width":21,"height":22,"aspectRatio":30,"alt":18,"title":18,"base64":31,"bgColor":32},"https://www.datocms-assets.com/157026/1783448045-the-product-decision-hero.png?auto=format&dpr=0.25&fit=max&h=2880&q=95&w=2880 480w,https://www.datocms-assets.com/157026/1783448045-the-product-decision-hero.png?auto=format&dpr=0.5&fit=max&h=2880&q=95&w=2880 960w,https://www.datocms-assets.com/157026/1783448045-the-product-decision-hero.png?auto=format&dpr=0.75&fit=max&h=2880&q=95&w=2880 1440w,https://www.datocms-assets.com/157026/1783448045-the-product-decision-hero.png?auto=format&fit=max&h=2880&q=95&w=2880 1920w","(max-width: 1920px) 100vw, 1920px","https://www.datocms-assets.com/157026/1783448045-the-product-decision-hero.png?auto=format&fit=max&h=2880&q=95&w=2880",1.411764705882353,"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICA4VDxEPDhUXFRYNDRESDQ4NFxMZGBYfFhUaHysjGh0oHRUiJDUlKC0vMjIyGSI4PTcwPCsxMi8BCgsLBQ0OHBAQGTsoHh07Oy8vLzsvLy8vLzUvOy8vLy81Ly8vLy8vLzUvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL//AABEIABEAGAMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABQYBBP/EAB8QAAICAgEFAAAAAAAAAAAAAAABAgMEEXEUMzRCYf/EABgBAAMBAQAAAAAAAAAAAAAAAAIEBgMB/8QAGxEAAgIDAQAAAAAAAAAAAAAAAAECBAMxMhH/2gAMAwEAAhEDEQA/AIGjNlKxD1Zzji6YiwIQdy2U9mLT0ifwsFG0Tth4ExVC9WTZh0UQohJ7AZUbPhkpYBLg95FRZ4a4NAKJy30hT7sAAYjoFn//2Q==","#0199f1",{"id":34,"type":35,"blocks":36},"HnTjmJgnRxy_fJA1GYPqJA","blocks_select",[37,54,58,81,84,103,105,123,125,143,153,155,170,172,187,189,198,200,209,211,217,219,225,227,241],{"id":38,"type":39,"eyebrow":40,"breadcrumb":18,"title":41,"titleSize":42,"titleAlignment":43,"label":44,"text":45,"media":46,"mediaMobile":18,"mediaSmall":18,"theme":49,"aligned":53},"JYk4U9xISumc3_h5MAsiLw","media_hero_expanded_block","By Fantasy","The Product Decision No Algorithm Could Make","h3","items-center justify-center","How We Build","\u003Cp data-pm-slice=\"0 0 []\">Chang Baek is an Experience Director at Fantasy. In five days of spare time between client work, he shipped a live flight deal scoring tool to Vercel using Claude Code. The hardest design problem turned out to be defining what \"discounted\" actually means.\u003C/p>\n\u003Cp>\u003C/p>",{"id":17,"alt":18,"title":18,"focalPoint":47,"width":21,"height":22,"thumbnail":23,"small":24,"medium":25,"responsiveImage":48,"video":18},{"x":20,"y":20},{"srcSet":27,"webpSrcSet":10,"sizes":28,"src":29,"width":21,"height":22,"aspectRatio":30,"alt":18,"title":18,"base64":31,"bgColor":32},{"id":50,"background":51,"text":53},"MaORKcTJSvuM3ce2-KagYA",{"hex":52},"#000000",false,{"id":55,"type":56,"space":57},"bDsHVPPmQjK4IxVryW-CqA","space_block","large",{"id":59,"type":60,"title":61,"text":62,"media":63,"caption":10,"theme":78,"reverse":53},"LnDnZj4jR8CYJhgmK6Rn0Q","media_text_block","\u003Cp>\u003Cstrong>The problem\u003C/strong>\u003C/p>","\u003Cp dir=\"ltr\">Experience directors map user needs, write requirements, and hand specifications to engineering teams who build the thing. By the time anything ships, the person who understood the user best is usually three handoffs away from the code. Chang wanted to find out what happens when the person who writes the jobs to be done also writes the product, on a timeline most teams would spend scheduling a kickoff.\u003C/p>",{"id":64,"alt":18,"title":18,"focalPoint":65,"width":66,"height":67,"thumbnail":68,"small":69,"medium":70,"responsiveImage":71,"video":18},"ahXliW2mQAeVmov6Dj58cA",{"x":20,"y":20},658,878,"https://www.datocms-assets.com/157026/1783448823-farely-honest-flight-deal-score-cards-27-percent-off.png?auto=format&fit=max&h=800&q=95&w=800","https://www.datocms-assets.com/157026/1783448823-farely-honest-flight-deal-score-cards-27-percent-off.png?auto=format&fit=max&h=1440&q=95&w=1440","https://www.datocms-assets.com/157026/1783448823-farely-honest-flight-deal-score-cards-27-percent-off.png?auto=format&fit=max&h=2000&q=95&w=2000",{"srcSet":72,"webpSrcSet":10,"sizes":73,"src":74,"width":66,"height":67,"aspectRatio":75,"alt":18,"title":18,"base64":76,"bgColor":77},"https://www.datocms-assets.com/157026/1783448823-farely-honest-flight-deal-score-cards-27-percent-off.png?auto=format&dpr=0.25&fit=max&h=2880&q=95&w=2880 164w,https://www.datocms-assets.com/157026/1783448823-farely-honest-flight-deal-score-cards-27-percent-off.png?auto=format&dpr=0.5&fit=max&h=2880&q=95&w=2880 329w,https://www.datocms-assets.com/157026/1783448823-farely-honest-flight-deal-score-cards-27-percent-off.png?auto=format&dpr=0.75&fit=max&h=2880&q=95&w=2880 493w,https://www.datocms-assets.com/157026/1783448823-farely-honest-flight-deal-score-cards-27-percent-off.png?auto=format&fit=max&h=2880&q=95&w=2880 658w","(max-width: 658px) 100vw, 658px","https://www.datocms-assets.com/157026/1783448823-farely-honest-flight-deal-score-cards-27-percent-off.png?auto=format&fit=max&h=2880&q=95&w=2880",0.7494305239179955,"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAZCAIAAACza+nDAAACZElEQVR42mWUUZIbMQhEAaHx+jNny/3vEe9aIq/RuCpV8WKtxlZDq2mcz1+/y8NGWk6bD7++7PGMx9O/nn497JqWWcO327batYmySo9wj3I3wFr16o1Z/9fG/vmAXVmOMSrCYtSg5rARHm5atPo5zmNYv8r5M2BXUqcEgyfrcOHdCcoPZw/JilMtYCiS87qovIFFFteYA/AH2ZUPMijEkzAAcz4unsuHkPkfMhUHSa0mWCL5gcUGOXLDM4EF4YqumZ0i7INE3Uuw3bf2SB8UBNmYwxOxDx5Y3MLmmLOOrC49ERNJpSpJWhjWEPIj0oE5op9mSXPVrLh70E9GKImymI50M3NLUxwA5RPdnZuLBNB1EFIhJbug59oo097x2mGYR3lkoOOkfYDo5+W3bXDJ98/WhyBFrztLEmJtG9v32st88Y0MWB8m+fp+Cy8eVYMa4kXtCOivIx1Z1tF+66oUzNdrKYXuLpiaC8ahsG7zWjXGjKTcom2frz9vEeY+wsBS14SnVAu5YMlNpKqSxs0U2Pf350RCotRSJFsuwqvqvRti0ir2VjpJkfWj3rfB6VI0wVZbm9YXMKC9oC07mSI51yCSa0KOF28vYwzpjqpSTW2pd9cGVpo3O6fjGmNmzBwaX3KIvL2l+u6Z0QswsLggNyJxJzM7Gds5k6cM7MlUdHs5u9Tf/j3RvHFUsMyZl8ZhXtrMAYy5teaHWVYt5F6n5bgEGErAjdMnQAo2+RSYpEQPr/faZ3LoL7Ol7wOGupX4Xb1CEucit6mUodzoUZaTdzdYxe63FpQYvdHcapbbF/vzM3jiL1cqRpvHZOt/AAAAAElFTkSuQmCC","#0295f1",{"id":79,"background":80,"text":53},"DDnf-4JWRlSSn8NZYctsNw",{"hex":52},{"id":82,"type":56,"space":83},"ZqwFgRk_ST2dpT2Ig19ZZQ","small",{"id":85,"type":60,"title":86,"text":87,"media":88,"caption":10,"theme":99,"reverse":102},"ZpmXcDsWQRyZgjrIY-T_Dw","\u003Cp>\u003Cstrong>What did you build?\u003C/strong>\u003C/p>","\u003Cp dir=\"ltr\">\u003Cspan>\"Farely Honest is a flight deal discovery tool that scores flights against historical pricing data to surface real deals. Most flight search engines show you the lowest price, but that doesn't tell you if it's actually a good price. Farely Honest compares current fares against route averages across multiple time periods, so you can see at a glance when a flight is 30% below what it normally costs. Think of it as a \"deal score\" for flights.\u003C/span>\u003C/p>\n\u003Cp dir=\"ltr\">\u003Cspan>\"Cheapest is such a relative term because usually you have to select the date first then work your way down to find the \"cheapest\" within the date range you selected. For example, if I'm flying from YYZ Toronto to Seoul in December the cheapest would typically run me $1,750 to $1,900 CAD round trip. But what if I want the real deal regardless of the date? What if there's $1,450 to Seoul in June?\"\u003C/span>\u003C/p>",{"id":89,"alt":18,"title":18,"focalPoint":90,"width":66,"height":67,"thumbnail":91,"small":92,"medium":93,"responsiveImage":94,"video":18},"EJFzhwXvTVmWN_AchcjdAA",{"x":20,"y":20},"https://www.datocms-assets.com/157026/1783448098-farely-honest-flight-deal-finder-homepage-search.png?auto=format&fit=max&h=800&q=95&w=800","https://www.datocms-assets.com/157026/1783448098-farely-honest-flight-deal-finder-homepage-search.png?auto=format&fit=max&h=1440&q=95&w=1440","https://www.datocms-assets.com/157026/1783448098-farely-honest-flight-deal-finder-homepage-search.png?auto=format&fit=max&h=2000&q=95&w=2000",{"srcSet":95,"webpSrcSet":10,"sizes":73,"src":96,"width":66,"height":67,"aspectRatio":75,"alt":18,"title":18,"base64":97,"bgColor":98},"https://www.datocms-assets.com/157026/1783448098-farely-honest-flight-deal-finder-homepage-search.png?auto=format&dpr=0.25&fit=max&h=2880&q=95&w=2880 164w,https://www.datocms-assets.com/157026/1783448098-farely-honest-flight-deal-finder-homepage-search.png?auto=format&dpr=0.5&fit=max&h=2880&q=95&w=2880 329w,https://www.datocms-assets.com/157026/1783448098-farely-honest-flight-deal-finder-homepage-search.png?auto=format&dpr=0.75&fit=max&h=2880&q=95&w=2880 493w,https://www.datocms-assets.com/157026/1783448098-farely-honest-flight-deal-finder-homepage-search.png?auto=format&fit=max&h=2880&q=95&w=2880 658w","https://www.datocms-assets.com/157026/1783448098-farely-honest-flight-deal-finder-homepage-search.png?auto=format&fit=max&h=2880&q=95&w=2880","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAZCAIAAACza+nDAAACP0lEQVR42lWUgY4bMQhEAfv6p/1/qerpmqxhOgObXipZTjbx88AAu+3nL3NoBWyVRZpXeC47gbRKVNYprSzjKljZ5h/mJgb8qcyatHR+QTm0B3SW36FHmAm7+KGHPmFUgNTck2rOi6gyN6LIQSeJnQchqUXNisiYOIk14FnBvTAYhF1fN+Y1uUXUIuO1OjBiZJAIYtlhGrY9P29LvKWWAAoOFjY567TcqY5RasTsZii1KBW5vbY0Qcx5qk93dqMm7PeN6WjumyypObhchtlY2Dv+qZXrkDBmNeQONKbq+O20T4TC9vXpjMTHhrOFdYTaLdxCmEsQb9jH+WqMbSFMcAyJFcYV5i35P/ajHgrSMkwNteLsqvVSW+HhE+Y75vujnsJA7ATVoPS0G5bZYhzRajfDmsuhvXHpyY6rd88dp7FodN+CajVqDVQ3LzFePGqu9j2Ow1p7u6aiMDGJSYq1YAFUNWB79y5b3nDU+H40E9b/y3i1z+xTuurSbfZZY0e9b4cj5aGpKdn7rqZhyGkXBpl52DDeau0nH7thpSRF9zux6unJ6ZLnOd0zjJDYFaoB66bu2+DMyckXBg23xsf243kpE2JorMudqxZ4sccbxggzB8P+83zq5YC28YXtwi4m6mspSHxjmPR23mr045IxLktYlr1tF4sWt1r7cZqUk3Zd3wVwLY7xBV3DgV50K0J1HizbR2GyBF2AwVKvBt3kfV+4gnKlpMvnhUcsu2f69TbD2mtecIzYenTQnYV7AX8B4TWLEHLglAAAAAAASUVORK5CYII=","#0195ef",{"id":100,"background":101,"text":53},"OSsQe2k7RNucXZFmmRFB4g",{"hex":52},true,{"id":104,"type":56,"space":83},"I0m_06phTSmW3Q8LYVJ0DQ",{"id":106,"type":60,"title":107,"text":108,"media":109,"caption":10,"theme":120,"reverse":53},"Fn1rZv3lRB-QzrnwX7wcbQ","\u003Ch2 dir=\"ltr\">\u003Cb id=\"docs-internal-guid-962f5b0a-7fff-eb9d-5f6e-43e6787619be\">\u003Cspan>What made you start building this?\u003C/span>\u003C/b>\u003C/h2>","\u003Cp dir=\"ltr\">\u003Cspan>\"I started just like how I typically start my design process. I started writing down user JTBDs based on my personal user needs and used plan mode to fill in the blanks. The whole thing, I was only using my spare time in between real work, took about five days with just an hour or two per day prompting, so it was definitely much faster because I basically skipped most of UX and design activities altogether.\u003C/span>\u003C/p>\n\u003Cp dir=\"ltr\">\u003Cspan>\"The process I used was based on what Firdosh taught us. Plan mode first: start each feature by having Claude explore the codebase and propose an implementation plan before writing any code. Then AskUserQuestion, where Claude would actually ask me design decisions about trip types, filter options, and UI layout. Then the API integration, component scaffolding with Next.js, React 19, Tailwind, and shadcn/ui, live preview iteration, and Vercel deploy.\"\u003C/span>\u003C/p>",{"id":110,"alt":18,"title":18,"focalPoint":111,"width":66,"height":67,"thumbnail":112,"small":113,"medium":114,"responsiveImage":115,"video":18},"F4OazceDQzu9kiCbSUK-4Q",{"x":20,"y":20},"https://www.datocms-assets.com/157026/1783448122-farely-honest-claude-code-amadeus-api-debugging.png?auto=format&fit=max&h=800&q=95&w=800","https://www.datocms-assets.com/157026/1783448122-farely-honest-claude-code-amadeus-api-debugging.png?auto=format&fit=max&h=1440&q=95&w=1440","https://www.datocms-assets.com/157026/1783448122-farely-honest-claude-code-amadeus-api-debugging.png?auto=format&fit=max&h=2000&q=95&w=2000",{"srcSet":116,"webpSrcSet":10,"sizes":73,"src":117,"width":66,"height":67,"aspectRatio":75,"alt":18,"title":18,"base64":118,"bgColor":119},"https://www.datocms-assets.com/157026/1783448122-farely-honest-claude-code-amadeus-api-debugging.png?auto=format&dpr=0.25&fit=max&h=2880&q=95&w=2880 164w,https://www.datocms-assets.com/157026/1783448122-farely-honest-claude-code-amadeus-api-debugging.png?auto=format&dpr=0.5&fit=max&h=2880&q=95&w=2880 329w,https://www.datocms-assets.com/157026/1783448122-farely-honest-claude-code-amadeus-api-debugging.png?auto=format&dpr=0.75&fit=max&h=2880&q=95&w=2880 493w,https://www.datocms-assets.com/157026/1783448122-farely-honest-claude-code-amadeus-api-debugging.png?auto=format&fit=max&h=2880&q=95&w=2880 658w","https://www.datocms-assets.com/157026/1783448122-farely-honest-claude-code-amadeus-api-debugging.png?auto=format&fit=max&h=2880&q=95&w=2880","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAZCAMAAAAL146mAAABPlBMVEUBAAAEAAAFAQAIBAIJBQMKBgQLBwUOCggPCwkRDQsTDw0UEA4WEQ8WEhAXEhAXExEYExEYFBIZFRMaFhQbFxUcFxUcGBYdGRceGhgfGxkgGxkgHBohHBohHRsiHhwjHx0kHx0kIB4lIR8mIiAnIiAnIyEoJCIpJCIpJSIpJSMqJiQrJyUsKCYtKScuKigvKigvKykwLCoxLSsyLiwzLiwzLy00MC41MS82MS82MjA3MzE4MzE4NDE4NDI5NDI5NTI5NTM6NjQ7NzU8ODY9OTc+Ojg/OzlAPDpBPTpBPTtCPjxDPjxDPz1EQD5FQT9GQkBHQ0FIREFIREJJRUNKRkRLRkRLR0VMSEZNSUdOSkdOSkhPS0lQS0lQTEpRTUtSTUtSTkxTT01UUE5VUU9WUlBXU1FYU1FYVFJaVlRbV1W2W38TAAABF0lEQVR42h1Q2W4EMQjjSmb2aPv/31mpO0s46mweEHKMbTDiMR63Q8PdM1mZjUXmPCZ6oiwSYRsyzvt9co/hAQgsG/ev5/fgjusdTQzWc9yfP7cT0AxPUmU75+1xe5xaMdbMD2vMcczz0DJWKSJobVxVhWl0ZUPfKrNgvl91NxXZRcMzwjpXRBZj0Gm+3a0pYq2dgswZXQSRr1zQImgV6JVMlYG+Ib9tsd72b+pdTXYCFMYVUubWmmamY4BvqfSRR3wbptoN+oYEHJmCh0SiXQKod+7unbz6s4Vl5HvF0vYVXlTSdrVNvxACtw/cCz6ecvwyPt/rD/sgkEW9pmmD9XJsjYgW6tdhDRYGmwFYY7G1RGGzAvMl/1TkvNDAUulxAAAAAElFTkSuQmCC","#77b247",{"id":121,"background":122,"text":53},"bHDfPNZzQ-WhJMIB8itkEw",{"hex":52},{"id":124,"type":56,"space":83},"YtYyyebVSfi6AH0l2ZGuPQ",{"id":126,"type":60,"title":127,"text":128,"media":129,"caption":10,"theme":140,"reverse":102},"dSd0Qx6bSJ-mdu32erCAcg","\u003Ch2 dir=\"ltr\">\u003Cb id=\"docs-internal-guid-8c470a39-7fff-4550-5569-bd85285f3989\">\u003Cspan>How did the pace change the way you made product decisions?\u003C/span>\u003C/b>\u003C/h2>","\u003Cp>\"Because I could see the thing running within hours, I was making product calls based on what I was actually experiencing in the live build rather than projecting from a wireframe. Seeing it and trying it out early makes it extremely useful to find new feature needs. You're testing real interactions, not assumptions about interactions.\"\u003C/p>",{"id":130,"alt":18,"title":18,"focalPoint":131,"width":66,"height":67,"thumbnail":132,"small":133,"medium":134,"responsiveImage":135,"video":18},"E3yg15IVQWO82KkT3jiWBQ",{"x":20,"y":20},"https://www.datocms-assets.com/157026/1783448141-farely-honest-flight-deal-results-17-deals-from-yyz.png?auto=format&fit=max&h=800&q=95&w=800","https://www.datocms-assets.com/157026/1783448141-farely-honest-flight-deal-results-17-deals-from-yyz.png?auto=format&fit=max&h=1440&q=95&w=1440","https://www.datocms-assets.com/157026/1783448141-farely-honest-flight-deal-results-17-deals-from-yyz.png?auto=format&fit=max&h=2000&q=95&w=2000",{"srcSet":136,"webpSrcSet":10,"sizes":73,"src":137,"width":66,"height":67,"aspectRatio":75,"alt":18,"title":18,"base64":138,"bgColor":139},"https://www.datocms-assets.com/157026/1783448141-farely-honest-flight-deal-results-17-deals-from-yyz.png?auto=format&dpr=0.25&fit=max&h=2880&q=95&w=2880 164w,https://www.datocms-assets.com/157026/1783448141-farely-honest-flight-deal-results-17-deals-from-yyz.png?auto=format&dpr=0.5&fit=max&h=2880&q=95&w=2880 329w,https://www.datocms-assets.com/157026/1783448141-farely-honest-flight-deal-results-17-deals-from-yyz.png?auto=format&dpr=0.75&fit=max&h=2880&q=95&w=2880 493w,https://www.datocms-assets.com/157026/1783448141-farely-honest-flight-deal-results-17-deals-from-yyz.png?auto=format&fit=max&h=2880&q=95&w=2880 658w","https://www.datocms-assets.com/157026/1783448141-farely-honest-flight-deal-results-17-deals-from-yyz.png?auto=format&fit=max&h=2880&q=95&w=2880","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAZCAIAAACza+nDAAACPElEQVR42mVUAXLbMAwDKdnp2u0Be9z+/4hUZAHIznrXHM9WbIIgIcgTf/8hAgOYgSN4zRGR0RHd2T1QjEPRE80rU3MieG1kIMF1OgQBkVhoJYT+cQnsBQsw+4oeCUak6DtKUMTiIgqMLALgghODVBgD7G2MNqzVJLoapZexdK9qwpZaasxzKilJNXojY+xXbLRXM5cPolis0g/ZdAvG0nmzcREaVTA2N0r1i9ESia171pqPob+GtVtta0MmaKBMViCMJDugX85jlKQbHi8785KugtMQmbnXW/F4wbLi1n3vFpukHrwsluME7i61H2oj4NmGd4lPNizDHWkW3a7tYoYMwTHVGWQKwTysqfBfRc0RLu+3KgfsnJ4eRUg/rdsI9sJOxP0zkTPBXZO/aiezBxliZ3NFDbX3FndIN80oy84l/24TSmFVkEdti4B9RcCU00VwOHJ+xpuF2rtSZltt8cV2iXEAZ+SZcUYcYdgvTU1zWZKkAWkPrAtGcXsfKsIeTViyu5zP+LD6clxyD/Ni47a5UdijR2w2EbLJMZ/5JwSgHegkzr/keLI1LS8fWw82RsBDsHSTz/wtNttqs4XYCGP0PuMb9mKLn2xpNsKELB25azay5eOG8aOQHyy38jXbYniwpfOlHRQbdV/5GCklk2zI921umncZJjaOx4PWZduIDXEylpUsweJtHzBH9S0JyudTTsoXjNFxtGEn4vV5KgHiU43pmHyHHd9CsIHrq+akwPVX97hhw1XGHfkFg1dnvzNkR0oAAAAASUVORK5CYII=","#0978e4",{"id":141,"background":142,"text":53},"LPAB4wBiQXu4VxLevYxkGA",{"hex":52},{"id":144,"type":145,"eyebrow":10,"title":146,"text":147,"cta":18,"list":148,"stats":149,"theme":150},"RcCt9-3oQsuYgY7KfrNSjA","text_block","\u003Cp>Where it broke down\u003C/p>","\u003Cp dir=\"ltr\">\u003Cspan>&ldquo;Mostly it just worked. But as I tested the app I started to notice small bugs. When I tapped the input field to type the weight for an exercise, there was no way to dismiss the keyboard. I described the problem to Claude in plain language and it sorted it out immediately.\u003C/span>\u003C/p>\n\u003Cp dir=\"ltr\">\u003Cspan>&ldquo;The surprise was how conversational the debugging felt. I didn&rsquo;t need to understand the code to explain what was wrong, and Claude understood the context because it had built the thing in the first place.&rdquo;\u003C/span>\u003C/p>\n\u003Cp dir=\"ltr\">\u003C/p>",[],[],{"id":151,"background":152,"text":53},"Tu_oF1nUR3WZ2OWqlUuZgQ",{"hex":52},{"id":154,"type":56,"space":83},"OHfUHFrXQs2m6ztaVMdGgg",{"id":156,"type":60,"title":157,"text":158,"media":159,"caption":10,"theme":18,"reverse":53},"Yawzw3GLQcG9dyBqy-DG-A","\u003Ch2 dir=\"ltr\">\u003Cb id=\"docs-internal-guid-174eac2c-7fff-aace-8cd0-8752c722fd5d\">\u003Cspan>What does “debugging through conversation” actually look like?\u003C/span>\u003C/b>\u003C/h2>","\u003Cp dir=\"ltr\">\u003Cspan>\"Some were just prompting to fix issues as I tested the live experience, and some were just asking Claude to run a QA session on itself. I used Claude's preview server to screenshot, inspect, and refine the UI in real-time. It caught z-index bugs, opacity issues, and savings calculation edge cases all through conversation.\u003C/span>\u003C/p>\n\u003Cp dir=\"ltr\">\u003Cspan>\"The most difficult part was to set the appropriate definition of \"discounted\" price. When I asked it to calculate based on historic average there weren't any results because most flights were more expensive than the last year's historic average. After a bunch of back and forth, ultimately I settled on showing the highest of historical average, per-route max, and per-route average.\"\u003C/span>\u003C/p>",{"id":160,"alt":18,"title":18,"focalPoint":161,"width":66,"height":67,"thumbnail":162,"small":163,"medium":164,"responsiveImage":165,"video":18},"SpzRDKgKSCqPKkWUFgBGag",{"x":20,"y":20},"https://www.datocms-assets.com/157026/1783448180-farely-honest-historical-price-comparison-deal-cards.png?auto=format&fit=max&h=800&q=95&w=800","https://www.datocms-assets.com/157026/1783448180-farely-honest-historical-price-comparison-deal-cards.png?auto=format&fit=max&h=1440&q=95&w=1440","https://www.datocms-assets.com/157026/1783448180-farely-honest-historical-price-comparison-deal-cards.png?auto=format&fit=max&h=2000&q=95&w=2000",{"srcSet":166,"webpSrcSet":10,"sizes":73,"src":167,"width":66,"height":67,"aspectRatio":75,"alt":18,"title":18,"base64":168,"bgColor":169},"https://www.datocms-assets.com/157026/1783448180-farely-honest-historical-price-comparison-deal-cards.png?auto=format&dpr=0.25&fit=max&h=2880&q=95&w=2880 164w,https://www.datocms-assets.com/157026/1783448180-farely-honest-historical-price-comparison-deal-cards.png?auto=format&dpr=0.5&fit=max&h=2880&q=95&w=2880 329w,https://www.datocms-assets.com/157026/1783448180-farely-honest-historical-price-comparison-deal-cards.png?auto=format&dpr=0.75&fit=max&h=2880&q=95&w=2880 493w,https://www.datocms-assets.com/157026/1783448180-farely-honest-historical-price-comparison-deal-cards.png?auto=format&fit=max&h=2880&q=95&w=2880 658w","https://www.datocms-assets.com/157026/1783448180-farely-honest-historical-price-comparison-deal-cards.png?auto=format&fit=max&h=2880&q=95&w=2880","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAZCAIAAACza+nDAAACT0lEQVR42k1UAXLcQAgDlt31tXlBf9BP5f8vaNPkDJXAvsmEOJc9hEBi7b9+v4tqR5qlSoicmafkM84zIzISwWOmCP+I240RYhSB89RE6jCTQB0NHhqOieCP+MR3NxWewUBKogbDwIwaYEnCCiOEjfFiI8wU3bBPiTMNGDQZOMjCko5g399gNRvZEDUeBgOSg11shSHb+s7WMCMSkoDiLCowXciWhDBkS2NKScZFSBjBBLwIC5fumF+lCCkBnkF5wMkJh5ITmHpefeLXNbPn7BaSqWBrX6AkYUFFX4TFhvbJltVITZwkL28bqmw/2rQX2/MZpUfSz14Bmi7MlQot95mtebfqn1/nLWPXai5joVoaJvJDD8lW8b9/fEalpYy8Ycbds9LJWCVFbkxG7+Tfr24Sy4BuspYgL1FHDYo9qz5CS1LWFf9zVjl+nd0dAW0CQkb9Tyerz6gtF/8IK/0rnWYhG24Nk2Hqqn5tj5Htsj7T/4kXCxiHsPY0nWpYHtyNpe7qg64PqRXvjYGSftA/Y/UcQ8dUXKaxDGs3EVPXSCdbi9naeMxHtmLoyz2ny1qxlu099spj6hwye1Ez6vrS7jzerp0smCwXZiN2PlbuJdvxDuC8l+ns0/V4a6s4OgtPORbjsRlg2xMwbmqbT+fQ9eNnv0IoHqYvNn1s62jYJMyKzWo8t+NHw/DGScAm+DHYsuPQA7ClaHIOKElE3SCDAbaOWtZ6KRSbQsC1dW48bS1dZMM00MP6BgCmw1sS3im8IAZPFE54fWjfyjrty1DI/zhLgAuDfa1pAAAAAElFTkSuQmCC","#05abee",{"id":171,"type":56,"space":83},"WhTAUgcCQRaAjdJ9B6wzpg",{"id":173,"type":60,"title":174,"text":175,"media":176,"caption":10,"theme":18,"reverse":102},"L4_si8TLT2ObWE6J5HPNzg","\u003Ch2 dir=\"ltr\">\u003Cspan>How did you handle the Amadeus API?\u003C/span>\u003C/h2>","\u003Cp dir=\"ltr\">\u003Cspan>\"Within plan mode, Amadeus API was Claude Code's recommendation and I had to manually sign up for the Amadeus free tier. Setup and connecting the API was fairly straightforward through Claude. I can pull up to 2,000 results with the free plan, and Claude built the deal scoring engine and created a multi-route scanner that compares prices across three time horizons.\u003C/span>\u003C/p>\n\u003Cp dir=\"ltr\">\u003Cspan>\"The day after I shipped it, I found out there's more limits to Amadeus than the free 2,000 calls per month quota. There are per-second and per-minute rate limits on top of that, which was a surprise.\"\u003C/span>\u003C/p>",{"id":177,"alt":18,"title":18,"focalPoint":178,"width":66,"height":67,"thumbnail":179,"small":180,"medium":181,"responsiveImage":182,"video":18},"K57aMs7xRJqVYdwHCDXYzA",{"x":20,"y":20},"https://www.datocms-assets.com/157026/1783448220-farely-honest-flight-deal-tool-homepage-and-results.png?auto=format&fit=max&h=800&q=95&w=800","https://www.datocms-assets.com/157026/1783448220-farely-honest-flight-deal-tool-homepage-and-results.png?auto=format&fit=max&h=1440&q=95&w=1440","https://www.datocms-assets.com/157026/1783448220-farely-honest-flight-deal-tool-homepage-and-results.png?auto=format&fit=max&h=2000&q=95&w=2000",{"srcSet":183,"webpSrcSet":10,"sizes":73,"src":184,"width":66,"height":67,"aspectRatio":75,"alt":18,"title":18,"base64":185,"bgColor":186},"https://www.datocms-assets.com/157026/1783448220-farely-honest-flight-deal-tool-homepage-and-results.png?auto=format&dpr=0.25&fit=max&h=2880&q=95&w=2880 164w,https://www.datocms-assets.com/157026/1783448220-farely-honest-flight-deal-tool-homepage-and-results.png?auto=format&dpr=0.5&fit=max&h=2880&q=95&w=2880 329w,https://www.datocms-assets.com/157026/1783448220-farely-honest-flight-deal-tool-homepage-and-results.png?auto=format&dpr=0.75&fit=max&h=2880&q=95&w=2880 493w,https://www.datocms-assets.com/157026/1783448220-farely-honest-flight-deal-tool-homepage-and-results.png?auto=format&fit=max&h=2880&q=95&w=2880 658w","https://www.datocms-assets.com/157026/1783448220-farely-honest-flight-deal-tool-homepage-and-results.png?auto=format&fit=max&h=2880&q=95&w=2880","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAZCAIAAACza+nDAAACV0lEQVR42k1Ui3LbMAzjS067fuA+fr/R3traIgdQcrMczqfEgkCCUEJ+/xEVcRWXJ0z5oyqB7wrEDawtpKbgk7215InmEbrWeQPrCplffaTI7Gc/eqE8SKy33odpLYWQ65Ov+Iuu81EwN1IcTNsV2hCdXRp7CLs+2IKrFencWlIlaTrNsoxHgyaXyCI7jozjfFe8SoWE7UJ009xmOYHdAsJgU4lTNB7XO9XI7Dq7+Eot11mWZtNi+kgZBdQoaycf56aBYHfPVZoJWLpP96wBlB9VASy1D1lq4GTdNEkYA7X0mZGO3QeZ6JOtorfrL4trNfTUhjQtW9DdKpJYFQ4xx+4Y85NqJGwf16f7hE8GD5QYlVTbvXmeNw0qebOWpqoZzanQuqpOVKhQ49wylxtoBW2V5h0LPgo1ilfNquQTE4Ea59gbaEOPjG/pf3IK8EirFzKXx6yDsYxkWFbS6IRU727RWU9kH9gs9hMXZr9p2UWiqgm1SU3EW6faVAdS4eGCxqkPGmiFupGUYjZmcmAFF+eKGCZujullu89xn/a6RiZNE2YQnKYFhw5aZ6U5BHMR3/arU5KLI0iS93idoeXAIBVeDvyn9h1vnBgG4KA1YBPCtOOOkDiBfLmLh+wi/U3X3HB5ggCn465FkCYjQNBAIB0Xl+G6/LWLpJpG6UgdeOJyaR0mw+QIieZsmivULn/RTUPiyETEcSflUAHtcIXUGBQEmZk0ZjLt+KGhVJQAM3D9JUwDai7HIDMGBNGhriJ7fPiP6mTZAnruvy13XRfMh9CSoc4ZqOk/COusRK4k0AQAAAAASUVORK5CYII=","#02b4f5",{"id":188,"type":56,"space":83},"CpFxzl6dS7SMUflgFexoIw",{"id":190,"type":145,"eyebrow":10,"title":191,"text":192,"cta":18,"list":193,"stats":194,"theme":195},"f27Fm5VySgC1rZ3-a_UqWg","\u003Cp>\u003Cb id=\"docs-internal-guid-f47967b7-7fff-9a72-17d7-f82076724b3d\">\u003Cspan>What would you do differently if you started over?\u003C/span>\u003C/b>\u003C/p>","\u003Cp>\"I would've spent more time laying out user stories and requirements in a separate markdown doc before getting right into the build. I spent too much time iterating based on what I saw versus planning this right from the get-go. I think there's a balance though, because you learn things from the live build that you can't learn from a doc. And if I'm doing this for a real business, I would've started with setting up a pricing model first, before building out any of the features.\"\u003C/p>",[],[],{"id":196,"background":197,"text":53},"ED2Nf3ZXT2K2M6voM8Nd6Q",{"hex":52},{"id":199,"type":56,"space":83},"Jo_h7sQcSE6ipk-7Xj3sRA",{"id":201,"type":145,"eyebrow":10,"title":202,"text":203,"cta":18,"list":204,"stats":205,"theme":206},"elEmxfYcTcG68rAgHKt17w","\u003Cp>\u003Cstrong>\u003Cb id=\"docs-internal-guid-bc926d96-7fff-43f7-1a95-20c5ac469e6f\">\u003Cspan>What would it take to turn this into something you’d seriously maintain?\u003C/span>\u003C/b>\u003C/strong>\u003C/p>","\u003Cp>\"Upgrading to the pay-per-use Amadeus plan. Building out plans and pricing, a free tier versus a base plan versus premium. Limiting the free tier usage. Giving users the ability to sign in and save search results and flight deals. And launching social media marketing. I'd start with Instagram, then eventually look into YouTube ads.\"\u003C/p>",[],[],{"id":207,"background":208,"text":53},"Csm8gNsKSpWK21UR1TN8mg",{"hex":52},{"id":210,"type":56,"space":83},"ImOMDD-7SbS6oPn3PNu94g",{"id":212,"type":213,"media":214,"theme":18},"JgjicDBSTU6MSNNKW10dcg","media_full_block",{"id":17,"alt":18,"title":18,"focalPoint":215,"width":21,"height":22,"thumbnail":23,"small":24,"medium":25,"responsiveImage":216,"video":18},{"x":20,"y":20},{"srcSet":27,"webpSrcSet":10,"sizes":28,"src":29,"width":21,"height":22,"aspectRatio":30,"alt":18,"title":18,"base64":31,"bgColor":32},{"id":218,"type":56,"space":83},"GTCzg7r-QoOuP2UbDz7v_w",{"id":220,"type":145,"eyebrow":10,"title":221,"text":222,"cta":18,"list":223,"stats":224,"theme":18},"dQOjXInsSZ-4bAorKp3C7g","\u003Cp>\u003Cstrong>What to try this week\u003C/strong>\u003C/p>","\u003Cp dir=\"ltr\">\u003Cspan>Open Claude Code in plan mode and write down the jobs to be done for a product you actually want to exist. Something you'd use yourself. Let the planner propose the architecture while you focus on the requirements the way Chang did: start from user needs, let the tool handle stack decisions.\u003C/span>\u003C/p>\n\u003Cp dir=\"ltr\">\u003Cspan>Scope it to five sessions of an hour each. Deploy to Vercel or Netlify before the weekend, even if the feature set is thin. The point is a live URL you can send to someone. The moment another person uses what you built, you'll see what's missing in a way no spec could show you.\u003C/span>\u003C/p>",[],[],{"id":226,"type":56,"space":83},"BaMolq-eQRKoJbQoYIORYQ",{"id":228,"type":229,"eyebrow":230,"items":231,"theme":18},"LUvHaZ5XRo6ebtnh0XJyaQ","list_block","Questions to sit with",[232,235,238],{"id":233,"text":234},"SMcUiXy8S-q54vhTuicGTg","What product decision are you sitting on right now because the only way to validate it is to build the thing and see?",{"id":236,"text":237},"TaYIcMhXT4exUM1zY1YyfA","If you could test that decision against a working build by Friday, what would you learn that a spec document couldn't show you?",{"id":239,"text":240},"WQhPplKgRYyUKMBPNbKrug","Chang's hardest problem was defining a single word. What seemingly simple definition in your product would change everything if you got it right?",{"id":242,"type":56,"space":57},"EQXqMFbJTv24RalqzwLXXg",{"noIndex":53,"title":244,"description":245,"image":246},"The Product Decision No Algorithm Could Make | Fantasy","The second installment of How We Build, a series where people at Fantasy share what they built with AI tools, how they built it, and what surprised them.",{"url":247},"https://www.datocms-assets.com/157026/1783448279-how-we-build-farely-honest-flight-deal-tool-link-preview.png",[249,271],{"id":250,"slug":251,"title":252,"date":18,"categories":253,"featuredMedia":258},"QXkFDqyKR8GC_81NFBV8bA","what-running-ai-augmented-design-sprints-teaches-about-creative-work","What Running AI-Augmented Design Sprints Teaches About Creative Work",[254],{"id":255,"slug":256,"title":257},"aalQatdPTmyOp4H56va7TQ","read-it-on-forbes","Read it on Forbes",{"id":259,"alt":18,"title":18,"focalPoint":260,"width":21,"height":261,"thumbnail":262,"small":263,"medium":264,"responsiveImage":265,"video":18},"H-l0LWRXSuOxt9sCdN2lLw",{"x":20,"y":20},1080,"https://www.datocms-assets.com/157026/1779124790-untitled-11.png?auto=format&fit=max&h=800&q=95&w=800","https://www.datocms-assets.com/157026/1779124790-untitled-11.png?auto=format&fit=max&h=1440&q=95&w=1440","https://www.datocms-assets.com/157026/1779124790-untitled-11.png?auto=format&fit=max&h=2000&q=95&w=2000",{"srcSet":266,"webpSrcSet":10,"sizes":28,"src":267,"width":21,"height":261,"aspectRatio":268,"alt":18,"title":18,"base64":269,"bgColor":270},"https://www.datocms-assets.com/157026/1779124790-untitled-11.png?auto=format&dpr=0.25&fit=max&h=2880&q=95&w=2880 480w,https://www.datocms-assets.com/157026/1779124790-untitled-11.png?auto=format&dpr=0.5&fit=max&h=2880&q=95&w=2880 960w,https://www.datocms-assets.com/157026/1779124790-untitled-11.png?auto=format&dpr=0.75&fit=max&h=2880&q=95&w=2880 1440w,https://www.datocms-assets.com/157026/1779124790-untitled-11.png?auto=format&fit=max&h=2880&q=95&w=2880 1920w","https://www.datocms-assets.com/157026/1779124790-untitled-11.png?auto=format&fit=max&h=2880&q=95&w=2880",1.7777777777777777,"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLDQoLDhUaDg0ODhQNEA4YHBUdGBYfFhUaHysjGh0oHSEWJDUlKC0vMjIyGSI4PTcwPCsxMi8BCgsLDg0OHBAOHC8cFh0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL//AABEIAA4AGAMBIgACEQEDEQH/xAAWAAEBAQAAAAAAAAAAAAAAAAAGBQD/xAAeEAAABgIDAAAAAAAAAAAAAAAAAQIDBAUGERMhIv/EABUBAQEAAAAAAAAAAAAAAAAAAAEA/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAECAxL/2gAMAwEAAhEDEQA/AIdXC5pJdhE7Rp8q2ANfdPsu7IUXsumEskihaDgi3ZEcRGiMYEbPIJDydqGC7Qwj/9k=","#3a6685",{"id":272,"slug":273,"title":274,"date":275,"categories":276,"featuredMedia":281},"Mr_aUGjiTT6TSG_x2J2mPA","ai-is-rewriting-business-in-real-time-and-most-leaders-arent-ready","AI is rewriting business in real time—and most leaders aren’t ready","2026-03-19",[277],{"id":278,"slug":279,"title":280},"DyewnagRR_iVnChZL92zWA","read-on-fast-company","Read on Fast Company",{"id":282,"alt":18,"title":18,"focalPoint":283,"width":21,"height":261,"thumbnail":284,"small":285,"medium":286,"responsiveImage":287,"video":18},"W9n9y6mUTiuvJ9Cpm__WzQ",{"x":20,"y":20},"https://www.datocms-assets.com/157026/1779124247-untitled-9.png?auto=format&fit=max&h=800&q=95&w=800","https://www.datocms-assets.com/157026/1779124247-untitled-9.png?auto=format&fit=max&h=1440&q=95&w=1440","https://www.datocms-assets.com/157026/1779124247-untitled-9.png?auto=format&fit=max&h=2000&q=95&w=2000",{"srcSet":288,"webpSrcSet":10,"sizes":28,"src":289,"width":21,"height":261,"aspectRatio":268,"alt":18,"title":18,"base64":290,"bgColor":291},"https://www.datocms-assets.com/157026/1779124247-untitled-9.png?auto=format&dpr=0.25&fit=max&h=2880&q=95&w=2880 480w,https://www.datocms-assets.com/157026/1779124247-untitled-9.png?auto=format&dpr=0.5&fit=max&h=2880&q=95&w=2880 960w,https://www.datocms-assets.com/157026/1779124247-untitled-9.png?auto=format&dpr=0.75&fit=max&h=2880&q=95&w=2880 1440w,https://www.datocms-assets.com/157026/1779124247-untitled-9.png?auto=format&fit=max&h=2880&q=95&w=2880 1920w","https://www.datocms-assets.com/157026/1779124247-untitled-9.png?auto=format&fit=max&h=2880&q=95&w=2880","data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLEBYXDhAPDQ0NDh0NFhENFx8ZGCITIhUaHysjHR0oKRUWJDUlKC0vMjIyGSI4PTcwPCsxMi8BCgsLAg0OHBANHDscFh0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL//AABEIAA4AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAABgEDBf/EAB0QAAICAwADAAAAAAAAAAAAAAEEAAMCBRIRITL/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgD/xAAaEQACAgMAAAAAAAAAAAAAAAAAAQIFAxIV/9oADAMBAAIRAxEAPwDM11a97Pg5CWXa1TF7z2Ira1q2tr1kZDezYOxA6MmM7ZC+axkZoUwY+hCK7TNuVgPZhM81uOlYf//Z","#968434",1783454095047]