🌱Your App Blueprint

# 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.

V1 · Build now

- ✓ 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)

V2+ · Later

- ○ 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 | None | $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.

Week 1 Setup, the database, and login working end to end.
Week 2 The heart of it: add a plant, see its care, the "check soil first" gate.
Week 3 Reminders, the shareable shelf, and the symptom helper.
Week 4 Polish, accessibility, a privacy policy, and ship it.

## 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.

1

Project setup and folders

2

Database + the data model (plants, species profiles)

3

Login (sign up, log in, log out)

4

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.

5

Reminders (push notifications)

6

The shareable plant shelf

7

Symptom helper

8

Polish + error handling + accessibility

9

Pre-launch (privacy policy, security pass)

10

Deploy to the stores

═══════════════════════════════════════════════════════════
🔖 CHECKPOINT: The Core Feature
═══════════════════════════════════════════════════════════
📍 WHERE WE ARE
"We just finished the heart of your app. You can now add a plant, see what it needs, and the app checks whether the soil is dry before it ever tells you to water."
🔧 WHAT WE JUST BUILT
- A screen to add a plant and load its care profile.
- The 'check the soil first' gate, so the app never blindly tells you to water on a timer.
💡 WHY WE BUILT IT THIS WAY
"Remember how we realized overwatering is what actually kills most plants? That's why the app asks 'is the soil still damp?' before it ever says 'water now.' The whole reason your app exists is to stop the guessing that kills plants, so that check had to come first."
📋 WHAT'S NEXT
"Next we'll add the calm reminders, the nudges to check on a plant without guilt-tripping you."
❓ QUESTIONS?
"Does this make sense? Want to see it working on your phone before we move on?"
Wait for the user before continuing.
═══════════════════════════════════════════════════════════

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 now

Passwords scrambled, and no secret keys sitting in the code. They go in a protected `.env` file that never gets shared.

📄

### Privacy & legal

Before launch

Accounts mean you need a basic privacy policy. A simple, honest one is plenty to start.

👁️

### Accessibility

Handle now

Readable 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 covered

Your 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?