AyotundeWorkResume
AI EXPERIMENTPRODUCT DESIGN · AI-ASSISTED BUILD · MOBILE MVP

LFFY: a plant-care companion.

Designing and building a mobile MVP that helps houseplant owners identify plants, track care routines, receive reminders, and ask an AI assistant for plant-specific guidance.

My Plants collectionPlant profile and care guidancePlant Finder categories and recommendations
<3 days

from concept to a working MVP

4

main destinations in the app

2

mobile platforms: iOS and Android

Explore MVP status ↗

A personal problem.
A practical product.

I own around 13 indoor plants. Keeping track of watering schedules, sunlight needs, and plant-specific issues became the starting point for LFFY: a calm companion that helps owners decide what to do next.

I owned product structure, interaction design, the visual system, AI feature definition, and the build process from Figma to working app.

MY ROLE

Sole designer & AI-assisted builder
Product structure through implementation

PLATFORM & STACK

iOS and Android
React Native, Expo, Supabase, OpenAI

TIMELINE & STATUS

Working MVP in under 3 days
Launch-preparation work remains

01

Choose

Find plants suited to a home, light, and experience level.

02

Remember

Track care tasks and use reminders that feel useful.

03

Understand

Get guidance tied to the selected plant.

04

Stay oriented

Keep the app focused on actions rather than dense information.

Visual rules.
A shared build contract.

DESIGN SYSTEM

The visual rules became a build contract.

I defined colours, typography, spacing, cards, buttons, and reusable screen patterns. Figma references and explicit rules helped the AI-assisted implementation stay aligned as the product grew.

#466635
Primary actions
#333333
Primary text
#5C5C5C
Secondary text
#F7F7F7
Cards & empty states
#F1FAF5
Care tips
TYPOGRAPHY / POPPINS

A clear hierarchy for everyday care.

Screen titles32px · Bold

My Plants

Section headers24px · SemiBold

Your care routine

Plant names & card titles18px · SemiBold

Peace Lily

Primary content16px · Regular

A little care, every day.

Descriptions & labels14px · Regular

Find the right light for your plant.

Timestamps & metadata12px · Regular

Next watering · Tomorrow

Four destinations.
One clear care loop.

I structured the app in Figma around My Plants, Reminders, Finder, and Profile. These designs defined the app’s structure and screen patterns, and I gave them to the AI agent as references for implementation. Each flow had a clear home: plant discovery, care setup, tracking, authentication, and AI chat.

AI accelerated execution.
Judgment shaped the product.

Product shell

Turn Figma screens into a navigable app, align the tab structure, and refine implementation with explicit visual QA.

Persistence & reminders

Save plants and completed tasks, generate care reminders, and preserve progress between sessions.

Backend & authentication

Connect Supabase and adapt sign-up, verification, reset, and mobile deep links to the platform’s behaviour.

Contextual AI

Use vision for identification and plant data for care chat. Distinguish unavailable AI, API failures, and local fallback states.

Launch readiness

Identify server-side API handling, TypeScript cleanup, onboarding polish, and navigation fixes before public release.

DIRECTING THE AI AGENT

Specific instructions. Reviewed results.

Selected excerpts from my build log show how I made design requirements explicit, checked the agent’s interpretation, and redirected the build when real-device testing exposed a problem.

Design QA needed an explicit specification
PROMPT EXCERPT / DESIGN QA
3. Primary text colour is #333333
4. Secondary text colour is #5c5c5c
5. Typography font is Poppins and styles below
6. Update plant card to align with [Figma node]
7. Spacing between each plant card is 12px
THE AGENT’S INTERPRETATION

The agent restated a 414 × 84px tab bar, a light-grey divider, and approximately 30–34px of bottom padding. It also described an 18px plant nickname and a 14px italic scientific name. I reviewed that interpretation before approving or correcting the implementation.

THE ISSUE

Generated screens needed tighter alignment with the intended visual system.

MY RESPONSE

I supplied colour values, Poppins type styles, tab-bar padding, plant-card details, spacing, and Figma references, then checked the agent’s interpretation.

The build had to run on a real device
BUILD-LOG EXCERPT / DEVICE COMPATIBILITY
Expo Go Supported SDK is 54. Terminal says this version is not supported.
THE ISSUE

The scaffolded Expo SDK was newer than the version supported by the installed Expo Go app.

MY RESPONSE

I redirected debugging toward device compatibility, moved to SDK 54-compatible versions, and worked through the resulting type and icon changes.

Authentication assumptions did not match the platform
BUILD-LOG EXCERPT / BUG
Confirmation email links opened localhost:3000 instead of the app.
THE ISSUE

The design assumed an email code, while Supabase sent confirmation links. Some links opened localhost instead of returning to the app.

MY RESPONSE

I adapted the flow around email confirmation, password reset, and mobile deep links rather than forcing the original assumption.

Fallback responses were hiding API failures
Real AI responseNo API keyAPI failureLocal fallback
THE ISSUE

An insufficient-quota error was being obscured by keyword-based local responses.

MY RESPONSE

I made real AI, no-key mode, API failure, and local fallback distinguishable. I also reduced image size, response length, and chat history, and routed simple questions around the API.

The working MVP.
The care loop in action.

Core care flows work

Onboard, browse plants, add to a collection, set up care, receive reminders, complete tasks, and ask plant-specific questions.

Account and data foundations

Authentication, password reset, settings, and Supabase-backed persistence support the MVP.

AI has explicit trust states

Identification and care chat account for real responses, local fallback behaviour, and failure states.

Public-release work remains

Before public release, my largest priority is moving OpenAI calls behind a Supabase Edge Function, followed by type cleanup, onboarding polish, and navigation fixes.

THE WORKING MVP

See the care loop in use.

Four recordings show the core flows on a real device.

Add a plant. Start a care routine.

A short setup asks about the plant’s environment, then connects the collection to care reminders.

Find a plant that fits the home.

The recommendation quiz asks about the owner’s conditions and preferences, including pets and children, before suggesting suitable plants.

Move from a photo to a plant profile.

Camera-based identification gives plant discovery a direct entry point. The recording shows the capture and identification flow in the working MVP.

Ask with the plant already in context.

The care assistant opens from a plant profile, so the conversation can stay tied to that plant rather than starting from a blank chat.

WHAT I TOOK FORWARD

AI accelerated execution. Judgment shaped the product.

The product model and design system made the AI-assisted build easier to direct. Real-device testing revealed issues that static review could not.

Structure before pixels

Give each flow a clear home before asking an agent to implement screens.

Make design rules explicit

Use tokens, component rules, spacing, and interaction notes as a contract for generated code.

Test and protect trust

Validate on a real device and make authentication, API failure, and fallback states understandable.

This case study describes a working MVP, not a publicly released app.

CONTINUE EXPLORINGDynamic Offers ↗
LET’S WORK TOGETHER

Good conversations.
New possibilities.

I’m always open to interesting conversations—about design or what comes next.