Back to blog
Case Study

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

12 min read
Van Amstel Partners Team
FlutterNext.jsSupabaseStripeCase StudyFull PlatformMobile AppSubscription Model
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.

Discover more articles related to this topic.

All blogs

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