I wanted to share a quick update on my current & future plans for 2Do, as well as some other odd bits in general.

Cool fact – 2Do is going to be 11 years old this fall 🙌. It’s surreal to see that it’s still around, and I’m still busy working on the same app day in and day out! It’s a weird feeling, because even family and friends at times can’t believe that’s all I do. “How many updates can an app have? Is there really nothing else you do?” 🙄 Well, if it wasn’t for a major update of iOS / macOS / Android each year to be continuously re-modeling and re-writing portions of your app around, perhaps there wouldn’t be many.

Another cool fact – I’m the proud new owner of BusyCal & BusyContacts 🎉. This happened late in 2017, so it’s been a little while.

I had big plans of preparing a major update for 2Do in 2019 to coincide with its 10th anniversary, but as fate would have it, iOS 13 and macOS 10.15 got announced and created a major support nightmare. This affected all calendar / task management apps (including Apple’s own Reminders app between versions of macOS), but became a major show stopper for BusyCal. We were spending more time replying to angry and confused emails than doing real work. Considering 2Do (and BusyCal) don’t charge a monthly subscription, it was imperative that in order to survive against rising competition, and to remain afloat, I focus entirely on BusyCal to bring it up to speed. Unfortunately this fiasco took away 6+ painful months of my time 🤦‍♂️ This also means I’m now 6 or so months away from releasing a meaningful update for 2Do (other than minor fixes and improvements of course).

Other than several subtle improvements, the update would include what you would expect: Dark mode, Multi-window support (for iPadOS), several new UI related features and enhancements, improved search, improved drag & drop, faster / better sync options, Reminders import, improved integration with calendaring events (which 2Do already supports, but not that visible on the phone), multiple-attachment support and maybe shared lists (without relying on CalDAV). The idea is to modernize and fine-tune the app further, without taking away existing features and annoying many. I also plan to keep 2Do open – i.e. you’re still welcome to use your sync method of choice. The plan is to support a couple more sync options and possibly (and eventually) move away from Dropbox (for various reason). You guys will love it when it’s ready to ship. It’s still a very long road ahead of me, but I’m steadily making progress.

Now a little digression – honestly, as much as I personally dislike subscriptions, I can’t say I haven’t been stumped repeatedly when it comes to working out costs involved in bringing out these “amazing new features” without ending up with a huge-ish bill at my end of the spectrum. In order to do anything meaningful, such as faster sync across devices with encryption at rest, support for multiple attachments / cloud storage, shared to-do lists and more, I end up with large overheads / subscriptions that I must pay for monthly in order to provide this functionality. Some of these don’t even make sense though. One weird experience I had recently was with Meetup.com (an app I use frequently). They charge meeting organizers a monthly subscription for creating / managing meetings, that you and I can join for free. Fair enough. I thought it would be cool and convenient to offer this as a sync service in BusyCal in addition to the half-dozen other services it supports, only to be surprised that they want developers to sign up to a $35/month subscription separately in order to use their API. What? Why! So that we can help them reach more users at our expense? We’re not going to make more money out of this you know. Plus there’s a real person that would need to write real code to support your service, and possibly provide support / troubleshooting for free. That almost turns me into an investor, investing my money into a service and promoting it for free. Yikes 😬! Imagine if Dropbox / iCloud / Fruux / Yahoo! / Facebook / LinkedIn / Twitter / Fastmail and the other 2 million and one widely used services began charging developers a monthly fee to make their service available to others. shakes head. Scary thought.

So any way, I currently have two options:

I consume the cost and factor this in as overheads for running the business and continue to charge the one-time fee. Sort of how a car manufacturer would pay for material / rent / salaries / utility bills while accounting for a single sale per customer. Charge users a subscription for features requiring cloud storage / sync

Option 1 is a tongue-in-cheek. What if monthly sales drop but ongoing overheads continue to increase as existing users continue to store, potentially, thousands of attachments and accumulate thousands of tasks over time? This can scale up pretty rapidly. Do I then shutdown the server one day when overheads surpass sales? I would also have to release 2Do as a brand new app (in order to simulate a “paid upgrade”), giving up on years of accumulated ratings / reviews etc and hoping instead for some big-named blogs to notice in order to gain some traction. That’s highly unlikely. If anything, 2Do might simply lose all its visibility on the app store at once.

Option 2 sounds reasonable, but at the same time is terrible in so many ways. I will have to still charge users that one-time upgrade fee to unlock “Pro” features though, before offering optional subscription to users that wish to use these optional features. There’s no way to put this mildly. Users just don’t read fine-print. They also don’t understand complicated payment models. I know many developers have resorted to this, but it doesn’t appeal to me. Not only will this become a support nightmare, App Store won’t help as it’ll show a “This app offers Subscription” notice on the store page. Potential new customers will read that, won’t know or care if this refers to an optional feature-set and pick some other app over 2Do. Furthermore, I hate the idea of showing alerts each time a user accidentally taps on a feature that requires optional subscription. 😖 It’s worse as it is when you need to display a tiny banner around “Pro” features the user needs to unlock.

What makes matters worse is that Apple still has not been able to figure out a way to provide developers with an option to charge for upgrades. I would have loved to avail that after 11 years of providing free updates.

So what do I do?

This sounds a bit crazy, but I’m going to bank-in on the fact that I’m an indie developer, which means I have finite needs. Most of these, minus greed, are met with the gracious support I receive from monthly new users. My aim then, is to ensure 2Do remains in business. Option 1 more or less meets this aim. Unless Apple announces a novel new way for developers to charge for upgrades during this years WWDC (don’t count on it, they’re in on this crazy subscription-all-the-things trend), 2Do’s next major update will possibly be a free upgrade on iOS 🤯. It may however be a paid upgrade on macOS, but I haven’t worked out the kinks on that one yet. It’s too early to say, but a lot of work will go into these updates, that’s for sure. Setapp users – you have nothing to worry about.

If I do end up charging for an update, I’ll make sure it’s fair, offers a generous “you’re-free-to-upgrade window” covering several months, including an upgrade discount offer.

I look forward to sharing more details with you guys soon. Stay tuned (preferably on twitter @2DoApp)!

Feb 25th, 2020