Smart money management for everyone - A beautiful, privacy-focused personal finance app that works offline.
MoneyWise is a cross-platform personal finance app that helps you take control of your money. Built with privacy and simplicity in mind, it works completely offline while providing powerful insights into your spending habits, budget management, and savings goals.
π― Perfect for:
- Individuals who want to track daily expenses
- Budget-conscious people planning monthly spending
- Anyone saving for specific financial goals
- Users who value privacy and offline functionality
- Log income and expenses with categories and notes
- Support for multiple currencies
- Photo receipts and transaction history
- Smart categorization and auto-suggestions
- Set monthly and yearly budgets by category
- Real-time spending alerts and notifications
- Visual progress tracking with charts
- Carryover budgets for long-term planning
- Create personalized savings targets
- Track progress with visual indicators
- Set deadlines and milestone celebrations
- Multiple goal management
- English, French, and Vietnamese
- Localized currency formats
- Cultural financial practices
- Easy language switching
- 100% offline-first - Your data stays on your device
- No account creation required
- Optional cloud backup (coming soon)
- GDPR compliant
- Smart Rate Limiting - Multi-tier rate limiting for optimal performance
- Intelligent Caching - Redis-powered caching for lightning-fast responses
- Type-Safe Configuration - Shared configuration ensures consistency
- Graceful Degradation - Continues working even when services are unavailable
- React Native + Expo SDK 53 - Cross-platform mobile development
- TypeScript - Type-safe code and better developer experience
- React Navigation - Smooth, native navigation experience
- TanStack Query - Efficient data fetching and caching
- React Native Reanimated - Buttery smooth animations
- Rust - High-performance, memory-safe backend
- Axum - Modern, fast web framework
- PostgreSQL - Robust, scalable database (Supabase + Local)
- Redis - Lightning-fast caching layer
- SQLx - Async, compile-time checked SQL
- OCaml - Type-safe, high-performance development tools
- Dune - Modern build system
- OCamlDoc - Professional documentation generation (better than odoc!)
- Cmdliner - Professional CLI framework
- Professional Architecture - Pure OCaml implementation for reliability and type safety
- Professional Workflow - Makefile-based build and command system
MoneyWise/
βββ π .github/workflows # CI/CD pipelines and GitHub Actions
βββ π± moneywise-app/ # React Native frontend
βββ π¦ moneywise-backend/ # Rust backend API
βββ βοΈ config/ # Shared configuration files
βββ ποΈ scripts/ # Setup and utility scripts
βββ π§° tools/ # Development tools and utilities
β βββ π« ocaml/ # OCaml-based project management tools
βββ π docs/ # Project documentation and guides
β βββ π« ocamldoc/ # Development tools documentation (deployed to GitHub Pages)
- Shared Configuration: Single source of truth for rate limiting across frontend and backend
- Auto-Generation: Build scripts generate type-safe configs for both platforms
- Type Safety: TypeScript definitions ensure consistency between services
- Production: Supabase (hosted, managed, scalable)
- Development: Local PostgreSQL (offline development)
- Hybrid: Automatic environment detection and migration compatibility
Coming soon - Beautiful UI previews of the app in action
| Feature | MoneyWise | Other Apps |
|---|---|---|
| Offline First | β Always works | β Requires internet |
| Privacy | β Your data stays local | β Cloud-dependent |
| Multi-Currency | β Native support | β Limited options |
| No Signup | β Start immediately | β Account required |
| Smart Performance | β Multi-tier rate limiting | β Basic or no rate limiting |
| Type Safety | β Shared configuration | β Manual sync required |
| Open Source | β Transparent & free | β Proprietary |
| Development Tools | β OCaml + Shell hybrid | β Single approach |
Foundation Complete - Core Features in Development - The app has a solid architecture and basic UI framework:
- β Project Setup - React Native + Expo + Rust backend
- β Navigation - Bottom tab navigation with 5 main screens
- β Basic UI Framework - Component library and design system
- β Backend API - Budget management endpoints with Redis caching
- β Database Schema - PostgreSQL with migrations and sample data
- β Rate Limiting - Multi-tier rate limiting with shared configuration
- β Development Tools - OCaml-based project management tools
- π Core Features - Transaction management, budgets, goals (UI ready, backend in progress)
- π Testing - Comprehensive test suite setup
- π¨ Polish - Animations, accessibility, performance optimization
Coming soon to App Store and Google Play
-
Clone the repository
git clone https://github.com/lykimq/MoneyWise.git cd moneywise -
Frontend Setup
cd moneywise-app npm install npx expo start -
Backend Setup
cd moneywise-backend # See README.md in the backend directory for detailed setup instructions
-
Development Tools
# Build and run OCaml tools make build # Build the OCaml CLI tool make verify # Verify project structure and prerequisites make test # Run tests make help # Show available commands
-
π Development Tools API Documentation π View API Docs β - Complete API reference
- Project setup and architecture
- Backend API with budget management
- Database schema and migrations
- Basic UI framework and navigation
- Rate limiting system with shared configuration
- Development tools and architecture
- Transaction management (backend + frontend integration)
- Budget tracking (frontend integration)
- Savings goals (frontend integration)
- Multi-language support
- Advanced analytics and reports
- Recurring transactions
- Export/import functionality
- Cloud sync (optional)
- Bank account integration
- Investment tracking
- Debt management
- Financial insights AI
We welcome contributions! Here's how you can help:
- π Report bugs - Open an issue with detailed steps
- π‘ Suggest features - Share your ideas for improvement
- π§ Fix issues - Pick up a good first issue
- π Improve docs - Help make MoneyWise easier to use
- π Add languages - Help with translations
- π« OCaml Development - Help improve development tools
Getting Started with Contributing:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Non-Commercial License - see the LICENSE file for details.
- React Native community - For the amazing mobile framework
- Expo team - For simplifying React Native development
- Rust community - For the performant backend language
- OCaml community - For the type-safe development tools
- Supabase team - For the excellent database hosting platform
- Contributors - Everyone who helps make MoneyWise better
- GitHub Issues - Report bugs & request features
- Documentation - Setup & usage guides
- Development Tools - OCaml tools & architecture
Made with β€οΈ by the MoneyWise team
Empowering people to take control of their financial future
β Star this repo β’ π Report an issue β’ π View documentation