Money apps want your bank login, and then they want your money to be in one country, in one currency, in an account they can read. Get paid from abroad, keep cash, hold two currencies at once, or move money over mobile money, and most of your money is invisible to them. So it ends up in a spreadsheet, which holds anything and tells you nothing.
Trakli tracks money the way it actually moves. Cash, mobile money, bank and card sit beside each other as wallets, in any of forty-eight currencies, converting at the rate you say applies and not one scraped from a market you cannot get. Your phone keeps working with no signal and settles up when it reconnects. And it is yours: your server, your database, no one else holding the ledger of what you earn.
This is the web app. It talks to the webservice, which you will need running first.
What you will not find elsewhere:
- Wallets that match reality: cash, mobile money, bank and card, side by side.
- Any currency, at your rate: forty-eight of them, held at once; transfers convert at the rate you set.
- An assistant that can act: ask it in plain words, and it proposes every change for you to confirm before anything is written.
- Offline-first: the phone works with no signal, and changes settle cleanly when it reconnects.
- Yours to run: your server, your database, no bank login handed to anyone.
The rest, done properly:
- Transactions: Income and expenses across multiple wallets, with attachments and recurring rules.
- Transfers: Move money between wallets, including cross-currency at user-set rates.
- Budgets: Scoped to categories, groups, or wallets; weekly / monthly / yearly / custom range; optional rollover; threshold and forecast alerts.
- Refunds: Mark an income as refunding an earlier expense; matching budgets adjust automatically.
- Reminders: Bills, budget alerts, and custom events with pause, resume, and snooze.
- Imports: Pull transactions from CSVs, PDFs, and photos of receipts.
- Insights: Dashboard stats and digest emails.
- Docker
- Docker Compose
- Docker Desktop (for Windows and macOS users)
Clone the repository:
git clone git@github.com:trakli/webui.git
cd webui-
Start the Docker Compose services:
docker-compose up -d
This command starts the container in detached mode.
-
Install project dependencies:
docker compose exec app sh -c "npm install"
This command installs the necessary Node.js dependencies inside the container.
-
Run the application:
docker compose exec app sh -c "npm run dev"
This command runs the application inside the container.
To interact with the container directly, you can attach a shell to the running container:
docker compose exec app bashThis command opens an interactive shell session in the container, allowing you to run commands as if you were in a typical Node.js environment.
To stop the Docker Compose services, run:
docker compose stopThis command stops and removes the containers defined in your docker-compose.yml file.
If you want to remove all containers, networks, and volumes created by Docker Compose, run:
docker compose down --volumesThis command stops and removes the containers as well as any associated volumes.
npm installnpm run devnpm run buildnpm run lint
See LICENSE for more information.
