The app's entry point. Zoe introduces herself and speaks the headline and subline aloud. The diagonal colour blocks (Mango, Sky, Lime, Rose) signal the app's energy without text. The single CTA โ 'Start Learning' โ is the only action available.
Placement Check โ Listening
Level detectionVoice-firstOnboarding only
Zoe runs a short diagnostic conversation to assess the user's current spoken English level. This is a free-form chat, not a quiz. The transcript area shows the back-and-forth. Mic button is the dominant action โ tap to speak, tap to stop.
Placement Check โ Mic Active
Waveform animationMic active stateTap to stop
When the user is speaking, the mic button shows a waveform animation to confirm it's capturing audio. The label changes to 'Tap Mic to Stop'. This same mic-active state is reused in the main conversation screen.
Placement Check โ Keyboard Mode
Text fallbackSecondary pathKeyboard toggle
A secondary fallback for users who are uncomfortable speaking immediately. The keyboard icon bottom-left toggles to text input mode. This is intentionally secondary โ voice is always the primary channel.
Placement Check Result
Level revealEncouraging toneZoe celebrates
After the assessment conversation, Zoe reveals the user's level with an encouraging framing. The screen shows the level name (e.g. B1 ยท Speaking Freely) and a brief description. CEFR codes are shown here in v1 but will be hidden from student-facing surfaces in production. Single CTA moves them to the home screen.
The main home screen. Zoe waits in the centre. Topic chips (Sports, Food, About Myself, Daily Life, Travel, Movies & TV, Work & Study) are colour-coded by interest family. Bottom-left offers a 'Zoe can pick something fun' fallback โ this starts a free-form session where Zoe chooses the direction.
Profile Screen
Level displayCoaching settingsHidden at A1โA2
The user's profile โ name, level, personal info (age, location, email). Below the info card is 'Zoe's Coaching Style' where Grammar, Vocabulary, and Fluency settings can be adjusted. For A1โA2 users, this coaching section is hidden โ the app manages settings automatically at lower levels.
Edit Profile โ Bottom Sheet
Bottom sheetNon-destructive editMango save CTA
Tapping 'Edit' opens a bottom sheet for updating name, age, location, and email. A full-width Mango CTA saves changes. The underlying profile screen remains visible but dimmed โ the bottom sheet keeps the user oriented.
Profile โ Focus Areas (B1+)
B1+ onlyGrammar controlVocab + Fluency
Coaching settings visible only to B1+ users. Three dimensions: Grammar (Off / Some / Catch All / Full), Vocabulary (Off / Post / Occasional / Active / Intensive), Fluency (Off / After Chat / Nudge / Active / Full). Each setting has a plain-language description. A1โA2 users never see this โ Zoe manages coaching silently at lower levels.
Conversation Screen โ Active
Voice-first layoutKalam font for ZoeCaption toggle
The main conversation interface. Zoe's mascot sits in the upper half; her speech appears in a Sky-blue bubble with Kalam font beneath her. The orange mic button is the dominant action. Bottom-left: keyboard toggle. Bottom-right: caption toggle. Topic label top-left; END button top-right.
Conversation Screen โ Captions Off
Captions toggleAudio-only modeReduced clutter
Tapping the caption toggle (bottom-right) hides Zoe's speech bubble. Audio-only mode for users who want to focus on listening rather than reading. The caption icon changes state. Mic button remains dominant.
End Conversation โ Confirmation
Accidental exit guardZoe sad stateTwo clear paths
Tapping END shows a confirmation bottom sheet rather than immediately exiting. Zoe's expression shifts to a subdued state. Two CTAs: END (red) and KEEP TALKING (Mango). This reduces accidental exits mid-session.
End Screen โ No Conversation
Zero-state screenNo shame framingTwo exits
If the user ends before speaking anything, this screen appears instead of the summary. Copy: 'Looks like we lost you there. No chat happened โ that's okay.' Two CTAs: PICK NEW TOPIC and TRY AGAIN. Zero shame, full restart. No metrics shown since nothing was captured.
End Screen โ Great Conversation
Rose headerBest momentCoaching tipTranscript link
Triggered when the session had substantive exchange (5+ turns). Header: 'Great Conversation!' Shows: duration + topic, Best Moment quote, Moment of Courage callout, One Thing to Try Next Time with an example sentence, and a Word of the Day card. Full transcript accessible bottom-right.
End Screen โ Good Effort
Warm framingSame structureNo shame
For sessions with some exchange but below the 'great' threshold. Header: 'Good Effort Today'. Same structure as the great screen but without the Moment of Courage callout. Warm and forward-looking, not evaluative.
End Screen โ Every Session Counts
Habit framingNo score shownEncouragement first
For short or struggling sessions (1โ4 turns). Header: 'Every Session Counts'. A green 'Keep the Habit' callout replaces the Moment of Courage: 'Coming back tomorrow matters more than today's mistakes.' The One Thing tip is still present. The framing treats returning as the win.
Focus Areas Nudge
B1+ onlyFirst session onlyProfile preview
Appears only after the user's first conversation, and only at B1 or above. Shows the three coaching sliders with their options. A note: 'You can change these anytime in the profile later.' CTA: PICK NEW TOPIC. A1โA2 users never see this screen โ coaching is managed silently at lower levels.
Full Transcript โ Bottom Sheet
Bottom sheetFull historyReview mode
Accessible from any post-session summary via 'Read transcript'. Opens as a bottom sheet over the summary screen. Shows the full turn-by-turn conversation: Zoe's turns in Sky blue (Kalam font), user's turns in Mango bubbles. Scrollable. Summary context remains visible behind.
01 · Onboarding
First Launch & Placement Check
New users assessed through a short spoken conversation. Zoe determines the level automatically โ no test, no quiz.
Start Screen
Zoe introduces herself ยท Speaks headline
Placement Check
Zoe chats to detect level
Input states
STATE
Mic Active
Waveform ยท Tap to stop
STATE
Keyboard Mode
Text fallback ยท Secondary
Placement Result
Level revealed ยท Zoe encourages
Home Screen
Topic picker ยท Free-form option
02 · Conversation Session
The Core Loop
User picks a topic (or lets Zoe choose), has a free-form spoken conversation, and can end at any time.
Topic Selected
Or "Talk to Zoe" free-form
Conversation states
Conversation
Zoe speaks ยท Mic dominant
STATE
Captions Off
Audio-only mode ยท Toggle
End Confirmation
Bottom sheet ยท Guards accidental exit
Nothing spoken
BRANCH
No Conversation
Try Again or Pick New Topic
Conversation happened
BRANCH
Great Conversation
5+ turns ยท Full summary
BRANCH
Good Effort
Some exchange ยท Warm tone
BRANCH
Every Session Counts
1โ4 turns ยท Habit focus
03 · Post-Session
Summary & Next Steps
After a session, users can review the transcript and (on first session at B1+) set coaching preferences.
Session Summary
Any end screen with conversation
Optional from summary
OPTIONAL
Full Transcript
Bottom sheet ยท Review full chat
OPTIONAL
Focus Areas Nudge
First session ยท B1+ only
Pick New Topic
Back to home ยท Loop restarts
04 · Profile & Settings
User Info & Coaching Preferences
Access via top-right icon on home screen. Focus areas section hidden from A1โA2 users.
Home Screen
Profile icon ยท Top-right
Profile
Level ยท Info ยท Coaching style
Profile actions
Edit Profile
Bottom sheet ยท Name, age, location
B1+ ONLY
Focus Areas
B1+ only ยท Grammar / Vocab / Fluency
๐ฌ Comments & Suggestions
Have feedback on the design? Drop a comment below โ it'll be saved as a GitHub Issue on the repo so the team can track it. You'll need a GitHub account to comment.