My experience building Sonner, a toast library.
Summary
Sonner now passes forty million npm downloads a week and is used by Cursor, X and OpenAI, in a category that was already crowded when Emil started. He traces why it won, beginning with the name, which came from the French verb for ringing rather than from react-toast. The stacking animation is what made people fall for it on sight, and it had been done in products before without ever being open sourced. The build has a real lesson in it too. CSS keyframes made quickly added toasts jump into position, so he moved to transitions, which can be interrupted and retargeted mid-flight.
View full writingGoes well with
emil-design-eng
The design-engineering house style behind Sonner and Vaul.
Emil's main skill. Mostly animation, with the UI-polish and component judgement that surrounds it: what to build, how far to push it, and when to stop.
npx skills add https://github.com/emilkowalski/skills
animate
Builds an animation from scratch, decisions in the order that matters.
Should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Then writes the implementation.
npx skills add https://github.com/emilkowalski/skills --skill animate
review-animations
Reviews your motion strictly, against Emil's rules.
A production-critical pass over animation quality, timing and consistency in a diff. Pairs with improve-animations, which does the same for a whole codebase.
npx skills add https://github.com/emilkowalski/skills --skill review-animations