BatchCards
Personalized wedding thank-you cards — paste a guest list, pick a style, print. Every card unique, no spreadsheet gymnastics. Live product with its own SEO guides and a Pinterest content pipeline behind it.
Visit the site ↗Websites and software for small businesses and real problems. Local-first, shipped, and maintained. Muncie, Indiana.
Shipped work
Real products, in real hands. Each one built for a specific need and shipped to people who use it.
Personalized wedding thank-you cards — paste a guest list, pick a style, print. Every card unique, no spreadsheet gymnastics. Live product with its own SEO guides and a Pinterest content pipeline behind it.
Visit the site ↗A real Muncie bike shop with no website. I took my bike in for a repair, built them a one-page site with a hand-drawn neon logo and their actual hours, and walked it back into the shop. Plain HTML/CSS, no build step, so the owner can never be locked out of it.
Visit the site ↗
Demo site and logo for a family-owned Amish deli, bakery, and smokehouse in Fort Wayne — catering, weekly specials, hiring. Built overnight to show the owners what a real site would look like before they committed to anything.
Visit the demo ↗A concept site for a small-town chiropractic clinic — transparent pricing, same-day scheduling, six services across five pages. What I build for local businesses, shown as a working demo.
Visit the demo ↗
A wedding-flower explorer — 437 cultivars filtered by season, region, color, and role. The kind of tool a florist actually keeps open.
Visit the site ↗How I find the businesses above. Pulls local businesses from the Google Places API, audits each homepage for weakness signals (no SSL, not mobile, dead site, stale copyright), scores them, and drops them onto a kanban with a pitch prep sheet per lead. Single-file Python server, SQLite, Alpine.js. Runs privately — the screenshot uses sample data.
Python · SQLite · Google Places API · Alpine.js
On the bench now
What's under the tools right now. Half-built, honestly labeled.
Digitized a family history of more than a thousand pages — scanned binders read by vision models, then matched and reconciled into a living archive. Now on the final confirmation pass, double-checking every record by hand before it goes out to the family.
A job-search app that runs entirely on your own machine. Scrapes postings, ranks them against your history with a BM25 matcher, and drafts a grounded resume and cover letter per job with local models — with a banned-phrase detector so nothing reads like it was written by a robot. No data leaves the laptop.
Local-first personal insurance tool. Turns your policies and EOBs into a queryable command line so you can see what you actually owe, what a bill should cost, and how close you are to hitting your deductible.
I'm not going to be the most experienced person you talk to. What I'll be is the one who doesn't put it down.
I was in Australia when my grandfather had a stroke. I'd gotten there on a rugby nomination, four months into a season, mostly because I'd always wanted to go somewhere and never had. I came home mid-season with nothing, moved back in with my parents, took a job as a behavior tech ten days later, and three months after that moved out to Francesville to take care of him full time.
Caregiving is logistics. It's a hundred small things that hold only as long as somebody is holding them, and I was the somebody. So I started building tools to keep them held. I had no idea how. I learned the way I'd learned rugby, which is to say I walked on knowing nothing, was bad at it in public for a while, and stayed anyway.
Since then I've mostly built according to the problem in front of me. I asked a friend to name one thing software could fix for her. She told me, so I built her a flower database, four hundred cultivars sortable by season and color and role. I built a system that prints a personalized thank-you card for every guest on a wedding list.
First year of an MBA at Ball State, AI concentration. A thing that works and a thing that pays are not the same thing, and I want to be good at both.
A puppy named Rue, asleep on top of the desk.
And the archive. My family's history sat in binders, handwritten by people who are gone. I've digitized thousands of pages and built a pipeline to pull the names and dates off them. Now I'm doing the last pass by hand, checking every record against the original scan. Nothing goes out that I haven't looked at myself. When it's right it goes up as a site the whole family can search.