Seven years living in France, and I still struggle with real conversation. Every French app and french lesson I tried taught me the same things: vocab lists, grammar drills, conjugation tables, phrases and scenarios that I never used. None of them let me choose the actual words and phrases I needed for my own life, and none of them taught how to pronounce the words properly so that people could actually understand the french I had learned.
The french language was never really the problem. I generally knew the words and the grammar rules, the apps and my french teachers told me my french was good! The problem was opening my mouth in front of a real French person and being understood, without freezing, without the fear of getting it wrong and being judged for it.
So I built the tool I actually needed: pick your own phrases, listen to how they should sound, record yourself saying them, compare the two. A private space to practice being imperfect until until you improve, with nobody watching. That loop, listen, mimic, record, compare, is Mimique’s whole foundation, and it’s where the name comes from. Later, as AI models got good enough to do it properly, I added pronunciation analysis on top, so instead of guessing whether you sounded right, the app can actually tell you.
Then I did something a tech teams don’t do, I opened it up to real users before it was anywhere near finished, and asked them to help me build the rest of it.
This is the story of what happened next, written from the perspective of a solo web developer who’d never shipped a consumer app before.
The stack, and why it wasn’t my comfort zone
I’m a LAMP developer by background. Mimique runs on React on the frontend, Python and FastAPI on the backend, MongoDB for the database, deployed across Vercel and Railway. None of that was familiar territory when I started. I was learning as I shipped, building with Claude Code alongside me as product manager, designer, developer, social media manager and SEO person all in one. The MVP took longer than I expected, even with AI-assisted development speeding parts of it up.
Beta testing launch
Mimique Beta went live after months of building and more deployment bugs than I’d care to admit. I posted on a couple of facebook groups for Expats in France and asked them if they wanted to be involved testing and influencing the progression of my app.
Within days the waitlist to test had grown past anything I’d planned for. I’d opened my laptop hoping for around 30 sign-ups and found 91. Then more. Signups for testing and founding membership eventually closed at 245, five weeks after I’d planned to close them in one to two.
That gap between plan and reality became the pattern for the whole beta.
Day 1 numbers nobody puts in their build-in-public posts
Beta day one: 112 people in my email list. 60% opened the invite email. 12 actually logged in and tested. Not the smoothest start, but the small numbers were where the real lessons were.
Most of those 12 didn’t use the main “Start Practice Session” feature, which told me the was pointing people in the wrong direction. Nobody used the “Add Collection” button either. It was too small and in the wrong place. Both got fixed immediately, based on 12 people’s behaviour, using Posthog.
The iOS problem I didn’t see coming
I have never owned an Apple product. Then 45% of my beta testers turned out to be iOS users, and iOS decided to make my life difficult.
Mic and speaker permissions across iOS 15 through 18, with different Safari and Chrome versions, each with their own quirks, is a different category of problem to the cross-browser issues I was used to. iOS recording was capturing at roughly 50x lower amplitude than desktop. Silence-gate thresholds that worked fine on Windows Chrome were rejecting perfectly good iOS recordings. TTS playback failed on some iOS versions and worked on others, for no consistent reason.
The fix, eventually, was a crest-factor silence gate, client-side adaptive volume boost, and a lot of error logging to actually see what was happening in production. PostHog helped, but it needed a lot of manual setup before it gave me anything useful about mic failures and permission issues specifically. I spent weeks going in circles fixing one iOS version and breaking another before it held.
If you’re building anything that touches device mic or speaker access, budget far more time for it, It’s is genuinely a different beast to standard cross-browser testing.
The bug that wasn’t a bug
Halfway through beta, half my incoming bug reports turned out to be the same root cause: testers stuck on old cached versions of the app after every deploy. New code shipped, old code sat in their tab, and they assumed the app was broken rather than refreshing. Adding a popup that prompts a refresh whenever a new version goes live made most of the “mystery issues” disappear overnight.
What survey response rates actually look like
Every solo founder post about user feedback makes it sound like testers flood you with structured, actionable survey responses. Here’s what it actually looked like at Mimique.
I ran two surveys, and they asked different things on purpose. The first covered the features themselves: what people actually used, what confused them, what didn’t work the way they expected, whether the Practice Session screen made sense at a glance. The second, sent later asked the bigger questions: did they find it genuinely useful, would they keep using it, what features are needed before launch, would they pay for it, and roughly how much.
411 tested Mimique over the course of the beta. 58 completed the first survey. 33 completed the second. Those 33 are now my founding members.
Survey completion, not signups, is the real bottleneck in a beta. If you’re planning one, don’t plan around the number of people who said yes at sign-up. Plan around a much smaller number who’ll actually open your emails, test the app and then sit down and give you structured feedback.
Deciding when “good enough” is actually good enough
Partway through, I hit a genuine crossroads: keep building, keep recruiting testers, keep refining, or launch as is. Solo founder and freelancer means there’s no co-founder to talk it through with. I extended testing more than once because I kept finding it valuable, and had to consciously separate thoroughness from fear of putting something out there and having it flop.
Beta testing closed after roughly three months rather than the few weeks I’d originally scoped, with the second survey confirming what I needed to know: the product was good and close to ready.
To the 33 who are still here
Thank you feels like too small a word for what 58 survey responses and 33 founding members actually gave me. Every practice mode, every bug fix, every feature that shipped in the last three months exists because someone took the time to tell me what wasn’t working, what confused them, or what they wished the app did. Building alone means nobody is looking over your shoulder while you work, so my testers were that missing perspective, giving up their time for free and sending back the kind of specific, honest feedback I could actually act on. Not to mention all the lovely words of encouragement! I don’t take that lightly. I hope every one of the 33 founding members sticks with me through launch and beyond. Mimique is the app it is today because they were generous enough to use something half finished and keep coming back anyway.
What shipped because testers asked for it
Not an exhaustive list, but a sense of how directly feedback became features:
- Manual mode added as alternative to automatic.
- Mic issues flagged separately so users weren’t marked down on pronunciation for a hardware problem.
- A cleaner Manage Phrases page with proper bulk actions.
- A more interactive Dashboard.
- More accurate pronunciation feedback.
Around 90% of what testers asked for in the final survey round shipped before beta closed.
Build-in-public around client work, in a heatwave, while moving
Client work didn’t stop while any of this was happening. Neither did the summer heatwaves in France, or the eventual move from Le Havre to Melun. Solo founder life means you’re the developer, the support team, and the community manager, simultaneously, with no one to hand any of it off to. Worth naming, because build-in-public content often leaves out the unglamorous logistics that eat just as much time as the code. It’s been difficult but I’m genuinely loving the process!
Where Mimique is now
Beta is closed. Founding members are voting on the logo. What’s left before public launch: final tweaks from feedback, an onboarding flow, pricing decisions (the hardest part), a landing page, sign up flow and marketing. Hoping to launch in the next week which is both very existing and scary!
Join the waitlist for Mimique – French Speaking & Pronunciation App



