Forex brokerage · Financial services & trading

A MetaTrader 5 client portal with a ledger that keeps money correct

Marketing site, client dashboard, and admin panel in one Next.js app, connected to MetaTrader 5 through a dedicated bridge service.

Global
The challenge

What needed solving.

Client logins and balance operations live in the MT5 Manager API, a Windows-native SDK that cannot run inside a Node.js web app. Deposits and withdrawals had to stay correct even when MT5 was slow or unreachable.

What we built
  • One Next.js app with separate route groups for marketing, client dashboard, and admin
  • A separate FastAPI bridge on Windows wrapping the MT5 Manager API on a private network
  • Postgres ledger as the source of truth, with an outbox worker that settles operations in MT5
  • Shared zod contracts validated on both sides of the bridge
Key decisions

The database is the ledger; MT5 is downstream

An approval writes the status and an outbox job in one transaction. A worker performs the MT5 call afterwards and retries with backoff, so nothing is lost and no web request blocks on MT5.

Split only where the platform forces it

Three front ends share one app, one design system, and one auth implementation; only the MT5 bridge is a separate service, because it has to be.

The result

The brokerage gets a single client and admin experience over MT5, with money movements that are recorded first and settled reliably.

Related work

Similar projects.

All case studies

Need something similar built?

Share the problem, the systems involved, and the outcome you need.

Discuss your project