A full-stack personal finance wallet application built using React Native, Expo, Express, Clerk, Neon PostgreSQL, and Redis. This project demonstrates how to build a complete production-ready mobile application with authentication, database integration, cloud deployment, and real-time updates β all without needing Swift, Kotlin, or native modules.
This project demonstrates how to build a fully functional, production-ready mobile finance tracker using React Native + Expo alongside a Node.js/Express backend with:
β¦ Clerk authentication (with email code verification)
β¦ Neon PostgreSQL for database storage
β¦ Redis rate limiting
β¦ Deployed backend and real device mobile support
Users can:
β¦ Sign up & log in using a 6-digit email code
β¦ View their current wallet balance
β¦ Create income or expense transactions
β¦ Delete transactions, with recalculations
β¦ Pull-to-refresh to sync with backend
β¦ Log out securely
Perfect for developers looking to learn how to connect a mobile frontend to a real backend with secure user accounts and persistent cloud data storage.
-
π± Runs on iOS & Android
-
π Email-based login & signup (6-digit verification code) using Clerk
-
πΌ Home screen showing:
- Current balance
- List of transactions
-
β Add income and expense transactions
-
π Pull-to-refresh functionality
-
β Delete transactions to update balance instantly
-
πͺ Logout routing that safely returns users to auth pages
- π Fully REST-based Node.js server
- π PostgreSQL database hosted on Neon
- β Auth middleware using Clerk
- π¦ Redis-based rate limiting for protection
- β Easily deployable on cloud services
By building this project, youβll master:
- Building a mobile app with React Native & Expo
- Creating a backend with Express & PostgreSQL
- Real-world user authentication with Clerk
- Structured full-stack communication between mobile β backend β database
- Implementing rate limiting using Redis
- Deployment of both backend & mobile applications
- Managing navigation & global app state cleanly
Perfect for:
- Beginners building their first full-stack mobile app
- React developers expanding into React Native
- Anyone needing a realistic production-ready example
- React Native (Expo)
- React Navigation
- Async Storage
- Clerk Auth SDK
- Node.js + Express
- PostgreSQL (Neon)
- Redis (Rate Limiting)
- Clerk Server SDK
.
βββ backend
β βββ src
β βββ package.json
β βββ .env
βββ mobile
βββ screens
βββ components
βββ package.json
βββ app.config.js
PORT=5001
NODE_ENV=development
CLERK_PUBLISHABLE_KEY=<your_clerk_publishable_key>
CLERK_SECRET_KEY=<your_clerk_secret_key>
DATABASE_URL=<your_neon_postgres_connection_url>
REDIS_URL=<your_redis_connection_url>
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=<your_clerk_key>
cd backend
npm install
npm run devcd mobile
npm install
npx expo startScan the QR code or run the Android/iOS simulator.
You can deploy using:
- Vercel
- Render
- Fly.io
- Railway
- Neon PostgreSQL (recommended)
- Upstash (free tiers available)
- Expo EAS (supports OTA & store publishing)
- Dark mode UI
- Filtering & sorting transactions
- Budget goals overview
- Push notifications for expenses
This project is open-source β see LICENSE for details.
If this project helps you:
- Star β the repository
- Share with developers getting into React Native
This backend is an API server. Opening the Render URL in a browser will not show a webpage β it is meant to serve the mobile app. If you open it directly, you may see βCannot GET /β.
Thanks,
Happy coding!
aar0gya









