Divz | Expense Splitting Application - Web & Mobile Development & Design
Overview
Divz is a modern, cross-platform expense-splitting application designed to simplify shared finances among friends, roommates, and groups. Built from the ground up to work seamlessly on iOS, Android, and Web from a single codebase.
The Challenge
Users needed a way to:
Track shared expenses across multiple groups (roommates, trips, dinners)
Split bills fairly with flexible splitting options
Settle debts instantly without switching between apps
Access their finances on any device with real-time synchronization
Receive instant notifications when charged or paid
Existing solutions were either too complex, platform-specific, or charged high fees for basic features.
Our Team's Role
Project Management, Design, Development, and Brand Identity Responsible for:
Architecture design and technical decisions
Frontend development (React Native/Expo)
Backend development (Firebase Cloud Functions, Node.js)
Payment integration (Stripe Connect)
UI/UX implementation
Database schema design
Real-time synchronization logic
Push notification system
Email notification integration
Technical Solution
Frontend Architecture React Native + Expo for true cross-platform development Single codebase serving iOS, Android, and Web Responsive design adapting from mobile to desktop glass morphism UI with dark/light theme support. Animated components for smooth, modern interactions Backend Infrastructure Firebase Firestore for real-time database with offline support Firebase Authentication for secure user management Firebase Cloud Functions for serverless backend logic Stripe Connect for payment processing and payouts.
Features Delivered
Core Features:
✅ Group creation and management
✅ Expense tracking with categories
✅ Flexible bill splitting (equal, percentage, custom)
✅ Individual (1-on-1) expense splitting
✅ Real-time balance calculations
✅ Settlement via card or wallet balance
✅ Transaction history with search Payment Features
✅ Stripe Connect integration
✅ Instant payouts to bank accounts
✅ In-app wallet with withdrawals
✅ Fee-free wallet-to-wallet transfers User Experience
✅ Dark/Light theme
✅ Push notifications
✅ Email notifications
✅ Responsive web + native mobile
✅ Activity feed with real-time updates Admin Features
✅ User management dashboard
✅ Site-wide maintenance mode
✅ Coming soon page with admin bypass
✅ Email testing tools
✅ Activity monitoring
Technical Challenges & Solutions
Challenge 1:
Stripe Integration on React Native Web
Problem: Stripe's React Native SDK doesn't support web platforms
Solution: Created platform-specific wrapper components (.js and .web.js) that use native SDK on mobile and Stripe.js on web, maintaining a unified API
Challenge 2:
Real-Time Data Consistency
Problem: Balances needed to update instantly across all screens when expenses or settlements occur
Solution: Implemented Firestore onSnapshot subscriptions at the context level, with useMemo calculations that automatically recompute when underlying data changes
Challenge 3:
Complex Balance Calculations
Problem: Users needed to see net balances factoring in group expenses, individual splits, and settlements
Solution: Created a unified calculation engine that aggregates: Group expenses (who paid, who owes) Quick splits (individual transactions) Settlements (payments made) Pending vs. completed transactions
Challenge 4:
Offline Support Problem: Users needed the app to work without internet connection
Solution: Leveraged Firestore's built-in offline persistence, with optimistic UI updates and automatic sync when connection restores