Katy Sander and I joined forces to trap a demon and bind it to the Mac notch. He wasn’t happy about it. But he’s just as helpful as the other agents, and a lot funnier.
Meet Notchling. Hand-drawn, then vectorized and rigged in Rive. All animations, state machines, and timelines were built using the CLI, along with the ElevenLabs and Claude integrations that bring him to life in the final Swift package.
This is genius! Turning the most hated UI element - the notch - into a demon character. Love the concept and the Rive execution is so smooth. Notchling deserves to be hired 😂
The Haunted Client Feedback 👻
Every designer's real Halloween horror. A cute ghost client haunts a design approval screen. Each "Approve design" click summons new feedback ("make the logo bigger", "17 more colours", "use the first version"), and the design obeys each one while the screen gets possessed and the fog thickens. Lock the brief to finally get "Approved. Finally."… until the P.S.
Built with both the Rive CLI and GPU Canvas.
Rive CLI + RML: the whole scene was written by a coding agent in Rive Markup Language, with a live preview.
GPU Canvas: two WGSL shaders (drifting fog and an RGB-split possessed-screen glitch), driven by the state machine.
Scripting: Luau scripts run the shaders and make the ghost's eyes follow your cursor.
Data binding: a view model drives the feedback flow, the live "Round N of ∞" counter and cursor tracking.
State machines: 5 layers covering float, feedback, the design's reactions, button modes and the twist ending.