Web work

Things I've built.

Small, focused web apps and Chrome extensions that keep your data on your machine. For support or feedback on any of them, get in touch with me on Threads or Twitter.

Web apps

Web app · pickleballscores.app

Picklepark

Run a pickleball tournament from your phone. Organizers tap in scores at the courts; players and fans follow live scores and standings via a QR code. Round robins, mixers, pools and brackets. Free, no app to install.

Visit pickleballscores.app ↗

Chrome extensions

Hum

Fade out. Focus in.

Watch the video tutorial ↗

Release notes 4
v0.0.5
  • Migration to Chrome Extension Manifest V3, which necessitated a nearly full rewrite of the extension
  • Added “save” and “load” buttons so that users can hang on to a favorite Hum
  • Adjusted front-end styling to accommodate save and load buttons inside of the maximum non-scroll height of the popup
v0.0.4
  • Changed the color of the mute button active state.
  • Minor edits to footer.
v0.0.3
  • Added Google Analytics.
v0.0.2
  • Minor fix to keep ‘Mute’ button synchronized correctly.

Package Tracker

Track and manage your package tracking numbers.

A simple extension to keep track of a package and its corresponding tracking link.

Get it on the Chrome Web Store ↗

Simple Color Picker

Pick colors from any webpage.

A point-and-click tool to grab the hex value of any color on any element on a web page.

Get it on the Chrome Web Store ↗

Vagal Hum

A simple tone generator for humming practice.

Vagal Hum is designed for vagus nerve stimulation via the laryngeal and pharyngeal branches. Tap the orb to play a clean sine wave, match the pitch, and follow the 4s inhale / 8s hum-out breath guide to activate the parasympathetic nervous system.

Release notes 1
v1.0.0
  • Clean sine tone (80–260 Hz) with precise resonance slider
  • Four presets covering typical male and female vocal ranges
  • Integrated breath pacing guide for extended exhales
  • Persistent audio via “offscreen” permission (keeps playing when popup closes)
  • Privacy-first: No tracking, no network requests, works entirely offline

Webcam Mirror

Quick-glance webcam feed from your toolbar.

A minimal Chrome Extension that opens your webcam as a mirror in the extension popup. Click the icon, see yourself. No servers, no accounts, no data leaves your machine.

Release notes 1
v1.0.0
  • Initial release — Manifest V3
  • One-click webcam mirror in the maximum 800×600 extension popup
  • Mirrored video feed via CSS transform for natural self-view
  • One-time setup page to handle Chrome's camera permission (popups cannot trigger the permission prompt natively)
  • Graceful error handling for missing cameras, in-use devices, and denied permissions
  • Automatic stream cleanup on popup close
  • Fallback to unconstrained video if ideal 1280×720 is not supported
  • Entirely self-contained — no external domains, services, or network requests

Heft

Text-only zoom and bolder fonts for thin, tiny type.

Plenty of sites set their body text in a hairline weight at 13px. Heft brings back the browser's old “zoom text only” behaviour: Cmd/Ctrl + and − enlarge the words without zooming the whole page, so columns, images and menus stay where they are. A five-step boldness dial thickens spindly fonts, and every setting is remembered per site.

Release notes 2
v1.1.0
  • Fixed the most common reason Heft “only worked on some sites”: site CSS that outranked ours. Heft now detects when a change did not take effect and applies it directly to those elements instead
  • Text inside open shadow roots (web components) is now resized
  • Text inside embedded frames is now resized, and a frame follows the setting chosen for the page being read
  • New “Check this page” button in the popup, reporting how many text elements were resized, how many had to be forced past the site's CSS, and anything that could not be changed, with the reason
  • Optional console logging for a detailed per-element breakdown
  • Permissions changed: activeTab replaced with host_permissions, which the popup needs in order to ask the page what actually changed. The install warning is unchanged
v1.0.0
  • Initial release — Manifest V3
  • Text-only zoom from 50% to 300%, applied inside the site's existing layout
  • Five-level boldness dial: added font weight first, then a hairline stroke for fonts that only ship one thin cut
  • Cmd/Ctrl +/− for size, Option/Alt + Cmd/Ctrl +/− for boldness, Cmd/Ctrl 0 to reset both
  • Settings saved per site, with a per-site switch to hand the shortcuts back to pages that use them for their own zoom
  • Keeps up with infinite scroll, single-page apps and live feeds
  • No accounts, no analytics, no network requests

Questions, bugs or ideas? Reach me on Threads (@mehughes124) or Twitter (@mehughes124). Privacy details are on the privacy page.