We’re already eleven days into the new year, and here I am writing a New Year Reflection Post of sorts. One thing I’ve noticed this year (and in past years, but this year especially) is that a lot of you have exchanged a concrete list of resolutions for an overall theme word. I think that’s a fine idea, so I’ve decided that my word for this year is rediscovery.
There is a kind of brain fog that feels unique to early parenthood, and yet I know it isn’t. It’s the same sort of disorienting haze that envelopes anyone who finds their time is not really their own, but rather has been sacrificed to another purpose, voluntarily or otherwise. You lose pieces of yourself, little by little, often unnoticed, until one day you begin to emerge from your experience without the faintest idea of who you are, or even who you used to be.
My son is now in school full-time, and my daughter for half a day. I have stretches of time when my harried mind can complete full thoughts, my long-tensed muscles begin to relax, and memories start to return. What did I do before I had kids? Oh, yeah, that’s right. I had hobbies! I took photographs and read books, listened to music and played video games. I noodled around on the piano and guitar, drew pictures, treated myself to good food and other little niceties.
It’s my fault that I let all of those things get buried these last few years, as I’m sure I could have made time for at least a few of them (and in a way, I did: the December Photo Project has been the only hobby-project I’ve stubbornly held on to all this time). The trouble is, I have a tendency to hyper-focus on things, and so my family and my apps received 100% of my energy.
This year is about rediscovering the person I once was, in The Before Times (before kids, before Covid, before we all became so jaded by…*gestures wildly*), and deciding what bits of that person I want to incorporate into who I am now.
More concretely, I’d like to read at least seven books—three of which will be the Lord of the Rings trilogy, which I read in high school but would like to reread. That’s up from zero books in the last six years(!). I want to continue learning Spanish with Duolingo (my username is bhansmeyer if you’d like to be accountability pals! I’ll give you all the high fives). I want to clear out all of the sample data in YarnBuddy and start filling it up with my own crochet projects. I want to dust off my Nintendo Switch and play video games again.
I realize all of this has Big Bilbo Energy (“I want to see mountains again, Gandalf! Mountains!”), but that’s exactly how I feel: like I want to shed the cares of the last few years and go on an adventure. I know many of you are hoping to do the same in one way or another, and I wish you all the best!
2022 In Review
Hyper-focusing does have its perks: the past year was an especially good one for my app business.
In addition to bringing YarnBuddy to the Mac, I began to hand-craft a database of yarns which was launched in YarnBuddy 2.0. In order to allow users to submit new yarns to the public iCloud database, I created a “PendingYarn” entity. My original intention was to copy over the data from these user-created entities one by one into a corresponding public entity that only I can write to, making sure to research and fill in any empty fields for the sake of data completeness. However, I’ve instead found it far more useful to use the yarn database submissions as a way of determining which brand/type of yarn I should add to the main database next. If I see 100 submissions of a particular line of Lion Brand yarn, I know I should go ahead and add that yarn to the database in every color. I start with a Numbers spreadsheet, which gets converted to a TSV file and then to JSON before getting exported en masse to iCloud via a helper class.
Creating such a database from scratch has been time-consuming, but so far, worth it. Since there is no comprehensive barcode database for yarns, I’ve had to get a bit creative. Sometimes I can find barcodes embedded in the html of retailer websites. Other times, I’ve resorted to scouring Etsy and Ravelry for photos of the skeins of yarn, hoping to catch an angle where I can clearly read the label and barcode number. I’ve even scanned a few codes at my local Walmart, which has a rather abysmal yarn selection.
Since most of my users are from the United States, I’ve focused mainly on popular brands here. However, my goal is to get many of the most popular European and Australian brands into the database by the end of this year.
On the financial side, things are looking pretty good for YarnBuddy. Since its launch in July of 2020 through the end of 2022, it has generated about $20k in proceeds. That amount is almost perfectly split between the yearly subscription and the one-time “lifetime” purchase. On Christmas morning, the app hit 500 subscribers. I’m hesitant to set this year’s goal at 1000 because it sounds impossible to me, but maybe goals are meant to seem that way?
I experimented with Search Ads quite a bit this year. What I ultimately learned is that while they may cause a small uptick in downloads, they aren’t the right fit for YarnBuddy.
On a whim one day I made an Instagram account for YarnBuddy. I followed the knitting and crocheting hashtags and started liking photos of projects that I thought were pretty or neat (or pretty neat). One day I accidentally liked and followed so many people that I got briefly locked out (I was just excited!). I used my first name in the bio for the account and began using it as if it were my own personal crochet-focused Instagram.
I didn’t really expect anything to come of it; I was just enjoying scrolling through the account’s timeline and appreciating everyone’s skill. Instead, I started to see an increase in new trials being started. Downloads began to slowly increase. I think I may have finally found my people in a place where I actually feel comfortable interacting (unlike Reddit 😬)! My plan is to continue working on my own crochet projects and posting about them, as well as showing photos and videos of how I’m using the app to help me. This is honestly my favorite kind of marketing: genuine, low-key, and nearly impossible to measure in any kind of useful way 😂. Hopefully I’ll have more good things to say about how it’s worked out by the end of the year.
A few months ago, when everybody and their brother was messing with DALL-E, I decided to see what ideas it could come up with for an icon for YarnBuddy. In particular, I wanted to create a holiday-themed icon, but was having trouble imagining what that might look like. DALL-E spit out a few cute ideas; one had a red yarn ball with a Santa hat, another had snowflakes in the background. I ended up redrawing the Santa one from scratch in Affinity Designer, using the same colors but fixing all of the AI glitches. I’m happy with the end product, but feel a bit leery about the process. It feels like…stealing? I don’t know. Anyway, here’s a side-by-side of the original and my recreation.
Ever since I launched YarnBuddy, one customer service issue has continued to plague me: data loss. I’m not sure how many people have contacted me to say that they’ve lost all their data, but I’d guess it to be less than 20. Still, every single one of them is gut-wrenching. These people paid for my product, and I let them down.
It seems to happen most after a lightweight migration in Core Data (YarnBuddy uses NSPersistentCloudKitContainer). During the course of the migration, the local database is wiped for some reason, and is supposed to redownload data from iCloud, but it just…doesn’t. It’s so frustrating, and it’s the single biggest cause of my impostor syndrome.
If I accomplish anything this year, I want it to be this: a robust automatic backup system. All of my Core Data model entities have a corresponding “draft” struct for non-destructive editing purposes. Most of those draft structs conform to Codable, so it shouldn’t be much work to back everything up in a JSON file. The trouble lies in the bigger data blobs: photos and PDFs. How should I back them up? Won’t they take up a ton of space? Should I zip everything together?
Also, when/how often should I backup user data? Is this something I should use Background Tasks for? I’m more than a little confused about the whole execution part of it. I’m sure I’ll figure it out eventually.
A couple other things I’d like to add to YarnBuddy this year are a dedicated area for managing pattern PDFs, and a Spotify Wrapped-style summary of knitting/crochet accomplishments.
I also really want to ship the SpriteKit gardening game I started making for my son (I originally had the word “finish” in place of “ship,” but I have so many ideas for it that honestly I’d better just ship it and add updates later, lol). It’s like 90% done in terms of being in shippable condition, so I’m just on that last 10% that takes foreeeeever. But I think I can do it! I’m definitely not expecting it to be a money-maker; it’s just for fun.
One final goal for this year is to blog more. I’ve been hanging out on Mastodon a lot, and have it set up for this blog to automatically post to Micro.blog and then cross-post Mastodon. It definitely feels good to have a home for my writing that I control.
What are your goals for this year? What accomplishments from 2022 are you proud of? You can always reach me on Twitter, Micro.blog, or Mastodon (preferably Mastodon).