See it in action
Each screen paired with what it does. No filler gallery.
Track your plants without overthinking it. Watering reminders, health logs, and a place to keep notes on each one.


Set schedules per plant, log how they're doing, and get nudged before you forget to water. Works whether you have one succulent or a full indoor jungle.


Watering reminders, plant health tracking, care streaks and badges, notes per plant, and home screen widgets.


A private chat trained for plant care. It already knows which plant you're asking about: species, watering schedule, recent health logs, and notes. No copy-pasting context into a generic assistant.


How it's built
SwiftUI on the front, SwiftData on device. Plant data stays local to keep cloud costs down, with JSON export and import so you can back up or move collections without losing history.
Identification and the care chat run through a custom networking layer to a backend API. I tried on-device Core ML first, but without a reliable houseplant dataset it wasn't worth shipping, so the server handles species ID and health analysis instead.
For plant photos, Vision strips backgrounds using depth and segmentation masks so cutouts look clean in cards and detail views, not like a rough crop.
Push reminders go out through Cloud Functions on a cron: check who needs a nudge, fan out through APNs. Same serverless setup as my other side projects.
Stack
