Finance Manager is a modern Progressive Web Application (PWA) designed for convenient tracking of personal finances, multi-currency wallets, and detailed analytics. The app works completely offline, utilizes local device storage, and is optimized to look and feel like a native app on iOS and Android.
π Demo: Open App
- πΈ Screenshots
- π Privacy First
- β¨ Key Features
- π Tech Stack
- π Installation and Setup
- π¦ Build and Deploy
- π± How to Install on Phone (PWA)
- π Project Structure
- π License
| Home / Dashboard | Wallets | Analytics & Charts |
![]() |
![]() |
![]() |
| Add Transaction | Categories / Icons | Settings |
![]() |
![]() |
![]() |
Responsive design: The UI automatically adapts to a sidebar layout on desktop devices.
This application is 100% Client-Side.
- No Servers: All financial data is stored securely and locally on your device using IndexedDB.
- No Tracking: No analytics, no cookies, no data collection. Your money is your business.
- Biometric Security: Features a local PIN/Biometric lock screen UI to protect your data from prying eyes.
- Ownership: You maintain full control over your financial data without relying on third-party cloud services.
- Offline Mode: Fully functional without internet access (PWA + Service Workers).
- Multi-Currency Support: Fetch real-time exchange rates via the NBP Web API (National Bank of Poland) to automatically calculate your total net worth in a base currency.
- Wallets Management: Create and manage cash, bank accounts, and crypto wallets. Easily switch between them using a gesture-friendly carousel.
- Transactions & Categories: Log income and expenses. Filter by periods (daily, monthly, yearly).
- Recurring Payments: Built-in engine to handle and automate recurring transactions.
- Analytics: Interactive charts and highlights to visualize spending habits.
- Multi-Language (i18n): Dynamically switch between English, Polish, and Ukrainian.
- Mobile-First Design: Looks and behaves exactly like a native app (Bottom Navigation, Safe Areas, hidden browser bars).
- Desktop Support: Adapts to a Sidebar layout on larger screens.
- Animations: Smooth page transitions, animated numbers, and micro-interactions.
- Themes: Clean, modern interface styled with Tailwind CSS.
- Core: React 18+, Vite
- Styling: Tailwind CSS
- Database: IndexedDB (Local Browser Storage)
- PWA:
vite-plugin-pwa(Manifest, Service Workers, Offline capabilities) - State & Data Fetching: Custom React Hooks, Context API
- Charts:
recharts - Animations:
framer-motion - Localization:
react-i18next,i18next-browser-languagedetector - Utilities:
@hello-pangea/dnd(Drag-and-Drop),date-fns(Date formatting),lucide-react(Icons)
To run the project locally, you will need Node.js installed.
-
Clone the repository:
git clone https://github.com/OwenSide/finanse-manager.git cd finanse-manager -
Install dependencies:
npm install
-
Start the development server:
npm run dev
The application will be available at http://localhost:5173.
The project is configured for static deployment (perfect for GitHub Pages).
Build the project:
npm run buildDeploy (automated script)::
npm run deployThis command will build the project and push the dist folder to the gh-pages branch.
The app does not require downloading from the App Store or Google Play.
π iOS (iPhone/iPad)
- Open the Demo Link in Safari.
- Tap the "Share" button (square with an upward arrow at the bottom).
- Select "Add to Home Screen".
- The app will now work like a native application (without the browser address bar).
π€ Android
- Open the Demo Link in Chrome.
- Tap the menu (three dots) or wait for the pop-up banner.
- Select "Install App" or "Add to Home screen".
Click to view file structure
src/
βββ api/ # External API logic
β βββ exchangeRates.js # NBP Web API integration
βββ components/ # React components
β βββ analytics/ # Recharts and statistical UI
β βββ layout/ # App Shell, BottomNav, Sidebar
β βββ modals/ # Modals (Add Transaction, Edit Category)
β βββ transactions/ # Transaction lists and filters
β βββ ui/ # Shared UI (BiometricLock, Icons)
β βββ wallets/ # Wallet Carousel and Selection
βββ context/ # Global state (PreferencesContext)
βββ hooks/ # Custom React Hooks (useMonthlyStats)
βββ locales/ # i18n JSON files
β βββ en/ # English
β βββ pl/ # Polish
β βββ uk/ # Ukrainian
βββ pages/ # Route Views (Home, Wallets, Stats, Categories)
βββ utils/ # Helper functions
β βββ formatters.js # Number & Date formatting
β βββ recurringEngine.js # Recurring logic
β βββ syncExchangeRates.js # Background sync for rates
βββ db.js # IndexedDB configuration & CRUD operations
βββ i18n.js # i18next initialization
βββ App.jsx # Main layout wrapper
βββ main.jsx # App entry point
βββ index.css # Global Tailwind styles
This project is licensed under the GPLv3 License.






