All projects

Personal project / Independent project / March 2024–present

Stock App

A personal finance workspace that turns raw brokerage and market data into a small number of clear, explained decisions, with every side effect kept under my control.

Active personal use; 2,000+ commits

2,000+
commits since March 2024
600+
Python test files
800+
TypeScript test files
56
API routes behind about 20 pages

The problem

Checking dividends, cost basis, spending, and long-term goals by hand across accounts is slow and easy to get wrong. Most tools show numbers without explaining why a suggestion exists or how trustworthy the data behind it is.

My role

Sole designer and developer.

  1. Sources
    • Brokerage exports
    • Market data
    • Spending records
  2. Python core
    • Dividend checks
    • FIFO cost basis
    • SQLite
  3. Workspace
    • Next.js pages
    • API routes
    • Source-health checks
  4. Owner
    • Explained decisions
    • Review and confirm
    • Read-only by default
From source data to a decision. Nothing reaches a recommendation without a source-health check, and nothing reaches the broker without my review.

What I did

  1. A Python core for the accounting

    Python modules handle dividend-transaction checks, FIFO cost-basis accounting, market data, reports, and exports, backed by SQLite and a large pytest suite.

  2. A Next.js owner workspace

    A Next.js, React, TypeScript, and Tailwind interface with about 20 pages (operations status, spending, goal tracking, insights, a stock picker, crypto, assets, and tasks) served by 56 API routes over local data adapters.

  3. Recommendations that explain themselves

    A decision contract requires every suggestion to separate a real action from an optional idea, say why it exists and what would change it, and show whether its sources are fresh.

  4. Safety before automation

    The app is read-only by default. Orders are possible only in one dedicated account, through an official brokerage integration, after I review and confirm each one. Automatic lanes stay off until I turn them on.

  5. Audited in cycles

    Repeated full-app audit cycles check routes, UI, latency, automation, source trust, and recommendation quality, and each finding is recorded so it is not repeated.

Stack

  • Python
  • SQLite
  • pytest
  • TypeScript
  • Next.js
  • React
  • Tailwind CSS

The repository is private and holds real account data. Screenshots are taken from the running app with every number and account name masked.