The Spotlight Interface Standard

Feb 13, 2023·2 min read

Cmd + Space was game-changing for my productivity. If you're late to the party, hit Cmd + Space on your Mac and search for what you want to do. This greatly simplified the way you interacted with your computer compared to the visual interface. Jumping to whatever program was active felt much more natural.

In the years since, it this approach has picked up speed, many applications have adopted this style of navigation. On websites, the key binding is usually Cmd + K and it seems like this is gradually becoming the norm. There's even a wonderful npm cmdk package for implementing it.

With this increase in adoption, I began noticing how complicated it is to keep track of how all these interfaces work. The upside is that the same kind of actions are available with the same key binding, the downside is that they interact with the underlying programs differently.

In Spotlight on MacOS, things work very differently from Cmd+K on Notion. Using a decent amount of different applications introduces significant overhead. I can think of a few reasons why this might be the case, with a high-ranking one being that most commands have to follow the architecture of the underlying application. Opening a Page instantly could be very difficult if you're on a page that has no idea what a Page is.

I'll preface the following paragraph with the fact that I haven't thought through this very much, so have some empathy. I'm proposing something like Tailwindcss but for Cmd+K, so that all sites behave the same way. Every website building towards the same standards is a common theme today; it's the reason so many things on the web work the way they do. An example of a web standard is the ECMAScript itself.

This new standard would ensure that developers think about Cmd+K with a similar mental model, and end users would enjoy a consistent experience. Optimistically, this standard would also make it easier for OS key bindings such as Spotlight, and LLMs like ChatGPT to interface with these commands.