Cryptofolio
A decoupled MERN-stack crypto portfolio platform — Next.js 14 frontend, Express REST API, and a virtual demo-trading engine that computes holdings by replaying transaction history.
Full Stack Developer
Live · Vercel + Render
Next.js 14 · Express · MongoDB
Overview
Cryptofolio is a cryptocurrency portfolio platform where users track digital assets and practice trading without risking real money. It pairs live market data with a virtual trading engine — every account starts with a 10,000 balance, and holdings are derived entirely from the user's recorded buy and sell history.
The challenge
Crypto investors juggling holdings across exchanges had no single, calm view of their position — and no safe way to test a strategy before committing capital. The product needed live prices, a clean portfolio view, and a trading sandbox, all without a heavy backend or the risk of stale, drifting balances.
Architecture
Cryptofolio is a monorepo with separate client/ and server/
directories. The client is a Next.js 14 App Router frontend on Vercel; the server is an
Express REST API on Render following an MVC structure — models → routes → controllers — with
MongoDB accessed through Mongoose. The two talk over HTTP/JSON via Axios, while CoinGecko
prices and TradingView charts are pulled straight into the browser to keep the backend lean.
$ ./describe --stack
monorepo/
├── client/ Next.js 14 · App Router (Vercel)
│ │ HTTP / JSON via Axios
│ │ └──▶ CoinGecko (prices) · TradingView (charts)
│ ▼
├── server/ Express REST API · MVC (Render)
│ │ models → routes → controllers
│ ▼
└── MongoDB + Mongoose The demo trading engine
Rather than storing a mutable balance that can drift out of sync, the engine treats every buy and sell as an immutable transaction in MongoDB. A user's current coin holdings and portfolio value are computed dynamically by replaying that transaction history — so the portfolio is always a provable function of what the user actually did, and never a number that can quietly go wrong.
Security
The API is treated as a public surface and hardened accordingly.
Key features
- ▸ Live cryptocurrency prices via the CoinGecko API
- ▸ Interactive TradingView charts embedded client-side
- ▸ Virtual demo trading — every user starts at 10,000
- ▸ Holdings replayed from buy/sell transaction history
- ▸ JWT auth with bcrypt-hashed credentials
- ▸ Light and dark theme support via next-themes
Tech stack
frontend
backend
Outcome
Cryptofolio is deployed and used for portfolio tracking and risk-free practice trading. The replay-based engine and offloaded third-party calls keep the backend lean while the platform stays accurate — a focused tool that does one thing, dependably.