Case Study
Sulok
A community platform combining social feeds, memberships, events, and payments into one production-ready mobile product.
Industry
Community Platform / Social Network
Role
Senior Mobile App Developer
Platform
Android, iOS (Flutter), Web (Next.js - In Progress)
Status
2 Years · Production

Project Overview
Sulok is a community-driven social platform designed to help individuals, organizations, and communities build meaningful digital spaces. The platform enables communities (Lok) to share updates, manage memberships, organize events, communicate with members, and receive financial contributions—all within a single application. Unlike traditional social platforms that primarily focus on content sharing, Sulok combines social networking with community management, making it easier for organizations to engage and grow their audience.
Product Vision
The goal of Sulok is to provide communities with a single platform where they can: - Publish updates through rich social posts - Build exclusive communities using memberships - Organize and manage events - Accept contributions and payments - Connect members through community circles - Deliver a modern and engaging social experience
Responsibilities
- Improving the existing Flutter architecture
- Designing scalable application modules
- Leading development of major features
- Mentoring junior Flutter developers
- Optimizing application performance
- Researching better UX patterns
- Building reusable UI components
- Improving maintainability of the codebase
- Collaborating with backend and product teams
- Currently leading development of the Next.js web application
Key Features
Community Feed
Users and communities can publish text, image, and video posts. The feed is optimized for smooth scrolling and high performance.
Lok (Community)
Communities can build public or private spaces, publish updates, manage members, and create exclusive circles.
Membership System
Communities can create paid membership plans allowing members to unlock exclusive content, circles, and events.
Payments
Integrated payment flow allows communities to sell memberships, accept contributions, and manage premium access.
Clean Architecture
- Clean Architecture & Repository Pattern
- BLoC State Management
- Dependency Injection using GetIt & Injectable
- REST API & WebSocket communication
- Drift Database
- Shared Preferences & Secure Storage
Engineering Challenges
High Performance Feed
Building a production-ready feed capable of handling large amounts of media content without affecting scrolling performance. Solved using intelligent pagination, image/video pre-caching, local feed caching, and efficient widget rebuilding.
Feed Cache Synchronization
Updating cached posts with newly fetched API data while preserving the user's current scroll position. Solved by intelligently merging cached and fresh data instead of replacing the entire list, preventing UI flickering and scroll jumps.
Bottom Navigation Performance
Instead of rebuilding every screen when switching tabs, important data was cached after the first load. This significantly reduced loading delays and gave users an almost native application experience.
Optimizations
UX Focus
- Carefully designed onboarding animations
- Smooth page transitions
- Consistent interaction feedback
- Responsive loading states
- Premium scrolling experience
- Fast navigation between modules
Tech Stack
Mobile
State Management
Architecture
Backend
Database
Cloud
Dependency Injection
Business Impact
- ✓Application performance
- ✓Code maintainability
- ✓Feature scalability
- ✓User experience
- ✓Development workflow
- ✓Architecture quality
Lessons Learned
- Performance should be considered from the beginning.
- Great user experience often comes from small technical decisions.
- Clean architecture becomes increasingly valuable as products grow.
- Collaboration between engineering and product teams leads to better solutions.
- Continuous refactoring is essential for long-term maintainability.
- Research and experimentation are important parts of delivering premium products.
Key Takeaway
Great software is not defined by the number of features it offers, but by how thoughtfully those features are engineered and how effortlessly they serve the people using them.