The full story of how Braindex went from a simple idea to an app officially submitted to the App Store — all in just 17 days.
This list may seem short, but in reality, it’s everything I used and all you need! I stayed disciplined and focused on building an MVP (Minimum Viable Product) without overcomplicating the process. The goal of this whitepaper is to inspire other builders to build, so I hope sharing my toolkit with you greatly helps you, and my only ask in return is to please give Braindex a go and do share any feedback you might have with me — I am hoping to improve the app day by day!
My timeline below says “initial commit, empty Flutter project” on day one… but what that doesn’t show is the administrative setup I guess I had already completed behind the scenes. A lot of these administrative hurdles had been solved last year while building Pi-Squared, which gave me a huge head start. Even then, there’s still a stack of things you need in place before that first commit is actually possible:
Building an entire functioning Flutter app, a secure & clean Firebase backend, 1,645 AI content questions, a website, and two app store submissions in 17 calendar days is not a story you should believe without an asterisk! So, here’s the asterisk:
For each general task or item on my to-do list, I spun up an agent. The job became routing work between them and reviewing what came back. And I even created a ‘project manager’ agent to dish out the different tasks to the different agents.
Translated “Build a daily AI vocab game” into a v1.0 / v1.1 / v1.2 scope ladder. I pushed it hard to prioritise simplicity and basic functionality over complexity for early versions.
Wrote and refactored the Dart. Owned the Firebase rules, the auth flows, the technical work. I basically just described to the engineer what worked well for us when building Pi-Squared — simple daily games with countdown timers, multiple choice questions and leaderboards always go down a treat with all ages.
Generated 1,645 vocab + MCQ items across ~25 areas in AI, working from a taxonomy I got the AI to author for me in an afternoon.
Kept the parallel workstreams in sync. Logged what got shipped, what got blocked, what moved to the next version, and who (which agent) we were waiting on. I basically had this agent mentor me throughout the entirety of the process, and had it guide me on ranking my priorities and deciding next steps.
Owned the screen flows, the layouts, the mobile app functionality, and the website’s first draft. I used Lovable for first drafts and ran the edits through my design agent. Lovable is great for rapid prototypes, and I took a lot of inspiration from each of my different Lovable projects. But ultimately, you still need to push back on these no-code tools a lot these days to maintain non-AI feels to your apps… as a lot of the designs that come from these tools feel somewhat similar. Hence, the design agent!
Defined the Firebase event schema, built the daily-tracking dashboards. I wanted to track retention from day one. I honestly learned so much from the first time I built an app. And I am only now really realising how far I have come since the good old days… tracking user data religiously from the beginning helps you understand who your ICP (ideal customer profile) is, what to build next by seeing which features people actually use and where you lose people. Data tells powerful stories.
The unlock wasn’t any one agent — it was the handoff between them. I really had to focus on getting the agents to communicate to one another. Product manager defines a feature, engineer implements, analytics adds instrumentation, UX designs the screen, project manager ensures the loop is closed. All within an hour. Multiple chats flowing at the same time. By the time you get back around to the first one, it’s finished its job, and you simply repeat this process. The bottleneck stopped being waiting on AI outputs to load as they could all now run in sync.
It’s important to note the sheer volume of terms required to make this game a success and sustainable. Each question requires four potential answer options, with only one of them being the right answer each time. So ideally, as a user, you see twenty-four different definitions each day across the six questions. And nobody enjoys seeing the same questions everyday. I wanted users to feel excited to come back and learn new terms each day!
* On May 3, I created just enough for about 11 solid days of the original game (v1.0), separate from the 1,645 words that followed. I do believe in shipping the bare minimum first before you spend your precious energy on building sections out. But for this app to be sustainable, I did initially worry there might not be enough AI terms out there… but six days later, I was gladly proved wrong!
Definitions weren’t typed by me of course — they’re generated in batches across Gemini, Manus, Perplexity — you name it. Open one AI tool, prompt it, while that loads, open the next. Repeat. The 1,575-item explosion on May 9 came from running 25 section-generator passes in parallel through the question-creator agents. Each pass took ~5 minutes. None of them would have been possible without a taxonomy and detailed plan written first.
Note: I did have to ensure each definition was roughly the same length in terms of the number of characters… as each had to fit in the same size space on the app screens for the UI to look clean.
The day-by-day timeline categorised. 22% of active days were spent on marketing + submission admin — almost as much as on writing the app itself! But wait, David, I thought you said it took you 17 days?! This is 17 calendar days, outside of my full-time job Monday–Friday and evenings playing semi-professional soccer. Of the 17, I worked on the app on only 10 of the days.
The number that might surprise you: ~22% of active days went towards the app submission — my advice to you would be to get started on the admin hurdles while your code generates and while your AI agents are running. Most “shipped fast” stories under-count this. If you’re planning your own 17-day sprint, I recommend budgeting easily two days for app store admin from the start!
Active development days only. In between building days, I was kept busy working my day-job and training for ~2 hours in the evenings with Grand Rapids Soccer Club, though I certainly did think deeply about building while driving to training each night during the week, while listening to inspiring podcasts too.
braindex.com → braindexapp.com (domain purchased)index.html) + /newsletter Firestore ruledelete-account.html + support.html — required by both stores1.2.0+8), uploaded via Transporter — in Apple reviewPeople usually talk about “the build.” Almost nobody talks about these mini-mountains I had to climb — the things that turn a 30-minute task into a half-day rabbit hole… learn from my mistakes, and save yourself having to learn the hard way!
Tap “Sign in with Apple” → see a brief success tick → get an “auth error.” Repeatable. Devastating! The Apple identity-token nonce is single-use, but the manual credential flow tries to re-use it on retry, which Firebase rejects as invalid-credential.
signInWithCredential flow to provider-based linkWithProvider(AppleAuthProvider()) / signInWithProvider.Same code, same Pods, same machine. flutter build ipa produces a clean 48 MB IPA. Then you open Xcode and click Archive and it dies on Command CompileC failed for a gRPC-Core C++ file.
CLANG_CXX_LANGUAGE_STANDARD = c++17; Xcode’s GUI uses defaults that don’t. Workaround: use the CLI, upload via Transporter. Real fix: Podfile post_install hook (deferred to v1.2.1).Four-minute build that died on a missing header: 'absl/strings/cord_analysis.h' file not found. Search the web, find 200 contradictory fixes. The actual fix takes one minute.
flutter clean && rm -rf ios/Pods ios/Podfile.lock ~/Library/Developer/Xcode/DerivedData/Runner-*, then pod install --repo-update. Comes up about once a quarter on any Flutter + Firebase project.New personal developer accounts created after November 2023 must run a closed test for 14 days with at least 12 active testers before being permitted to submit to production. So even after everything is signed off, Android is ~3 weeks behind iOS by default.
Every box below was a form, declaration, asset, or URL you had to provide.
Five things I learned having now built two apps.
Make it so obvious to users where they should click next and make playing your daily games so intuitive — every single click matters, and each is an opportunity to lose your user. So be careful to design your flow and functionality to perfection.
If you are building a consumer app, try your best to gamify it. People love quick minute-long challenges especially when you are given a score, and even more so when you can see where you rank amongst others, and so even if your goal is to teach, you might need to create fun, competitive mini-games to earn sticky users.
MVP stands for Minimum Viable Product. But if your game is not fun and your design is not good, people will not come back. You don’t always get given a second chance. So if somebody takes the time to download your app, make sure it was worth their time! Especially today, we all expect better products. The bar has been raised. So make something you’re proud of, and then share it. It doesn’t need to be perfect of course, but it needs to be good enough so that people can see the potential in it in my opinion. Otherwise future marketing efforts won’t attract lost users back to the app regardless of how much the app has improved… first impressions matter!
Think marketing artwork that happens to contain a screenshot. Clean background colour, headline copy, device frame, gradient — all design decisions that make a big difference. Your app store listing is your landing page. You want to have your users excited at this point. Make it look interesting.
This time round, I was determined to track how long it would take me to go from zero-to-one. But even on social media, sharing news about what you are working on always helps. People appreciate being taken on the journey with you. Build momentum early!
50 commits and 17 days later, Braindex is now live on the App Store. If you would like to play:

Braindex has since evolved… Braindex is still the first daily AI game, but there is also daily Trivia games now too! Enjoy!