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

Built With

  • android
  • canvas
  • casual
  • fidget
  • game
  • google-play-billing
  • google-play-games-services
  • haptics
  • in-app-purchases
  • jetpack-compose
  • kotlin
  • mental-health
  • offline
  • relaxation
  • revenuecat
  • wellness
Share this project:

Updates

Submission history