The Indie Dev Diaries Presents...

Spend Stack: Year One

Written by Jordan Morgan • Jul 15th, 2020

Spend Stack’s first year on the App Store hits on the 18th! It’s been a rewarding year, and I’m very proud of the app. Though, as most reading this will no doubt know, iOS 14 is around the corner too. I’m in it deep at the moment, getting Spend Stack all ready to go.

So, instead of a large tell-all post, I’m going to do a rapid fire format that encompasses all my thoughts up to this point. Let’s roll!

Numbers

  • Downloads: 4.3 thousand
  • Earnings: $15.1 thousand
  • Price: Currently $3.99. Ranged from $9.99 to $1.99 throughout the year.
  • Largest Territory: United States, about ~60% of my sales.
  • Devices: 70% iPhone and 30% iPad. Also, there is one iPod Touch User 😆.

Cool Stuff That Happened

  • Multiple App Store features.
  • Sweating all year over whether or not my header art would ever be used, and it finally happening nearly a year later:
  • Hitting #1 in Finance for multiple territories (where a lot of my revenue came from).
  • Being selected to participate in Apple’s retail demo program.
  • Getting to share Spend Stack’s origin story.
  • Shipping a large, feature-rich update. And learning the relationship between it, and paid up front apps.
  • It was covered by MacStories, 9to5 Mac, MacRumors, MacObserver and more.
  • Craig Federighi responding to my email about it:

Challenging Parts

  • Managing my own expectations. As an indie, some days you are your best advocate and another, your worst enemy.
  • Ensuring all of the feedback and product knowledge I get doesn’t get lost in translation.
  • Having the urge to make other apps, but not knowing if I could manage it alongside Spend Stack.
  • Knowing I will likely have to shift the product in another direction price wise.
  • Spend Stack has filled a lot of time I had to write on this very site before, and I do miss it.
  • Keeping the app simple and easy to understand, while adding new features. Those two notions feel at odds with each other, it’s certainly an art.
  • Finding the right tooling to manage everything. As you might’ve seen, I’m building my own:

Rewarding Parts

  • Integrating Spend Stack into my life, and making just enough time for it.
  • Retention is very high. Those that use it, tend to really like it and not “tolerate” it.
  • Inspiring others to go for it, and ship their own app.
  • Being able to personally respond to every user email, and building a personal connection with them. Many of us are on a first name basis now, which is wonderful.
  • Several users asking how they can give me more money for the app.
  • Seeing it consistently chart.
  • I’m still having a blast a year later. Usually, I feel like this is the point where many fizzle out and lose interest. I’m still pumped!
  • The iOS community around indie development. Everyone wants everyone else to succeed, there are hardly any egos.
  • Many people really enjoy the design, which is something I worked (and continue to work) very hard on.
  • It’s on Apple’s radar now, and I’ve finally got a few direct contacts from the App Store editorial team.
  • Getting the “human” stories. Here are a few:
    • A daughter sharing a list with her mom to do chores with a price reward attached to each to save for a hamster.
    • A couple planning their wedding budget all in Spend Stack.
    • A construction worker planning his house.
    • And one of my own; Jansyn and I sharing our Christmas list for the kids.

Biggest Fail(s 😅)

  • I had a buggy iOS 13 release, nearly all around notification center and multiple windows.
  • …which lead to a few one star reviews, where they still remain today 😖.
  • Shipping a release without pushing my CloudKit schema changes.
  • Totally botching my press time line during my initial launch.
  • I’m having a hard time with ratings, but I’ve loosened my code up a bit to ask for it quicker which has helped.

Biggest Learnings

  • I love Objective-C, but Swift is so clearly the future. I think this is the point in my career where I really have drawn a line in the sand, and can’t so much as justify starting new things in Objective-C, as much as I love it. You’ve got ABI stability, SwiftUI, Combine…this list is only going to grow.
  • You have no idea how your app might look a year from now. It’s shifted from a grocery shopping app, to a running total list, to tracking expenses and now over to full-on budgeting alongside the expensing functions.
  • Being a bit naive about releasing something primarily for my own enjoyment, without realizing how it could potentially play an important role in someone else’s life. I think it’s mainly due to it being a finance app, and finances are an inherently sensitive, personal and important components to your life.
  • I have a fairly clear path and signals to explore to make Spend Stack go from a hobby, to a business. I’m unsure if I’ll ever explore them in earnest. Of course, there’s zero guarantees any of them would work, but it’s good to be in a position where I see “Oh, okay. I could do X and Y to make it grow” instead of “Well, I guess that’s it.”
  • Building things is so dang fun, nothing beats it.
  • You need to build relationships with the press.

Random Stuff:

  • Things people liked the most: Tracking subscriptions.
  • Things I think people don’t know about, but wish they did: All of the drag and drop functionality.
  • Midnight Addition: Apple Card import, which ended up being a great driver for sales.
  • Sharing is Caring: I love opening up about indie development - the good parts, the crap parts, the big sales days, the no sales days, the money making launches, the “what am I doing this thing sucks” launches. I hope it encourages any other developer to know they can do this too, to an even greater degree of success. My ethos truly remains the same when it comes to this blog, Spend Stack, social media or whatever else in tech: I want to encourage other people, promote less “look at me!” mentalities and make some friends. I don’t always hit that mark, but I do try to.
  • Indie Dev is Alive: Many assume it can’t be done anymore. That’s not true. I personally know other developers making a lot more than Spend Stack, and others who are making a lot less. And in almost each case, they’ve geared their apps for that particular scenario (hobby versus a business).
  • Time Wins: Along those lines, almost none of them won out of the gate. In fact, most have been at it for years until things clicked.
  • Hits me in the feels: As some of you may know, the very first version of Spend Stack released in 2013 and quickly fizzled out:

My wife wrote me a “atta boy!” card 8 years ago when it first launched, which I’ve always kept in my glove box:

She always always been such a big supporter of me wanting to make something I’m truly proud of, and has always been there to encourage me when things suck, congratulate me when they are good and everything else in between.

ILY Jan 😘.

My Master plan

  • My main motivation for Spend Stack remains the same; I want it to fulfill my entire Best in Class checklist with it.
  • Then, and only then, I’ll explore making it into something more.
  • Feature wise: lean into pure budgeting features for the next year.

Just for Fun:

My kiddos on the launch day a year ago:

And my kiddos today:

Final Thoughts

Spend Stack has brought me many memorable moments this year! I can only hope the same remains true a year from now. More than anything, building something and being able to put your name on it - you can’t beat it. Then, add in the fulfillment you get from people who use it and like it, it’s a fun cycle to be a part of.

Perhaps what I should be most proud of is Spend Stack has been exactly what I set out for it to be a year ago: Something I can ship and put my name on that people will pay money for. A manageable side hustle. A playground to create my best in class app. By all measures, I’m happy how things have turned out.

If there’s anything else you wanna know about it, feel free to ping me on Twitter and I’ll do my best to answer!

Until next time ✌️.

Spot any corrections or have anything to add?
Feel free to open an issue or create a pull request for this article.