A secure, private, and powerful personal finance tracker designed to work offline—your financial data is encrypted and stored locally on your device.
i8·e10 is designed for clarity and ease of use, helping you manage your finances without the need for an account or a constant internet connection. Its bilingual English/Tamil interface makes it accessible to a wider audience.
The name i8·e10 is a contraction of Income 8 and Expense 10. It is a modern nod to the classic Tamil song lyrics:
வரவு எட்டணா, செலவு பத்தனா; அதிகம் இரண்டனா கடைசியில் துண்டனா
(Income is 8 annas, Expense is 10 annas; The extra 2 annas lead to a deficit in the end.)
The app serves as a tool to help you track that very balance and ensure your "expense" never overtakes your "income"
- 🔒 Encrypted & Private: Your financial data is yours alone. All information is encrypted and stored locally in your browser using the Web Crypto API. Your password is the only key, and it never leaves your device. No accounts. No cloud storage. No access to your financial data—ever.
- 🔑 Secure Password & Recovery: The app is protected by a password you set. If you forget it, a unique 12-word recovery phrase—generated during setup—is the only way to regain access to your data.
- 📊 Comprehensive Tracking: Go beyond simple expense tracking.
- Transactions: Log income, expenses, and wallet-to-wallet transfers.
- Debts: Keep a clear record of money you've lent and money you owe, with settlement tracking.
- Investments: Monitor the performance of your assets like stocks, mutual funds, and real estate, including contributions, withdrawals, and dividends.
- 🌐 Bilingual Interface: A clean, intuitive interface available in both English and Tamil (தமிழ்).
- ⚡️ Smart & Fast Entry:
- Quick Add Button: A quick tap adds the most common item (like an expense). A long-press reveals options to add transactions, debts, or investments.
- Bulk Add: Paste multiple transactions in plain text and let the app parse them for you in seconds.
- ⚖️ Easy Balance Reconciliation: Quickly adjust your wallet balance to match your actual cash or bank account total with a simple, guided tool.
- 🔍 Powerful Filtering: Instantly filter your transactions, debts, and investments by various criteria like time periods, wallets, types, and status.
- 💾 Secure Data Backup & Restore: Export all your financial data—transactions, debts, and investments—into separate CSV files, conveniently packaged in a single ZIP file. This serves as a secure, unencrypted backup for your records or for use in other applications.
- 🔔 Smart Reminders: Get automatic reminders to back up your data, ensuring you don't lose your financial history.
- 🎨 Customizable Experience:
- Wallet Management: Create and manage multiple "wallets" like Cash, Bank, or Credit Card.
- Dark & Light Modes: Switch between themes to suit your preference.
- Onboarding Guide: A helpful tutorial to get you started, which you can revisit anytime from the settings.
i8·e10 is a static web application and requires no backend. You can host it easily on any static hosting provider (like Vercel, Netlify, GitHub Pages) or run it on your own server.
- Download the files: Get the latest version of release containing the built project.
- Serve the directory: Use any static file server to serve the root directory containing
index.html.
Here's a quick way to run it locally using npx:
# Make sure you are in the project's root directory
npx serve .Now you can access the application at the URL provided by the command (usually http://localhost:3000).
You can also run i8e10 using Docker:
- Build the image:
docker build -t i8e10 . - Run the container:
docker run -p 3000:80 i8e10
- Using Docker Compose:
docker-compose up -d
Interested in contributing or running the project for development? Follow these steps.
- Node.js (v18 or higher recommended)
- An
npmcompatible package manager (e.g.,npm,pnpm,yarn)
-
Clone the Repository
git clone https://github.com/svijaykoushik/i8e10.git cd i8e10 -
Environment Variables
The application uses environment variables for configuration. You can create a
.envfile in the root directory to define these variables locally during development. -
Run the Development Server
This project is set up to run with a simple static server, as all modules are handled by the browser via import maps.
# This will start a local server, typically at http://localhost:3000 npx serve .
The server will host the files, and you can open the provided URL in your browser to see the application. Most static servers provide hot-reloading functionalities for a smoother development experience.
- Framework: React 19
- Language: TypeScript
- Styling: Tailwind CSS v4
- Database: IndexedDB (via Dexie.js)
- Security: Web Crypto API for client-side encryption
- Icons: Heroicons
- Packaging: JSZip (for CSV export)
Contributions are welcome! If you have ideas for new features, bug fixes, or improvements, please feel free to:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-awesome-feature). - Make your changes and commit them (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/your-awesome-feature). - Open a pull request.
This project is licensed under the AGPL License. See the LICENSE file for details.
