SplitDuo is a lightweight, open-source expense splitting application designed initially for couples and two-person households. It provides a slim alternative to existing solutions like Splitwise (proprietary) and Cospend (requires full Nextcloud installation).
- App Name: SplitDuo
- Available Domains:
- splitduo.io
- splitduo.app (recommended)
- splitduo.me
- Recommended Choice: splitduo.app (matches the app nature and has built-in HTTPS requirements)
- .NET - Web API backend
- PostgreSQL - Database
- Authentication System - Required for public internet access
- Vue.js - JavaScript framework
- Nuxt UI - UI component library
- Mobile-First Design - Responsive design optimized for mobile usage
- Single Docker Container - Backend and frontend served from one container for simplicity
- PostgreSQL Database - Separate database container
- Docker Compose - For easy multi-container deployment and management
- Homelab Hosting - Self-hosted on personal infrastructure
- Public Internet Facing - Accessible from outside the local network
- Two-User Focus: Designed primarily for couples/partners
- Mobile-First UI: Optimized for on-the-go expense tracking via smartphones
- Expense Tracking: Add, edit, and delete shared expenses
- Payment Mode Tracking: Track payment methods (cash, card, transfer, etc.) for each expense
- Split Calculations: Automatic calculation of who owes what with balance optimization
- Balance Management: Real-time balance tracking across all expenses and settlements
- Settlement Optimization: Smart suggestions to minimize the number of transactions needed
- Payment Tracking: Record settlements between users with comprehensive history
- User Authentication: Secure login system for public access
- Data Import: Import existing data from Cospend backup files
- Data Export: Export/backup splitting data to CSV with Cospend backup file structure compatibility
- Multi-User Support: Expand to support groups of more than 2 people
- Advanced Features: Categories, recurring expenses, payment tracking, etc.
- Native Mobile App: Dedicated iOS/Android applications
- Cospend Backup Import: Users can migrate from Cospend by importing their backup files
- Seamless Transition: Preserve existing expense history and user data
- CSV Export: Export all expense and splitting data
- Cospend Compatibility: Export format matches Cospend backup file structure
- Data Portability: Users can migrate away from SplitDuo if needed
- Lightweight: No need for full Nextcloud installation like Cospend
- Open Source: Unlike Splitwise, source code is available and modifiable
- Self-Hosted: Complete control over data and privacy
- Couple-Focused: Initially optimized for two-person use cases
- Migration Friendly: Easy import from Cospend, easy export to other systems
- Set up .NET backend with PostgreSQL
- Implement user authentication (JWT + refresh token rotation)
- Configure initial user creation via AppOptions (no registration endpoint)
- Implement email notification system (outbox pattern with background processing)
- Implement user management service (CRUD operations)
- Implement groups management service (create, manage members, authorization)
- Implement core expense CRUD operations (with integrated split calculation)
- Implement balance calculation service (automatic debt calculation)
- Implement Categories as enum (no CRUD for now)
- Implement Payment Modes as enum (no CRUD for now)
- Implement Cospend backup file import (CSV parsing and data mapping)
- Add data validation and error handling
- Create mobile-first Vue.js frontend with Nuxt UI
- Deploy with Docker Compose (single app container + PostgreSQL container)
- GitLab CI/CD pipeline for automated builds and push to Docker registry
- Implement invite system (email-based invitations)
- Multi-user group support (beyond two users)
- Implement custom categories and payment modes (CRUD operations)
- Implement Splitwise data import (CSV parsing and data mapping)
- Implement CSV export with proprietary format
- Implement CSV import with proprietary format
- Implement 2FA (Two-Factor Authentication) on frontend (TOTP-only, v0.1.20)
- Implement settlements management (payment recording between users)
- Implement settlement optimization (minimize transaction suggestions)
- Improve mobile UI/UX and responsive design
- Improve desktop UI/UX
- Implement unit and integration tests
- Advanced features (recurring expenses, payment tracking)
- Implement data visualization (charts, reports) (v0.1.14)
- Secure authentication for public internet access
- HTTPS enforcement (especially with .app domain)
- Input validation and SQL injection prevention
- Rate limiting and abuse prevention
- Efficient database queries
- Optimized Docker images
- Database backup strategies
- Docker Compose deployment management
- Data recovery procedures
- Export functionality as backup mechanism
- Successfully replace existing Cospend usage
- Smooth migration of existing expense data
- Reliable two-person expense tracking
- Stable self-hosted deployment
- User satisfaction with simplified setup vs. Cospend
- Data migration success rate
- System uptime and reliability
- Community adoption (if open-sourced)
- The app should remain focused on simplicity and reliability over feature bloat
- Maintain compatibility with Cospend data format for easy migration paths
- Consider the needs of couples/partners as the primary use case
- Keep the architecture extensible for future multi-user expansion