Instruments for seeing
Almanac
One page, four times a day, on things nobody can change. A Raspberry Pi renders it, and a reMarkable shows it as its sleep screen.
Clocks
An analog clock drawn from four images (hours, minutes, seconds and ticks), served with FastHTML.
Fantasy Premier League history
Fetches Fantasy Premier League player data every gameweek and backfills any week that was missed.
Link graph
Crawls a website and builds a graph of its internal and external links with NetworkX.
Live promotions dashboard
A real-time marketing dashboard that every location and the marketing team watched. Promotions launched live from it to match demand to delivery supply and keep unit economics high.
Messaging scraper
Saves timestamped titles, descriptions and screenshots of company homepages, product pages and pricing pages, side by side for comparison. It ran across the portfolios of Accel, Greylock, Kleiner, Redpoint, Sequoia and Y Combinator.
Overlook
Auto-captured screenshots of a customer journey (inbox, voicemail, texts), with version control and a point-in-time view. A Django SaaS, from mockups to app.
Phone browser
Drives the real Chrome on an Android phone from the Mac, so a page loads and renders the way someone holding that phone sees it.
Phone cameras
Turns spare Android phones into webcams and remote second cameras, driven from the Mac over USB or Wi-Fi, with nothing to buy.
Plane watcher
Picks up the aircraft overhead with an RTL-SDR and readsb, and names them from an aircraft database.
Radio console
A radio console on a Raspberry Pi: planes, ships, tire sensors and NOAA weather radio on a 7-inch touchscreen, and what the real air taught it.
Stock charts
A Streamlit page of stock and commodity prices, up and down streaks, news and real estate numbers.
Tape measure readout
A digital readout that reads an ordinary tape measure with a camera fixed to the tape's body.
Tide watch
A tide watch for Budd Inlet, on custom Watchy firmware: a 24-hour tide curve, sun times computed on the wrist, and a radio that only runs on the charger.
Timescale tickers
A Streamlit demo that charts intraday stock prices from a Timescale database, in buckets from 1 to 365 days.
Website screenshots
Screenshots every page of a website with Playwright, logging in first when it has to, and maps the site's internal links. Published as the swift-snappy package.