What I'm building

Products

Alongside the research, I build products that keep people's data on their own devices and help communities find each other.

Private, local RAG for the Mac

Garage

garagerag.app ↗

Garage indexes your documents, code, notes and messages on your own computer and serves them to your AI assistant over the Model Context Protocol. It uploads nothing: your assistant gets only the excerpts it searches for, never the whole collection.

  • Hybrid search that combines vector similarity with full-text search
  • Tracks whether each document is your own work, a reference, or something you received
  • Runs its models locally through llama.cpp, Ollama or LM Studio
  • Works with Claude Desktop, Claude Code, Cursor and other MCP clients
  • Signed macOS app for Apple Silicon (macOS 14 and later), a TestFlight beta, a Linux command line, and Windows on the way
The garagerag.app home page, headed
Garage's search window on the Mac, ranking documents by hybrid score with the matching excerpt shown alongside

The platform for community apps

AudienceKit

audiencekit.com ↗

AudienceKit gives a community its own app, with its own name, domain and look, and the venues, events and people that make it real. It generalizes Hot Mess: one API serves every audience, and each keeps its own identity.

  • Venues grouped by city and neighbourhood, and events brought in from Facebook, Eventbrite and Ticketmaster, with RSVPs
  • Pages for DJs, performers and hosts that members can follow
  • Photographers share their sets straight to the audiences they shoot for
  • An admin console for each audience, skinned in its own colours
  • A GraphQL API with SDKs for Swift and Ruby
The audiencekit.com home page, headed
The AudienceKit developer docs home page, headed

Queer nightlife, live

Hot Mess

hotmess.social ↗

Hot Mess shows you the venues, events and DJs of your queer nightlife scene, and which of your friends are already out. I started it in 2015 to index a subculture by its people, places and events, and it now runs as an audience on AudienceKit.

  • Now: the bar you're in, who is spinning, and where the night is heading
  • Every party, drag show and DJ set in your city on one calendar, with RSVPs your friends can see
  • The bars and clubs of your scene, with their upcoming nights
  • Follow the DJs, hosts and performers you love
  • Apps for iPhone and Android, plus a web app, with share links that open straight in the app
The hotmess.social home page in dark mode, headed
The Hot Mess showcase on audiencekit.com, with its pink accent and pride-flag spectrum

Create the unseen

Love Wins Media / LuminX

lovewins.media · luminx.media ↗

Love Wins Media makes media for LGBTQ+ people, causes and the businesses that stand with them. As LuminX it takes the same crew and gear to brands, from custom AI neural networks to cinema-class production.

  • Love Wins: "Tell it out loud." Our crew and our gear, at your story's service
  • LuminX: "Create the unseen." Marketing, photography, cinema, 3D scanning and printing, live events, drone imaging and rentals
  • Both sites share services, talent, equipment and a client portal
  • Its software lives in the lwm-luminx GitHub organization, including garage-rag, hotmess.social and hedonism_bot
The lovewins.media home page, with the Love Wins rainbow wordmark and the headline
The luminx.media home page, with the LuminX aperture wordmark and the headline

More of my open-source work is in Projects and places and on my About page.