Skip to content
All work

02 / Language learning · Client project

Polypro

Learners need to speak to make progress, and a human tutor isn't always there. Polypro puts an AI speaking partner in their pocket, inside a real course.

Role
Mobile lead and in-app billing
Period
Mar → Oct 2026
Platforms
Website · iPhone · iPad · Android · Back-office
Polypro cover: the public website, the iPad dashboard and the mobile app
12%
Faster than Google's 2.5 s speed target
100%
Google SEO checks passed
0
Layout jumps while the page loads

01 / The context

Why it exists

The client wanted a serious language course for adults and professionals, not a game. Learners take a test that sets their level, then follow a structured path from beginner to advanced, and must pass a quiz before moving on.

Speaking is where most learners get stuck, and practising with a human tutor costs money and needs a schedule. The idea behind Polypro: let learners practise conversations with an AI, by text or out loud, whenever they have ten minutes.

The business also had to work. Learners pay by subscription, short programs are sold on the side, companies buy seats for their teams, and affiliates earn a commission on the learners they bring.

So Polypro is more than an app. A public website explains the offer, lets visitors take a free level test and sells the plans. Learners study on the web or in the mobile app with the same account. Companies manage their licences and follow their staff in a partner portal, affiliates track their earnings in their own space, and the team runs everything from a back-office: courses, exercises, test questions, plans, coupons and support.

02 / The people

Who it's for

  • Adult learners

    Know their real level, follow a clear path, and practise speaking on their phone between meetings, in their own language for the interface.

  • Companies

    Give their staff access with licence keys and trust that the progress they see is real.

  • Affiliates

    Share Polypro with their audience and see the learners and commission they bring in.

  • The Polypro team

    Build and update courses without a developer, sell on the web, iPhone and Android, and answer learners quickly.

03 / The goal

What it had to do

  1. A website that explains the offer, tests the visitor's level and sells the plans.
  2. A mobile app that teaches as well as the web, on iPhone, iPad and Android.
  3. Speaking practice with AI, by text and by voice.
  4. Sell in the app stores in a way Apple and Google accept.
  5. Progress and certificates that can't be faked.
  6. A back-office where the team builds courses and runs the business on its own.

04 / My part

My role

I was one of two engineers. I started the project, then owned the mobile app and in-app billing end to end, plus grading on the server and live support chat. The other engineer owned the AI provider layer, web payments and most of the web app and admin.

05 / The approach

How I built it

  1. From spec to foundation

    Start from the client's written spec and set up the codebase, the data model and one API that serves the website, the apps and the back-office.

  2. Build the learner's app

    Every screen from onboarding to certificates, all exercise types, and the voice tutor, on iPhone, iPad and Android.

  3. One product, 3 languages

    Restyle the app on the web's design system, and translate it into English, French and Arabic with a mirrored layout.

  4. Pass store review

    In-app purchases, Sign in with Apple, AI consent, reporting AI replies and account deletion: what Apple and Google check.

  5. Progress you can trust

    Move grading to the server and replace slow polling with live support replies.

06 / Key features

What I built

A website that teaches before it sells

Visitors see the offer, compare plans and sign up. Their account then opens the same courses on the web and in the app, in English, French or Arabic.

Polypro home page: Learn languages online with AI conversation practicePrices page with Free, Monthly and Yearly plans

A placement test that adapts

Learners answer written, audio and spoken questions. The test gets harder or easier as they go, then places them on a CEFR level from A1 to C2 and opens the matching path. The team manages the question bank and can draft new questions with AI.

Free English level test page: Find your English level from A1 to C2Admin placement tests page with student results and a question bank

Speaking practice with AI

Learners hold a conversation with an AI character, by text or out loud, inside each lesson, and get feedback on their grammar. Every AI reply can be reported in one tap.

Chat screen with AI and learner messages and a Report link under each AI reply

A clear path from beginner to advanced

Lessons, units and levels unlock in order. A quiz closes each level: pass it and the next one opens, miss it and the learner gets the units to review.

Course screen for English with stats tiles and the first unit cardScreen titled Your learning paths with an English course card

Progress on every screen size

Daily goals, streaks, XP, achievements and certificates, laid out for iPhone and iPad from the same account.

Dashboard with a resume card, daily goal, streak and XPiPad dashboard with resume card, streak tiles and achievement badges

Programs beside the main course

Short standalone courses, bought on their own or included with a plan or a company licence.

Programs tab showing a short course marked Included

A course builder for the team

The team builds every course in every language, level, unit and lesson from the back-office, and picks from 16 exercise types, from gap fill to AI roleplay. AI can draft a lesson's exercises for them to review.

Choose exercise type screen grouped by grammar, memorization, vocabulary and comprehensionLesson editor with its exercises and a Generate with AI button

Selling on every platform

Plans, coupons and app store products are set in the back-office. Learners pay by card on the web, or through Apple and Google in the app, and every purchase unlocks the same access.

Subscription plans page with Free, Monthly, Yearly and Premium plans

Portals for companies and affiliates

Companies get their own portal to hand out seats with licence keys and follow their staff. Affiliates get tracking links, commission tiers and a view of what they've earned. The team approves both from the back-office.

Partners page with applications and partner companies with seats usedAffiliates page with applications, payouts and affiliates with their earnings

07 / Key decisions

The hard parts

A speaking partner in your pocket

The challenge

Reading and vocabulary are easy to practise alone. Speaking isn't, and it's what learners need most.

What I did

I built the voice tutor in the app: the learner speaks, the app turns it into text, the AI answers in character, and the answer is spoken back. It keeps working when a phone call or another app takes over the microphone mid-lesson.

Around it I built all 16 exercise types, from drag and drop to listening, and added the last one myself: a video that pauses at key moments and asks the learner a question.

What it changed

Learners can hold a real conversation in the language whenever they have a few minutes, inside the same course that tracks their level.

Selling where learners actually are

The challenge

Apple and Google require their own payment systems for digital content, so the app couldn't sell anything the way the website did.

What I did

I built Apple and Google billing into the app: a subscription per language and one-time program purchases, each one confirmed by the server before anything unlocks.

What it changed

The client can sell subscriptions and programs on iPhone and Android, and one account unlocks the same courses on the web, the phone and the iPad.

Progress that means something

The challenge

Certificates and company licences only matter if progress is real, so results can't depend on what the app says about itself.

What I did

I moved grading to the server: it checks each answer and records the progress itself, on every platform.

What it changed

A level reached on Polypro is a level earned, which is what companies paying for seats need to see.

08 / The result

What it changed

  • For learners

    A course that places them at their level and lets them practise speaking out loud, on any device, in English, French or Arabic.

  • For companies

    A partner portal to hand out seats with licence keys and follow their staff, with progress graded by the server so results can be trusted.

  • For the client

    A live website and App Store app that sell subscriptions and programs, plus a back-office to build courses and run the business.

  • For the team

    Support replies arrive live in every app, and the code ships with automated tests on the server and the mobile app.

Built with

  • Next.js
  • Expo
  • React Native
  • TypeScript
  • Zustand
  • NativeWind
  • Bun
  • ElysiaJS
  • Prisma
  • PostgreSQL
  • StoreKit
  • Play Billing
  • ElevenLabs

How I work

Built with an AI-agent workflow I designed: Claude Code as a pair programmer, with every change shipped through a reviewed pull request.