Nathan Mai
I’m a designer and engineer who builds small, careful tools for people who make things. Right now I’m working on Circular Motion Studio, a browser app for sketching looping animations, and writing about what I learn along the way. Before that I spent five years on design systems for teams that shipped faster than their documentation.
Recent writing
March 12, 2026
Each rewrite fixed the last one’s biggest mistake and introduced a new one.
February 3, 2026
A case for a few hundred lines of CSS you actually understand.
January 18, 2026
Notes on making interface motion feel physical without making it slow.
Nathan Mai
I’m a designer and engineer who builds small, careful tools for people who make things. Right now I’m working on Circular Motion Studio, a browser app for sketching looping animations, and writing about what I learn along the way. Before that I spent five years on design systems for teams that shipped faster than their documentation.
Recent writing
March 12, 2026
Each rewrite fixed the last one’s biggest mistake and introduced a new one.
February 3, 2026
A case for a few hundred lines of CSS you actually understand.
January 18, 2026
Notes on making interface motion feel physical without making it slow.
Nathan Mai
I’m a designer and engineer who builds small, careful tools for people who make things. Right now I’m working on Circular Motion Studio, a browser app for sketching looping animations, and writing about what I learn along the way. Before that I spent five years on design systems for teams that shipped faster than their documentation.
Recent writing
March 12, 2026
Each rewrite fixed the last one’s biggest mistake and introduced a new one.
February 3, 2026
A case for a few hundred lines of CSS you actually understand.
January 18, 2026
Notes on making interface motion feel physical without making it slow.