๐จ๐ผโ๐ป๐ ๐ป Another Christmas season, another year of hosting my advent calendar game! This year, around 50 participants joined in on the fun, exploring and searching for real-life spots throughout the advent season. ๐โจ
The game continued as a mobile-optimized web app delivering a daily "picture of the day" via Telegram and Slack. Participants used the app's map and location features to find each spot in real life and compete on the leaderboard.
This year's focus was on three major improvements:
๐บ๏ธ Mapbox with 3D Layers: I refactored the map implementation to use Mapbox with the recently added 3D layers feature. This brought a fresh visual dimension to the game, making the exploration experience more immersive and engaging for players.
โป๏ธ Code Refactoring: Several refactorings following DRY and YAGNI principlesโremoving duplicated logic, simplifying over-engineered parts, and keeping the codebase lean and maintainable.
๐งช Extensive Testing: My main goal this year was to ensure a distraction-free and careless advent timeโboth for participants and for myself as the host. To achieve this, I invested heavily in testing:
- โ Unit tests for core business logic
- ๐ Integration tests for API endpoints and data flows
- ๐ญ End-to-end tests with Playwright for critical user journeys
This comprehensive test coverage gave me confidence that everything would run smoothly, allowing me to enjoy the season alongside the participants rather than firefighting bugs. The result? An enjoyable game experience for everyone involved! ๐ฎ
โป๏ธ Plans for next year:
- ๐ฆ Rewriting the backend in Rustโpurely for the fun of learning and exploring a new tech stack!
- ๐จ Switching from DaisyUI's pure CSS components to shadcn/ui for a more modern and customizable design system
It's always exciting to use this project as a playground for learning new technologies while delivering something meaningful for friends and family. Can't wait to see what next year's adventure brings! ๐๐
TypeScript, GraphQL (Apollo Server), Prisma, Strapi, K3S, PostgreSQL, Hetzner, Mapbox GL JS
TypeScript, Vue.js, Tailwind CSS, DaisyUI, Mapbox 3D
Vitest, Playwright, Integration Tests



