Bonsai Collection

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.

StatusIn development
Period2026
Tech
Next.jsVercelReactTypeScriptFirebaseTailwind CSSZodnext-intl
Private repositoryLive App
Introduction

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.

Tech

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.

What I learned

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.