A web app for my brother to track his bonsai collection. Each tree has a photo timeline, a full care history, and monthly care reminders.
My brother has been growing bonsais for years and was keeping track of everything in his head and in scattered photos on his phone. I built this so each tree has its own dedicated space: a photo timeline showing how it has evolved over the years, a log of every care action (watering, repotting, pruning, wiring), and monthly prompts so nothing gets missed.
Building for a specific person with a real hobby made the requirements unusually clear. It had to be simple enough to use between tasks, and detailed enough to actually capture the life of a tree over years.
Next.js 16 with the App Router on the frontend, deployed on Vercel. Firebase covers the full backend: authentication, Firestore for tree and event data, and Storage for photos. Forms use react-hook-form validated with Zod schemas. The app is bilingual (English and French) via next-intl and supports dark and light themes through next-themes. Tailwind CSS v4 for styling.
Probably more about bonsai than coding. I spent a lot of time researching existing apps and what people liked and did not like about them. The pattern I kept seeing was rigidity — fixed dropdowns, strict schedules, reminders telling you that you missed a specific task on a specific day. That does not match how people actually care for their trees.
I went the opposite direction. The data model is intentionally loose: everything is optional, and if something is not in a dropdown you can type it in yourself. The task system works at the month level, not the minute. No notification telling you that you missed a watering on Monday June 7th. You did it sometime this month or you did not. That is realistic. That is how it actually works.