Find the best card for every purchase.
Rewardly helps Canadians earn more rewards with smart recommendations for 410+ credit cards. Built with React Native and Expo for iOS, Android, and Web.
- π― Smart Recommendations - Enter any store and instantly see which card earns the most rewards
- π³ Canadian Card Database - 410+ cards (TD, RBC, BMO, CIBC, Scotiabank, Amex, and more)
- π Multi-Currency Rewards - Track cashback, points, airline miles, and hotel points
- β¨ Card Discovery - Get suggestions for better cards based on your spending patterns
- π Bilingual - Full support for English and French
- π Privacy-First - All data stored locally on your device
- π€ Sage AI - AI-powered chat assistant for rewards questions (Claude Haiku)
- π Wallet Optimizer - Find gaps in your card portfolio and get coverage recommendations
- π CSV Statement Import - Upload bank statements (TD, RBC, BMO, CIBC, Scotiabank, Tangerine, Simplii, EQ Bank)
- π Achievements - 23 achievements across 6 ranks (Copper β Diamond) with gamified progression
- π 5/24 Tracker - Track credit card applications for churning (Chase 5/24 rule compatibility)
- π° Signup ROI Calculator - Calculate welcome bonus value vs annual fee breakeven
- π Fee Breakeven Analysis - See how much you need to spend to justify annual fees
- Frontend: React Native 0.81 with Expo 54
- Language: TypeScript
- Backend: Supabase (PostgreSQL)
- APIs: Google Places API for store lookup
- Navigation: React Navigation 7
- State: AsyncStorage for local persistence
- Testing: Jest + fast-check for property-based testing
- Internationalization: i18next
- Node.js 18+
- npm or yarn
- Expo CLI
- Supabase account (optional for cloud features)
- Google Cloud account (optional for Places API)
# Clone the repository
git clone https://github.com/tahseen137/rewardly.git
cd rewardly
# Install dependencies
npm install
# Start the development server
npx expo startCreate a .env.local file in the root directory:
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
GOOGLE_PLACES_API_KEY=your_google_places_api_key# iOS
npm run ios
# Android
npm run android
# Web
npm run webrewardly/
βββ src/
β βββ components/ # Reusable UI components
β βββ data/ # Static card and store data
β βββ i18n/ # Internationalization (EN/FR)
β βββ navigation/ # React Navigation setup
β βββ screens/ # App screens (Home, MyCards, Settings)
β βββ services/ # Business logic
β β βββ CardDataService.ts # Card database and lookups
β β βββ CardPortfolioManager.ts # User's card collection
β β βββ PreferenceManager.ts # User preferences
β β βββ RecommendationEngine.ts # Core recommendation logic
β β βββ StoreDataService.ts # Store-to-category mapping
β β βββ WalletOptimizerService.ts # Portfolio gap analysis
β β βββ StatementParserService.ts # CSV import (8 banks)
β β βββ AchievementService.ts # Gamification engine
β β βββ ApplicationTrackerService.ts # 5/24 rule tracking
β β βββ SpendingProfileService.ts # Spending pattern analysis
β β βββ SageAIService.ts # AI chat integration
β βββ types/ # TypeScript type definitions
βββ assets/ # Images, icons, splash screens
βββ docs/ # Project documentation
βββ scripts/ # Deployment and build scripts
Coming soon! Screenshots of the app in action.
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverageReady to deploy? Check out our comprehensive deployment guides:
- Quick Start Deployment - Fast-track guide
- App Store Deployment - Complete iOS/Android guide
- Deployment Checklist - Track your progress
# Install EAS CLI
npm install -g eas-cli
# Build for production
npm run build:production
# Submit to stores
npm run submit:ios
npm run submit:androidContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Major Banks:
- TD (Aeroplan Visa Infinite, Cash Back Visa Infinite)
- RBC (Avion Visa Infinite, WestJet World Elite)
- BMO (Air Miles World Elite, CashBack World Elite)
- CIBC (Aventura Visa Infinite, Aeroplan Visa Infinite)
- Scotiabank (Scene+ Visa, Passport Visa Infinite)
Premium Cards:
- American Express (Cobalt, Gold, Platinum)
- And many more...
Full card database available in src/data/
Built with β€οΈ for the Canadian credit card rewards community.
Questions or feedback? Open an issue or reach out via GitHub!