Platforms Launch Switch and Notify

A recurring design principle of platforms is that they all, in some way, afford to launch, switch and notify.

Importantly, platforms they takes commands with use case agnostic opinions (e.g. security, performance principles, sandboxing abilities, addressing schemes, etc) as opposed to applying additional editorial judgement (e.g. on content, quality of the app, etc).


A launcher is an UX affordance that enables a user to load a program into the platform.

Launchers are easy to spot in traditional platforms: every single operating system (e.g. Windows, MacOS, Linux, Android, iOS, etc) have an analogy to an app launcher (e.g. Window's start menu). They are less obvious in modern platforms, but they are there:

  • in browsers, the url bar gives the user the ability to command a web page to be loaded.
  • in RSS readers, a subscribe affordance enables you to load content into your stream.
  • in conversational platforms, you can launch a bot either graphically (in a chat roster) or conversationally ("Alexa, launch X").


Switchers is an UX affordance that enables users to move from one application into another. They are also easy to spot in traditional operating systems (alt+tab on the desktop).

  • You can switch browsers tabs
  • You can switch between RSS feeds
  • You can switch between chatbot roster contacts


Notifications are a established part of OSes design too. They enable applications to alert users asynchronously, even when the focus isn't on the application.

  • RSS readers have a "read counter" that increments/decrements as new content is pushed in
  • chatbots borrow the notification patterns from early instant messaging design


Interestingly, another common affordance that platforms have is to address applications: to give them a name that users can use to refer to them.

  • In Operating Systems, it is a path to an executable, e.g. /usr/bin/emacs
  • On the Web, domain names and URLs, e.g.
  • On RSS readers, domain names, e.g.
  • On conversational platforms, bot names, e.g. @opentable