What Fellow Founder Actually Is

Fellow Founder is a professional networking platform built specifically for entrepreneurs, founders, investors, and business professionals. At its core, it replaces physical business cards with digital ones — but it goes far beyond that. The app combines contact management, QR/NFC card exchange, event discovery, community groups, testimonials, analytics, and subscription billing into a single mobile experience.

The platform serves multiple personas: Founders (technical, business, co-founder seekers), Investors (angel, VC, seed-stage), Freelancers, Students, and VIP members. Each persona gets a tailored profile experience with relevant fields like startup stage, niche, and what they're looking for.

Architecture Overview

The system is split into two main components:

Flutter Mobile App (v5.1.1) — Cross-platform iOS and Android application using BLoC/Cubit pattern for state management. The app communicates with the backend via REST APIs over HTTP, with Firebase handling push notifications, analytics, and crash reporting.

FastAPI Backend — Python-based REST API using SQLModel (SQLAlchemy + Pydantic) with MySQL database. The backend is containerized with Docker and deployed on AWS. It includes a Starlette Admin panel for operations management, APScheduler for background tasks, and integrates with AWS S3 for asset storage, Razorpay for Indian payments, and Apple StoreKit for iOS subscriptions.

Key Features and How They Work

Digital Business Cards

Every user profile acts as a digital business card. Users can create multiple profiles under different personas (Founder, Investor, Student, etc.). Each profile contains personal info (name, profession, location, profile picture/video), business details (company name, niche, stage, website), social links, a gallery, and testimonials. Profiles are shareable via unique UUID-based QR codes or NFC physical cards.

QR Code & NFC Card Exchange

The app supports both QR code scanning and NFC card tapping for instant contact exchange. When User A scans User B's QR code (or taps their NFC card), a connection request is sent. The receiver can approve or reject. The physical NFC cards come in standard and customized variants with three theme options (Black, White, Green).

AI-Powered Contact Management

Beyond fellow app users, the app manages external contacts. Users can manually create contacts, import from their device, or use AI-powered contact creation which classifies relationships automatically. The AI contact feature uses Google ML Kit text recognition for OCR-based business card scanning — point your camera at a physical card and it extracts the contact details.

Events & Communities

The platform includes event discovery and management. Users can browse startup events, meetups, and conferences, save events they're interested in, and even create their own organizabale events with RSVP tracking. Communities allow users to join niche-based interest groups.

Testimonials & Social Proof

Users can collect testimonials from their connections, building credibility within the network. Testimonials are displayed on profiles and can be managed through the gallery system.

Subscription Plans & Payments

Fellow Founder monetizes through tiered subscription plans (Startup, Business, Unicorn) with different validity periods. Payments are handled through Razorpay for Android/India and Apple In-App Purchases for iOS. The system supports coupons, referral rewards (every 3 referrals earns 1 month free Startup plan), and billing history.

Backend Deep Dive

Database Design

The backend uses MySQL with SQLModel ORM. Key tables include: Users (core account with email/phone auth), UsersProfiles (JSON-based flexible profile data with personal/business/social/gallery/assets/testimonial fields), ConnectRequests (connection approval workflow), Contacts (external contact management), SpecialContacts (curated featured contacts), Events, OrganisableEvents, Communities, Testimonials, Orders/Subscriptions, and NFC Cards.

Profile data is stored as JSON columns, allowing flexible schema evolution without migrations. This was a deliberate choice — different personas need different fields, and JSON lets us adapt without constant database changes.

Authentication

Authentication supports both phone (SMS OTP) and email (email OTP) verification. JWT tokens (HS256) are issued with 15-minute expiry. The system supports both 'Bearer ' and raw token formats in the Authorization header. Sessions track FCM tokens per device for push notifications. A migration flow exists for users transitioning between auth methods.

API Structure

The API is organized into modular routers: /auth (phone/email OTP), /user (profiles, connections, referrals, cards), /contacts (CRUD + AI contact creation), /payments (Razorpay + Apple), /events, /communities, /testimonials, /news, /notifications, /zap (analytics reports), /appointments (call booking), /incubators, and /vc-firms. Dashboard routes provide admin analytics.

Admin Panel

Starlette Admin provides an operational dashboard with custom views for analytics, user metrics, support requests, feedback, organizabale events, and special contacts. Authentication-protected with custom auth provider.

Frontend Architecture

Feature-Based Structure

The Flutter app follows a feature-based directory structure: lib/ui/ contains feature modules (home_screen, contacts, exchange, discover, settings, etc.), lib/services/ for business logic, lib/repositories/ for data access, lib/model/ for entities, and lib/widgets/ for reusable components.

State Management

BLoC pattern via flutter_bloc for complex state (ContactsBloc), Cubit for simpler flows (LoginCubit, RegisterCubit), and built-in setState for local UI state. BlocProviders are configured at the app root level.

Key Dependencies

Core: flutter_bloc, equatable, freezed_annotation. Firebase: core, analytics, crashlytics, messaging. UI: flutter_svg, lottie, shimmer, flutter_carousel_widget, flutter_card_swiper. ML/Scanning: google_mlkit_text_recognition, cunning_document_scanner, qr_flutter, qr_code_scanner. Storage: flutter_secure_storage, shared_preferences. Networking: http, connectivity_plus. Audio: flutter_sound, audio_waveforms. Utilities: flutter_contacts, share_plus, file_picker, image_cropper.

Custom Modules

The project includes several custom/forked packages: nearby_cross (custom nearby connectivity for offline exchange), uni_links (deep linking), flutter_sms (SMS sharing), searchfield (custom search dropdown), intl_mobile_field (international phone input), app_version_update (forced update checking), unique_identifier_3 (device identification), and photo_browser (image gallery).

Infrastructure & Deployment

The backend runs in Docker containers on AWS, with MySQL for the database, AWS S3 for file storage (presigned URLs for secure access), and Razorpay for payment processing. CI/CD uses Docker Compose for deployment. The mobile app distributes through Google Play Store and Apple App Store, with forced update checking to ensure users stay on compatible versions.

Challenges We Faced

JSON-Based Profile Flexibility vs. Query Performance

Storing profile data as JSON columns gives us schema flexibility but makes searching and filtering more complex. We use MySQL's JSON_EXTRACT and JSON_UNQUOTE functions for profile searches, which works but isn't as performant as indexed columns. For the current scale, this trade-off is acceptable.

Multi-Profile User Management

Supporting multiple profiles per user (a person can be both a Founder and an Investor) required careful design. The connection system works at the profile level, not the user level, so each profile has its own UUID, QR code, and connection state.

Payment Platform Differences

Handling Razorpay for Android and Apple In-App Purchases for iOS required separate payment flows, verification endpoints, and subscription management logic. Apple's subscription receipt verification is particularly complex compared to Razorpay's straightforward webhook model.

What's Next

The platform continues to evolve with features like Zap (professional analytics reports), appointment booking, incubator partnerships, VC firm connections, and enhanced AI capabilities for contact classification and matching.