Skip to main content

Plant Care

Plants are the real-world anchors of the WEFA loop. Players add plants from their environment, care for them daily, and earn energy to nurture their digital creatures.

Adding a Plant

A plant is added with:

  • Photo (camera capture or upload) - required
  • Nickname (player-chosen name)
  • Species (verified or unverified)
  • Location tag (where the plant lives)
  • Notes (optional free text)
  • Initial health (0-100, stubbed in V1)

The first photo timestamp is recorded for the plant profile.

Plants list

Plant Info tab

Plant Detail

Tapping a plant opens a bottom sheet with two tabs:

Info Tab

  • Description with historical context
  • Scientific name (e.g., Fragaria x ananassa)
  • Use case (e.g., "Salads, soups")
  • Season (Spring, Fall, Summer, Winter)
  • Plant zones (e.g., 0-13)

Care Tab

  • Health bar (0-100)
  • Growing stage label (Seedling, Sprout, etc.)
  • Care action button

Plant Care tab

Daily Care

Care is driven by the plantCareMachine:

Photo Requirement

A daily photo is mandatory for each care event. This is the proof-of-care anchor that connects real-world action to digital reward.

Checklist Actions

  • Watered
  • Pruned
  • Observed
  • Cleaned

Streak System

Streaks track consecutive care days with soft decay:

  • Missing 1 day reduces streak by 1 (no harsh reset)
  • Streak bonus kicks in at 3+ consecutive days

Energy Rewards

ActionEnergy
Base care event+4
Streak bonus (3+ days)+6 total

Care events are queued locally via the job queue and can be attested (EAS) when online.

Filtering

Plants can be filtered by:

  • Element (Fire, Water, Earth, Air)
  • Health (healthy, fair, poor)
  • Growth Level (Sprout, Seedling, Vegetating, Budding, Flowering, Rippening)

Plant filter sheet

Key Files

  • src/views/Deck.tsx - Plant list and add-plant form
  • src/hooks/plants/usePlantCare.ts - Care event logic
  • src/hooks/plants/useAddPlant.ts - Add plant flow
  • src/machines/plantCareMachine.ts - Care state machine