Inspiration

I was tired of getting hit with unexpected subscription payments and wanted a simple but powerful solution. I tried other apps, but none of them worked the way I needed. So I decided to build my own subscription manager. Around the same time, my favorite paywall management company, RevenueCat, announced Shipaton, so I thought, why not build it for Shipaton?

What it does

SubFox helps users track their subscriptions and notifies them before unwanted charges hit their bank accounts. It supports hundreds of services out of the box and also lets users add custom ones. Users can assign payment methods, categories, and more to each subscription.

How we built it

I’m a Kotlin fanboy, so for me there was only one real choice: Compose Multiplatform.

Challenges we ran into

Building SubFox came with plenty of challenges. Since I was using Compose Multiplatform, the community and library support wasn’t as mature compared to Flutter or React Native. On top of that, a subscription manager requires solid math. For example, to calculate averages, I had to convert everything to a base currency, check whether the subscription was monthly or yearly, handle month lengths, and so on. My ADHD brain had a tough time juggling all that at once. Debugging on iOS was another hurdle, but I have good faith that JetBrains will keep improving the experience.

Accomplishments that we’re proud of

I’ve already got 5+ lifetime sales on the Play Store completely organic, no marketing at all. That feels insane to me.

What we learned

Building a real project is so different from just “knowing the topics.” I learned a ton about Compose Multiplatform, and I’ll definitely keep using it for future projects. I love that I can still access native functionality whenever I need unlike with Flutter.

What’s next for SubFox

I’ll keep maintaining SubFox and focus more on marketing, since most of the core features are already complete.

Built With

  • composemultiplaform
  • kotlin
  • kotlinmultiplatform
Share this project:

Updates