1,300+
Paying customers in the first 30 days
Olá Quest by Lisbob — Gamified European Portuguese Learning App, From Wireframes to 1,300+ Paying Customers in 30 Days

The Challenge
The category gap
Lisbob is the digital assistant for expats moving to Portugal, Spain and Italy. It runs a content and services business. It helps people with admin (NIF, NHR, NISS, AIMA, Finanças). It helps them settle in (banking, housing, mobility, language). And it has built a large owned audience: about 40,000 members in dedicated Facebook groups, plus a YouTube channel for Portuguese expats.
For that audience, language was the biggest pain point. And the most poorly served. Most apps teach Brazilian Portuguese. Lisbob's users live in European Portugal. The two are different. Different enough to make a Brazilian Portuguese learning app useless at the bakery. Useless at the tax office. Useless at the AIMA appointment.
The brief was simple. Lisbob wanted a European Portuguese learning app built for expats. Not a generic tool. A focused, branded, monetized European Portuguese learning app its community could adopt on day one. A European Portuguese learning app that felt native to Portugal. Not Brazil.
This kind of brief is exactly what we build at Stellarwind for premium expatriation agencies.
The strategic intent
Lisbob came to us with a clear goal. And a hard execution problem.
The goal:
- Convert the Facebook + YouTube audience (≈ 40,000 members) into a paying user base
- Own a category — European Portuguese (PT-PT) learning — where mainstream apps default to Brazilian
- Ship a revenue-generating European Portuguese learning app, not another freebie
- Target audience set in the brief: expats aged 30–65, mostly beginners, planning to move to Portugal
The execution problem
Building a European Portuguese learning app for this audience meant solving six problems at once.
- A consumer-grade mobile feel on day one. iOS and Android. Native quality.
- A gamification engine strong enough to compete with the apps users already use. XP. Levels. Badges. Streaks. Real-time leaderboards.
- A pedagogical engine driven by Lisbob's expert content
- A European Portuguese voice layer. Native pronunciation. Playback control.
- A monetization layer. Turned on without rewriting the app.
- A delivery process tight enough to launch on stores. Not just to demo.
The scope below is what we built. None of it was descoped.
Our Solution
A fixed-scope, milestone-based delivery
We delivered Olá Quest under a fixed-scope, milestone-based engagement. It was governed by a Service Agreement and amendments. Revision rounds were capped per milestone. Scope is locked. Revisions are bounded. Payments are tied to milestone acceptance. The client always sees what comes next.
This is the model we use on every premium build. Read more on our services page or browse our other case studies.
Eight milestones. Contract to public store launch.
| # | Milestone | Outcome | | --- | ------------------------------------------------------ | -------------------------------------------------------------------------------- | | M0 | Initial project deposit & kickoff | Workspace, brief, branding, credentials, commencement | | M1 | UX/UI design & wireframes | Full Figma wireframes, complete user journeys, design system | | M2 | Project setup & front-end development | Component library, dashboard, Firebase backend wired | | M3 | B2C basic features (XP, badges, dashboard, themes) | Core gamification engine and learning structure live | | M4 | B2C advanced features (TTS, real-time leaderboard) | Audio + competitive layer live | | M5 | User testing & final QA | Beta tested on iOS + Android. Performance and security validated. | | M6 | App Store + Google Play deployment | Store assets, ASO, listings, submission, post-launch monitoring | | ES1 | RevenueCat monetization (Amendment N°2) | Subscription system live across iOS + Android |
Each milestone closed with formal client acceptance. All 106 tasks across the 8 milestones were completed.
What we built, grouped by business value
A gamification engine that drives daily return
A European Portuguese learning app needs users back every day. Or it dies in week 2. We built the full retention loop.
- XP engine with progression logic
- Auto level-up with custom popups
- Badge engine with auto unlock
- Achievements page with earned and locked states
- Streak counters
- Weekly progress tracking
- Theme progression with unlock system
A real-time competitive layer
Competition keeps a learning app alive. We built it natively.
- XP-based global ranking
- Real-time leaderboard on Firebase Realtime Database
- All-time, weekly, and monthly filters
- Auto resets via Firebase Cloud Functions
- User position tracking and notifications
A native European Portuguese voice layer
This is the feature that justifies the entire positioning of the European Portuguese learning app. Mainstream apps cannot offer it. They default to Brazilian.
- Google Cloud Text-to-Speech tuned for European Portuguese (PT-PT)
- Pronunciation practice with audio controls
- Voice playback with speed control
A complete dashboard and content surface
- Custom dashboard with XP, level, badges, streaks
- Reusable component library
- Theme selection and unlock progression
- Notification and popup system
A monetization layer (Amendment N°2)
The monetization layer was added under a contract amendment. After the app shipped. Designed to switch on without rewriting the product.
- RevenueCat SDK integrated into FlutterFlow
- Subscription products and entitlements configured
- Paywall UI and purchase flows
- Subscription status checks and content gating
- App Store + Google Play in-app purchase products
- Restore purchases functionality
- End-to-end purchase flow tested in sandbox
A production launch, not a demo
- Onboarding journey mapped end-to-end
- Cross-device testing on iOS and Android
- Performance and loading optimization
- Security and data protection checks
- App Store + Google Play screenshots, descriptions, ASO keywords
- Privacy policy and terms of service
- iOS and Google Play submission and approval coordination
- 7-day post-launch warranty with bug-fix coverage
Architecture & stack
The European Portuguese learning app runs on this stack.
| Layer | Technology | | ---------------------- | --------------------------------------------- | | Mobile runtime | FlutterFlow (iOS + Android, single codebase) | | Authentication | Firebase Auth | | Persistent data | Cloud Firestore | | Real-time data | Firebase Realtime Database | | Scheduled logic | Firebase Cloud Functions | | Push notifications | Firebase Cloud Messaging | | Voice synthesis | Google Cloud Text-to-Speech (PT-PT voices) | | Monetization | RevenueCat | | Distribution | App Store + Google Play | | Design system | Custom UI kit, Fredoka + Rubik typography |
The stack was picked for one reason. It is the right balance of speed and ops for a launching consumer app. FlutterFlow keeps iOS and Android in one codebase. Firebase covers real-time and scheduled work. No separate infrastructure. RevenueCat removes the largest source of edge cases in cross-platform billing.
If you are exploring a similar European Portuguese learning app — or any branded consumer mobile product — we can walk you through the trade-offs. Book a strategy call. Or check our services for relocation agencies. We will tell you honestly whether this stack fits your context.
Get a Clear Plan for Your Brokerage
Schedule a strategy call to discuss your current lead flow, conversion challenges, and what a custom AI system can do for your numbers.
Book a Strategy Call