All work

Simfolio

Learn how markets behave without the risk. Real prices, a real portfolio, entirely simulated money.

Portfolio dashboard showing holdings and total value Trade screen with a price chart and order panel Simfolio sign-in screen
Type
Full-stack web app
Role
Developer & Designer
Year
2026

Before you open it

Cold start (about 50 seconds)
The API sleeps after 15 minutes idle on the free hosting tier. The first visit after a quiet period hangs before anything loads. Everything after that is fast.
Charts can lag or fail to fill
The free market-data tier allows 8 requests per minute, and switching ranges plus loading sparklines trips it easily. Charts retry with back-off and fill in a few seconds late; after six failed attempts they show "no history available."
Prices only move during market hours
9:30 to 16:00 ET, weekdays. Outside that window quotes and P/L look frozen, which is correct behaviour rather than a bug.
Visit the live app

Start with a cash balance and build a portfolio from scratch. Search across 30,500 US-listed stocks and ETFs, place buy and sell orders at live market prices, and see exactly what an order will cost, and what your cash and share count will look like afterwards, before you confirm it.

Your portfolio is valued continuously against live prices rather than frozen at page load. Total value, buying power, how much of your cash is deployed, and unrealized profit and loss all move as the market does. Average cost blends when you buy more, and selling part of a position realizes only that share of the gain.

Every symbol has its own page: a price chart across six time ranges, company fundamentals like market cap, P/E and dividend yield, and a trade panel that never leaves the screen. Add anything to a watchlist with one tap. It updates instantly and quietly syncs in the background.

Top up your practice cash whenever you want, and review every buy, sell, and deposit in a running activity feed with the exact price and timestamp each order filled at.

Tech Stack

  • Node.js & Express: API server and HTTP routing
  • PostgreSQL / SQLite: Production database and local development, behind one shared interface
  • Zod: Request validation at the boundary
  • JWT & bcrypt: Session tokens and password hashing
  • Finnhub, Twelve Data, Stooq: Live quotes, price history, and a keyless fallback
  • Vanilla JavaScript: Client built with no framework and no build step
  • Cloudflare Pages, Render, Neon: Static client, API process, and managed database