๐ŸŽ…๐Ÿป Advent Calendar 2025

January 9, 2026 (4 days ago)

๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ป๐ŸŽ…๐Ÿป 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

Blog Web VitalsBlog Web Vitals
Blog Web VitalsBlog Web Vitals
v1.87.0