The pain of an unfinished journey.
A few issues back, I told you about the start of my journey in migrating RocketSim away from the Mac App Store. Since then, I have integrated Sparkle for updates, and I'm close to finishing the integration of Paddle.
All good, you would say. Yet, I'm already many hours in, and I'm far from close to the confidence I need to release this major update of RocketSim.
RocketSim is a side project, and my time is only limited. Especially with all SwiftLee related things included, I can't afford to spend much time every week on RocketSim (unfortunately).
When I started the migration, I expected to end up in a better place: - Bye, bye, Sandbox restrictions - No more 30% cut towards Apple - Easier onboarding by no longer needing screen recording permissions - Being able to offer better pricing options, like buying a license key with one year of updates
The journey itself seemed doable too, yet, I'm realizing now what it means to do such migration for just a side project:
- App Store purchases need to be migrated - The above point requires me to create a custom licensing integration - Tools like Paddle don't support one-year-updates licenses, requiring to create a custom backend - Licence purchasing needs to happen at rocketsim.app - Potentially, much more support requests related to licensing keys
If you remember, I started this all after getting some negative feedback on Reddit. Yet, this week, I received a lot of positive feedback after receiving multiple emails with positive notes. On top of that: Monthly recurring revenue is growing steadily, so there's not much wrong with my pricing. (Sure, there are always customers that like different pricing).
On top of that: many of the advantages I expected from not having sandbox restrictions turned out to be wrong. I still need screen recording permissions to determine the active Simulator, unfortunately.
Long story short: I decided to postpone the migration and focus on improving the App Store version instead. In the end, it's just a side project, and time is only limited. I did not throw away the code (which is a lot of code changes already), so I'm always able to revisit this later if needed. My learning: don't feel bad to change direction, even after spending much time already, as long as the new direction is the right direction.
I want to end this intro with a fun fact: I wrote this week's article and realized at the very end that I already wrote about the same topic in 2019, haha! I decided to merge both pieces into a new article containing even more quality for you.
Enjoy this week's SwiftLee Weekly! |