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.
Inside the product
Real screens, numbers masked.



- Sources
- Brokerage exports
- Market data
- Spending records
- Python core
- Dividend checks
- FIFO cost basis
- SQLite
- Workspace
- Next.js pages
- API routes
- Source-health checks
- Owner
- Explained decisions
- Review and confirm
- Read-only by default
What I did
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.
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.
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.
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.
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.