Designing for speed
Jacob Beckerman
jacob@macro.com
Background
One way to describe what we’re doing at Macro is that we’re building the fastest way to get things done.
Two types of fast
There are two ways to make users faster.
- Fast as in Neuralink. Help users do more operations per second by providing things like: a really fast interface, keyboard shortcuts, dictation, or maybe a literal brain interface.
- Fast as in GPT. Help users operate at a higher level of abstraction, aka achieve “leverage” by having the machine do lower-level operations, aka each user “operation” corresponds to many sub-operations, like a high level language compiles to machine code or like a manager directs subordinates.
Everybody is doing the “fast as in GPT” right now and it’s easy to overlook fast as in neuralink. Here are some design principles we’re implementing at Macro in the Neuralink category.
Act on press, not release
In Javascript, do things onMouseDown not onClick . You spend so much time optimizing your app, but they waste precious hundreds of milliseconds waiting for the user to lift their thumb. Why?
No pointer cursor
The pointer cursor is for links, not buttons. People like things that feel native (Windows, iOS, Mac) and generally perceive web apps (and Electron apps) to be slow. Native apps don’t use pointer cursor. Some modern web apps like Figma don’t use pointer cursor.
Only animations that make you feel faster
Basically by definition, animations make things slower. Some animations are OK, but only if they make you feel faster. For example, iOS swiping animations feel fast.