I build tools at the intersection of AI, real-time data, and delightful UX β mostly to scratch my own itch, often ending up as something others can use too.
MCP Station
π Live
MCP servers and plugins that mirror real enterprise work data β HR, CRM, invoices, and IT ticketing. Read and write. No auth, no setup. Paste a URL into Copilot Studio, Claude, Cursor, or ChatGPT and test ideas fast.
MCP servers and plugins that mirror real enterprise work data β HR, CRM, invoices, and IT ticketing. Read and write. No auth, no setup. Paste a URL into Copilot Studio, Claude, Cursor, or ChatGPT and test ideas fast.
ReplayLane
π Private Beta
Turn any screen recording into an interactive click-through demo. Upload a video and get a shareable HTML simulation β viewers click through each step at their own pace. Great for product walkthroughs, training, and docs.
Turn any screen recording into an interactive click-through demo. Upload a video and get a shareable HTML simulation β viewers click through each step at their own pace. Great for product walkthroughs, training, and docs.
Callwright
A voice agent that places real phone calls on my behalf, shaped by an LLM's direction and grounding. Ask your assistant to "book a table for four Friday at 7," "confirm the repair appointment in my calendar," or "call this shop and ask if they have it in stock," and it makes the call β disclosing that it's an AI, negotiating only within bounds I set, never fabricating, and reporting back. It can even book a reservation in a language I don't speak: English and Japanese out of the box, with any other language added on the fly (translated prompt + a native voice). Built on Retell and exposed as a hosted MCP server, so any assistant (Claude, ChatGPT, Copilot) can drive it; it learns the details it was missing from each call and re-dials an unanswered call once.
Callwright GitHub
A voice agent that places real phone calls on my behalf, shaped by an LLM's direction and grounding. Ask your assistant to "book a table for four Friday at 7," "confirm the repair appointment in my calendar," or "call this shop and ask if they have it in stock," and it makes the call β disclosing that it's an AI, negotiating only within bounds I set, never fabricating, and reporting back. It can even book a reservation in a language I don't speak: English and Japanese out of the box, with any other language added on the fly (translated prompt + a native voice). Built on Retell and exposed as a hosted MCP server, so any assistant (Claude, ChatGPT, Copilot) can drive it; it learns the details it was missing from each call and re-dials an unanswered call once.
AdoptionPulse
π Live
AI adoption maturity assessment that guides organizations through a decision-tree questionnaire to evaluate AI readiness across a three-phase model β Empower, Reshape, and Reinvent.
AI adoption maturity assessment that guides organizations through a decision-tree questionnaire to evaluate AI readiness across a three-phase model β Empower, Reshape, and Reinvent.
FlightView
Raspberry Pi kiosk app tracking aircraft overhead via OpenSky Network. Two themes β vintage Solari split-flap board and modern Heathrow signage β for 7" and 10" touchscreens.
FlightView GitHub
Raspberry Pi kiosk app tracking aircraft overhead via OpenSky Network. Two themes β vintage Solari split-flap board and modern Heathrow signage β for 7" and 10" touchscreens.
OrionSleep
Brings the Orion Sleep mattress topper into Apple HomeKit. A Hubitat driver plus Postman collection that reverse-engineer the bed's API for temperature and thermal-relief ("hot flash") control β so a physical button can warm, cool, or trigger relief on either side of the bed.
OrionSleep GitHub
Brings the Orion Sleep mattress topper into Apple HomeKit. A Hubitat driver plus Postman collection that reverse-engineer the bed's API for temperature and thermal-relief ("hot flash") control β so a physical button can warm, cool, or trigger relief on either side of the bed.
Tempra
An offline-first PWA for tracking hot flashes and menopause symptoms, built for the case that actually matters: 3am, in the dark, on a phone with one bar. One tap logs a flash; intensity, nine symptoms, a note and a finger sketch are all optional and editable later. Also logs from Siri, an iOS Shortcut, or the bedside button that starts the bed cooling β and exports the lot as CSV or JSON. Fastify + SQLite on Fly.io, replicated with Litestream.
Tempra GitHub
An offline-first PWA for tracking hot flashes and menopause symptoms, built for the case that actually matters: 3am, in the dark, on a phone with one bar. One tap logs a flash; intensity, nine symptoms, a note and a finger sketch are all optional and editable later. Also logs from Siri, an iOS Shortcut, or the bedside button that starts the bed cooling β and exports the lot as CSV or JSON. Fastify + SQLite on Fly.io, replicated with Litestream.
βοΈ
Hubitat
Derived-sunlight automation for exterior shades. Combines solar position, Open-Meteo radiation, facade geometry, and dwell-gated hysteresis to safely control multiple one-way Somfy RTS/Bond shades.
Hubitat
Hubitat Solar Shade Controller GitHub
Derived-sunlight automation for exterior shades. Combines solar position, Open-Meteo radiation, facade geometry, and dwell-gated hysteresis to safely control multiple one-way Somfy RTS/Bond shades.
SalonRunner MCP
A self-hosted MCP server that books salon appointments through SalonRunner β the booking system my hair salon uses. Ask your assistant to "find a haircut next Tuesday with my usual stylist" or "cancel my Friday appointment," and it lists services and stylists, finds real availability, and books or cancels on my behalf. It reverse-engineers the SalonRunner client API and is exposed to claude.ai as a remote connector β you sign in with your salon login on a consent screen, your credentials are encrypted into the token (so authorization survives scale-to-zero), and one deployment can serve any salon on SalonRunner.
SalonRunner MCP GitHub
A self-hosted MCP server that books salon appointments through SalonRunner β the booking system my hair salon uses. Ask your assistant to "find a haircut next Tuesday with my usual stylist" or "cancel my Friday appointment," and it lists services and stylists, finds real availability, and books or cancels on my behalf. It reverse-engineers the SalonRunner client API and is exposed to claude.ai as a remote connector β you sign in with your salon login on a consent screen, your credentials are encrypted into the token (so authorization survives scale-to-zero), and one deployment can serve any salon on SalonRunner.
RTR Size Check
A Chrome and Edge extension that shows real Rent the Runway size availability and scarcity directly on product grids.
RTR Size Check GitHub
A Chrome and Edge extension that shows real Rent the Runway size availability and scarcity directly on product grids.