A simple, single-user web app to track your current stock portfolio. It stores accounts, cash balances, and stock holdings (positions). You can add stocks to your watchlist and notes to stocks. No login, no history, just your current holdings.
NOTE: Account holdings (stocks) only work properly if the holding you add has USD ($) currency.
- web - React + Vite + TypeScript + Tailwind CSS
- api - Node.js + Fastify + TypeScript (live quotes via
yahoo-finance2) - db - SQLite via Drizzle ORM (
better-sqlite3)
Prerequisites:
- Node 24 (
nvm use) - npm 10+
Install dependencies and migrate the DB:
nvm use # selects Node 24 from .nvmrc
npm install # installs all workspaces
npm run db:migrate # creates / migrates the local SQLite dbStart the app:
SECONDARY_CURRENCY="HUF,Ft,hu-HU" npm run devStarts api (http://localhost:3000) and web (http://localhost:5173) with HUF (Ft) as a secondary currency.
Build image locally via compose and start it:
docker compose up --build -dOpen the app on http://localhost:9999
name: my-holdings
services:
my-holdings:
image: ghcr.io/anubisss/my-holdings:latest
container_name: my-holdings
restart: unless-stopped
environment:
- SECONDARY_CURRENCY=HUF,Ft,hu-HU
volumes:
- ./apps/api/data:/app/data
ports:
- 9999:8080The MIT License (MIT)
Full page screenshots, light and dark theme
Mobile screenshots
Modals