Birthday Stats
This is a project where I built the same application concept — a birthday statistics and sports league tracker — using three different frontend approaches.
Three Implementations
Minimal Vite + React
A lean setup focused on the core logic without framework overhead. Useful for understanding what React actually needs versus what build tools add on top.
Full-Stack Next.js
A complete Next.js app with API routes and Tailwind CSS — closer to a production setup, with server-side data handling and a more polished UI.
Feature-Rich Configurator
The most complete implementation: internationalization via react-i18next, data fetching with react-query, and an Express backend. The configurator was published as an npm package and includes Docker containerization, Azure Pipelines CI/CD, and Kubernetes/Helm deployment configuration. It also integrates with the Threekit 3D visualization platform for product configuration.
Why Build the Same Thing Three Ways
Building the same thing three ways reveals what each framework is actually good at and where the trade-offs live. The configurator implementation was polished enough to publish as an npm package and deploy via Kubernetes — making it a reusable asset rather than just a learning exercise.