[{"data":1,"prerenderedAt":204},["ShallowReactive",2],{"route:\u002Fportfolio-item\u002Fsmashconnect":3},{"kind":4,"doc":5,"prev":199,"next":200},"work",{"id":6,"title":7,"body":8,"categories":176,"date":180,"description":181,"extension":182,"featured":183,"image":47,"meta":184,"navigation":183,"path":185,"seo":186,"specs":187,"stem":196,"tag":197,"website":36,"__hash__":198},"portfolio\u002Fportfolio-item\u002Fsmashconnect.md","SmashConnect",{"type":9,"value":10,"toc":169},"minimark",[11,43,82],[12,13,16,25,30,40],"page-section",{":narrow":14,"align":15},"true","left",[17,18,21],"div",{"className":19},[20],"eyebrow",[22,23,24],"p",{},"Case study · Directory web app",[26,27,29],"h2",{"id":28},"the-challenge","The challenge",[22,31,32,33,39],{},"Social badminton and pickleball games are scattered across Meetup groups, Facebook pages, WhatsApp chats and venue timetables. ",[34,35,7],"a",{"href":36,"rel":37},"https:\u002F\u002Fsmashconnect.com.au\u002F",[38],"nofollow"," puts them in one search, keeps them current, and sends players straight to the organiser to join.",[22,41,42],{},"A directory is only useful if it's right. Schedules change, levels are described differently by every club, and daylight saving shifts start times.",[44,45,48,52,59,65,76],"split",{"alt":46,"image":47},"SmashConnect homepage","\u002Fimages\u002F2026\u002F11\u002Fsmashconnect-launch.jpg",[26,49,51],{"id":50},"the-approach","The approach",[22,53,54,58],{},[55,56,57],"strong",{},"A full-stack app on Cloudflare's edge."," Nuxt 4 on Cloudflare Workers with a D1 database. Public pages are cached in Melbourne and load in about a tenth of a second.",[22,60,61,64],{},[55,62,63],{},"AI that reads venue websites."," The Claude API reads venues' own timetables and pulls out each game's day, time, level and price as structured data. A second AI pass checks it against the saved page, and every game waits in an admin queue until it's approved.",[22,66,67,70,71,75],{},[55,68,69],{},"Programmatic SEO that stays clean."," Every sport, state and suburb with games gets its own landing page, and a page is only indexed while there is something to play there. Each game carries ",[72,73,74],"code",{},"SportsEvent"," structured data.",[22,77,78,81],{},[55,79,80],{},"A loop that keeps it alive."," A nightly job generates the next eight weeks of sessions. Organisers can claim and edit their listing with a magic link, and players can report wrong details.",[12,83,85,89,148],{":narrow":14,"align":15,"tone":84},"grey",[26,86,88],{"id":87},"the-result","The result",[90,91,92,104],"table",{},[93,94,95],"thead",{},[96,97,98,101],"tr",{},[99,100],"th",{},[99,102,103],{},"At launch (8 November 2026)",[105,106,107,116,124,132,140],"tbody",{},[96,108,109,113],{},[110,111,112],"td",{},"States",[110,114,115],{},"Victoria and New South Wales",[96,117,118,121],{},[110,119,120],{},"Weekly games listed",[110,122,123],{},"115",[96,125,126,129],{},[110,127,128],{},"Venue directory",[110,130,131],{},"About 590 venues",[96,133,134,137],{},[110,135,136],{},"Automated tests",[110,138,139],{},"963 unit and integration, 129 end-to-end",[96,141,142,145],{},[110,143,144],{},"First commit to production",[110,146,147],{},"7 days",[22,149,150,153,154,158,159,163,164,168],{},[55,151,152],{},"Need a directory, booking site or web app?"," See ",[34,155,157],{"href":156},"\u002Fservices\u002Fweb-development\u002F","fast websites and web apps"," and ",[34,160,162],{"href":161},"\u002Fservices\u002Fai-assistants\u002F","AI automation",", or read the ",[34,165,167],{"href":166},"\u002F2026\u002F11\u002F10\u002Fsmashconnect-launch-badminton-pickleball-socials-directory\u002F","full launch write-up",".",{"title":170,"searchDepth":171,"depth":171,"links":172},"",2,[173,174,175],{"id":28,"depth":171,"text":29},{"id":50,"depth":171,"text":51},{"id":87,"depth":171,"text":88},[177,178,179],"Web App","SEO","AI Automation","2026-11-08","A directory of weekly badminton and pickleball socials in Australia, from first commit to production in seven days, with listings found and read by AI from venues' own websites.","md",true,{},"\u002Fportfolio-item\u002Fsmashconnect",{"title":7,"description":181},[188,191,194],{"label":189,"value":190},"Stack","Nuxt 4 · Workers · D1",{"label":192,"value":193},"Launched","8 Nov 2026",{"label":195,"value":147},"Build time","portfolio-item\u002Fsmashconnect","Product","3xvMQdOQcPe8GHfqGbueZaDzENPcBbasfnV6aDV2rf4",null,{"title":201,"path":202,"stem":203,"children":-1},"Aussie Outrage","\u002Fportfolio-item\u002Faussie-outrage","portfolio-item\u002Faussie-outrage",1794316677892]