How we built PMDD Veerkracht: Complete platform with Flutter app and website in 12 weeks

How we built PMDD Veerkracht: Complete platform with Flutter app and website in 12 weeks
Introduction
PMDD Veerkracht is a complete digital platform for PMDD treatment and daily life support. The platform consists of a Flutter mobile app for iOS and Android, a complete website with admin dashboard, analytics system and a subscription model. What started as an ambitious project ended up as a fully functional platform in 12 weeks. In this case study, we share our approach, technical choices, and key lessons.
The Challenge
- The assignment was complex: develop a complete platform with:
- Flutter mobile app for iOS and Android
- Complete website with public section
- Admin dashboard for content and user management
- Analytics and data tracking system
- Subscription model with payments (Stripe)
- User management and authentication
- Content management system
- Live within 12 weeks
This was no simple MVP - this was a fully production-ready platform with multiple components that had to work seamlessly together.
Our Approach
Week 1-2: Discovery & Architecture
The first two weeks were dedicated to discovery and architecture design. We conducted extensive stakeholder interviews, analyzed user journeys and defined the technical architecture.
- Key insights:
- Users need 24/7 access via the app
- Healthcare providers need an admin dashboard for content management
- The subscription model must be flexible for different user groups
- Analytics are crucial for understanding user behavior
- Technical Architecture:
- Mobile App: Flutter for cross-platform development
- Website: Next.js 15 with App Router
- Backend: Supabase for database, auth and real-time
- Payments: Stripe for subscriptions
- Analytics: Custom analytics dashboard + Google Analytics
- Deployment: Vercel for website, App Store & Play Store for app
Week 3-6: Mobile App Development (Flutter)
The Flutter app was the heart of the platform. We developed:
- Core Features:
- User onboarding and authentication
- 12-week program content
- Daily tracking and journaling
- Push notifications
- Offline support
- Real-time sync with backend
- Technical Choices:
- Flutter 3.x for native performance
- Riverpod for state management
- Supabase Flutter SDK for backend integration
- Local storage for offline functionality
- Firebase Cloud Messaging for push notifications
// Example: User authentication flow
Future<void> signInWithEmail(String email, String password) async {
final response = await supabase.auth.signInWithPassword(
email: email,
password: password,
);
if (response.user != null) {
await _syncUserData(response.user!.id);
_navigateToHome();
}
}
Week 7-9: Website & Admin Dashboard
Parallel to app development, we built the website and admin dashboard:
- Website Features:
- Public section with information about PMDD
- Program overview
- Registration and onboarding flow
- Subscription selection and checkout
- User dashboard for web users
- Admin Dashboard:
- Content management for program modules
- User management and analytics
- Subscription management
- Analytics dashboard with insights
- Export functionality for data
- Tech Stack:
- Next.js 15 with App Router
- TypeScript for type safety
- Tailwind CSS for styling
- Shadcn/ui components
- React Hook Form for forms
- Recharts for data visualization
Week 10-11: Integration & Subscription Model
The integration phase was crucial - all components had to work seamlessly together:
- Stripe Integration:
- Subscription plan configuration
- Checkout flow for new users
- Webhook handling for subscription events
- Customer portal for subscription management
- Analytics System:
- User engagement tracking
- Program completion rates
- Feature usage analytics
- Custom dashboards for insights
- Real-time Sync:
- App and website share the same database
- Real-time updates via Supabase subscriptions
- Conflict resolution for offline edits
Week 12: Testing, Launch & App Store Submission
- The final week we focused on:
- End-to-end testing of all flows
- Performance optimization
- Security audits
- App Store and Play Store submissions
- Production deployment
Technical Highlights
Flutter Cross-Platform Development
Flutter enabled us to use one codebase for both iOS and Android. This saved weeks of development time.
- Benefits:
- Native performance on both platforms
- One codebase for maintenance
- Fast development with hot reload
- Rich ecosystem of packages
Supabase as Backend
- Supabase offered everything we needed:
- Authentication with email/password and social logins
- PostgreSQL database with real-time subscriptions
- Row Level Security for data privacy
- Storage for media files
- Edge functions for custom logic
Stripe Subscription Model
- We implemented a flexible subscription model:
- Monthly and annual subscriptions
- Trial period for new users
- Upgrade/downgrade flows
- Customer portal for self-service
Analytics Dashboard
- The analytics dashboard provides insights into:
- User engagement metrics
- Program completion rates
- Feature adoption
- Revenue metrics
- User retention
Results
- After 12 weeks we had:
- ✅ Flutter app for iOS and Android
- ✅ Complete website with public section
- ✅ Admin dashboard for content management
- ✅ Analytics system with custom dashboards
- ✅ Subscription model with Stripe integration
- ✅ User management and authentication
- ✅ Real-time sync between app and website
- ✅ Live in production
Key Lessons
1. Cross-Platform Development Saves Time
By using Flutter for the mobile app, we didn't have to build two separate apps. This saved at least 4-6 weeks of development time.
2. Supabase is Perfect for Complex Platforms
Supabase offered all the backend functionality we needed without having to build a custom backend. This significantly accelerated development.
3. Parallel Development is Essential
By developing the app and website in parallel, we could meet the timeline. Good communication and shared components were crucial.
4. Subscription Model Requires Good UX
The subscription model was more complex than expected. Good UX in the checkout flow and customer portal was essential for conversion.
5. Analytics From Day 1
By implementing analytics from the start, we could make data-driven decisions during development.
Conclusion
PMDD Veerkracht is a perfect example of what's possible with modern development tools and a well-organized team. In 12 weeks, we brought a complete platform live with app, website, admin dashboard and subscription model - something that would traditionally cost months.
Want to build a complete platform? Get in touch and discover how we can accelerate your project.Keep reading
Discover more articles related to this topic.
Related project
PMDD Veerkracht
Volledig platform met Flutter app, website met admin dashboard, analytics en abonnement model. Complete digitale oplossing voor PMDD behandeling en dagelijks leven ondersteuning.
Ready to start your own project?
Let us help you bring your idea to life. From concept to live product in weeks.
Get in touch


