Most language apps sell you streaks. Alphonso gives you a course, then someone to talk to.

Learn With Alphonso is a free, complete A1 to C1 course in English, French and Spanish: 1,767 lessons across 386 units. When you are ready to speak, Hector, an AI voice tutor, talks with you out loud. Hector is the paid part, because it is the one thing that costs us real money on every turn.

Why it is different

  • The whole course is free. No lesson is behind a paywall.
  • Pro unlocks only what costs money to run. Hector's speech recognition, AI replies and voice cost us per turn, so that is the paid tier.
  • The paywall is enforced on our server. A modified app cannot reach Hector without a real RevenueCat pro entitlement.
  • No ads, no tracking, no analytics SDKs. The app asks permission before any AI feature runs and names who receives your audio or text.

What you can do

  • Learn: vocabulary, practice and review in every lesson, with multiple choice, fill-in-the-blank, word order, translation, listening and speaking questions. A short placement test sets your level on day one.
  • Review: spaced repetition (SM-2) brings back the words and questions you missed.
  • Speak: hold-to-talk practice in everyday scenarios (ordering coffee, a job interview, a doctor's visit), with your speech transcribed and answered in real time, plus speaking questions that grade what you actually said.
  • Listen: a level-graded audio library with transcripts, lock-screen playback and offline downloads.
  • Hector (Pro): an AI voice tutor that remembers your level and recurring weak spots between sessions and steers practice toward them.
  • Stay with it: streaks, hearts, XP, leagues, friends, duels and teams, a home-screen streak widget and gentle reminders. Every social surface has block and report.

How RevenueCat powers it

One entitlement, pro, on an auto-renewable Alphonso Pro Monthly subscription with a 2-week free trial.

  • Enforced server-side. Hector's endpoint checks the caller's pro entitlement against RevenueCat's REST API on every turn and fails closed.
  • No hardcoded prices. Price, billing period and trial length come from the StoreKit product through RevenueCat, so every storefront sees its own currency. The trial is only advertised to users StoreKit says are eligible. Restore Purchases and Manage Subscription sit next to the paywall.
  • One identity. Purchases.logIn ties the RevenueCat customer to the same Supabase user id as the rest of the app, so a subscription follows the account, not the device.
  • Promotional entitlements (RevenueCat API) give Pro to App Review and demo accounts without a purchase, and can do the same for partners and giveaways later.

Built with care

  • Design: a custom SwiftUI design system with four themes (Meadow, Studio Ink, Manuscript, Canopy), each with a dark variant, a llama mascot, Reduce Motion support, Dynamic Type and VoiceOver labels on state-changing controls.
  • iOS: SwiftUI, a Swift package for all logic (430 unit tests), SwiftData offline sync queue, WidgetKit, AVFoundation, RevenueCat SDK, Sign in with Apple, Google or email code.
  • Backend: Supabase (row-level security on every user table, Edge Functions), plus a TanStack Start app on Vercel for the web app and AI endpoints. The same account and progress work at learn.alphonsoecosystem.app.
  • AI: NVIDIA NIM for conversation, grading and weakness detection; Deepgram for speech.
  • Built on Windows. The Swift package is tested locally on Windows; the app target compiles only in GitHub Actions on macOS, and signed builds reach TestFlight from CI.
  • AI-assisted, human-directed. Claude Code was the main pair-programmer, with ChatGPT and Codex as independent second-opinion audits. Every change still had to pass CI and real TestFlight testing on an iPhone.

Hard problems we solved

  • The first-subscription catch-22. Apple will not serve a new app's first subscription to anyone, testers included, until it is reviewed with an app version. We had to get the whole RevenueCat and App Store Connect chain right without seeing one real purchase succeed first.
  • Invisible build config. A plist key that resolved in every build setting never reached the shipped app, and a device-family setting silently made every build an iPad app too. CI now checks the exported .ipa, not the project file.
  • Hold-to-talk that recorded silence. The cause was not audio: the mic button changed its own appearance while the press gesture was attached, resetting the gesture. We found it with real timing data from TestFlight testers.

What we are proud of

  • Three complete CEFR courses and a real speaking loop, not a demo.
  • A paywall that is fair to learners and secure against tampering.
  • Privacy that holds up: no tracking, in-app deletion that also revokes Sign in with Apple, explicit consent before AI processing.

What we learned

Verify the artifact, not the intention: the shipped binary, the email that actually arrives, the request the app really makes.

What is next

Parity of the iOS app with the web app (XP shop, hearts gate), a bigger listening library, annual pricing and win-back offers through RevenueCat offerings, and Android. No traction numbers yet, and we will not invent any.

Try it

Download Learn With Alphonso on the App Store. Learning is free. Alphonso Pro starts with a 2-week free trial; cancel anytime in Apple Account settings. To try Hector: open the Hector tab, then "Start 2-week free trial".

Built With

Share this project:

Updates

Submission history