-
-
Drift: eight cozy fidget toys. No ads, no account.
-
Fidget spinner: real momentum and a live RPM counter
-
Zen garden: rake calm lines around the koi pond
-
Soothing sounds: mix rain, waves, cafe, birds and fire
-
Marble: tilt your phone to balance the marble
-
Mole boop: no timer, no pressure, just boops
-
Bubble wrap: a crisp pop you can feel
-
Galaxy slime: stretch it, poke it, watch it wobble back
-
Clicky switches: rows of satisfying toggles
-
App icon (1024x1024)
Inspiration
I built Drift for the moments when your hands want something to do and your head wants a break. Waiting in line, stuck on a hard task, feeling low at 11pm. Most "relax" apps ask you to sit still and breathe. Drift lets you fidget instead.
What it does
Eight toys, each tuned to feel good under your thumb: bubble wrap with a crisp pop, a fidget spinner with real momentum and bearing whir, galaxy slime you can stretch and poke, a zen garden you rake around a koi pond, a sound mixer (rain, waves, cafe, birds, fire), a gentle mole boop game, a tilt-to-balance marble and rows of clicky switches. Everything runs at 60fps with haptics tuned per toy.
Who it is for
Teens and adults who get restless, anxious or bored and want a small, no-pressure reset. No account, no ads, works offline.
Progress without pressure
Daily streaks, a one-tap mood check-in and 71 Google Play Games achievements (24 families, tiered bronze to violet) reward coming back without punishing you for missing a day. Every achievement pays coins. Progress, coins and unlocked styles sync through Play Games Saved Games, so nothing is lost on a new phone.
How it makes money (RevenueCat)
Coins are earned by playing and spent on styles: brass, glass and galaxy spinners, gold and aurora slime, sakura and volcanic sand gardens, bubble skins. Players who want a style now can buy a coin pack. Three consumable packs (500, 1700 with bonus, 5000 coins) are served from a RevenueCat offering, so I can change prices, packs and order from the dashboard without shipping an update. The free game is complete. Paying only speeds up cosmetics, which fits a calm app better than a paywall or ads.
How I built it
Kotlin and Jetpack Compose, custom Canvas drawing for every toy (no game engine), RevenueCat Purchases SDK for the store, Play Games Services v2 for achievements and cloud save. Achievement badges are generated by a script from one config file, so adding a new achievement is one line.
Challenges and what I learned
Making a flat screen feel physical took the most time: spinner momentum, slime wobble and per-toy haptics were tuned by hand on a real device. Consumable coin packs also need care. Play Store promo codes and interrupted purchases can complete outside the app, so Drift grants coins from RevenueCat CustomerInfo on launch instead of trusting only the purchase callback.
What is next
More toys (Koi Pond, Foggy Window and Kinetic Sand are already teased as locked tiles), seasonal styles and a breathing guide.
Try it
Free on Google Play: https://play.google.com/store/apps/details?id=pause.drift.breathe
Log in or sign up for Devpost to join the conversation.