Core Products
Clean little interactions carrying the team on their back.
Clean little interactions carrying the team on their back.
A denim zipper that unzips and parts the screen like a curtain. The pull rides down the seam, the teeth split open along a soft rounded V, then both fabric halves slide off-screen to reveal the app underneath. Great as a splash, intro, or screen-transition overlay.
Each half of the zipper is rendered as a textured triangle mesh with @shopify/react-native-skia's Vertices + ImageShader, not a masked image, so the denim and the teeth baked on its inner edge physically deform as it opens. A single shared progress value (0..1) drives everything via react-native-reanimated v4 worklets: per-row vertex x positions follow a hyperbola (shift = OPEN_SLOPE * (sqrt(d² + R²) − R)) for a soft V with no hard kink, while texture coords and triangle indices stay fixed. The timeline splits in two — unzip (0→0.6) then curtain slide-off (0.6→1) — with the pull keeping a continuous pace so there's no velocity break at the hand-off. All vertex math runs on the UI thread. Because Skia ships native code it requires a dev build (not Expo Go); tested on Expo SDK 56 (iOS + Android) with react-native-worklets.
An interactive x-ray effect that reveals a hidden image underneath a base photo through a circular mask the user drags around. Pan to move the lens and long-press to reset, perfect for product showcases, before/after reveals, or playful onboarding screens.
A full-screen animated swimming-pool water effect with drifting caustics, refraction ripples, and a buoyant rubber duck whose shadow wobbles on the tiled floor below. Built as a Skia runtime shader (SkSL) driven by Reanimated, it makes a great living background for splash screens, onboarding, or empty states.
A Telegram-inspired profile header where the avatar blob gooily detaches from a top pill and pops into a full profile photo as you pull the list down. The metaball merge/separation is rendered with a Skia ColorMatrix filter while a Reanimated scroll handler drives the radius, blur and snap behavior on the UI thread.