Case study

JoinBeUs.

An audio-first language-learning platform, built across a Flutter mobile app, a Next.js admin system and a FastAPI backend — across two contracts and five months, both closed at 5.0.

Engagement
Two fixed-price contracts, Jan – Jun 2026
Our role
Product engineering: architecture, mobile, backend, admin and QA
Platforms
iOS, Android, web admin
Outcome
5.0 on both contracts, relationship extended
The JoinBeUs product page, showing the audio-first learner app and the eight languages it ships in
JoinBeUs — joinbeus.com

The problem

The client had a language-learning product that needed to work as an audio-first experience on mobile, and an operations team that needed to run it without a developer in the loop. That second half is where this kind of project usually stalls: the app ships, and then every content change, every role change and every subscription question comes back to engineering.

What we built

A Flutter application for iOS and Android on Clean Architecture with Bloc, backed by a FastAPI service. Then the part that made it operable: a Next.js admin spanning 70+ role-based pages with an 11-role access-control model, two-factor authentication, and Stripe subscription billing wired end to end.

The AI work was speech scoring — evaluating a learner’s spoken response and returning a usable score rather than a raw model output. That meant setting a confidence threshold, deciding what happens below it, and making the failure mode quiet rather than wrong.

How we delivered it

We ran it as two fixed-price phases on Upwork. Phase one fixed the architecture and data model up front, then shipped the learner app and API in weekly builds the client could test on their own phones. Phase two took the admin system from a backlog of operational requests to 70+ pages, with every role tested against the access model before release.

The result

The first contract delivered the platform. The client came back for a second to build out the admin area, which is the honest measure of how the first went. Both closed at 5.0, and the client endorsed the work for solution orientation, clear communication and accountability for outcomes.

“As we come to the end of this contract, I want to take a moment to thank you for the work you’ve done on JBU…”

Client review, Upwork · contract two of two · 5.0

Stack

Flutter · Dart · Bloc · Clean Architecture · FastAPI · Python · PostgreSQL · Next.js · Stripe · 2FA · AI speech scoring

Building a platform with a mobile app and an admin your team can run? See our SaaS product development and cross-platform app development.

Back to all work

Have a product worth building?

Tell us what you’re building, where you are today, and what you’re trying to achieve.

Hire Us on Upwork