[{"data":1,"prerenderedAt":488},["ShallowReactive",2],{"post-\u002Fblog\u002Fbuilding-in-public-journal-2":3,"toc-\u002Fblog\u002Fbuilding-in-public-journal-2":265,"read-more-\u002Fblog\u002Fbuilding-in-public-journal-2":410,"about":435},{"id":4,"title":5,"ad":6,"body":7,"components":6,"cover":250,"coverAlt":43,"date":251,"description":252,"extension":253,"lang":254,"meta":255,"navigation":256,"path":257,"seo":258,"showKitForm":259,"stem":260,"tags":261,"updatedAt":6,"__hash__":264},"blog\u002Fblog\u002Fbuilding-in-public-journal-2.md","Building in Public Journal #2: Week 30, 2026",null,{"type":8,"value":9,"toc":235},"minimark",[10,14,31,36,45,48,52,65,68,73,83,89,93,106,122,126,131,136,140,145,150,154,163,166,176,180,183,186,208,225],[11,12,5],"h1",{"id":13},"building-in-public-journal-2-week-30-2026",[15,16,17,18,25,26,30],"p",{},"Here's an update on my building in public journey for nextmatch.lol. This week, I worked on SEO as I’m participating in the 30-day ",[19,20,24],"a",{"href":21,"rel":22},"https:\u002F\u002Fwww.ship-or-die.com\u002Fmarketing",[23],"nofollow","Marketing or Die"," challenge. ",[19,27,29],{"href":28},"\u002Fblog\u002Fbuilding-in-public-journal-1","Last week","), I worked on improving the free-to-paid conversion. I'm still waiting to see results. But to get meaningful results, I need to feed the top of the funnel.",[32,33,35],"h2",{"id":34},"context","Context",[15,37,38,39,44],{},"Impressions on ",[19,40,43],{"href":41,"rel":42},"https:\u002F\u002Fnextmatch.lol?ref=laurentcazanove.com",[23],"nextmatch.lol"," are slowly rising, but the real traffic spikes happen during international LoL events—Worlds, MSI, Esports World Cup. That's when the community is most engaged. To be fair, those are also the weeks I did the most marketing.",[15,46,47],{},"Lots of international events viewers are more casual fans. They're not the most likely to subscribe. My goal is to build enough organic traffic to keep acquiring users year-round.",[32,49,51],{"id":50},"goal-rank-for-schedule-keywords","Goal: rank for \"schedule\" keywords",[15,53,54,55,59,60,64],{},"I did keyword research and found that my ",[56,57,58],"code",{},"{slug}-calendar"," pages had potential to rank, but they weren’t optimized around how people actually search. I spent the day refactoring the league schedule pages to target ",[61,62,63],"strong",{},"“schedule”"," intent instead of generic calendar keywords.",[15,66,67],{},"Here’s what I shipped:",[69,70,72],"h3",{"id":71},"structured-data-for-matches","Structured data for matches",[15,74,75,78,79,82],{},[61,76,77],{},"Why:"," Google needs to understand what a page is about to rank it for rich results. For sports content, that means ",[56,80,81],{},"SportsEvent"," schema.",[15,84,85,88],{},[61,86,87],{},"What:"," Added JSON-LD markup to every match card on schedule pages so search engines can parse teams, dates, and event details directly.",[69,90,92],{"id":91},"cleaner-urls","Cleaner URLs",[15,94,95,97,98,101,102,105],{},[61,96,77],{}," ",[56,99,100],{},"\u002Flck-calendar"," is descriptive, but ",[56,103,104],{},"\u002Flck\u002Fschedule"," matches search intent better and creates a cleaner site hierarchy.",[15,107,108,110,111,113,114,117,118,121],{},[61,109,87],{}," Moved all ",[56,112,58],{}," routes to ",[56,115,116],{},"{slug}\u002Fschedule"," and set up redirects so existing links don’t break. The ",[56,119,120],{},"{slug}\u002Fsubpath"," format is to allow for future subpages like standings, etc.",[69,123,125],{"id":124},"aligned-titles-and-meta-descriptions","Aligned titles and meta descriptions",[15,127,128,130],{},[61,129,77],{}," My titles were branded first, keywords second. Google rewards results that match the search queries.",[15,132,133,135],{},[61,134,87],{}," Rewrote page titles and meta descriptions to lead with topic keywords (e.g., “LCK Schedule 2026”).",[69,137,139],{"id":138},"fixed-truncated-snippets","Fixed truncated snippets",[15,141,142,144],{},[61,143,77],{}," Ahrefs was flagging my meta descriptions as too long, which leads to truncated or rewritten snippets. It can hurt click-through rate.",[15,146,147,149],{},[61,148,87],{}," Shortened all schedule-related meta descriptions to sit within the recommended character limit while keeping the intent keywords intact.",[32,151,153],{"id":152},"today-i-learned","Today I learned",[15,155,156,157,162],{},"This week too, I participated to the weekly ",[19,158,161],{"href":159,"rel":160},"https:\u002F\u002Fhackapei.com\u002F",[23],"Hackapei"," coworking. It's a cool opportunity to meet other builders and learn from them.",[15,164,165],{},"I learned two things about JSON LD that I didn't know. This will feed my next steps:",[167,168,169,173],"ul",{},[170,171,172],"li",{},"Adding JSON LD for the company\u002Forganization itself to my pages",[170,174,175],{},"Adding JSON LD for FAQ items recommended",[32,177,179],{"id":178},"summary-whats-next","Summary & what’s next",[15,181,182],{},"This week I shifted from conversion work to top-of-funnel SEO: structured data on match cards, schedule-intent URLs, and titles\u002Fmeta that lead with keywords instead of brand.",[15,184,185],{},"Next steps:",[167,187,188,202,205],{},[170,189,190,191,196,197,201],{},"Continue ",[19,192,195],{"href":193,"rel":194},"https:\u002F\u002Fx.com\u002Fjackfriks",[23],"Jack Friks","'s SEO course module from ",[19,198,200],{"href":21,"rel":199},[23],"Ship or Die",". Next: SERP strategy + content that ranks",[170,203,204],{},"Monitor conversion since reducing the free plan to 1 team follow",[170,206,207],{},"Keep shipping 🤘",[15,209,210,213,214,218,219,224],{},[61,211,212],{},"P.S."," I got my first paying customer that I ",[215,216,217],"em",{},"don’t"," know ",[19,220,223],{"href":221,"rel":222},"https:\u002F\u002Fx.com\u002FStriftCodes\u002Fstatus\u002F2080481431843905888",[23],"today",". It's so motivating!!",[15,226,227,230,231,234],{},[61,228,229],{},"P.P.S."," If you’re an indie hacker in Taipei, come join us at ",[19,232,161],{"href":159,"rel":233},[23],".",{"title":236,"searchDepth":237,"depth":237,"links":238},"",5,[239,241,248,249],{"id":34,"depth":240,"text":35},2,{"id":50,"depth":240,"text":51,"children":242},[243,245,246,247],{"id":71,"depth":244,"text":72},3,{"id":91,"depth":244,"text":92},{"id":124,"depth":244,"text":125},{"id":138,"depth":244,"text":139},{"id":152,"depth":240,"text":153},{"id":178,"depth":240,"text":179},"\u002Fimages\u002Farticles\u002Fcovers\u002Fnextmatch.jpg","2026-07-24","Documenting my building in public journey—this week, Marketing or Die and SEO for nextmatch.lol schedule pages.","md","en",{},true,"\u002Fblog\u002Fbuilding-in-public-journal-2",{"title":5,"description":252},false,"blog\u002Fbuilding-in-public-journal-2",[262,263],"build in public","gaming","TF-svPixstkXRkU3CwvXZisCUiag7aMh01-sRBG6JJY",{"body":266},{"type":8,"value":267,"toc":399},[268,270,277,279,284,286,288,294,296,298,304,308,310,318,328,330,334,338,340,344,348,350,355,357,363,365,367,369,383,392],[11,269,5],{"id":13},[15,271,17,272,25,275,30],{},[19,273,24],{"href":21,"rel":274},[23],[19,276,29],{"href":28},[32,278,35],{"id":34},[15,280,38,281,44],{},[19,282,43],{"href":41,"rel":283},[23],[15,285,47],{},[32,287,51],{"id":50},[15,289,54,290,59,292,64],{},[56,291,58],{},[61,293,63],{},[15,295,67],{},[69,297,72],{"id":71},[15,299,300,78,302,82],{},[61,301,77],{},[56,303,81],{},[15,305,306,88],{},[61,307,87],{},[69,309,92],{"id":91},[15,311,312,97,314,101,316,105],{},[61,313,77],{},[56,315,100],{},[56,317,104],{},[15,319,320,110,322,113,324,117,326,121],{},[61,321,87],{},[56,323,58],{},[56,325,116],{},[56,327,120],{},[69,329,125],{"id":124},[15,331,332,130],{},[61,333,77],{},[15,335,336,135],{},[61,337,87],{},[69,339,139],{"id":138},[15,341,342,144],{},[61,343,77],{},[15,345,346,149],{},[61,347,87],{},[32,349,153],{"id":152},[15,351,156,352,162],{},[19,353,161],{"href":159,"rel":354},[23],[15,356,165],{},[167,358,359,361],{},[170,360,172],{},[170,362,175],{},[32,364,179],{"id":178},[15,366,182],{},[15,368,185],{},[167,370,371,379,381],{},[170,372,190,373,196,376,201],{},[19,374,195],{"href":193,"rel":375},[23],[19,377,200],{"href":21,"rel":378},[23],[170,380,204],{},[170,382,207],{},[15,384,385,213,387,218,389,224],{},[61,386,212],{},[215,388,217],{},[19,390,223],{"href":221,"rel":391},[23],[15,393,394,230,396,234],{},[61,395,229],{},[19,397,161],{"href":159,"rel":398},[23],{"title":236,"searchDepth":237,"depth":237,"links":400},[401,402,408,409],{"id":34,"depth":240,"text":35},{"id":50,"depth":240,"text":51,"children":403},[404,405,406,407],{"id":71,"depth":244,"text":72},{"id":91,"depth":244,"text":92},{"id":124,"depth":244,"text":125},{"id":138,"depth":244,"text":139},{"id":152,"depth":240,"text":153},{"id":178,"depth":240,"text":179},[411,418,425],{"title":412,"description":413,"cover":414,"coverAlt":415,"path":28,"date":416,"tags":417},"Building in Public Journal #1: Week 28, 2026","Documenting my building in public journey—this week, Hackapei coworking and improving nextmatch.lol free-to-paid conversion.","\u002Fimages\u002Farticles\u002Fcovers\u002Fworking-in-cafe.jpg","A photo of me working in a cafe.","2026-07-17",[262,263],{"title":419,"description":420,"cover":250,"coverAlt":421,"path":422,"date":423,"tags":424},"Launching nextmatch.lol new pricing","How I came to redesign the packaging for the paid plan of my app nextmatch.lol.","Nextmatch.lol logo","\u002Fblog\u002Fnextmatch-new-pricing","2026-06-06",[263,262],{"title":426,"description":427,"cover":428,"coverAlt":429,"path":430,"date":431,"tags":432},"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",[263,433,434],"engineering","devrel",{"id":436,"title":437,"body":438,"description":471,"extension":253,"meta":472,"navigation":256,"path":484,"seo":485,"stem":486,"__hash__":487},"about\u002Fabout.md","About",{"type":8,"value":439,"toc":469},[440,447,462],[15,441,442,443,446],{},"Laurent Cazanove is a ",[61,444,445],{},"freelance software engineer"," specializing in developer experience.",[15,448,449,450,453,454,457,458,461],{},"He helps dev tools build great onboarding experiences through his ",[61,451,452],{},"technical writing",", ",[61,455,456],{},"UX writing",", and ",[61,459,460],{},"full-stack development"," skills.",[15,463,464,465,234],{},"Learn more about ",[19,466,468],{"href":467},"\u002Fdeveloper-experience","developer experience consulting",{"title":236,"searchDepth":237,"depth":237,"links":470},[],"Laurent Cazanove is a freelance software engineer specializing in developer experience.",{"actions":473,"excerpt":478},[474],{"text":475,"href":476,"icon":477},"Contact","\u002Fcontact","CONTACT",{"type":8,"value":479},[480],[15,481,442,482,446],{},[61,483,445],{},"\u002Fabout",{"description":471},"about","m4zdWMa1HmeJeBp7kZHKCnGue7TDn4-jnKdVkgz_anI",1784891608623]