Skip to content

Projects

Four things, all in production.

Built alone, end to end — architecture, data model, security and deployment. Each one is live and you can go and use it.

Selected work

Live conversational-avatar platform — multi-provider AI agents, real-time voice and video

The Interactive Avatar platform: a real-time 3D avatar in a rendered conservatory scene, an options panel controlling moods, emojis, gestures, poses and camera, and a live chat transcript beside it.
3 providers
OpenAI, Gemini and Groq with automatic fallback
ARKit visemes
audio-driven lipsync on a Three.js talking head
RAG
chunking, embeddings and retrieval built end to end
SDK + API
embed library, facial tracking, published docs
  • OpenAI
  • Gemini
  • Groq
  • WebRTC
  • WebSocket
  • Deepgram
  • Cartesia
  • MediaPipe

How it was built →

AI-driven competitor-intelligence SaaS — Next.js, Supabase, Stripe, Vercel Cron

The Rival Radar landing page: 'Know the moment your competitors move', beside a panel listing three detected changes tagged Major and Notable.
25×
cost difference between two API endpoints, found in a header
RLS
row-level security on every tenant table
Daily
scheduled scrape via Vercel Cron
  • Next.js
  • TypeScript
  • Supabase
  • Stripe
  • Vercel Cron
  • Anthropic Claude

How it was built →

Real-time multiplayer 3D flight game in the browser — self-architected netcode

A light-glider trailing a glowing wake over procedurally generated terrain in Shard Islands, with floating energy cores and a domed beacon on the horizon.
0.003cm
client/server drift over 280m of flight
6× faster
frame time after profiling, 4.3ms → 0.70ms
17 KB/s
wire cost, full 24-player room
20Hz
authoritative server tick
  • Next.js
  • React Three Fiber
  • WebGL
  • Colyseus
  • Fly.io
  • pnpm monorepo

How it was built →

Production e-commerce site — Stripe fulfilment, signed-URL delivery, admin CMS

The Chart Chic storefront: a serif hero reading 'Patterns that make your hoop feel like home', a watercolour illustration of a woman embroidering, and pattern category pills.
RLS bypass
found and fixed in a Postgres view pre-launch
Signed URLs
download gating tied to fulfilled orders
Verified
reviews restricted to actual purchasers
  • Next.js
  • Supabase
  • Stripe Checkout
  • Vercel

How it was built →

Plugin catalogue

Forty-seven commercial JavaScript plugins for the Bubble platform, published since 2017 and maintained since. Paying users, public ratings, and bug reports that arrive whether or not it is convenient — the closest thing to an apprenticeship I have had.

Most reviewed

  • VideoJS Advanced + MUX (All Media)1.1K ratings · 4.3★
  • Google Maps Geometry/Drawing + W3W366 ratings · 4.8★
  • Font to SVG311 ratings
  • What3Words (search)180 ratings · 5.0★
  • Infinite Scroll172 ratings · 4.1★
  • Service Worker162 ratings · 5.0★
  • Performance Timing (service worker)138 ratings · 5.0★
  • TinyMCE v8 Advanced (cloud)96 ratings · 4.9★

Public rating counts, not install counts.

The AI and real-time line

The later plugins stopped being a grab-bag and became a product line in the space I now work in full time. Each one shipped to paying developers before it ever appeared in a product of my own.

  • AI Agentthe agent runtime, 43 ratings at 5.0
  • Bubble Agentic AItool-calling and multi-step agents
  • Bubble RAG AIretrieval over user documents
  • Bubble Data AInatural language over application data
  • OpenAI (Realtime STS) WebRTCspeech-to-speech over WebRTC
  • LiveKit (Real-Time Video/Audio)59 ratings at 5.0
  • Avaturn Livereal-time avatars
  • Speech Animation (mic & voice)audio-driven facial animation
  • VideoJS Audio Recorder + Cloningvoice cloning, 20 ratings at 5.0
  • Scraper API40 ratings at 5.0

See all 47 on Bubble