Inspiration

I kept hearing the same thing from women around me: "I want to travel solo," "I want to start my own business," "I want to ask for that raise." But then nothing happened. The dreams stayed dreams. When I learned about Gabby Beckford and her PacksLight community of bold, ambitious women (95% female, ages 24-35, mostly in major US cities), I realized the gap wasn't motivation. It was the bridge between dreaming and doing. These women don't need another vision board app. They need someone to break down their big dream into small, doable steps and hold them accountable. That's what BoldMove is.

What it does

BoldMove is an AI-powered dream-to-action coach. You tell the app your boldest dream, and it generates a personalized 7-day sprint of daily micro-actions. Each action is designed to take 15-30 minutes and builds on the previous day's progress.

The app features:

  • Gabby AI Coach: An AI assistant trained on real PacksLight content using RAG (Retrieval-Augmented Generation) over 47 transcribed videos. She responds in Gabby's actual voice and style, not generic wellness speak.
  • 3D Flippable Action Cards: Tap your daily task to flip it and see Gabby's personal take on the back.
  • Dream Builder: A custom-painted building that grows layer by layer as you complete each day. Foundation on Day 1, walls on Day 2, windows on Day 4, a star on top when you finish.
  • Shareable "I DID THAT" Cards: When you complete an action, the app generates a beautiful share card with your progress that you can post to Instagram Stories. The viral loop.
  • Dream Board: A place to collect notes, links, and inspo photos for each dream. Tap into any dream to see all 7 tasks, attached resources, and an AI-generated completion report from Gabby.
  • Monthly Bold Builder Challenge: A community leaderboard where the top builder each month wins a 1-on-1 call with Gabby. Real stakes, real engagement.
  • RevenueCat Subscriptions: Free users get 5 Gabby messages per day and 1 active dream. Pro unlocks unlimited everything.

How we built it

Frontend: Flutter with Riverpod for state management and GoRouter for navigation. The design follows a "Flo meets Emily in Paris" aesthetic with dusty rose, champagne gold, and Parisian navy. Three custom font families (Playfair Display, DM Sans, Cormorant Garamond).

Custom Animations: All hand-coded using Flutter's CustomPainter. The onboarding has three animated illustrations (globe, checklist, star) that draw themselves. The Dream Builder painting grows architecturally. The splash screen star traces itself point by point. No Lottie files, no stock animations.

Backend: Firebase (Auth, Firestore, Cloud Functions, Storage). Cloud Functions in TypeScript handle sprint generation and AI chat.

AI Pipeline: We transcribed 47 of Gabby's YouTube videos using Whisper, chunked them, generated embeddings with OpenAI's text-embedding-3-small, and stored 601 vectors in Pinecone. When a user asks Gabby a question, we query Pinecone for relevant content, inject it into the system prompt, and call Claude Sonnet via AWS Bedrock. The result is responses that sound like Gabby because they're built on her actual words.

Monetization: RevenueCat with native paywall UI. Apple subscription configured in App Store Connect with sandbox testing on TestFlight.

Photo Uploads: Images are picked from gallery, compressed to WebP at 800px/75% quality using flutter_image_compress, uploaded to Firebase Storage, and displayed in the Dream Board.

Challenges we ran into

The biggest challenge was making the AI actually sound like Gabby and not like a generic chatbot. We went through multiple iterations of the system prompt and the RAG pipeline before landing on responses that felt authentic. The key was using her actual vocabulary patterns from the transcriptions, not just her topics.

Firestore composite indexes were a constant battle. Every new query pattern needed a new index, and the error messages only show up at runtime. We ended up with 8 composite indexes across 6 collections.

The celebration flow was tricky to get right. We went through three versions: a simple overlay (looked glitchy), a full-screen modal with confetti (confetti was behind the overlay), and finally a proper showGeneralDialog followed by a separate showDialog for the Dream Builder animation. Getting the context management right between popping one dialog and showing another without crashing took multiple attempts.

Getting the 3D card flip animation smooth required careful use of Matrix4 transforms with perspective. The key insight was swapping the front/back widget at exactly the 0.5 mark of the animation so you never see the card inside-out.

Accomplishments that we're proud of

The Dream Builder is the feature I'm most proud of. Watching a building literally grow as you complete your sprint is something you can't get from any other app. It's custom-painted, not an image or a Lottie file. Every line, every window, every roof angle is drawn in code.

The RAG pipeline working end-to-end is huge. 47 videos transcribed, 601 vectors indexed, real creator content flowing through Claude and landing in the app as Gabby's voice. When a user asks "who are you?" and Gabby responds talking about solo travel, financial freedom, and living life on your own terms, that's not a prompt we wrote. That's her actual content being surfaced through the AI.

The share card system: rendering a Flutter widget to a PNG at 3x resolution and sharing it natively via the iOS share sheet. Users can share their progress to Instagram Stories with BoldMove branding on every card. That's organic growth built into the product.

What we learned

Building for a specific audience changes everything. Every design decision was filtered through "would a 28-year-old woman in NYC screenshot this?" That constraint made the app better than any design system could.

RAG is powerful but the quality of your source material matters more than the size of your vector store. 601 well-chunked vectors from authentic content outperform thousands of generic ones.

Custom animations in Flutter are surprisingly approachable once you understand CustomPainter. The learning curve is worth it because the result is something no other app has. Stock animations feel stock. Hand-painted ones feel alive.

RevenueCat's native paywall saves enormous time compared to building a custom one. Configure it in the dashboard, call one function, done.

What's next for BoldMove - Take your chance

  • Push notifications: Daily reminders at the user's chosen time ("Your bold move awaits")
  • Community features: See anonymized stats like "847 women made a bold move today"
  • Sprint templates: Pre-built sprints for common dreams (solo travel, side hustle, career pivot)
  • Gabby video integration: Short video clips from Gabby's content surfaced at key moments
  • Dark mode: The design tokens are already built for it
  • Android launch: Flutter makes this straightforward once iOS is polished
  • More creator partnerships: The RAG pipeline is modular. Any creator can plug in their content and have their own AI coach persona

Built With

Share this project:

Updates