Plant Counselor
It is an AI gardener web service that expresses worries, goals, and schedules as the life cycle of a plant.

Plant Counselor
- One-line introduction: An AI gardener web service that expresses worries, goals, and schedules as the life cycle of a plant.
- Period: 2026.05 – 2026.06 (Under improvement)
- Role: Personal Project (Planning, Full-stack Development)
- Tech Stack: Next.js 16, React 19, TypeScript, Tailwind v4, Zustand, TanStack Query, FastAPI, Supabase(PostgreSQL), Google OAuth, Gemini
Reason for Creation / Problem
Simple to-do lists don't show visible growth. I created this service with the idea that expressing worries and goals as plants allows the growth process, like a seed becoming a flower and fruit, to be seen at a glance. Unattended worries appear as wilting plants, creating a natural motivation that 'if neglected, it withers.'
Key Features
- AI Gardener Chat: The Gemini ReAct loop continuously calls multiple skills, infers intent, executes immediately without confirmation questions, and responds via SSE.
- Pixel Art Garden: Plants and goals are drawn in pixels, allowing for zooming, shrinking, and scrolling. Harvested fruits are collected in a basket.
- Calendar Integration: Merges goal deadlines and independent schedules into a monthly view and allows dragging to move them.
- Undo/Export: Instantly reverts recent changes and exports data as JSON/CSV/ICS.
Areas of Personal Consideration
Instead of an ORM like SQLAlchemy, I chose a structure that handles CRUD with the Supabase HTTP client, personally evaluating which method was suitable for this project. I spent time refining the ReAct loop design, which allows the AI to infer user intent and automatically call over 20 skills, and the state transition logic, such as rules for wilting and irreversible states.
The backend may take 1 minute to start up when accessing the site.