Building a multi-currency personal and company finance app with Next.js and MongoDB

How Plan Pro keeps personal money, company books and work planning in one app: frozen exchange rates, loan schedules, trip splitting, a 90-day cash forecast, financial statements, and projects, tasks and OKRs beside them.

DSDilawar Singh 4 min read 0 views
Building a multi-currency personal and company finance app with Next.js and MongoDB

Plenty of people run more than one set of books. A founder has a household budget, a company and maybe a small clinic or a side business. A freelancer bills clients in dollars, pays rent in rupees and splits a holiday in yen. The usual answer is a budgeting app, a spreadsheet of loans, an invoicing tool and a separate task manager, and none of them can tell you your real net worth or how many months of cash the company has left.

Plan Pro puts all of that in one Next.js and MongoDB app: personal and company finance, company operations, and work planning, side by side. This post walks through the decisions that make it hold together.

The Plan Pro dashboard: EMI reminders, upcoming recurring bills and net worth at a glance

Workspaces are the unit of everything

The first decision was what a "set of books" means. In Plan Pro it is a workspace: Personal, Company, Clinic or Other. Each workspace has its own accounts, categories, base currency and members, and one person can belong to several of them with different roles. An All workspaces view adds them up, so you can see the household, the studio and the clinic on one screen with today's tasks from all of them.

Roles are per workspace: Owner, Admin, Accountant, Member and Viewer. An accountant can edit the company and clinic books and pay claims and payroll; a member works on tasks and claims while money stays read-only. Every permission is checked on the server.

All workspaces: personal, company and clinic books side by side with today's tasks everywhere

Three amounts and a frozen rate

Multi-currency is where most finance apps quietly go wrong. If you store one amount and convert at today's rate whenever a report runs, last year's numbers change every day.

Plan Pro stores three amounts on every transaction: the original amount in the currency you paid in, the account amount in the account's currency, and the base amount in the workspace's base currency. The exchange rate of that day is frozen on the transaction. Rates come from reference rates and are sanity-checked before they are stored, and you can always type in the rate from your card statement instead. Six currencies are supported out of the box: INR, USD, EUR, AED, JPY and KRW.

The transactions ledger: multi-currency entries with filters, drafts, receipts and statement import

Loans, assets and net worth

Loans are not a balance you update by hand. Plan Pro builds a full amortisation schedule for reducing-balance or flat-rate loans, reminds you before each EMI, and posts principal and interest separately to the ledger when you record a payment. A prepayment simulator shows how much interest and time a lump sum or a higher EMI would save.

Assets cover stocks, ETFs, mutual funds, crypto, gold, deposits, property (with rental yield and equity after its loan) and vehicles or equipment that depreciate. Net worth is split into liquid, illiquid, enterprise and liabilities, and a month-end snapshot builds the history.

A home loan: outstanding balance, monthly EMI, interest paid, the debt-free date and principal versus interest by year

Trips, where everyone pays in a different currency

Shared expenses are their own small accounting problem. A trip has its own currency and budget; each expense can be in any currency and split equally, by shares, by percentage or by exact amounts. Plan Pro suggests who should pay whom to settle up, and posts your share to your own books, so the holiday shows up in your budget at what it actually cost you.

Trip expenses: who paid, how each cost was split and each person's share

Looking ahead: forecast and statements

The cash-flow forecast projects 90 days from what the app already knows: recurring items, EMIs, open invoices and payroll. On top of the expected line it runs a Monte Carlo simulation to show a likely range and the risk of the balance dropping below zero.

For the company side, invoices, payroll runs, expense claims and company debt all post to the same ledger. That is what lets the profit and loss, balance sheet, cash flow and VAT/GST reports come from one source, as PDF or CSV.

The 90-day cash-flow forecast with a Monte Carlo range, upcoming bills and EMIs

Work planning next to the money

The other half of Plan Pro is a planner. Projects appear as cards, a list or a Gantt timeline with dependencies, and carry a budget with spend tracking. Tasks live on a Kanban board with your own stage names, checklists, estimates, timers and recurring templates. Goals and OKRs roll progress up automatically from tasks or metrics, and My Day gathers today's tasks, time blocks, habits with streaks and an energy and focus log.

The task board: a Kanban board with custom stage names, priorities, assignees and checklists

Small details that matter

  • Sign-in: passwords and emailed codes are verified by the app's own routes, which give the session layer a single-use two-minute ticket. A password alone can't open an unverified account or skip two-step sign-in.
  • Offline: a service worker and an IndexedDB queue keep the app usable without a connection and sync when it returns. It installs as a PWA, with a bottom navigation on phones.
  • Optional AI scanning: with your own AI key, up to 20 receipts, bills or statement screenshots at once become transactions in a review grid, with likely duplicates and refunds unticked.
  • A safe demo: read-only mode refuses server actions, mutating API routes and every database write.

See it running

The video tour goes through the dashboard, workspaces, transactions, budgets, loans, net worth, trips, the forecast, invoices, projects and tasks.

Video tour of Plan Pro

You can also open the read-only live demo, which is filled with fictional people, companies and figures, and sign in with a one-click demo account. The full source is available as Plan Pro on the DEV3 marketplace, and the case study covers the design decisions in more detail.

DS

Written by

Dilawar Singh

CTO, DEV3 Technologies · ClinicPro, Inventra & WorkPro

Dilawar Singh is the CTO of DEV3 Technologies. He leads the engineering of DEV3’s own products — ClinicPro, Inventra and WorkPro — which are built, sold and supported by the DEV3 team from Mohali, India.

Keep reading

All articles