Skip to content

Lifestyle template

Verdant AI Plant Identifier and Care App

An Expo and React Native app that identifies plants from a photo, checks sick leaves and schedules watering. It runs on sample data out of the box; connect Supabase and a Gemini key to make the AI real.

  • 22 screens
  • iOS & Android
  • Sample data
  • Updated Oct 19, 2026
  • Verified release

Free to copy · Full source · No credit card

Screens

6 screens from the working app.

What’s inside

  1. Identify a plant from a photo: best match, two look-alikes, confidence in words, pet safety and care at a glance
  2. Health check of a sick leaf: likely issue, marked spots on the photo, this week's steps as a checklist
  3. My plants by room, care rings and reminders derived from each plant's watering and feeding schedule
  4. "Ask about this plant" chat that knows the plant's species, room, watering and last health check
  5. Three AI tasks (identify, diagnose, plant-chat) run on Gemini through one Supabase Edge Function
  6. Sample mode: a 12-plant sample garden and designed sample AI answers, no backend needed
  7. Pro subscription through RevenueCat; sample prices until you connect RevenueCat to sell
  8. Reskin for mushrooms, birds or wine from src/config/domain.ts and the sample catalogue

About this template

Overview

Verdant is a complete plant identifier and care app on Expo SDK 57 and React Native. People point the camera at a plant to name it, photograph a sick leaf to see the likely problem and what to do this week, keep their plants by room with a care schedule, and ask questions about one plant. The look is bright and photo-led: white pages, real plant photos, a near-black capsule for the main action and a fresh green accent.

With .env blank it runs in sample mode: a labelled sample garden of 12 plants in 4 rooms (3 due today), a sample health history, and designed sample AI answers marked "Sample results". What the person adds is saved on the device. Connecting Supabase and a Gemini key switches every service to the live backend without code changes.

Key features

  • Camera with a framing guide, Identify and Diagnose modes, the photo library and snap tips; the web preview shows a labelled sample photo

  • Identification result: the photo full width, best match, confidence as words and a three-bar meter, why it matches, pet toxicity, light, water, humidity and temperature, two look-alikes to switch to with Undo

  • Health check: marked spots on the leaf, issue, signs, steps checklist, what to watch, a check-in reminder, Mark as better

  • My plants: photo grid by room, "N plants need water" with Water all and Undo; each plant has care rings, a photo timeline, notes, health history and a watering-rhythm chart

  • Reminders: today's done/due ring, a 7-day strip and local notifications at the person's time (Free covers 5 plants, Pro all)

  • A 17-species care guide with search, problems and similar plants

  • Onboarding with photo cards, a paywall, You (rooms, units, Delete my data), About, in-app Terms and Privacy, light and dark

Screens

22 screens: My plants, Identify, Identification result, Species guide, Plant health, Health check, My plant, Ask about this plant, Edit plant, Add plant, Find a plant, Reminders, You, Rooms, Welcome, Onboarding (value steps and "What do you grow?"), Verdant Pro, Photo credits, Terms, Privacy and About.

AI and backend

  • identify (vision, 2 units): photo in, three matches with high/medium/low confidence, care and pet safety out

  • diagnose (vision, 2 units): leaf photo in, issue, confidence, signs, steps, what to watch and up to 3 spots out; free accounts get one check

  • plant-chat (text, 1 unit): a question with the plant's care record, a short answer out

  • The app calls one Supabase Edge Function (ai) with an anonymous session; it charges units from a daily allowance and calls Gemini with your key

  • Supabase tables for rooms, plants, care events, plant photos and scans under per-user row-level security, plus a private photo bucket

  • The app asks once before the first photo or question goes to the AI provider; only what the person chooses is sent

Monetisation

Free: 3 identifications a day, 1 health check, phone reminders for 5 plants. Pro (yearly with a 7-day trial, or monthly) removes the limits. Purchases go through RevenueCat (react-native-purchases) and a webhook tells the server who has Pro. Until you connect RevenueCat to sell, the paywall shows sample prices and "Subscriptions open in the App Store version"; nothing is sold and Pro is never granted.

Reskin and photo credits

The plant words, care facets, care tasks, camera modes, onboarding choices and free limits live in src/config/domain.ts; the species in src/config/catalogue.ts; the server prompts take their domain words from DOMAIN in supabase/functions/ai/tasks.ts. The 50 bundled sample photos are CC0 or CC BY from Wikimedia Commons, iNaturalist, the WordPress photo directory and rawpixel, plus the kernel's Unsplash photos. Keep the in-app Photo credits page if you keep the photos, or replace the photos with your own.

Setup

Connect Supabase and apply the migrations, turn on the AI with your Gemini key and deploy the functions, connect RevenueCat to sell Pro, then make it yours. The README has each step.

aiplant identifierplant carehouseplantsgeminisupabaserevenuecatreact nativeexpocamerareminders

What you get

  • Full source — Expo and React Native in TypeScript, as an app in your workspace.
  • Live preview — try every change in your browser or on your phone.
  • Verified release — it compiles and every screen opens without errors.
  • AI assistant — change anything by chat; each change uses credits.
  • Builds and store upload — iOS and Android builds, sent to the App Store and Google Play from Publish.
  • No credits to copy — the copy itself costs none.

Made with an earlier version of FluxNative. Your copy works as it is; ask the agent to update it for app languages, currencies and About links.

What you need

  • A FluxNative account — the Free plan holds up to 2 apps.
  • No backend to start — it runs on sample data until you connect yours.
  • Creator or higher — for native builds and store upload.
  • Store accounts — Apple Developer Program (US$99 a year) and Google Play (US$25 once), to publish.

What’s in the source

screens
22
files in your copy
405
lines written for this app
7,663
ready-made UI components
129

App text in English and Vietnamese

Tech stack

Expo SDK
57.0.22
React Native
0.86.3
React
19.2.8
TypeScript
6.0.3
Expo Router
57.0.21
Supabase JS
2.112.3
RevenueCat
10.9.1

From this release’s package.json.

Design system

Headings
System font
Body
System font
  • Light and dark mode
  • Liquid glass
  • Capsule buttons
  • Plain cards

Set up after you fork

Your copy opens with the AI assistant that built it. Do the steps in order: connect what a step asks for under Server, then send each prompt.

  1. Connect Supabase

    Server › Backend › Supabase. Apply the two migrations, allow anonymous sign-ins in the Supabase dashboard, and write the public URL and anon key to .env. Until then the app runs on sample data.

    Prompt for the AI

    Connect this app to my Supabase project (Server › Backend › Supabase). Write EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_ANON_KEY to .env. Apply supabase/migrations/20261019000000_ai_kit.sql, then supabase/migrations/20261019010000_verdant.sql. Remind me to turn on Authentication › Sign In / Providers › "Allow anonymous sign-ins" in the Supabase dashboard, because the app signs people in anonymously. Then check that My plants loads an empty garden from Supabase instead of the sample garden.

  2. Turn on the AI

    Server › API keys & secrets: add GEMINI_API_KEY. Deploy the ai function and push its secrets. Set AI_FREE_UNITS_PER_DAY to 6 (3 identifications a day) and AI_PRO_UNITS_PER_DAY to 500.

    Prompt for the AI

    Turn on Verdant's AI. I added GEMINI_API_KEY under Server › API keys & secrets. Set AI_FREE_UNITS_PER_DAY to 6 and AI_PRO_UNITS_PER_DAY to 500 as secrets too. Deploy the supabase/functions/ai function and push its secrets, then invoke it with { "task": "usage" } as a test user and show me the answer. Do not change the tasks in supabase/functions/ai/tasks.ts.

  3. Sell Pro with RevenueCat

    Server › Monetization: connect RevenueCat (yearly with a 7-day trial and monthly products, entitlement "pro"). Save REVENUECAT_WEBHOOK_SECRET, deploy revenuecat-webhook with JWT verification off, add the webhook in RevenueCat.

    Prompt for the AI

    Set up Verdant Pro through RevenueCat. Connect RevenueCat under Server › Monetization so EXPO_PUBLIC_REVENUECAT_IOS_KEY and EXPO_PUBLIC_REVENUECAT_ANDROID_KEY are in .env. The entitlement is "pro"; the plans are yearly with a 7-day free trial and monthly (keep PLAN_PREVIEW in src/services/iap/index.ts in step with my prices). Generate a long random REVENUECAT_WEBHOOK_SECRET under Server › API keys & secrets, deploy supabase/functions/revenuecat-webhook with JWT verification off, push the secret, and tell me the webhook URL and Authorization header to paste into RevenueCat › Integrations › Webhooks.

  4. Camera and reminders on a phone build

    The camera (expo-camera) and care reminders (expo-notifications) need a native build; the web preview shows a sample photo instead of the camera. Check the permission texts in app.json first.

    Prompt for the AI

    Prepare Verdant for its first phone build. Review the camera and photo library permission texts in app.json (NSCameraUsageDescription, NSPhotoLibraryUsageDescription and the expo-camera and expo-image-picker plugins) and make them name my app. Keep expo-camera and expo-notifications in the build. Then tell me how to test identification with the real camera and a care reminder on a device.

  5. Set your icon, store IDs and legal pages

    Rename the app, set your icon and colours, and point the legal links at your pages. Replace the in-app Terms and Privacy words or set the hosted page URLs.

    Prompt for the AI

    Make this app mine: rename Verdant to my app's name everywhere a person sees it (app.json name, About, paywall, onboarding, prompts), change the bundle ID and package from com.fluxnative.verdant, draw a new icon in assets/icon.svg and assets/adaptive-icon.svg and render the PNGs, and set my brand colour in src/theme/brand.ts (keep the near-black buttons unless I say otherwise). Set EXPO_PUBLIC_PRIVACY_POLICY_URL, EXPO_PUBLIC_TERMS_URL and EXPO_PUBLIC_SUPPORT_URL in .env if I have hosted pages, otherwise rewrite the in-app Terms and Privacy pages in src/features/legal for my business. Keep the Photo credits page while the sample photos stay.

How to use this template

  1. Use the template to get an editable copy, with its source, in your workspace (Templates).
  2. Ask the AI assistant for the changes you want, in plain words (Work with the assistant).
  3. Try each change in the live preview, or on your phone (Preview).
  4. On Creator or higher, build it for iOS and Android and send it to the stores (Publishing overview).

Licence and support

Licence

You own the app made for you; the template’s code stays InspireUI’s and is licensed for use in your apps (Terms › Our intellectual property).

Help

  • Guides to templates, the assistant and publishing.
  • Contact support from Help; replies usually within 1–2 business days.
  • In your copy, ask the AI assistant about any screen or file.

Made by FluxNative

Support policy

Questions

Is it free?

Copying a free template costs nothing, not even credits; a Premium one is a one-time purchase per website. Chat changes and builds use credits.

What do I own?

You own the app made for you. The template’s code stays InspireUI’s and is licensed for use in your apps (Terms › Our intellectual property).

Do I need to know code?

No. Ask the assistant for changes in plain words; the full source is there when you want it.

Does it come with a backend?

No. A full app names the backend it needs and you connect your own under Server; a design runs on sample data.

Can I change the design?

Yes. The Design tab sets the brand colour, colours, fonts and corners at no credit cost; the assistant changes the rest.

Which plan do I need to publish?

Creator or higher builds and uploads to the stores, with your own Apple and Google accounts. A Premium template’s app builds on any plan once its website is connected.

Can I download the source?

Yes, with Download source or Push to GitHub, once your workspace has bought a plan, credits or a paid template. A Premium template’s app also needs its website connected.

What if it was made with an earlier FluxNative?

Your copy works as it is. Ask the assistant to update it for newer features such as app languages and currencies; it is the last setup step.

Ready to make it yours?

Start from Verdant AI Plant Identifier and Care App and change anything by chat. Your copy comes with the full source.

Free to copy. No credit card required.

Taking a little longer than usual…

Loading FluxNative