Education template
Parley AI Speaking Tutor App
A language-speaking app with Lucía, an AI tutor: role-play calls in real scenes, word-by-word pronunciation feedback, call recaps and spaced review. Ships with a Spanish course and runs in sample mode until you connect Supabase and Gemini.
- 18 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
- Role-play calls in 10 scenes: Lucía replies in character, ticks off goals and gives one kind correction per line
- Pronunciation drills mark each word Clear, Almost or Missed, with a tip; labelled as an AI estimate
- Call recap: goals met, fluency, grammar and vocabulary in words, three corrections, new words saved to Review
- Spaced review of saved phrases with Again, Hard, Good and Easy, a 7-day forecast and swipe to remove with Undo
- Spanish course of 8 units (Latin America or Spain accent); a language is one curriculum file
- Sample mode with no backend: a day-12 sample learner and scripted calls; nothing is recorded or sent
- Five AI tasks run on Gemini through one Supabase Edge Function with a daily unit allowance
- Pro through RevenueCat (sample prices until you connect it); Delete my data and in-app Terms and Privacy
About this template
Overview
Parley is a speaking-practice app for adult learners who know some words but freeze when they talk. Every day they speak out loud with Lucía, an illustrated AI tutor: short lessons with phrases to repeat, speaking drills, role-play calls in everyday scenes, and spaced review of what they keep. The app never asks for a name or an account; it signs the learner in anonymously once a backend is connected.
Out of the box it runs in sample mode: a Spanish course, a sample learner on day 12 (A2, unit 3 of 8, 46 saved phrases, a café call with its recap), scripted calls and sample pronunciation results. One quiet line on each speaking screen says the results are samples. Nothing is recorded and nothing is sent anywhere until you connect Supabase and add a Gemini key.
Key features
Learn: streak and today's minutes, today's step with Lucía, a note from the last call, the unit path (lesson, speaking drill, role-play call, review) and the 8-unit course.
Role-play calls: the scene's photo with Lucía in her role, goals that tick as you meet them, a transcript with her corrections, a hint, one big microphone or typing.
Recap after every call: goals met, ratings in words (never percentages), what went well, three corrections you can save, new words saved to Review, what to try next.
Pronunciation drills and lesson phrases: each word marked Clear, Almost or Missed with a mark and an underline, not colour alone, plus one tip.
Review: phrases due today with a 7-day forecast, search, a detail sheet, flashcards with four ratings that each say when the phrase comes back.
First open: welcome, four questions (which Spanish, what for, a level check by reading one sentence aloud, minutes a day) and a plan built from the answers.
You: level and course progress, a month calendar of practice, recent calls, daily goal, voice speed, accent, Delete my data, Terms, Privacy and About.
Screens
17 screens: Learn, Practice, Review, You, Welcome, onboarding questions, Your plan, Parley Pro, Lesson, Speaking drill, Scene, Role-play call, Call recap, Review session, Privacy policy, Terms of use and About. Light and dark are both designed; the chrome follows iOS 26 Liquid Glass.
AI and backend
Lucía is an AI tutor, and the app says so on Welcome, About, the recap and the terms. Her portraits are AI-generated illustrations of a fictional character. With a backend, every AI step goes through one Supabase Edge Function (`ai`) that checks the learner's daily allowance and calls Google Gemini with your key; the key never ships in the app.
roleplay-turn (1 unit): Lucía's reply in character, goals met, a hint and at most one correction.
transcribe-attempt (1 unit): what the learner said, kept verbatim.
score-pronunciation (1 unit): each word good, close or missed and a tip, an estimate rather than phoneme measurement.
speak (1 unit): Lucía's voice for a line, saved to the learner's private media folder and remembered on the device.
recap (1 unit): the call's write-up.
Progress, sessions and saved phrases live in three Supabase tables behind row-level security. Delete my data removes them, the learner's AI files and past usage. In sample mode the tutor has no voice: her lines show as captions.
Monetisation
Free covers the units up to the one the learner places into and one role-play call a day. Parley Pro (yearly with a 7-day trial, or monthly) opens all units, removes the daily call limit and raises the AI allowance. Purchases go through RevenueCat (react-native-purchases) and a webhook grants Pro on the server. Until you connect RevenueCat the paywall shows the plans with sample prices and says subscriptions open in the App Store version; nothing can be bought and no access is granted.
Setup
Connect Supabase, turn on the AI with a Gemini key, connect RevenueCat to sell Pro, review the course and the microphone text, then make it yours. Each step below is a prompt your coding agent can run.
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
- 18
- files in your copy
- 352
- lines written for this app
- 7,424
- 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
- Plus Jakarta Sans
- 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.
Connect Supabase
Server › Backend › Supabase. Apply the two migrations, turn on anonymous sign-ins and write the project's URL and anon key to .env. Until then the app stays in sample mode.
Prompt for the AIConnect this app to my Supabase project (Server › Backend › Supabase). Apply supabase/migrations/20261019000000_ai_kit.sql and then supabase/migrations/20261019010000_parley.sql. Write EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_ANON_KEY to .env. Then tell me to turn on Authentication › Sign In / Providers › Allow anonymous sign-ins in the Supabase dashboard (the app signs learners in anonymously) and to keep the anonymous sign-in rate limit per IP low.
Turn on the AI
Server › API keys & secrets: add GEMINI_API_KEY, deploy the ai function, and set the daily allowance. Each call turn uses about 3 units (transcribe, reply, voice).
Prompt for the AIAdd my GEMINI_API_KEY under Server › API keys & secrets, then deploy the Supabase Edge Function `ai` (supabase/functions/ai) and push its secrets. Set AI_FREE_UNITS_PER_DAY=40 and AI_PRO_UNITS_PER_DAY=400 (one role-play call is about 20 units: 3 per turn plus the recap). Check the function by invoking { "task": "usage" } as a test user, and confirm a role-play call works in the app.
Sell Pro
Server › Monetization: connect RevenueCat, create a yearly (7-day trial) and a monthly product on the pro entitlement, and set up the webhook secret so Pro is granted on the server.
Prompt for the AIConnect RevenueCat under Server › Monetization. Create a yearly subscription with a 7-day free trial and a monthly subscription, attach both to an entitlement named pro in the current offering, and write EXPO_PUBLIC_REVENUECAT_IOS_KEY and EXPO_PUBLIC_REVENUECAT_ANDROID_KEY to .env. Save a long random REVENUECAT_WEBHOOK_SECRET under Server › API keys & secrets, deploy supabase/functions/revenuecat-webhook with JWT verification off, and tell me the webhook URL and Authorization header to set in RevenueCat. Update PLAN_PREVIEW in src/services/iap/index.ts to the real prices.
Review the course, voice and microphone text
The Spanish course, scenes and sample conversations are plain files. Adjust them, add a language, or change the tutor's accent and the microphone permission text before a store build.
Prompt for the AIWalk me through the course in src/services/course/spanish.ts (units, lessons, drills and scenes) and the sample conversations in src/services/ai/scripts.ts, and change what I ask. If I add a language, add a curriculum file listed in COURSES (src/services/course/index.ts) and its locales in the server's ai function (functions/ai/tasks.ts). Check the expo-audio microphone permission text in app.json reads well for my app, and remind me that recording needs a new native build.
Set your icon, store IDs and legal pages
Rename the app, swap Lucía's icon if you like, retune the colours and set your privacy, terms and support page URLs.
Prompt for the AIMake this app mine: change the app name, slug, scheme and bundle identifiers in app.json, update the colours in src/theme/brand.ts, and replace the icon (assets/samples/lucia-icon.jpg cropped into assets/icon.png, adaptive-icon.png and favicon.png) if I give you a new one. Set EXPO_PUBLIC_PRIVACY_POLICY_URL, EXPO_PUBLIC_TERMS_URL and EXPO_PUBLIC_SUPPORT_URL in .env, and update the in-app privacy and terms pages (src/features/legal) to my own policy.
How to use this template
- Use the template to get an editable copy, with its source, in your workspace (Templates).
- Ask the AI assistant for the changes you want, in plain words (Work with the assistant).
- Try each change in the live preview, or on your phone (Preview).
- 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 policyQuestions
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 Parley AI Speaking Tutor App and change anything by chat. Your copy comes with the full source.
Free to copy. No credit card required.