[{"data":1,"prerenderedAt":372},["ShallowReactive",2],{"post-\u002Fblog\u002Fbuilding-in-public-journal-1":3,"toc-\u002Fblog\u002Fbuilding-in-public-journal-1":194,"read-more-\u002Fblog\u002Fbuilding-in-public-journal-1":291,"about":319},{"id":4,"title":5,"ad":6,"body":7,"components":6,"cover":178,"coverAlt":179,"date":180,"description":181,"extension":182,"lang":183,"meta":184,"navigation":185,"path":186,"seo":187,"showKitForm":188,"stem":189,"tags":190,"updatedAt":6,"__hash__":193},"blog\u002Fblog\u002Fbuilding-in-public-journal-1.md","Building in Public Journal #1: Week 28, 2026",null,{"type":8,"value":9,"toc":169},"minimark",[10,14,23,26,29,34,45,48,64,67,71,74,77,86,92,96,99,102,105,111,114,135,138,146,151,155,158,161],[11,12,5],"h1",{"id":13},"building-in-public-journal-1-week-28-2026",[15,16,17,18,22],"p",{},"Lots of new users. Almost no paid conversions. That was the problem I brought to ",[19,20,21],"strong",{},"Hackapei"," this week.",[15,24,25],{},"Hackapei is a coworking event for people building products. The concept is simple: you clock in in the morning, introduce your product, and state your goal for the day. At 5 PM, you gotta demo what you worked on, what you achieved, and why.",[15,27,28],{},"It’s build in public, in real life. With the little pressure of following up on your commitment. Folks at the events found it’s a great way to be motivated—and I agree!",[30,31,33],"h2",{"id":32},"goal-improve-free-to-paid-conversion","Goal: improve free-to-paid conversion",[15,35,36,37,44],{},"I’m working on ",[38,39,43],"a",{"href":40,"rel":41},"https:\u002F\u002Fnextmatch.lol?ref=laurentcazanove.com",[42],"nofollow","nextmatch.lol",", an application to sync League of Legends esports matches to your calendar. Thanks to marketing during international events, I acquired a lot of new users—but almost none converted to paid.",[15,46,47],{},"My goal for the day was to attack that problem from two complementary angles:",[49,50,51,58],"ol",{},[52,53,54,57],"li",{},[19,55,56],{},"Offer"," — the free plan is too generous",[52,59,60,63],{},[19,61,62],{},"Perception"," — the app showcases paid value poorly",[15,65,66],{},"One is about what free users get; the other is about how clearly they see why paying is worth it. In this post, I’ll detail the reasoning behind each and explain what I built.",[30,68,70],{"id":69},"assumption-1-the-free-plan-is-too-generous","Assumption 1: the free plan is too generous",[15,72,73],{},"The nextmatch.lol free plan allowed users to follow two teams for free. That meant receiving all the future matches for those teams in your calendar, regardless of the event they were participating in.",[15,75,76],{},"Most users would reach the 2-team limit of the free tier—meaning there was value. But, after researching similar apps in traditional sports, I realized my free plan was overly generous compared to what these other apps were doing. I thus decided to experiment with reducing the free follow limit to 1.",[78,79,85],"article-image",{"src":80,"alt":81,"title":82,"width":83,"height":84},"\u002Fimages\u002Farticles\u002Fbuilding-in-public-journal-1\u002Fnextmatch-one-free-follow.png","nextmatch.lol free plan limited to one team follow","Free plan: one team follow",2560,1440,"\n  Free plan reduced to one team follow\n",[87,88,89],"blockquote",{},[15,90,91],{},"Existing users benefit from their early sign-up bonus—they can keep their second extra following for free if they already used it.",[30,93,95],{"id":94},"assumption-2-paid-value-is-poorly-showcased","Assumption 2: paid value is poorly showcased",[15,97,98],{},"Because my app is a utility that syncs matches to the user’s calendar app, most of the value happens outside the app. The value is when the user sees the matches in their Google Calendar, not so much when they're in the app.",[15,100,101],{},"Showcasing the product's value is key to upselling users, so I needed to improve how the perceived value in-app. Hypothesis: improving the perceived value (of the free plan) + previewing the premium plans' benefits better → improve the free-to-paid conversion.",[15,103,104],{},"In the paywall “upgrade” modal, I’m previewing the list of matches the user can add to their calendar. But this is only viewed if the user attempts to follow an extra team.",[78,106,110],{"src":107,"alt":108,"title":109,"width":83,"height":84},"\u002Fimages\u002Farticles\u002Fbuilding-in-public-journal-1\u002Fnextmatch-upgrade-modal.png","nextmatch.lol upgrade modal previewing synced matches","Upgrade modal with match preview","\n  Upgrade modal previewing matches you’d sync\n",[15,112,113],{},"I think this should be visible at other moments in the user journey. So I’m rebuilding the entire onboarding\u002Ffollowing journey around three goals:",[115,116,117,123,129],"ul",{},[52,118,119,122],{},[19,120,121],{},"Reveal value"," — showcase the synced matches at all times",[52,124,125,128],{},[19,126,127],{},"Prompt upgrade"," — add subtle nudges before the hard paywall modal",[52,130,131,134],{},[19,132,133],{},"Celebrate progress"," — mark milestones (first follow, first calendar sync, etc.)",[15,136,137],{},"Here’s the WIP onboarding flow (going live later this week!)",[78,139,145],{"src":140,"alt":141,"title":142,"width":143,"height":144},"\u002Fimages\u002Farticles\u002Fbuilding-in-public-journal-1\u002Fnextmatch-onboarding-follow-team.png","WIP nextmatch.lol onboarding flow for following a team","WIP onboarding: follow a team",3024,1964,"\n  WIP onboarding flow for following a team\n",[87,147,148],{},[15,149,150],{},"It needs a bit of polishing, but the core is showcasing the value at all times.",[30,152,154],{"id":153},"summary-whats-next","Summary & what’s next",[15,156,157],{},"This week at Hackapei I tackled free-to-paid conversion on both sides of the problem: tightened the free offer (1 team follow instead of 2), and started rebuilding onboarding so users see calendar value—and upgrade prompts—earlier in the journey.",[15,159,160],{},"Still to ship: the reworked onboarding. After that, I’ll keep pushing more users to the top of the funnel and watch how they convert. When the Summer Split starts (in 1 week), I’ll assess opportunities to re-engage existing users.",[15,162,163,164,168],{},"If you want to attend focused co-working events with other product builders, join us at the next ",[38,165,21],{"href":166,"rel":167},"https:\u002F\u002Fhackapei.com\u002F",[42],".",{"title":170,"searchDepth":171,"depth":171,"links":172},"",5,[173,175,176,177],{"id":32,"depth":174,"text":33},2,{"id":69,"depth":174,"text":70},{"id":94,"depth":174,"text":95},{"id":153,"depth":174,"text":154},"\u002Fimages\u002Farticles\u002Fcovers\u002Fworking-in-cafe.jpg","A photo of me working in a cafe.","2026-07-17","Documenting my building in public journey—this week, Hackapei coworking and improving nextmatch.lol free-to-paid conversion.","md","en",{},true,"\u002Fblog\u002Fbuilding-in-public-journal-1",{"title":5,"description":181},false,"blog\u002Fbuilding-in-public-journal-1",[191,192],"build in public","gaming","t8EjN6SvS2ibXUIpZHH49mFjrXIcLiV7OI7YegwRu-0",{"body":195},{"type":8,"value":196,"toc":285},[197,199,203,205,207,209,214,216,226,228,230,232,234,236,240,242,244,246,248,250,252,266,268,270,274,276,278,280],[11,198,5],{"id":13},[15,200,17,201,22],{},[19,202,21],{},[15,204,25],{},[15,206,28],{},[30,208,33],{"id":32},[15,210,36,211,44],{},[38,212,43],{"href":40,"rel":213},[42],[15,215,47],{},[49,217,218,222],{},[52,219,220,57],{},[19,221,56],{},[52,223,224,63],{},[19,225,62],{},[15,227,66],{},[30,229,70],{"id":69},[15,231,73],{},[15,233,76],{},[78,235,85],{"src":80,"alt":81,"title":82,"width":83,"height":84},[87,237,238],{},[15,239,91],{},[30,241,95],{"id":94},[15,243,98],{},[15,245,101],{},[15,247,104],{},[78,249,110],{"src":107,"alt":108,"title":109,"width":83,"height":84},[15,251,113],{},[115,253,254,258,262],{},[52,255,256,122],{},[19,257,121],{},[52,259,260,128],{},[19,261,127],{},[52,263,264,134],{},[19,265,133],{},[15,267,137],{},[78,269,145],{"src":140,"alt":141,"title":142,"width":143,"height":144},[87,271,272],{},[15,273,150],{},[30,275,154],{"id":153},[15,277,157],{},[15,279,160],{},[15,281,163,282,168],{},[38,283,21],{"href":166,"rel":284},[42],{"title":170,"searchDepth":171,"depth":171,"links":286},[287,288,289,290],{"id":32,"depth":174,"text":33},{"id":69,"depth":174,"text":70},{"id":94,"depth":174,"text":95},{"id":153,"depth":174,"text":154},[292,300,310],{"title":293,"description":294,"cover":295,"coverAlt":296,"path":297,"date":298,"tags":299},"Launching nextmatch.lol new pricing","How I came to redesign the packaging for the paid plan of my app nextmatch.lol.","\u002Fimages\u002Farticles\u002Fcovers\u002Fnextmatch.jpg","Nextmatch.lol logo","\u002Fblog\u002Fnextmatch-new-pricing","2026-06-06",[192,191],{"title":301,"description":302,"cover":303,"coverAlt":304,"path":305,"date":306,"tags":307},"Why League of Legends needs to step up its data game","League of Legends needs better data access to boost performance and analytics. Discover how industry experts and platforms are advancing the game.","\u002Fimages\u002Farticles\u002Fcovers\u002Fwhy-league-of-legends-needs-to-step-up-its-data-game.jpg","League of Legends Worlds Championship Cup","\u002Fblog\u002Fwhy-league-of-legends-needs-to-step-up-its-data-game","2022-07-02",[192,308,309],"engineering","devrel",{"title":311,"description":312,"cover":313,"coverAlt":314,"path":315,"date":316,"tags":317},"Video Games Were My Creative Hobby","Discover how a passion for video games transformed into a creative journey with RPG Maker. Read the full story and of where following my curiosity brought me.","\u002Fimages\u002Farticles\u002Frpg-maker-mv-world-map.jpg","A world map made with RPG maker","\u002Fblog\u002Fvideo-games-were-my-creative-hobby","2022-03-13",[192,318],"curiosity",{"id":320,"title":321,"body":322,"description":355,"extension":182,"meta":356,"navigation":185,"path":368,"seo":369,"stem":370,"__hash__":371},"about\u002Fabout.md","About",{"type":8,"value":323,"toc":353},[324,331,346],[15,325,326,327,330],{},"Laurent Cazanove is a ",[19,328,329],{},"freelance software engineer"," specializing in developer experience.",[15,332,333,334,337,338,341,342,345],{},"He helps dev tools build great onboarding experiences through his ",[19,335,336],{},"technical writing",", ",[19,339,340],{},"UX writing",", and ",[19,343,344],{},"full-stack development"," skills.",[15,347,348,349,168],{},"Learn more about ",[38,350,352],{"href":351},"\u002Fdeveloper-experience","developer experience consulting",{"title":170,"searchDepth":171,"depth":171,"links":354},[],"Laurent Cazanove is a freelance software engineer specializing in developer experience.",{"actions":357,"excerpt":362},[358],{"text":359,"href":360,"icon":361},"Contact","\u002Fcontact","CONTACT",{"type":8,"value":363},[364],[15,365,326,366,330],{},[19,367,329],{},"\u002Fabout",{"description":355},"about","m4zdWMa1HmeJeBp7kZHKCnGue7TDn4-jnKdVkgz_anI",1784266628799]