A Crochet Pattern Translator for My Wife
My wife Karly crochets. Crochet patterns, if you've never looked at one, read like assembly language: dense abbreviations and conventions that vary between pattern sources. Close enough to look the same, different enough that three hours into a project you hit a gotcha.
One evening, after hearing her curse at stitch counts, a pattern that didn't make sense, and overly wordy explanations, I decided to find a solution. First I asked her what was already out there; I didn't mind spending money if something got her what she needed. She named a few sites with tools that sort of worked, but not really, and not for her particular pain points.
The pattern that broke the camel's back didn't use the normal abbreviations and shorthand glyphs ("put a stitch here, a round there"). Its rounds were just blobs of ambiguous text. So she'd experiment, back up, try again, back up, try again. That's where the frustration lived.
So I built her a translator. Paste in a pattern, get clean round-by-round shorthand plus a glyph chart that maps out the whole pattern. And if the stitch counts don't line up, the app notices and corrects them. It has caught several errors in her patterns, and plenty more in patterns she bought or found on the internet. Turns out even the pros publish rounds that don't add up.
Small software, seriously overdeployed
To make it easy on her (and me), it's a progressive web app, so it lives on her phone's home screen like a real app. It runs in Docker on my home-lab server and deploys itself: I merge to the main branch on GitHub, and a job on the server picks up the change and redeploys within five minutes.
Continuous deployment for a user base of one is objectively ridiculous, complete overkill, and I highly recommend it. A feature request or a bug report comes in, I get to work, and a magic moment later it just appears on her device.
Why I like this project
An audience of one is the best product feedback loop that exists. There's no guessing what the user wants. She tells me at dinner. Requirements arrive as "it would be nice if I could do this" or "can you make it do that," and they ship the same week, sometimes the same day. Every developer should build software for someone they live with at least once; the fringe benefits alone are worth it.
The other part is simpler: it let me take what I've learned and make something useful for someone I love.
And according to Karly, the app is a genuinely novel solution, one that seems to be growing beyond my audience of one. It's morphing into something larger, and I'm enjoying every moment of it.