Plant Room exists because I kept watering all my plants at the same time. I’d gotten into houseplants over the past year or so and fell into a bad habit of waiting until my most dramatic plant, a Peace Lily, demanded attention. I wanted something simple: open the app, see what needs attention, tap to water, move on.
If you have a Peace Lily, you know that they truly demand attention
The core idea is an urgency score. Each plant has a watering frequency. The app divides the number of days since the last watering by that frequency to produce a percentage. A plant watered on schedule sits at 100%. One that’s overdue climbs higher. One freshly watered drops to zero. The entire collection sorts by this score, so the most neglected plants always float to the top. It’s basically a lightweight priority queue for plant care.
There are no reminders or push notifications and this is intentional. I just wanted an app that I can check on routinely rather than another notification to mute. So, if you open Plant Room when you’re already doing your rounds, it simply tells you what actually matters right now. Plants that cross the threshold get a visual shift so the signal is immediate without being intrusive.
The glass UI
The interface leans into glassmorphism. Cards, sheets, and tooltips are translucent layers with backdrop blur over a deep emerald background. The goal was something that feels more like a curated collection than a utility app, which, at least for me, makes it something I actually want to open.
What you can do
You can track plants with photos, watering frequency, location, and light requirements. Photos are auto-compressed on the client and served via Cloudflare R2. Waterings are logged with a single tap. You can browse care history, search, filter by “needs water,” and sort by urgency.
There’s also a wish list for plants you’re eyeing but haven’t brought home yet, with the option to acquire them and add them directly to your collection.
Stack
- React 19
- TypeScript
- Vite
- Tailwind CSS 4
- TanStack Router, Query, and Form
- Hono deployed on Cloudflare Workers with Cloudflare D1 database
- Cloudflare R2 for image delivery in production
- Biome for linting and formatting
- Vitest for tests
Future Considerations
As I've gotten more proficient with plants I've become aware that they don't always want to be watered on a strict schedule. There are so many factors involved but I do personally still find it helpful to know roughly when I should start checking the plant and when I last watered it. That being said, I want to soften the language around how the app flags plants for attention. The language should sort of say "hey check in on this plant" rather than "this plant is thirsty". Furthermore, I want to add a feature to effectively "push back" a watering for a plant that is ready in terms of days passed but after inspection is not actually ready yet.