iOS. Apple. Indies. Plus Things.

Spend Stack is Now Open Source

// Written by Jordan Morgan // Jan 15th, 2023 // Read it in about 1 minutes // RE: The Indie Dev Diaries

This post is brought to you by Emerge Tools, the best way to build on mobile.

Good news - after talking with Spend Stack’s owners, they have agreed to let me open source it!

The version I can share is the last one I worked on personally (version 1.3.4). First, let me get the legalities and some questions out of the way:

  1. I have to assume all liabilities with it as part of the agreement. So, you know, don’t do something terrible.
  2. You can ship an app based on this code, you cannot name it Spend Stack. This means you would need to change all references to the name “Spend Stack” within the source code as part of your adaption.
  3. However, if you do ship an app based on this you must include the following somewhere in the app and link to this post:

“This app is based upon Spend Stack’s open source code.”

And finally, while not a requirement, I’d love it if you told me about any app you ship based off of this code so that I can link it here to share the word.

👉 Here is the repository on Github. 👈

And that’s about it.

Second Wind(s)

As I noted recently, I was sad to see Spend Stack sunset from the App Store. Still, two years after it was acquired, I received a few number of messages asking me where it went. I was saddened to think that nobody could use it anymore, especially since I still rely on it to this day to manage my monthly subscriptions.

But now - one of you can take it on! Or several of you. I am delighted to know that it can come back in some form from someone in the community.

Please keep in mind, it’s been over two years since this code was last touched. There are some build warnings and cobwebs, but nothing you can’t dust off yourself. With that said, here are two interesting things to check out:

  1. CloudKit: Spend Stack is built on a “custom” CloudKit engine. I say custom in that, I setup all of the zones and records myself. It doesn’t use any CoreData automatic sync solutions. Check out SSCloudKitManager.h to see how it all fits together. Specifically, if you want to follow along step-by-step, go to -(void)checkAccountStatus to where it all starts, creates subscriptions and zones - all the good stuff.

  2. Custom Transitions: The custom view controller transitions were some of my favorite parts of Spend Stack. Look under the Controllers/Modals group to see all of the files for most of them. For example, this one when you first create a list:

Spend Stack's custom transition to create a list.

Or, the settings modal card transition:

Spend Stack's custom transition to view settings.

And, if you need to see how interactive transitions fit together, then maybe the one to view images or the HD icons would interest you:

Spend Stack's custom transition to view images interactively.

There are a bunch of other fun things, and so long as you know your way around Objective-C, there is a lot to tinker with.

Final Thoughts

I am grateful that I was granted permission to share Spend Stack as I last left it. Maybe now, it’s not dead after all. I hope one of you take it and potentially do what I and its new owners could not - find true product market fit, find a worthy subscription model and see it thrive.

Or, maybe you just want to poke around and see how CloudKit all fits together. That’s fine too. Or look at the custom transitions. Maybe you just want to build it locally and use it as it last was (which is what I do).

No matter, Spend Stack can now see a second life, and that makes me very happy.

Until next time ✌️


Spot an issue, anything to add?

Reach Out.