Skip to main content
Next.jsFastAPIJWTDocker

Wishlist — When tech solves a family problem

2024

Wishlist is a web application I designed and deployed from end to end, built specifically for family use. It allows every family member to browse each other's wishlists and quietly reserve a gift.

01.The Problem

Every year, it's the exact same story. As the holidays or a birthday get closer, messages start piling up in family group chats: "What do you want for Christmas?", "Wait, I was planning on getting that too…", "Didn't you want a sweater? No, that was last year..."

The solutions on the market (Amazon lists, dedicated apps...) come with their share of compromises: having to create accounts on third-party platforms, putting up with ads, and relying on a service you don't control. Not to mention the classic privacy issue: how do you discreetly reserve a gift without the recipient finding out? Long story short, I needed a simple solution.

I had a basic, concrete, and recurring need. I had the skills to meet it. So I built my own solution.

02.The Solution

Wishlist is a web application I designed and deployed from end to end. The idea is deliberately simple: every family member can browse the others' wishlists and discreetly reserve a gift—without the recipient seeing who took what.

Role management is at the heart of the experience: — A visitor browses the lists and reserves what they want to give. — An administrator manages their own list: adding ideas, uploading pictures to illustrate them, and specifying prices and links. — A super-administrator can create and manage family members' accounts.

I also integrated a Christmas theme that can be toggled via a setting—because the details that make you smile matter just as much as the features themselves.

Login page - Christmas version

Login page - Christmas version

Login page - Birthday version

Login page - Birthday version

Homepage - Birthday version

Homepage - Birthday version

Homepage - Christmas version

Homepage - Christmas version

Admin page - List management

Admin page - List management

03.Stack & Architecture

The project is structured into two distinct parts—a frontend and a backend—that communicate via an API.

On the interface side, I went with Next.js and React, placing particular focus on fluidity: animated cards, intuitive navigation, forms with real-time validation, accessible dialog boxes for confirming sensitive actions, and responsive design.

On the server side, I built a Python API using FastAPI to handle the business logic: secure authentication, role-based access control, data storage, and even a CSV export feature for administrators wanting to retrieve their data.

As for the deployment, everything runs inside Docker containers, orchestrated via Docker Compose and exposed behind a reverse proxy (Traefik + CrowdSec), which automatically handles HTTPS and protection against attacks.

Mobile view - Login page

Mobile view - Login page

Mobile view - Homepage

Mobile view - Homepage

This project illustrates something essential to me: technology only makes sense if it solves a real-world problem. Wishlist will probably remain within my private circle. But it is a living application, actively used by my loved ones. This project was an opportunity to design a complete architecture—combining the robustness of a FastAPI backend with a modern React interface, all while carefully managing user roles and privacy constraints. Ultimately, that's what defines my approach to software engineering: turning an everyday friction into a simple, concrete, secure tool that knows how to make itself indispensable.