Making Money Outside the Mac App Store

One of the themes of this blog is how I make money selling my own Mac apps on my website rather than through the Mac App Store. I truly believe it’s the best way to go if you’re serious about earning a living. That said, not everyone has time to write their own backend sales platform like I did. For those who want to focus on development and make the actual sales process as painless as possible, I recommend using FastSpring. I’ve used them since 2009 and have never been disappointed. And getting up to speed with FastSpring couldn’t be easier than this great new book by Christian Tietze. It’s all about how to sell your apps outside the App Store. It covers everything from how to setup a storefront, to implementing serial numbers, and protecting your app against piracy. I’ve read the book, and it’s great.

If you do like the book and decide to buy, using this link will give me a small kickback. (But that hasn’t influenced my decision to post about it. The book really is good!)

image

Coding on My iPad Pro

Last month, my 9-5 job was kind enough to gift me an iPad Pro and its new keyboard. I’ve had a few iPads in the past, but they’ve always ended up stashed away, unused, in a drawer somewhere. I simply never got hooked on their utility. I never found that killer app, which, for me, would be the ability to code anywhere. This Pro model, however, has changed all of that.

I’ve always had two Macs. One to take places and another to get “real work” done. In the past that meant a spec’d out iMac and an 11″ MacBook Air. More recently, it’s been a work-issued 15″ MacBook Pro that stays plugged into my cinema display 99% of the time and a MacBook (One) when I travel. The new MacBook is certainly the most portable Mac I’ve ever owned, but it’s slow and lacks the screen space to do any UI intensive work.

Now that I have an iPad Pro, I’ve sold my MacBook and only touch my MacBook Pro when I have serious work to do. The iPad has replaced nearly everything I use my laptop for. That may not be so unbelievable. Lots of folks like Viticci have moved to an iOS only way of life. As I do more and more tasks on my phone, I’ve been tempted to try going iOS primarily, but I could never make that jump because I code for a living.

Until now.

I was screen sharing from my iPad to another machine on my local network, when it dawned on me how great it could be if this particular Mac were always available to me – even from outside my house. So, I splurged and ordered a datacenter-hosted Mac Mini from MacStadium. Ten minutes later I was connected to my new Mac in the cloud. And ten minutes after that, I had Xcode open and started testing the waters.

I’m using Screens.app to connect. And with a good internet connection there’s virtually no lag when screen sharing with my new Mac Mini. I’m able to run a native Mac resolution of 1920×1200 on my iPad in full screen. That gives me plenty of room to run Xcode and the iOS Simulator. With Apple’s new external keyboard, all of my usual Xcode and OS X keyboard shortcuts work just fine. And since coding is primarily a keyboard driven activity, my arm doesn’t get tired from reaching out and touching the screen like a designer’s might.

All in all I’m thrilled with my new setup. It gives me the simplicity and benefits of iOS, while still allowing me to do real work outside of the house or from the couch.

ipad-pro-xcode

Wrapping up 2015

Last year, I wrote about my final sales numbers for 2014. Now that 2015 is wrapping up, it’s time to do the same.

I had very high expectations going into 2015. I released Hobo right at the start of the new year and planned a major update to VirtualHostX for the Fall. With both of those in place, plus a renewed focus on my mailing list and website analytics, I set the seemingly impossible goal of doubling my 2014 sales this year. That meant my revenue goal for 2015 was $123,000. Audacious. Lofty. But that’s what I was aiming for.

How’d I do?

I’m sad to report that instead of doubling, sales cratered. With about two weeks to go in 2015, my current revenue sits at $35,000. Don’t get me wrong. I know there are many people out there who would love to be making that kind of money on their app business. And I’m very fortunate to earn what I do. But, still, instead of doubling my revenue I almost lost 50% year over year.

Why?

I can point to a number of reasons why 2015 was such a down year. Some were business decisions. Others were personal. Most obviously (to me) is that Hobo never really took off. Sales have been OK, but my goal of having it match VirtualHostX dollar-for-dollar seem to have been premature. I had a couple large quantity sales to businesses, which gives me hope that I could begin marketing Hobo in that direction rather than at individual developers. I positioned the commercially licensed version of the app as a boon to web dev shops with the ability to share and remotely update .hobo files. But, looking back, I haven’t made that feature prominent enough on the website. I need to do a better job at educating potential buyers.

I also never got around to properly setting up my Hobo mailing list with Drip. One of the changes I made in 2015 for VirtualHostX was requring an email address to download the software. This lets me follow up with the user after they download the app. I don’t consider it spam. I send three emails – each a day apart – that walk the new user through the major features of the app. And then if they haven’t purchased after two weeks, I follow up with a simple email asking if there’s anything the app could have done better or if they’d like more time to evaluate it. This email course has worked extrodinarily well and provided me with a lot of great feedback. I’ve had a to-do to setup the same sort of course for Hobo for nine months but never got around to it. And that’s squarely my fault.

Another major reasons for the low sales volume is I never got around to building and releasing the major update to VirtualHostX I’ve been planning. During the week of a major upgrade release, I can count on an additional $10,000 – $15,000 in sales via upgrades. Not having a major release this year definitely caused a significant dip in sales.

And here’s where things get personal.

Why didn’t I have a new, major release ready in time for El Captian in the Fall?

Two reasons. One, we had a new baby girl. And, believe it or not, taking care of two kids is way more work than dealing with just one. But, the main reason is the planning for my major Fall release typically happens early in the Summer. But during June and July of 2015, I found myself at the bottom of a deep depression. One like I hadn’t experienced since 2009. It’s hard to properly describe what it’s like being depressed, because at its core, you feel nothing. And that nothingness saps away every ounce of motivation you have. My relationships with my family and friends struggled, my app business saw virtually no attention for three months, and my nine-to-five job suffered as well. Two of those areas were forgiving. The other, not so much. But, I bounced back, got on some better meds, and feel great now. The seventh major release of VirtualHostX is going well and should be ready this Winter.

So what did I do well this year?

I grew my mailing list considerably. That means when VirtualHostX 7.0 is ready to go, I should have a great audience to market it to. Further, earlier in the year I ran a bunch of A/B tests on my marketing website aimed at upping my conversion rate. I’m happy to report that I saw good growth in that regard – even with the change to requring email addresses to trial the app.

So that’s a summary of my year as far as business goes. I thought about listing all of the services I use and expenses I have running the business, but that hasn’t changed much since last year.

How’d you do?

Switching Email Providers

Earlier this year I switched (after 11 years) away from Gmail to an email address at my own domain hosted by FastMail.

I didn’t make this decision lightly. I knew changing email addresses could uproot my very online identity. But I was tired of the new direction Gmail’s interface was heading, and I also worried about the horror stories you occasionally hear when Google accidentally closes or locks someone out of their account. Email is precious to me – especially the history it contains – and I didn’t want to chance losing it.

I’ve used FastMail with my freelance email address for years and always been extremely satisfied. So choosing them to replace Gmail was a no-brainer.

With that introduction out of the way, what I’d really like to talk about are the four steps I took to ensure a smooth transition to my new email address.

First, I used FastMail’s built-in IMAP importer tool to transfer over all eleven years worth of Gmail into my new account. The process took about six hours – they emailed me when it was complete.

Then, I setup a forwarding rule in Gmail to forward all mail to my new address and archive a copy in Gmail.

Next, I created a smart folder in 1Password that searched for my Gmail address as the login for any website. Over the next few weeks, I updated a few website from that list each day with my new email until they were all switched over.

Finally, I setup a rule in FastMail to file all email that was forwarded from Gmail to a specific folder. From there I can see all the remaining websites and mailing lists that have my old email address and update the ones I care about.

Changing email addresses isn’t easy. But it’s certainly doable with a little planning and some work after the fact.

Must, Will, Might

Last month I came across a clever post about using just two GTD contexts by Matt Henderson (by way of SimplicityBliss). Like many of us, he’s experimented with lots of different ways of managing contexts. There’s the traditionalist approach where your contexts mimic the tools or location available to you: home, work, Mac, phone, etc. Then there’s Sven’s more modern approach based on energy level, which I’ve also advocated: brain dead, quick hits, full focus, etc. But Matt’s unique take is to simplify things even further into Will Do and Might Do.

It’s a fascinating idea because by getting rid of context groups such as work or personal (as I have mine setup) it implicitly acknowledges a modern-day truth we might not all be comfortable with. That being our work and personal tasks cross-pollenate and are often available simultaneously throughout the day. If you’re anything like me, you’re just a likely to pay the electric bill during a few minutes of downtime at work as you are to answer an email from your boss before bed. And with the majority of our work now available to us from nearly any device, the clean boundaries between traditional contexts break down. And as for those who used energy levels to define contexts, at least in my case, I would more often find myself scanning all of my available todos when looking for my next task, rather than taking the time to asses my current energy level and then switch to a perspective focusing on just that type.

When all those definitions fall away, what you’re essentially left with are tasks that you will do and tasks that you might do. Which is exactly where Matt’s Will Do and Might Do contexts come from.

I was so intrigued by this idea that I took the month of August to try the system for myself. However, I have made a few tweaks to the system he describes. I’m please to say that, a month later, this new system has worked well for me and I plan to continue with it. Here’s what I’m doing…

three-contexts

First of all, in addition to the Might Do and Will Do contexts, I’ve added Must Do. These three contexts impart a slight sense of priority and timeliness that I felt was missing. Tasks that fall into the Must Do context are items that simply must get done without delay. Typically, anything in this group is automatically added to my Today list. An example might be calling a repairman when the air conditioning breaks or paying my health insurance. Will Do contains tasks that I have committed to completing but that don’t have a firm deadline. Examples are “change air filters throughout house” or “install backup software on mom’s laptop”. None of these tasks are particularly urgent. They just simply need to get done at my convenience. Finally, I have my Might Do context, which is full of tasks that I would like to do some day but have not yet committed to. These are things like “schedule a cookout with Matthew when the weather is nice” or “investigate how to buy Google advertisements”.

In addition to those three contexts, I’ve left in place those that are location based errands. This means I still have contexts for the grocery store, pharmacy, and hardware store. I also have a context for any phone calls I need to make as I hate talking on the phone and would rather have all of those tasks together where I can just knock them out.

Finally, I still have waiting, on-hold contexts for tasks that I’ve delegated to other people.

This new context arrangement has really simplified how I think about my tasks. It’s made processing my inbox much faster, too. I’m no longer hemming and hawing about which particular energy level a todo falls under. I simply have to decide if it’s something I’m committed to or not. And, if I am, can I do it at my leisure or does it need to be done right away.

It’s always healthy to re-evaluate how your GTD system is setup, and I encourage you to give this three-context system a try. There’s nothing wrong with finding a more efficient way of working or a method that just makes better sense to you. Just don’t let toying with your todo app get in the way of actually getting stuff done.

No Phone Thursdays

One experiment I’ve been trying for the last two months is taking twenty-four hours each week to be entirely phone free. My goal is to give myself time back to focus on things that matter – rather than living in a half-distracted state all the time. I’ve chosen Thursdays. Anecdotally, it seems to be the day I receive the least messages, phone calls, and distractions, so there’s potentially less to miss.

The first Thursday I turned off my phone I’m sorry to say I really did have withdrawal symptoms. There was a constant buzzing in my head as if I had forgotten something or was missing out. It’s not to say I was completely disconnected. I was still online on my Mac throughout the work day. But the difference is I sought out distractions rather than having distractions pushed to me. I still checked my email. I still skimmed my RSS feeds and read the news. But without the constant pinging of my phone beside me, I was able to stay away from Twitter, Facebook, and many other websites that eat away at my day.

Making it through that first day was embarrassingly difficult. But I’m happy to say I managed. And each week as Thursday has rolled around, I’ve come to find it easier to power down my phone for the day. I’ve even come to look forward to it. My mind feels clearer – less hurried. And as I’ve become more and more used to being checked-out, I’ve also stopped checking-in on Twitter and Facebook as much throughout the rest of the week. I’ll do a short catch-up session in the evening rather than always staying up to date during the day.

As much as our always-on devices have improved our lives, I really do believe being constantly connected is taking a measurable toll on us. I know it has contributed to my battle with anxiety. And I fiercely believe in and have witnessed real internet addiction among some of my family and friends and to an extent myself. That’s why I’m purposefully trying to tone down my dependence to these quick hits of information during the day.

I’m not suggesting I (or you) eliminate social networks or whatever your particular internet vice happens to be. I get far to much use from them both personally and professionally to entirely tune them out. But I do think we’re (hopefully) approaching the height of our collective addiction and will see a pendulum swing back towards a healthier balance.

So that’s why I’m taking Thursdays off. And it feels good.

My New Email Routine With SaneBox

I’ve written before about cutting back on notifications. Today I want to talk a bit about how I’m using a paid service called SaneBox to reduce unwanted email notifications even further.

I initially found out about SaneBox six months ago from David Sparks. His enthusiastic recommendation was enough to get me to give the service a close look, but I was still hesitant to sign up. I take the security of my email very seriously, and I wasn’t to keen on handing over access to my email to a third party.

But, as the months went by, I kept hearing more and more wonderful things about the service from more and more people I trusted. And my own email situation was causing me grief. Every morning I’d wake up to fifty or so emails I’d have to wade through. Very little were ever of any consequence. Even fewer actually warranted a reply. I kept wishing I could setup a filter just for the emails that actually mattered and leave all the rest to be ignored or skimmed over on the weekend.

And that’s exactly the promise of SaneBox. They analyze all of your past email history, and from that they determine which emails are important and which can wait till later.

So, skeptical and a little wary, I gave them a shot.

I couldn’t be more impressed.

After scanning my eleven years of email history, my SaneBox was setup and ready to go. The whole process took less than an hour. Immediately, emails began arriving and were filtered out into a folder called “SaneLater”, which I was told to read through only when I had spare time. SaneBox promised anything important would remain in my inbox – and then show up as a notification in my email client.

It’s hard to describe just how magical this service is. Of the fifty or so emails I used to wake up to every morning, only two or three actually make it to my inbox. The rest are silently stashed away in another folder that I check every other day or so.

I can report that there have been surprisingly few false positives. And if one does slip through, I can just move that email back to my inbox and SaneBox will learn how to classify similar emails in the future.

They also offer an amazing bonus feature called SaneBlackHole. This is a special folder in your email account they create for you. Any email you move into this folder will tell SaneBox to immediately delete all future emails from that sender. It’s like an instant unsubscribe that actually works.

SaneBox has other crazy helpful features, too. You can snooze emails for later date. And they can also monitor your spam folder and report back any emails that might have accidentally been marked as spam by your email provider.

I swear SaneBox is not paying me to write any of this. The service is just that good. If you do feel like giving them a try, you can use my affiliate link to sign up. Use that link and we’ll both get $5 off.

It’s also worth pointing out that SaneBox runs entirely server-side. There’s no software or special email client you have to use. All you need is an email account that supports IMAP.

Connecting Amazon Alexa’s Todo’s with OmniFocus

Last week Amazon Alexa and IFTTT hooked up in a big way. They now have triggers that allow you to do things whenever you add an item to your Alexa to-do or shopping lists. This is awesome because now those items don’t have to live within Amazon’s ecosystem. With a little IFTTT tinkering you can quite easily have them shuttled over the net and into OmniFocus.

This means I can be cooking dinner and literally say out-loud “Alexa, add red pepper flakes to my shopping list.” Or “Alexa, remind me to schedule a cookout with Matthew.” And the next time I open OmniFocus, those tasks will be waiting for me. Awesome.

First, you’ll need to login to your IFTTT account and activate the “Amazon Alexa” channel.

Then, create a new recipe with a trigger of “If item added to your Shopping List”.

Next, for the action, send an email to yourself with the following settings…

Screen Shot 2015-07-31 at 7.20.21 PM

Finally, in your email provider’s settings, setup a rule for any email with the body “Alexa Todo” to forward to your secret OmniSyncServer’s email address. They’ll get the email with your to-do item as the subject and add it to OmniFocus.

Boom!

Don’t forget, your Alexa shopping list is separate from your Alexa to-do list. So do what we did above a second time for your to-do list to make sure you can add items to either list.

Duplicate Tasks

I put everything into OmniFocus – my trusted system. Throughout the day I’m constantly hitting my OmniFocus keyboard shortcut to add whatever task just occurred to me to my inbox. It’s quick, painless, and lets me stay focused on my work without breaking my train of thought. Later in the day, I’ll process my inbox and assign those tasks to projects and contexts. It’s your standard GTD workflow.

But one problem I run into is duplicate tasks.

Because I put so much into my task manager – and because I wholeheartedly trust it to keep my data safe and myself reminded at the appropriate time – I often forget what’s in there. Frequently, during my weekly review, I’ll find that I added a task, forgot it was in there, and then added it again a few days later when it reoccurred to me.

This isn’t strictly a problem. Tasks certainly aren’t falling through the cracks. If anything, the opposite is true and I’m doubly making sure I remember to do things. But it does bother me. The purpose of a trusted system like OmniFocus is to put your tasks into it so you can get them out of your brain and focus on the work at hand without distraction or anxiety. But the fact that tasks pop back into my head tells me I’m not fully letting them go. Or does it mean that I’m actually forgetting about them so well it’s only natural that they reoccur to me?

I’m not sure.

In any case, I don’t know of a solution to the problem other than being diligent enough with my weekly reviews so that I maintain a mental model of the tasks in my system. And so I can clean up the duplicates when they invariably happen.