Desktop apps are awesome

Most startups build web-based products, not desktop apps. I’ve always been on the other side. I can really enjoy and appreciate the beautiful design, the perfectly responsive UI and how there’s no waiting for network requests to complete. Yes, yes, single-page applications full of JavaScript are much better, but it’s still not right. Just try using Gmail over 2G cellular connection. I used Basecamp like that the other day. It was terrible.

Then there’s the economics. Who’s gonna build a Mac app for just 5% of their potential user base? For what, marginally better user experience? Second option is to build a Windows app and be ignored by every person in Silicon Valley. (Because they all use Macs.)

I think Mac apps are still awesome and here are some (some overlooked) reasons why:

Option to cache aggressively

In a web app, you can store few megabytes in a very limited offline store. There’s not much you can do with that. In a desktop app, there are no limits. You can use any database technology and use as much space as you want. (Within reason.)

Web apps don’t work offline. There are some technologies for this, but I don’t even know how to use them. All I know is that if I open Basecamp or Gmail on a plane, then there’s no way I’m seeing my data.


When I was a kid, my dad taught me how to copy files. Open one window with source folder, resize it to make it smaller, then open another window, and then drag the file. Ancient and forgotten technology.

I wish I could open GitHub issues in small windows with nothing else but the issue. I would open a few, put them on my secondary screen so that I can see what I’m working on, then close them as I’m done with the issues.

There is the option for JavaScript popups, but these are hard to manage, and we associate them with annoying ads.

Backend can run on user’s computer

With JavaScript, there is always backend that does the real data processing, the heavy lifting. Being an indie hacker, I try to avoid writing backend code at all costs. I don’t like doing DevOps stuff. I don’t want to sued. I always try to outsource backend to third parties, such as Firebase.

Or, I can store data on user’s computer. It is:

  • Free
  • Scalable — normally you’re writing backend to support all of your users. As soon as the user count starts to grow, you need to worry about scaling. With desktop apps, their computer only has to support their data.
  • No deployment, no DevOps
  • No liability — people won’t sue you if you lose their data, because it’s always their fault (unless there’s a bug in your app that caused it).
  • No hackers, no security concerns

Okay, so of course if you want users to collaborate somehow, you can’t use this approach. Also forget about cloud sync between desktop and phone. But I can imagine a few scenarios where it could still work.

Just pure UX magic

Say there’s a web app that does the job. Why wold you ever consider using desktop app instead? The web app gets the job done! Why bother?

Okay, you use Twitter, right? Maybe you use it on the web. I suppose most of people actually use it on the web. But have you tried a desktop client, such as TweetBot? TweetBot has ridiculously good UX. Everything you do on the web is 3 times faster in their desktop client.

This is good enough for me. Just the fact that I can open the app and the Tweets are already there, and I don’t have to wait for anything to load. Or the fact that it’s always in that menubar — lit blue when there are new Tweets.

The web UI gets the job done, but TweetBot gets the job done better. They are the proof that you can build profitable business just around providing better UX for something.


So yeah. I always loved Mac apps. I use my old time tracker Zone to this day, because no other app lets me get the job done so quickly. No web app, no iPhone app (it takes time to grab & unlock phone when you’re on the computer).

Things that you do on your computer, repetitive things, things that are currently kinda slow — these are all good candidates for building a desktop app. Can you think of something? Get in touch with me, I might just like the idea and build it.