Skip to content

Repository files navigation

MyHoldings

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.

Stack

  • web - React + Vite + TypeScript + Tailwind CSS
  • api - Node.js + Fastify + TypeScript (live quotes via yahoo-finance2)
  • db - SQLite via Drizzle ORM (better-sqlite3)

Local development

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 db

Start the app:

SECONDARY_CURRENCY="HUF,Ft,hu-HU" npm run dev

Starts api (http://localhost:3000) and web (http://localhost:5173) with HUF (Ft) as a secondary currency.

Docker

Build image locally via compose and start it:

docker compose up --build -d

Open the app on http://localhost:9999

Docker compose pulling pre-built docker image

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:8080

License

The MIT License (MIT)

Screenshots

Full page screenshots, light and dark theme

Full page screenshot, light theme Full page screenshot, dark theme

Mobile screenshots

Mobile: portfolio summary and watchlist Mobile: account holdings

Modals

Modal: add new holding for an account Modal: edit watchlist Modal: edit note

Demo video

https://www.youtube.com/watch?v=K7bcUhHu9ug

About

A simple, single-user web app to track your current stock portfolio.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages