Spendy is a beautiful, fast, and lightweight mobile finance tracker built with React Native and Expo. With a clean UI and offline-first design, it makes expense tracking simple, intuitive, and accessible to everyone.
-
🔐 Authentication
- Signup and login (email + password)
- Session management with AsyncStorage
-
💸 Transactions
- Add expenses or income with amount, title, category, and date
- Auto-icon & emoji-based categories
- View recent transactions in dashboard
-
📊 Dashboard & Insights
- Account balance, income, and expenses summary
- Filter: Week, Month, Year, All
- Line chart visualization
-
🏷️ Categories
- Built-in categories with emoji icons
- Automatically synced across app
-
🌙 Offline-first
- No internet? No problem. All data stored locally
-
🎨 Modern UI
- Tailwind-like styling with NativeWind
- Responsive and mobile-first UX
LoginScreen.tsx
SignupScreen.tsx
Dashboard.tsx
AddTransactionScreen.tsx
CategoriesScreen.tsx
ProfileScreen.tsx
git clone https://github.com/codingwithashu/spendy-react-native.git
cd spendy-react-native
npm install
# or
yarn install
npx expo start
spendy-app/
├── assets/ # App assets (icons, images, splash, etc.)
├── components/ # Reusable UI components
├── lib/
│ └── api/ # Auth, transaction, and category APIs
├── navigation/ # Stack navigation setup
├── screens/ # Screen components (Login, Dashboard, etc.)
├── types/ # TypeScript interfaces/types
├── utils/ # Helper functions like category icons
├── App.tsx # App root
├── app.json # Expo configuration (icon, splash, etc.)
└── README.md
- Prerequisites: Make sure you have Node.js and Expo CLI installed
- Clone & Install: Follow the installation guide above
- Run the App: Use
npx expo start
and scan the QR code with Expo Go app - Start Tracking: Create an account and begin managing your finances!
- React Native - Cross-platform mobile development
- Expo - Development platform and toolchain
- TypeScript - Type-safe JavaScript
- NativeWind - Tailwind CSS for React Native
- AsyncStorage - Local data persistence
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- 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
Ashu - @codingwithashu
Project Link: https://github.com/codingwithashu/spendy-react-native