A complete, feature-rich social media application built with Flutter and Supabase, featuring 50+ unique non-AI features for enhanced user engagement.
- β Email & phone authentication
- β User profiles with customizable themes
- β Photo & video posting with captions
- β Hashtags & location tagging
- β Like, comment, follow/unfollow
- β Direct messaging with emoji-only mode
- β Real-time notifications
- β Home feed, Explore feed, Local feed
- β Saved posts & liked posts
- β Offline drafts
- Local Feed (1-3km): Discover posts from people nearby
- Communities: Join college, city, or workplace communities
- Nearby Events: Create and discover local events
- Time-Locked Posts: Schedule posts to unlock at specific times
- Story Chains: Collaborative stories where followers add content
- Reverse Stories: Create frames for followers to fill with their photos
- Repost Templates: Polaroid, Meme, Collage, and Mood-board frames
- Duet Posts: Split-screen posts with another user
- Voice Note Comments: Add voice comments to posts
- Emoji-Only DM Mode: Chat using only emojis
- Friendship Levels: Bronze β Silver β Gold β Platinum based on interactions
- Follow Groups: Organize friends into groups (Best friends, College, Gym squad)
- Anonymous Confessions: Post and vote on anonymous confessions
- Weekly Challenges: Photography, room setup, fit check challenges
- Swipe Feed: Tinder-style post discovery
- Profile Themes: Minimal, Neon, Dark, Pastel, Sunset
- Custom Status: Display your current mood/activity
- Private Locker: PIN-protected private photo storage
- Story reactions as stickers
- Auto-delete messages (1 hour, 24 hours, 1 week)
- Offline drafts for posts
social_media_app/
βββ lib/
β βββ main.dart # App entry point
β βββ app.dart # Root widget
β βββ core/
β β βββ constants/ # App constants & themes
β β βββ utils/ # Helper utilities
β β βββ services/ # Supabase & storage services
β βββ models/ # Data models
β βββ providers/ # State management
β βββ screens/ # UI screens
β βββ widgets/ # Reusable widgets
βββ assets/ # Images, fonts, etc.
βββ DATABASE_SCHEMA.sql # Complete database schema
βββ API_ENDPOINTS.md # API documentation
βββ DEPLOYMENT_GUIDE.md # Deployment instructions
βββ pubspec.yaml # Dependencies
- Frontend: Flutter (iOS, Android, Web)
- Backend: Supabase (PostgreSQL + Real-time + Storage + Auth)
- Storage: Supabase Storage with CDN
- Maps: flutter_map + OpenStreetMap (free)
- State Management: Provider
- Flutter SDK (3.0.0 or higher)
- Supabase account
- Android Studio / Xcode (for mobile development)
- Clone the repository
git clone <repository-url>
cd social_media_app- Install dependencies
flutter pub get-
Set up Supabase
- Create a new project at supabase.com
- Run the SQL from
DATABASE_SCHEMA.sqlin the SQL Editor - Configure storage buckets (see DEPLOYMENT_GUIDE.md)
- Enable Row Level Security policies
-
Configure app
- Update
lib/main.dartwith your Supabase URL and anon key:
await Supabase.initialize( url: 'YOUR_SUPABASE_URL', anonKey: 'YOUR_SUPABASE_ANON_KEY', );
- Update
-
Run the app
flutter runThe app uses PostgreSQL with PostGIS for location features. Key tables:
users- User profiles and settingsposts- Photo/video posts with metadatalikes,comments,follows- Social interactionsmessages,conversations- Direct messagingcommunities,events- Community featuresconfessions,challenges- Fun featuresstory_chains,reverse_stories- Collaborative contentfriendship_levels- Gamificationlocker_posts- Private storage
See DATABASE_SCHEMA.sql for complete schema.
All API interactions use Supabase client. Key operations:
- Authentication:
supabase.auth.signUp(),signIn(),signOut() - Database:
supabase.from('table').select(),insert(),update(),delete() - Storage:
supabase.storage.from('bucket').upload() - Real-time:
supabase.from('table').stream()
See API_ENDPOINTS.md for detailed documentation.
- Authentication: Login, Signup, Forgot Password
- Home: Feed, Explore, Local Feed, Swipe Feed
- Create Post: Photo/video upload, captions, location
- Messages: Conversations, Chat, Emoji-only mode
- Profile: Posts grid, Followers, Following, Settings
- Story Chains & Reverse Stories
- Duet Posts & Repost Templates
- Communities & Events
- Confession Feed
- Weekly Challenges
- Follow Groups
- Private Locker
- Theme Selector
See UI_SCREENS_DESIGN.md for detailed mockups.
- Create Supabase project
- Run database migrations
- Configure storage & RLS policies
- Enable real-time subscriptions
Android
flutter build apk --release
flutter build appbundle --releaseiOS
flutter build ios --release
flutter build ipa --releaseWeb
flutter build web --releaseSee DEPLOYMENT_GUIDE.md for complete instructions.
- Image Compression: Max 1920px width, 85% quality
- Video Compression: 720p for MVP
- Caching: Hive for local storage, cached_network_image for images
- Pagination: 20 items per page
- CDN: Supabase built-in CDN for media
- Row Level Security (RLS) enabled on all tables
- Parameterized queries to prevent SQL injection
- PIN hashing for private locker
- HTTPS only
- Input validation on client and server
- No country restrictions
- Multi-language support ready (i18n)
- Global CDN for fast media delivery
- Timezone-aware timestamps
- β Android (5.0+)
- β iOS (12.0+)
- β Web (Chrome, Safari, Firefox)
# Run tests
flutter test
# Run with coverage
flutter test --coverage- Indexed frequently queried fields
- Connection pooling
- Pagination for all lists
- Archive old data periodically
- CDN caching
- Lazy loading
- Thumbnail generation
- Automatic cleanup
- Selective subscriptions
- Unsubscribe on screen exit
- Debouncing for typing indicators
- 500 MB database
- 1 GB storage
- 2 GB bandwidth
- Good for: Testing, small MVP
- 8 GB database
- 100 GB storage
- 250 GB bandwidth
- Good for: 10k-50k users
This is an MVP project. To extend:
- Fork the repository
- Create a feature branch
- Implement your feature
- Submit a pull request
This project is provided as-is for educational and commercial use.
For issues and questions:
- Check
DEPLOYMENT_GUIDE.md - Review
API_ENDPOINTS.md - Check Supabase documentation
- Review Flutter documentation
- Core social features
- All unique features listed above
- Push notifications
- Video calls
- Stories (24-hour posts)
- Live streaming
- Advanced analytics
- Monetization features
- No AI features - All features are manual/user-driven
- No paid APIs - Uses free services (Supabase, OpenStreetMap)
- Global support - Works worldwide
- MVP-level - Production-ready but can be enhanced
- Flutter - UI framework
- Supabase - Backend as a Service
- Provider - State management
- Hive - Local storage
- flutter_map - Maps
Ready to launch! Follow the deployment guide to get your app live. π