Dallas, TX · shipping weekly

I build small software that gives people their time back.

Product manager by trade, builder by habit. I design the things you aren't thinking about or don't venture to try — and they should be stupid simple to pick up and put down.

Matt Duke Dallas, TX 170+ hours saved per year 100 AI tools curated
Activity

What that looks like in commits

288
Pull requests merged
870+
Commits
39
Active repositories
35,000+
Lines changed

Across public and private repositories, as of August 2026.

Selected work

Three things I actually use

Birthday Email Automator

Compose and send personalized birthday emails with gift search integration. Import contacts from Google Calendar, Apple Contacts, Outlook, or CSV. Configurable heads-up reminders so you never miss a birthday again.

HTML / CSS / JSEmailJSICS / vCard ParserCSV ImportGitHub PagesAWS S3localStorage
Saves ~50 hrs/yearZero dependenciesMulti-format import (ICS, vCard, CSV)Email + gift search

Overview

A static web app that lets you manage birthday reminders and send personalized emails with gift suggestions. No backend required -- runs entirely in the browser with EmailJS for delivery and localStorage for persistence.

Key Features

  • Email Composer -- Write and send birthday emails directly from the app via EmailJS
  • ICS / vCard Import -- Upload .ics or .vcf files from Google Calendar, Apple Contacts, or Outlook
  • CSV Import -- Flexible column detection, supports multiple date formats (YYYY-MM-DD, MM/DD/YYYY, January 5 1990), downloadable template
  • Gift Search -- Integrated gift idea lookup for each contact
  • Heads-Up Reminders -- Configurable advance notifications so you never miss a birthday
  • Settings Tab -- Configure EmailJS credentials in the UI (no rebuild needed)
  • CSV Export -- Back up your friends list at any time
  • CORS Error Handling -- Clear diagnosis with "Open in mail app" fallback

Tech Stack

LayerTechnology
FrontendVanilla HTML / CSS / JavaScript (zero dependencies)
EmailEmailJS (public key, service ID, template ID)
StorageBrowser localStorage
ImportICS parser, vCard parser, CSV parser (all client-side)
HostingGitHub Pages or AWS S3

EmailJS Template Setup

Create a template with these variables: {{to_email}}, {{subject}}, {{message}}, {{to_name}} (optional). That's it.

Import Formats

  • Google Contacts: Export as vCard (.vcf)
  • Google Calendar: Export as .ics
  • Apple Contacts: File → Export → Export vCard
  • Outlook: File → Import/Export → Export to CSV
  • CSV: Header row with Name, Email, Birthday, Relationship, Notes

Deploy

# GitHub Pages: push to main, enable Pages via Settings

# AWS S3:
cp .env.example .env
chmod +x deploy-aws.sh
./deploy-aws.sh

Sula

Live on the Chrome Web Store

Browser extension for consumer advocacy. It reads the page you're on to surface real customer-service contacts behind chatbot walls, show your refund deadlines, draft the letter that gets your money back, and track subscriptions. Formerly Find Me People.

Chrome ExtensionManifest V3Vanilla JSDOM ScanningSchema.org ParserZero Tracking
Saves 45+ hrs/yearAuto-scans every pageRanked by relevance score267 passing tests

The Problem

Customer service is disappearing. Companies are cutting support staff, hiding contact info behind chatbot walls, and burying phone numbers under 4+ clicks. The "annoyance economy" costs Americans $165 billion per year in wasted time and money (Groundwork Collaborative, 2026). Hold times are up 60% over 20 years. 74% of customers reported a problem last year -- double the rate since 1976.

What It Does

Sula runs automatically on every page you visit and surfaces:

  • Customer service emails -- ranked by relevance (support@, help@, care@ score highest; noreply@, jobs@ are penalized)
  • Phone numbers -- US and international, prioritized when found near support keywords
  • Business hours -- via schema.org JSON-LD, microdata, and text patterns -- with live "Open Now" / "Closed Now" status
  • Support page links -- detects /contact, /support, /help even when no direct contact is on the page
  • Badge count on the icon shows how many contacts were found
  • Click to copy -- one click puts any contact on your clipboard

Time Saved Calculation

Average American manages 10-15+ service relationships and faces 60-80 customer service interactions per year. At 10-15 minutes spent hunting for the right number or email each time, that's 15-20 hours per year wasted on search alone -- before you even reach a person. Sula reduces that search to about 5 seconds. Saves 20+ hours per year on search, and additional time by surfacing direct support pages that bypass chatbot funnels.

Privacy

Zero data collection. Zero network requests. Zero tracking. All scanning happens locally in the browser. No backend, no analytics, no cookies. Open source for verification.

Tech Stack

LayerTechnology
PlatformChrome Extension (Manifest V3)
Content ScriptVanilla JavaScript -- DOM scanner with regex + schema parser
BackgroundService Worker for badge counts
PopupHTML + CSS + JS, no frameworks
PermissionsactiveTab, scripting only

Quick Start

git clone https://github.com/MatthewDuke1/find-me-people.git
# Open chrome://extensions/
# Enable Developer mode
# Click "Load unpacked" and select the folder

AI Starter Guide

Interactive site for people who want to use AI but don't know where to start. Pick a goal (automate, build, write, design, code, learn) and get curated tool recommendations with descriptions, free credits, differentiators, and "Try it" links.

HTML / CSS / JSZero DependenciesAutocomplete SearchFiltersGitHub Pages
Saves ~75 hrs/year100+ AI tools curated12 goal categoriesFree tier filters

The Problem

The AI tool landscape is overwhelming. There are now thousands of AI products across automation, writing, code, design, video, audio, research, agents, learning, and productivity -- and the average person doesn't know where to start. Every new tool costs you hours just to figure out what it does, whether it's worth using, and how it compares to alternatives.

The AI Ramp-Up Tax

For each new AI tool you consider, you typically spend:

  • 30-45 minutes reading marketing pages and watching demos
  • 30-60 minutes creating an account and configuring settings
  • 1-2 hours running test prompts to evaluate quality
  • 30 minutes comparing pricing and free tier limits
  • 30 minutes reading reviews and Reddit threads to find drawbacks

Total: 3-5 hours per AI tool you evaluate.

The Conglomerated Math

The average curious knowledge worker evaluates 15-20 AI tools per year (one or two per month, conservatively). At 3-5 hours each, that's 45-100 hours per year just spent figuring out which tools to use -- before any actual productive work.

This guide compresses that entire evaluation phase into a 5-minute browse. Pick your goal, see the tools that win in that category, read the article and the differentiator dropdown, check the offer details, and click through to start. Saves a conservative ~75 hours per year for anyone seriously exploring AI tools.

Key Features

  • 12 goal categories -- Automate, Build, Write, Design, Video, Data, Code, Research, Agents, Audio, Learn, Productivity
  • 100+ tools curated with descriptions, pricing, credit offers, and direct links
  • Autocomplete search -- Type "make a logo" or "automate emails" and jump straight to the right category
  • Filters -- Show only Free Tier, Open Source, Beginner, or Intermediate options
  • "Read more & offers" dropdown -- Detailed article + green promo box with current free credits and student discounts
  • "How does this product stand out?" dropdown -- Specific differentiators vs competitors
  • Zero dependencies -- pure HTML/CSS/JS, no build step, no tracking

Quick Start

git clone https://github.com/MatthewDuke1/ai-starter-guide.git
open docs/index.html
# Or visit: https://matthewduke1.github.io/ai-starter-guide/