SplitWise - Hackathon Submission

đź’ˇ Inspiration

The inspiration for SplitWise came from a universal frustration we've all experienced: the awkward dance of splitting bills with friends. Whether it's a group dinner where everyone ordered different items, a vacation rental with multiple couples, or roommates sharing utilities, managing shared expenses often leads to confusion, forgotten debts, and strained relationships.

We noticed that existing solutions were either too simplistic (basic calculators) or overly complex (enterprise expense management). There was a gap for a beautifully designed, intuitive app that could handle real-world complexity while remaining delightfully simple to use. We wanted to create something that felt as polished as the apps we use daily, with the sophistication to handle complex scenarios like multiple payers, partial payments, and ongoing balance tracking.

The "aha moment" came when we realized that bill splitting isn't just about math—it's about relationships, trust, and communication. SplitWise needed to be more than a calculator; it needed to be a social platform that makes financial interactions between friends as smooth as possible.

🎯 What it does

SplitWise is a comprehensive bill-splitting platform that transforms how friends manage shared expenses. Here's what makes it special:

Core Features

  • Smart Bill Splitting: Create expenses and automatically split them equally, or customize amounts per person with real-time calculation previews
  • Multiple Payer Support: Handle complex scenarios where multiple people pay different portions of a bill (like when two people split a dinner check)
  • Real-time Balance Tracking: See exactly who owes you and who you owe with live balance updates across all devices
  • Friend Management: Add friends with email integration and track your financial relationship history
  • Transaction History: Complete audit trail with filtering, search, and detailed transaction records
  • Payment Reminders: Send friendly email reminders for outstanding balances with customizable messages
  • Cross-Platform Sync: Works seamlessly on iOS, Android, and Web with real-time synchronization

Advanced Capabilities

  • Offline-First Architecture: Continue using the app without internet, with automatic sync when reconnected
  • Progressive Web App: Install on any device for native-like experience
  • Email Integration: Open default email clients with pre-filled payment reminders
  • Responsive Design: Optimized for phones, tablets, and desktop computers
  • Accessibility: Full screen reader support and keyboard navigation

🛠️ How we built it

Technology Stack

We chose a modern, production-ready tech stack that prioritizes performance, scalability, and developer experience:

Frontend:

  • React Native + Expo SDK 52: For true cross-platform development with native performance
  • Expo Router: File-based routing system for intuitive navigation
  • TypeScript: Complete type safety throughout the application
  • React Native Reanimated: Smooth, 60fps animations and micro-interactions
  • Lucide React Native: Consistent, beautiful iconography

Backend & Database:

  • Supabase: PostgreSQL database with real-time subscriptions and authentication
  • Row Level Security (RLS): Database-level security ensuring users only access their own data
  • Edge Functions: Serverless functions for complex business logic
  • Real-time Subscriptions: Live data updates across all connected devices

Architecture Decisions

Database Design: We designed a sophisticated relational schema with four core tables:

  • profiles: User information linked to Supabase Auth
  • friends: Relationship management with calculated balances
  • bills: Expense records with flexible participant and payer structures
  • transactions: Individual payment records between users

The schema supports complex scenarios like multiple payers per bill, partial payments, and maintains referential integrity with cascade deletions.

State Management:

  • React Context for global state (authentication, user data)
  • Optimistic updates for immediate UI feedback
  • Real-time subscriptions for live data synchronization
  • Local state for component-specific interactions

Security:

  • Row Level Security policies ensure data privacy
  • JWT-based authentication with automatic token refresh
  • Input validation and sanitization at all levels
  • Secure environment variable management

Development Process

  1. Design System First: Created a comprehensive design system with consistent spacing, typography, and color schemes
  2. Database Schema: Designed the relational database structure to handle complex bill-splitting scenarios
  3. Authentication Flow: Implemented secure user registration, login, and profile management
  4. Core Features: Built bill creation, friend management, and transaction tracking
  5. Real-time Features: Added live synchronization and collaborative editing
  6. Polish & UX: Refined animations, error handling, and edge cases
  7. Cross-Platform Testing: Ensured consistent experience across iOS, Android, and Web

đźš§ Challenges we ran into

Technical Challenges

Complex Database Relationships: The biggest technical challenge was designing a database schema that could handle the complexity of real-world bill splitting. We needed to support:

  • Multiple people paying different amounts on a single bill
  • Tracking individual balances between users
  • Maintaining transaction history while allowing bill edits
  • Ensuring data consistency across real-time updates

We solved this by implementing a sophisticated transaction system where each bill generates individual payment records between users, allowing for complex scenarios while maintaining data integrity.

Real-time Synchronization: Implementing real-time updates across multiple devices while maintaining data consistency was challenging. We had to handle:

  • Optimistic updates for immediate UI feedback
  • Conflict resolution when multiple users edit simultaneously
  • Offline support with sync on reconnection
  • Performance optimization for large transaction histories

Cross-Platform Consistency: Ensuring the app worked identically across iOS, Android, and Web required careful platform-specific handling:

  • Email client integration (different APIs per platform)
  • Navigation patterns (tabs vs. stack navigation)
  • Touch targets and gesture handling
  • Performance optimization for each platform

UX/Design Challenges

Complexity vs. Simplicity: The biggest UX challenge was making complex financial scenarios feel simple. Bill splitting can involve:

  • Unequal splits (someone ordered more expensive items)
  • Multiple payers (two people split the check)
  • Partial payments over time
  • Group expenses with varying participation

We solved this through progressive disclosure—showing simple options by default with advanced features available when needed.

Trust and Transparency: Financial apps require absolute trust. Users need to understand exactly how calculations work and feel confident in the accuracy. We addressed this by:

  • Showing detailed calculation breakdowns
  • Providing real-time split previews
  • Maintaining complete transaction history
  • Clear visual indicators for payment status

🏆 Accomplishments that we're proud of

Technical Achievements

Production-Ready Architecture: We built a genuinely production-ready application with enterprise-grade features:

  • Comprehensive error handling and loading states
  • Offline-first architecture with optimistic updates
  • Real-time synchronization across devices
  • Scalable database design with proper indexing
  • Security best practices throughout

Cross-Platform Excellence: Achieved true "write once, run everywhere" with platform-specific optimizations:

  • Native performance on iOS and Android
  • Progressive Web App capabilities
  • Responsive design for all screen sizes
  • Platform-specific UI adaptations

Sophisticated Business Logic: Implemented complex financial calculations that handle real-world scenarios:

  • Multiple payer support with proportional debt distribution
  • Dynamic balance calculations across friend networks
  • Transaction history with filtering and search
  • Email integration for payment reminders

Design & UX Achievements

Apple-Level Design Quality: Created a design system that rivals the best consumer apps:

  • Consistent 8px spacing system
  • Comprehensive color palette with semantic usage
  • Smooth animations and micro-interactions
  • Accessibility-first approach

Intuitive User Experience: Made complex financial scenarios feel simple:

  • Progressive disclosure of advanced features
  • Clear visual hierarchy and information architecture
  • Contextual actions and smart defaults
  • Comprehensive onboarding and empty states

Innovation

Multiple Payer Support: Most bill-splitting apps assume one person pays the entire bill. We built sophisticated support for multiple payers, handling scenarios like:

  • Two couples splitting a vacation rental
  • Multiple people contributing to a group gift
  • Shared grocery shopping with different payment methods

Real-time Collaboration: Unlike static calculators, SplitWise enables real-time collaboration:

  • Live updates as bills are created and edited
  • Instant balance synchronization
  • Collaborative expense management

📚 What we learned

Technical Learnings

Database Design for Financial Applications: We learned the importance of designing for data integrity in financial applications:

  • Transaction-based architecture for audit trails
  • Careful handling of floating-point arithmetic
  • Importance of referential integrity and cascade rules
  • Performance considerations for real-time queries

Real-time Application Architecture: Building a real-time collaborative app taught us:

  • Optimistic updates for better perceived performance
  • Conflict resolution strategies for concurrent edits
  • WebSocket management and reconnection logic
  • State synchronization across multiple clients

Cross-Platform Development: Working with React Native and Expo showed us:

  • The power of shared business logic across platforms
  • Platform-specific considerations for native features
  • Performance optimization techniques
  • The importance of testing on real devices

Product & Design Learnings

User Research Importance: We learned that assumptions about user behavior are often wrong:

  • Users split bills in more complex ways than we initially thought
  • Trust and transparency are more important than advanced features
  • Mobile-first design is crucial for financial apps
  • Onboarding can make or break user adoption

Financial UX Principles: Working with money requires special UX considerations:

  • Absolute clarity in calculations and fees
  • Multiple confirmation steps for destructive actions
  • Clear visual indicators for payment status
  • Comprehensive transaction history

Iterative Design Process: We learned the value of rapid prototyping and user feedback:

  • Early user testing revealed critical usability issues
  • Design systems accelerate development significantly
  • Accessibility considerations improve UX for everyone
  • Performance impacts user trust in financial applications

🚀 What's next for SplitWise

Short-term Roadmap (Next 3 months)

Enhanced Payment Integration:

  • Integration with payment platforms (Venmo, PayPal, Zelle)
  • QR code generation for easy payment requests
  • Receipt scanning with OCR for automatic bill entry
  • Cryptocurrency payment support

Advanced Features:

  • Recurring expenses (rent, utilities, subscriptions)
  • Group budgeting and expense limits
  • Expense categories and reporting
  • Export functionality (CSV, PDF reports)

Social Features:

  • Activity feed showing friend transactions
  • Group creation for ongoing shared expenses
  • Social payment celebrations and gamification
  • Integration with social media platforms

Medium-term Vision (6-12 months)

AI-Powered Features:

  • Smart expense categorization
  • Predictive bill splitting suggestions
  • Fraud detection and unusual spending alerts
  • Natural language bill entry ("Split dinner for 4 people, $120")

Business Features:

  • Small business expense management
  • Team expense reporting
  • Integration with accounting software
  • Multi-currency support for international users

Platform Expansion:

  • Desktop applications (macOS, Windows)
  • Browser extensions for online shopping splits
  • Smart watch integration
  • Voice assistant integration

Long-term Goals (1+ years)

Financial Ecosystem:

  • Credit score impact tracking
  • Integration with banking APIs
  • Savings goals for group expenses
  • Investment splitting for group purchases

Global Expansion:

  • Multi-language support
  • Regional payment method integration
  • Currency conversion and international transfers
  • Compliance with international financial regulations

Enterprise Solutions:

  • Corporate expense management
  • Event planning and group travel tools
  • Integration with enterprise software
  • White-label solutions for other businesses

Technical Roadmap

Performance & Scalability:

  • Database optimization for millions of users
  • CDN integration for global performance
  • Advanced caching strategies
  • Microservices architecture for specific features

Security Enhancements:

  • End-to-end encryption for sensitive data
  • Biometric authentication
  • Advanced fraud detection
  • SOC 2 compliance certification

Developer Experience:

  • Public API for third-party integrations
  • SDK for other developers
  • Comprehensive documentation
  • Open-source components

SplitWise represents our vision for the future of shared expense management—where technology eliminates friction in financial relationships and enables people to focus on what matters: spending time with the people they care about, without the stress of money management getting in the way.

We're excited to continue building and would love to hear feedback from the community!a

Built With

  • supabase
Share this project:

Updates