PlantPal
The app that tells you what this plant needs, so you finally stop killing them.
Here's everything you're about to build. Take your time. Every piece is explained, and nothing here is as scary as it looks. You've got this. ๐ฟ
The Goal
The whole app in three honest lines.
What you're accomplishing
Keeping your plants alive, and actually knowing why they're thriving.
What you do today instead
Water on a vague guess, panic-google when leaves yellow, lose plants.
Why that sucks
The guessing is what kills the plant, and you only find out when it's too late.
Who It's For
One specific person, not "everyone." That's how you win.
Houseplant owners with roughly 5โ20 plants who genuinely care but feel like they have a "black thumb." They're not collectors with one tough cactus, they're people who keep trying and keep feeling bad when a plant dies.
Realistically, your first 10 users are people in one plant community you already belong to.
User Flows
How a real person moves through the app, on a good day and a rough one. The amber paths are the "when things go wrong" branches, and you can see we've already planned for them.
Adding a plant (happy path)
flowchart TD
A[Tap 'Add a plant'] --> B[Type its name or pick from a list]
B --> C[App loads that species' care profile]
C --> D[Pick where it lives: bright / medium / low light]
D --> E[Plant card appears with a 'next check-in' date]
E --> F[Done. It now lives on your shelf]
The daily check-in (the core loop)
flowchart TD
A[Notification: 'Time to check on your Monstera'] --> B[Open the plant]
B --> C{Is the soil still damp?}
C -->|Yes| D[App says: skip watering, check again in 2 days]
C -->|No| E[App says: water it now]
E --> F[Tap 'I watered it']
F --> G[Next check-in date updates]
D --> G
style D fill:#fef3c7,stroke:#f59e0b,color:#78350f
The amber box is the moment that makes this app different: when the soil is still damp, it tells you to not water, instead of nagging you on a timer.
When something's wrong (the rough day)
flowchart TD
A[Tap 'Something's off'] --> B[Pick a symptom: yellow leaves / droopy / brown tips]
B --> C{Does the app know this species' likely causes?}
C -->|Yes| D[Show 2-3 likely causes for THIS species + what to do]
C -->|No| E[Honestly say 'I'm not sure' and point to the community]
style A fill:#fef3c7,stroke:#f59e0b,color:#78350f
style C fill:#fef3c7,stroke:#f59e0b,color:#78350f
style E fill:#fef3c7,stroke:#f59e0b,color:#78350f
Notice the app would rather admit it doesn't know than guess and make the problem worse. That honesty is a feature.
Features
What you build first, and what waits until people love the first version.
- โ Add a plant, with a species care profile
- โ A plant card showing status and next check-in
- โ The "check the soil first" watering gate
- โ Calm reminders to check in
- โ Symptom helper for the common problems
- โ A shareable "my plant shelf" page (your growth loop)
- โ Identify a plant from a photo
- โ Light meter using the phone sensor
- โ Community Q&A in-app
- โ A shop (only if it avoids panic-selling)
How The Pieces Fit Together
The whole app is just a few parts talking to each other. The arrows show which way your information travels.
flowchart LR
U[You, on your phone] --> APP[Your App
the screens you tap]
APP --> DB[(Database
where your plants get saved)]
APP --> PUSH[Notifications
the calm check-in nudges]
APP --> CARE[Care Data
what each species needs]
The Tools You'll Use
Each one is free to start, picked because it's the gentlest path for a first app.
App Builder (Expo)
Builds one app that works on both iPhone and Android, so you don't learn two languages.
Free
Database + Login (Supabase)
Where your plants get saved, plus accounts. It even does backups for you automatically.
Free to start
Reminders (Expo Notifications)
Sends the calm "time to check on your plant" nudges. Built right into the app builder.
Free
Care Data (built-in list)
Watering and light guidance for ~50 common houseplants, kept in a simple file. No paid service.
Free
What It Costs
Short version: about $0/month until you publish to the App Store.
| Service | Free tier | When it starts costing |
|---|---|---|
| App Builder (Expo) | Free forever for building | Optional paid builds only at real scale |
| Database + Login (Supabase) | Covers your first hundreds of users | Only once you're well past your first crowd |
| Reminders (Expo Notifications) | Free | Doesn't, at your scale |
| Apple Developer account | โ | $99/year, only when you publish to the App Store |
One thing to watch: don't make the app wake up and check every plant every few seconds. That's the kind of thing that quietly runs up a bill. Lean on the scheduled check-in reminders instead, they're cheap and they're the whole point. A nudge once a day beats a sensor humming all day.
Roughly How Long
A friendly estimate, not a deadline. You're building this at your own pace.
Getting Your First 10 Users
This part starts before launch, not after. It matters as much as the code.
Where they already gather
One plant community you already belong to: a local plant-swap group, r/houseplants, or a plant Discord.
The first move
Don't drop a launch link. For two weeks, show up and genuinely help with the "why is my plant dying?" posts. Then mention you're building a thing for exactly this. That community is your launch.
How One User Brings The Next
A modest loop. Plant people love showing off their plants, so the shelf page does the inviting for you. Watch the arrow that closes the circle, that's the engine.
flowchart LR
A[User adds plants] --> B[Their plant shelf looks good]
B --> C[They share the shelf link]
C --> D[Friends see thriving plants]
D --> E[Some sign up to track theirs]
E ==>|the loop closes| A
style E fill:#d1fae5,stroke:#059669,color:#064e3b
The one number to watch: shares per active user per month. If almost nobody shares, the loop isn't real, and that's completely fine, your presence in r/houseplants becomes the growth engine instead.
The Build, One Step At A Time
Not one terrifying leap, just a stack of achievable steps. Each one ends with a checkpoint where your AI stops, explains in plain words what it built, and waits for you.
Project setup and folders
Database + the data model (plants, species profiles)
Login (sign up, log in, log out)
Core: add a plant, see its care profile, the "check soil first" watering gate
The heart of the app. The checkpoint below is from right after this step.
Reminders (push notifications)
The shareable plant shelf
Symptom helper
Polish + error handling + accessibility
Pre-launch (privacy policy, security pass)
Deploy to the stores
That's a real, complete app. ๐
People have built companies on less.
Things To Handle Before Launch
The grown-up stuff. None of it is hard, but skipping it bites later.
Security
Handle nowPasswords scrambled, and no secret keys sitting in the code. They go in a protected .env file that never gets shared.
Privacy & legal
Before launchAccounts mean you need a basic privacy policy. A simple, honest one is plenty to start.
Accessibility
Handle nowReadable text sizes, and the app works without relying only on color. A yellow-leaf warning needs words too, not just a colored dot.
Backups
Already coveredYour database (Supabase) handles these automatically. Nothing for you to do here.
A Couple Of Open Questions
Small forks worth deciding before you build. There's no wrong answer, just a choice.
? Start with a built-in list of ~50 plants, or let users add custom species from day one?
? Do reminders feel better as a fixed gentle schedule, or fully driven by the soil check-in?