Built a global stock-market platform for web and iOS, plus an autonomous AI content engine that runs its X account
The global market, ranked live: roughly 5,700 companies across the US, Asia, Canada, the UK, and Europe, every one normalized to USD, with a full research suite around the rankings.
Built solo end to end, shipping on the web and as a free iOS app. And it markets itself: an autonomous engine posts to X five or six times a day, straight from production data.
View Project →It posts these itself
An autonomous engine runs the X account: five or six posts a day, copy written by an LLM from production data, a branded card on every post. A validator makes an invented number impossible to publish.





One chart engine, everywhere
Every chart shares a custom engine with a signature reverse-dither fill: solid at the value line, scattering into pixels below. The same look carries from the web to iOS to every share card.


The whole market, one product
Roughly 5,700 companies across the US, Asia, Canada, the UK, and Europe, FX-normalized into one live USD ranking, with the research suite built around it.




The market in your pocket
A free iOS app built with React Native and Expo in the same monorepo, with updates shipping over the air between store releases.



Engineering notes
Global normalization
Nine markets, each with its own currency and calendar, reconciled into one USD ranking that updates live.
An LLM that cannot invent a number
The model writes prose only. A whitelist owns the numbers, so a hallucinated figure is structurally impossible to publish.
The dither shader
The Canvas chart fill had no iOS equivalent, so it was rebuilt as a Skia fragment shader that matches the web pixel for pixel.
Cacheable pages with a paywall
Stock pages stay static ISR. Entitlements are fetched client-side, so the paywall never touches the cache.
Outcome
A complete product behind a paid tier, live on the web and the App Store, built and operated by one person.
The growth engine posts five or six times a day unattended, every number validated against production data.