Why Your Dock Needs Only 1 App

This post is half a pitch and half an analysis on software evolution. In particular, I wanted a living document to house my opinions on the direction in which products are evolving and how that impacts our workflows.

For the past two years in college, I’ve branded myself (unintentionally and unwillingly) as someone who cares deeply about workflows and productivity. Yet, you would expect someone who is deep in the trenches of productivity apps to have millions of automated workflows and 50 applications that power day-to-day task management. In reality, my desktop is actually composed of only three apps:

My glorious and complicated workflow: Finder, Arc (my browser), and Messages.

In fact, most of my work is carried out in my web browser (I use Arc, which if you know me, I would marry if I could). All apps I use such as my calendar, note taking, Jira, Slack, and work related software is all done there. Only do I need iMessage for communication with friends and Finder, which I cannot remove.

Aside from the fact that this minimal screen makes me feel calm every time I open my laptop, there are many more benefits with keeping a minimal suite of desktop apps. I’m sure not everyone finds catharsis or even cares about desktop organization, but my pitch here is why the appearance of “thin” client platforms (such as browser based apps) will eventually dominate its desktop counterparts. To truly dive into this argument, we need to plunge back in time to see how the application model was created and why it’s the model we use for distributing and using software on computers today.

The Application Ecosystem

When IBM’s personal computer (IBM 5150) was first introduced in 1981, it was seen like the Apple Vision Pro of our time, on steroids (or the Tesla bot, for the Tesla fans). Computers were largely inaccessible and extremely expensive before then and the shift towards more affordable devices launched a wave in the development of personal computing and making computers more accessible for the everyday user.

The old people (sorry, older people) did not have the luxury of the “cloud”. Rather, they were fairly grounded by the constraints of physical hardware and the limitations of software distribution. Imagine every time Google released a new update of Gmail, you would need to run to the store, obtain a floppy disk, drive back home and then reinstall Gmail on your PC.

And of course, the internet transformed everything. You no longer needed a tangible product to install stuff on your computer. Eventually, PC distributors even stopped selling OS installation ROMs (this is how Windows or Mac would have been installed manually) and sold each operating system with pre-installed versions of the operating system.

The application ecosystem was first truly adopted in 2008 by Apple (as you might expect). This “gold rush” led to an influx of individual, third-party developers who wanted to make bank by selling their apps which would only work on the iPhone. Fun fact: Steve Jobs actually initially opposed the idea of the App Store, being worried that the iPhone would then be flooded with low-quality software that Apple would have little control over. But Art Levinson and Phil Schiller (VP) eventually convinced him, by demonstrating the iPhone would be a generative platform rather than one that is locked-down. This allowed any iPhone user to find their own go-to or “killer app”, unleashing a whole new level of personalization to computing.

Wow, I still remember playing Tiny Zoo Friends on there.

Frankly, this might have been Apple’s most important invention. This concept kicked off a complete new paradigm to develop and distribute software, making it far more accessible for any developer to create applications. This new model allowed for the development of mobile apps, allowed for the big tech companies to adopt this concept of having an internal distribution system to launch and download programs, and helped maintain a fine balance between developer autonomy and control by the corporation.

The Browser

The browser, for a long time, has been more of a static hub of information rather than an ecosystem. Yet, as software evolves, browsers became more mature platforms and was able to handle more processes; browser based languages (Javascript, and Node.js as a runtime engine) became ever more powerful and widely-adopted, and thus the use of the browser as an individual platform to run applications became popularized across many companies.

The maturity and popularity of a product on a specific platform is also widely dependent on the origins and focus a development team places on that platform. We can take our favorite text editor as an example, Microsoft Word. It was originally made for Windows laptops as a standalone desktop app which can be downloaded. Google, being a cloud-based software company, started the development of its file management system and word processing app on the browser (it still does not have a standalone desktop app!). Now, as Google Docs became more and more popular, we saw a shift in the amount of users who adopted and switched from Microsoft Word to Google Docs, and Microsoft’s attempt to build Word as a browser app.

Which sides do your loyalties lie?

Word’s failure though, lies in its inability to convert users onto their browser platform, as its development was too far behind Google’s. Google Docs already had a whole backend ecosystem set in place and the economy of scale to continue iterating and scaling rapidly. On the other hand, Word had many development issues with ensuring the cross compatibility of Word and the desktop versions, making their feat to enter the Web App race more difficult by many factors.

As we look at the rise and popularity of different mobile browsers, Chrome has taken the popularity vote in recent years. Part of Chrome’s success is the ability for chrome extensions to be downloaded (via their extensions store) and to integrate seamlessly as lightweight software while we use the internet.

My Claim: Why Browsers are Winning

As we see the expansion of browser based applications, we see a shift away from desktop applications and thus, less of a need for the app store ecosystem on the desktop. For non-CPU tasks and processing heavy apps (such as creative tools for professionals), the browser has become a second home and a new operating system for everyday tasks.

Discussed by Ben Thompson in his article about Thin Platforms, he touches on the idea of the eternal tech debate between thin versus thick clients. On a more technical note, having a model where clients that are terminals for a centralized computer (the server / cloud) vs thick clients that synchronize but conducts processing in silos is one that boils down to tradeoff (performance vs abstraction and flexibility). Yet, it seems that the thin client model is clearly winning. Some clear recent examples of why we are shifting away from heavy applications and towards a new age of browser-based, cloud based, applications:

  • Notion, Word, Docs, Box Notes, all word processing tools and presentation tools (including most productivity tools) now have powerful, feature rich web application versions of their products
  • GitHub Codespaces allows for an online environment to code and no need for local development with a huge IDE such as VSCode
  • [From a developer’s standpoint] The Azure Container Apps service and Azure Kubernetes Service enable developers to write locally in the same environment they deploy to the cloud.
  • There are so many other examples of this trend and the growth in popularity of building thin platforms. The reason? Greater autonomy for their product development. Providing a more native and controlled ecosystem, while encapsulating the non-consumer and non-developer related functionalities allows for these products and brands to expand further and scale into different sub-verticles.

    Example: Individual App Stores

    I was recently scrolling on Youtube and happened to come across Youtube Playables, which I have never seen before. This is also a perfect example which supports my argument. There has been a recent trend of companies creating individualized app stores within their own platform service (and also note that these Playables as child products are all browser-based). As the entertainment industry becomes more fragmented and companies like Netflix begin to step into the various industries such as gaming and even its own popcorn line, the products that are created become as varied as ever and the need for cross-platform application / browser based products increases.

    If the browser now has the capability to play Cut the Rope, why would you ever consider downloading it as an iPhone app and have it hog your storage?

    Moreover, Netflix has even gone to the extent of building its own advertisement server to take on Google and Amazon (article here). This is not solely limited by the example of companies building their own internal app stores – it is the trend for companies to start building “everything” for their own ecosystem, for them to have more autonomy in shaping their services while expanding to other industries.

    A More Technical Example: Microsoft Teams

    We can see this with Microsoft building Teams and making the service their core hub where all their products stem from. In Thompson’s blog, he mentioned how “Graph Connectors” are the new APIs within this platform model:

    A comparison taken between the platform models of Windows and Teams. Taken from Ben Thompson’s article linked above.

    To summarize, Thompson argues that in the PC era, the only monopoly which really mattered was the OS that was running on most devices at the time. This would then be the platform which developers would target when shipping applications. Once mobile came along, there was the need for new interfaces, power requirements, hardware specs, and this proliferation in device types required a new way for products to be shipped (I always wondered why Microsoft never won in the mobile app race).

    The insane thing about Teams and Chat within it is that it only functions if an entire company adopts the service – solely a monopoly would allow for Chat to work for intra-company workflows. And the second thing is there is less direct autonomy and flexibility for development on the developers side, but this was already really introduced with the original App Store ecosystem established by Apple: developer freedom and the extent of autonomy is shaped by the owners of the operating system.

    Now with the popularization of thin client platforms such as Teams, devs have even less freedom – there is no hardware level access, nor access to a company’s directory, file storage, I/O, and network. Thus Microsoft’s “connectors” and what they provide from their APIs dictate what developers are able to build. Teams has effectively taken over Windows as Microsoft’s operating system as a platform, and claimed a lot more control than what they had originally with just Windows as an OS.

    For those that are more interested in this, Stripe OS is also developing its own platform that has a similar model for the financials of its users and developers on the platform, article linked here.

    Final Thoughts

    I think this phenomenon highlights, as all questions in tech does, a fundamental and difficult tradeoff to make. While platforms that abstract OSes and company-owned ecosystems proliferate and grow, we see the movement of tech products stray from being desktop-heavy and evolve to be more server and more browser-centric. And although it is a debate which demands balance between performance, security, and autonomy, it certainly holds true that this phenomenon changes the way in which we formulate our workflows the way in which engineers develop new products.

    While my ask to simplify the collection of apps on your computer may seem rather absurd and pro-minimalistic, I think creating the habit to work completely in the “cloud” and be more aware about the underlying architectures that shape our workflows is a valuable thought exercise to have – especially when choosing which apps to add to your dock.