How I Built a 10,000-User Learning Platform Solo
Three years ago a client came to me with a simple ask: build an app to help students learn English vocabulary. What followed was three years of building, shipping, listening, and iterating — across three platforms, with one developer.
Three years ago a client came to me with a simple ask: build an app to help students learn English vocabulary. What followed was three years of building, shipping, listening, and iterating — across three platforms, with one developer.
This is the story behind News Lexica.
The Brief
The client ran an English education business in Bangladesh. They had students, they had content, but they had no way to deliver it digitally at scale. They needed:
- A mobile app students could use anywhere
- A web platform for learners who prefer desktop
- An admin panel to manage content without touching code
No existing codebase. No technical team. Just me.
The Architecture Decision That Saved Everything
The first question was the most important: do I build three separate systems, or one shared backend with three frontends?
I chose one backend — a Node.js API with MySQL and Prisma ORM. Every platform connects to the same database. User accounts, learning progress, quiz results, vocabulary modules — one source of truth.
This decision looked like extra work upfront. It saved hundreds of hours later.
When the client asked to add a new IELTS module, I added it once in the admin panel and it appeared immediately in both the mobile app and the web platform. When a student completed a quiz on their phone, their progress was already synced when they opened the laptop.
Building in the Right Order
I built the Flutter mobile app first. That's where students would spend most of their time — it needed to be fast, reliable, and offline-capable for students with inconsistent internet connections.
Then the React web platform, reusing the API contracts already established. Then the admin dashboard — the part that made the client independent. They could add vocabulary sets, create quiz modules, review analytics, and manage users without filing a single support request.
The Part Most Developers Skip
Here's what I've learned after three years: launching is the easy part. Staying is the hard part.
Most freelance projects end at handover. The developer disappears, the client is left with a codebase they can't touch, and the product slowly stops working.
I stayed. Every few weeks, something new shipped:
- New exam prep modules (IELTS, Cambridge, GRE, GMAT, job exams)
- Improved quiz mechanics based on how users were actually learning
- Better analytics so the client could see what content was working
- Performance improvements as the user base grew
Each update gave users a reason not to leave. Retention isn't magic. It's maintenance, care, and paying attention.
What 10,000 Users Looks Like
Growth was slow at first. Fifty users, then two hundred, then it started compounding. Students recommended it to classmates. Teachers started assigning it. The platform gained a reputation for actually being useful — not just another app.
Today News Lexica has over 10,000 active users and a 5-star rating. The client has never needed to hire a second developer. The system handles the load, the admin panel handles content management, and the users keep coming back.
What I'd Tell Myself at the Start
Design for the admin first. The part that seems least important — the backend control panel — is what determines whether a project succeeds long-term. If the client can't manage their own product, they'll depend on you for everything, or they'll move on.
Shared backend is almost always right. The overhead of maintaining three separate data sources isn't worth the illusion of independence.
Stay in contact after launch. A 30-minute call every two weeks for three years is what turned a one-off project into a platform that genuinely helps people.
The best technical work isn't just code that works on day one. It's a system that keeps working, keeps growing, and earns user trust over time.
Want to build something together?
I'm open to long-term partnerships, freelance projects, and full-time roles.