[{"data":1,"prerenderedAt":159},["ShallowReactive",2],{"projects-list":3},[4,118],{"id":5,"title":6,"body":7,"cover":91,"date":92,"description":93,"draft":94,"extension":95,"featured":94,"focus":96,"kind":97,"links":98,"meta":105,"navigation":106,"path":107,"seo":108,"stem":109,"tags":110,"tools":112,"__hash__":117},"projects\u002Fprojects\u002Fderpigame.md","Derpigame",{"type":8,"value":9,"toc":85},"minimark",[10,14,17,20,23,28,82],[11,12,13],"p",{},"Revival of a project from 2018.",[11,15,16],{},"Players take turns to guess tags from derpibooru (or furbooru, other sources possibly planned later). Three wrong guesses and you're out. Whoever guesses the most tags wins!",[11,18,19],{},"Massively upgraded from my old 2018 version, which was a mess made fully in flask with websockets.",[11,21,22],{},"The new version separates the frontend (currently hosted on GitHub pages, possibly eventually moving to Cloudflare Pages) and the back end (hosted on the legacy free tier on fly.io).",[24,25,27],"h3",{"id":26},"new-features-compared-to-2018","New features (compared to 2018)",[29,30,31,35,38,41,44,47,50,53,56,59,62,79],"ul",{},[32,33,34],"li",{},"SPA front end",[32,36,37],{},"much better visual representation",[32,39,40],{},"gameplay through a proper input instead of a chat box",[32,42,43],{},"derpibooru\u002Fphilomena API client respecting backoff rules",[32,45,46],{},"dynamic, shareable room codes",[32,48,49],{},"streamer mode",[32,51,52],{},"match history (per-room, not persistent)",[32,54,55],{},"ready system and spectator mode",[32,57,58],{},"visual upgrades (turn indicator, victory celebrations, etc.)",[32,60,61],{},"sound cues",[32,63,64,65],{},"full CI\n",[29,66,67,70,73,76],{},[32,68,69],{},"unit tests",[32,71,72],{},"(minimal) e2e tests",[32,74,75],{},"automatic build and deployment on push to main",[32,77,78],{},"automatic dependency management with dependabot",[32,80,81],{},"and so much more I can probably not even remember.",[11,83,84],{},"I still intend to improve this game as it goes on, and currently do not advertise it (aside from here) since I'm not fully ready to unleash it. But I'm already quite proud of what I've built!",{"title":86,"searchDepth":87,"depth":88,"links":89},"",2,3,[90],{"id":26,"depth":88,"text":27},"\u002Fimg\u002Fprojects\u002Fderpigame-screencap.png","2026-08-09","A tag guessing game",false,"md","50% 50%","Code",[99,102],{"label":100,"url":101},"Live Site","https:\u002F\u002Fderpigame.shikogo.com\u002F",{"label":103,"url":104},"Source","https:\u002F\u002Fgithub.com\u002FShikogo\u002Fderpigame",{},true,"\u002Fprojects\u002Fderpigame",{"title":6,"description":93},"projects\u002Fderpigame",[111],"game development",[113,114,115,116],"Vue","Typescript","FastAPI","websocket","Cfvnn6uXXwrpQw2mrFUpVyaYNkwqpgE2z4J59TwW-cM",{"id":119,"title":120,"body":121,"cover":142,"date":92,"description":143,"draft":94,"extension":95,"featured":94,"focus":144,"kind":97,"links":145,"meta":148,"navigation":106,"path":149,"seo":150,"stem":151,"tags":152,"tools":154,"__hash__":158},"projects\u002Fprojects\u002Fmy-website.md","My Website",{"type":8,"value":122,"toc":139},[123,128,131,136],[124,125,127],"h1",{"id":126},"finally-my-own-place","Finally my own place",[11,129,130],{},"I've wanted my own website for years, and I finally got around to make one.",[132,133,135],"h2",{"id":134},"how-it-works","How it works",[11,137,138],{},"It's based on Nuxt, which basically renders Vue to the backend to make it more SEO-friendly. It also uses Nuxt Content and Nuxt Images so I can add content by simply writing markdown. My images are automatically scaled to the right sizes and converted into web-friendly formats. Finally, Sveltia allows me to edit posts in the browser and makes creating content even easier.",{"title":86,"searchDepth":87,"depth":88,"links":140},[141],{"id":134,"depth":87,"text":135},"\u002Fimg\u002Fprojects\u002Fshikogo-website-screencap.png","You're looking at it","50% 17%",[146],{"label":100,"url":147},"https:\u002F\u002Fwww.shikogo.com",{},"\u002Fprojects\u002Fmy-website",{"title":120,"description":143},"projects\u002Fmy-website",[153],"website",[155,156,157],"Nuxt","TypeScript","Sveltia","Y_Tmp8_fd2-5XAFmL3LaM5df9-heW0cqa-bIQUceJC4",1786290337338]