Back to all posts
Case Study June 2026 · 8 min read

Saindy365: Building a Multilingual Audio Learning App for Dynamics 365

How we used FlutterFlow, Firebase, and RevenueCat to ship a tap-and-listen learning experience on both app stores — for a Microsoft Dynamics 365 expert who wanted to take his expertise global.

J
M. Junaid
Founder · Widgetsflow
Saindy365
Dynamics 365 Learning. Simplified.
App Store Google Play saindy365.com

Microsoft Dynamics 365 is one of the most powerful enterprise platforms in the world — and also one of the most complex to learn. Our client built a consulting and education practice around teaching it. When he came to us, he had a clear vision: take that expertise and make it available to anyone, anywhere, on their phone, for free.

The result is Saindy365 — a short-form, audio-first learning app now live on both the App Store and Google Play. Here's how we built it.

The brief: tap, listen, learn

The client's vision was specific. He'd watched how habit-forming apps like Duolingo created daily learning streaks through short, satisfying sessions. He wanted that same experience — but for professional development in Dynamics 365. Key requirements from day one:

Our approach: build on a proven foundation

We built Saindy365 starting from our internal production template — a FlutterFlow base we maintain across projects that handles authentication, navigation patterns, onboarding flows, settings, and profile management out of the box. Starting here meant roughly 90% of our development effort went into what's unique to Saindy365 instead of rebuilding infrastructure from scratch on every project.

Then came the full rebrand. Every screen, color palette, icon set, and content string was aligned to the Saindy365 identity. From the outside, it looks (and is) a fully bespoke product. Under the hood, it benefits from the stability of a base we've shipped and tested across multiple live apps.

"Starting from a proven template doesn't mean starting with a compromise — it means starting with confidence."

The stack: FlutterFlow + Firebase + RevenueCat

Three tools handled the heavy lifting, and the choice of each was deliberate:

The three things that required real engineering

1. Multilingual audio at scale

Supporting multiple languages sounds straightforward and is genuinely complex in practice. Audio files for each lesson need to exist in every supported language and map cleanly to the same content structure in Firestore. We designed a content model that lets the client manage audio content per language without touching the app code — new lessons go into Firebase Storage following a defined naming structure, and the app resolves them automatically based on the user's language preference. This keeps the editorial workflow simple and the app logic clean.

2. RevenueCat subscription flows

Integrating RevenueCat into a FlutterFlow project requires custom actions. We wrote the purchase flow, subscription status checks, paywall timing, and restore-purchase logic ourselves — because this is exactly the kind of integration that breaks under real conditions (simultaneous purchases, network interruptions, App Store review edge cases) if done generically. Getting it right meant testing on real devices with real sandbox accounts across both platforms, not just a preview build.

3. Progress tracking and gamification

Streaks, completion tracking, and achievement badges are simple to describe and require careful data modeling to execute reliably. We built the progress system with atomic Firestore transactions so a lesson completion can never be double-counted and achievements are computed from source data rather than event triggers. This means the data is always accurate, even if a user's connection was interrupted mid-session.

We built it with the client, not just for them

This project was also a learning journey for the client. As a first-time app founder — even one with deep domain expertise — he wanted to understand what he was building, not just receive a finished product. We ran a significant portion of the engagement as an active consultation: walking him through architecture decisions, explaining the trade-offs, and building his ability to manage and extend the app post-handoff. He came away with both a live app and a solid foundation of product knowledge.

The result

Saindy365 is live on the App Store and Google Play, growing its user base, and the client is happy. The codebase is structured cleanly enough that v2 features are already being scoped. That last part matters: a well-architected first version doesn't slow you down — it's what makes the next version fast to ship.

FlutterFlow Firebase RevenueCat EdTech Case Study Subscriptions
J
Got an app you want to build?
We scope, design, and ship FlutterFlow apps with the engineering depth that makes them last. Tell us what you're building.
Book a call

Keep reading

All posts