Stocks
The portfolio manager for a multi-account equity book: a daily review, a research pipeline, P&L and the briefings.
Ten applications I designed and built for a family office, open here as one live, read-only demo. Every account, position, deal, document and person in it is invented; the screens, the workflows and the market data are the real thing.
Opens in Stocks. Move between the ten apps with the switcher at the top of the sidebar. The apps open with your access code; nothing to install.


Each card opens straight into that app's live demo. Details explains what it does and which screens to open first.
The portfolio manager for a multi-account equity book: a daily review, a research pipeline, P&L and the briefings.
The office's system of record: every entity and investment, the properties, distributions, treasury and tax.
Where new deals get decided: a staged pipeline, per-type scoring, underwriting and a memo that grows with the deal.
A monitor for the private book: marks and multiples, operating scorecards and every investor update, read.
The mailbox that files itself: it reads every email and attachment, proposes where it goes, and a person approves.
The family's giving, reconciled: a month grid, per-cheque sign-offs, tuition and the foundation's register.
The office's work in one list: tasks from email, projects, review before done, meetings that run on tasks.
The co-investors' portal: their investments, deal updates, K-1s and notices, and the office's admin console.
One sign-in for every application: users and app access, AI usage and cost, audit and activity.
A family office runs on a surprising amount of software it never set out to own: a book of public equities across many brokerage accounts, a few hundred private investments held through a web of entities, dozens of properties each sending a monthly statement in its manager's own format, a shared mailbox that receives thousands of documents a year, and a pipeline of new deals that each need a decision. For years that lived in linked workbooks, email threads and a few people's memories. These ten applications replaced that, one domain at a time, and they are used every working day by the people who run the office.
They were built in-house, by one person, on one stack: Python and Flask, PostgreSQL, server-rendered pages with a light reactive layer, and a careful use of language models where reading unstructured material is the job. Each one has a daily rhythm of its own, with overnight feeds, scheduled briefings and background workers, and each is covered by a large test suite that is deliberately checked by mutation, so a test that cannot fail is found before it is trusted.
The demo is each live application captured page by page, over an invented book that was generated to be realistic rather than tidy: positions that disagree with each other, statements with a line the mapping does not know, deals stuck in a stage, a filing that is late. That is what the real thing looks like, and it is what these tools are for.
One identity across every app, with per-app access grants, device alerts and an account switcher for the people who wear several hats.
A single PostgreSQL cluster with per-app roles, boot-time migrations serialised with advisory locks, and no silent fallbacks to anything else.
An in-app assistant that can read any app the signed-in person is allowed to see, through the apps' own calculations rather than raw tables.
Every database, repository and secret captured nightly to two object stores, one of them immutable, and the whole platform rebuilt from that copy in a rehearsal.
A webhook per app, a serialised safe-deploy that waits out a running import, and a web/worker split so a background job can never take a page down.
Thousands of tests across the ten, with mutation passes that re-introduce each defect to prove the test that guards it can actually fail.
The code is private. If you would like to walk through any of it, get in touch.