Posted 30 Sep 2021
Today, I released a new app called Affirmations. It’s a self-care tool I made that delivers compliments and positive reminders to you. I specifically designed the foundation of the app in a way that I can add or remove affirmations as I please, arrange them into groups that the user can enable or disable, and make them time sensitive (i.e. for holidays). Kinda like CARROT, but not homicidal.
Why did I make this? A year ago, shit was bleak. The election was in full swing, COVID was unleashing a full-on rampage, there was just… a lot happening. I thought “Well, what if there was a widget that could remind you that things are ok?” So I made it. I had a widget running with a few placeholder bits of text, and then expanded the text to be customizable server-side. Then I expanded the in-app interface, added notifications and breathing exercises, and then it was a full-fledged experience. One of the very last things I added was a list of global mental health resources, which I spent days compiling and sorting. It’s so much more than I thought it would be, and I’m so happy with how it came out.
Despite the nature of the app, being this feel-good self-care tool, I think I faced some of my biggest challenges as a developer while creating Affirmations. I was lucky enough to catch the attention of some high-profile people who signed on as beta testers, in addition to the 90 or so other testers at the time of writing who gave great feedback. However, by making an app like this, you assume a certain responsibility from your users. A responsibility to make a wholesome experience. A responsibility to make people happy. To help drive away sadness in the most frictionless way possible. Ok, I’m being a little facetious with that last point, but the sentiment stands: I have four other apps, and none of them have this much weight to carry.
As someone who struggles with depression and anxiety, any project I undertake obviously needs to be up to the highest standards and have no flaws whatsoever, or they’re trash and not good enough and invalidate my entire career. Or that’s what happens in my head at least. Every time I opened Xcode, I would face those feelings head on, shove them down, and just do the work. And in the end it may not be perfect, but it works. This is why the project has taken an entire year. (No, seriously: I started the project on September 30th of 2020, and launched on September 30th of 2021). I kept tweaking and testing and waiting for feedback, keeping the app in beta since I was scared of letting it run wild on the off chance it had any imperfections.
This is amplified even more by the fact that I still feel like this was all a fluke. That the App Store editors featured Femto on the Discover page last year. That the MacStories team promoted Femto and Dot in any way. That Menu Bar Splitter gained the popularity it has. I know those feelings will never go away and I’ll have to learn to live with them, but with a project like this they really do start to sting.
With help from some friends in the Relay FM members’ Discord server, I’ve started processing these feelings. The most important thing I learned was to live with the imperfections, and that 1.0 doesn’t mean it’ll never be touched again. I can always ship another update, or add another feature in 1.1. Everything doesn’t need to be done at once, and that took me the longest time to figure out. A few days ago, I found something I wanted to improve, but stopped myself, thought “Is this really something that absolutely needs to be fixed for 1.0?” and ultimately decided no. After my brain telling me to deal with every single piece of feedback immediately, and add every little idea that comes to mind, this felt nice.
However, I’m terrified. What if it breaks? What if there’s a fatal error on startup and no one can use it? What if a reviewer gets their hands on it and it’s essentially a digital paperweight? The past year of my life has culminated in this moment, and it could be invalidated with a single wrong line of code. I’ve tested every section of Affirmations multiple times, yet I still have this nagging thought in the back of my head (no matter that it went through the App Store review process). I want to make people happy, and I want Affirmations to live up to the hype. I can think of a million different things I could have improved for version 1.0, but I’m swallowing that fear and letting it exist in its current, fantastic, launch-complete form.
In the past few months, I have received numerous stories of how Affirmations has made people happy. Even just once. These anecdotes make me remember that it is, in fact, a good app, and that I made the right choice in persisting through the doubt. By giving a big “fuck you” to my impostor syndrome.
These are feelings that anyone who has worked on a project for this long has when releasing it to the public, right? So please, enjoy Affirmations. As narcissistic as it may sound, I’m so fucking proud of myself for creating it. There are times I’ve considered scrapping the project and questioning my entire iOS development career; however, I’m so glad that I, as a developer, and Affirmations are here today.
Affirmations is free. Give it a shot, won’t you?