Inspiration

Most quit-smoking apps give you a number on a screen. A number is easy to ignore, and easy to delete. We wanted something that is visibly getting better because of you: a dragon that has smoked for as long as you have, and heals every day you do not.

The second thing we wanted was to never punish a slip. Many apps reset your counter to zero when you smoke one cigarette, which is exactly when people give up. stosmok does not do that.

What it does

  • A companion that evolves. A grey, coughing dragon heals as your smoke-free time grows. It has 6 stages and 18 forms, and each change plays an animation with sound and vibration.
  • SOS for cravings, always free. A guided 4-7-8 breathing exercise, a 60-second game, your own reasons for quitting, and a walk timer.
  • Slips do not reset your progress. Log a cigarette and the app shows exactly what changed (cigarettes not smoked, money saved, life gained) and what stays the same. Your smoke-free clock keeps running. If you start smoking daily again, you can start a new quit, and your total smoke-free time from all attempts is kept.
  • 15 health milestones from CDC and NHS guidance, more than 40 badges, weekly challenges, and insights about your hardest hour and biggest trigger.
  • Private by design. No account, no server, and it works offline. You can move your data to a new phone, including between iPhone and Android.
  • 7 languages, and a short tour that explains the app.

How we built it

Flutter, with one codebase. Everything is stored on the phone in a local database (Drift on SQLite), and the state is managed with Riverpod. The dragon is not an image or a video. It is drawn in code, with 18 forms, skins, a stage evolution animation, and particles. The sound effects and the music in our demo video were generated by small scripts, so there are no licensed audio files.

Monetisation runs on RevenueCat. The app is free to install, with a 3-day free trial. One RevenueCat purchase, a non-consumable lifetime unlock, unlocks everything forever, with no subscription. RevenueCat also handles the optional cosmetic purchases (dragon skins, a bundle and a supporter pack), restore purchases, and entitlements. The SOS craving tools are never behind the paywall.

Challenges we ran into

Changing the business model. The app began as a paid download. We switched it to free install plus one lifetime unlock, and moved existing buyers over with a one-time migration so nobody who already paid sees a paywall.

Never shaming the user. Logging a cigarette and ending a quit are two different actions in the app, with different results. Getting that wording and flow right took several rounds.

Real users found it confusing. Early testers could not tell what SOS meant, why a logged cigarette did not reset the clock, or where the shop was. We added a tour, a clear summary after logging a cigarette, and rewrote the text in plain English in all 7 languages.

Accomplishments that we're proud of

  • The app is live on Google Play.
  • The evolution scene: animation, sound and vibration working together.
  • Your health data never leaves your phone. The only network traffic is RevenueCat purchases and optional crash reports.

What we learned

Charging once, openly, and keeping help free builds trust. People try the whole app for 3 days first, and the craving tools stay free for everyone.

What's next for stosmok

  • The App Store version for iPhone.
  • More dragon skins and seasonal themes.
  • More languages, checked by native speakers.

Built With

  • claude-code
  • dart
  • drift
  • flutter
  • google-play-billing
  • remotion
  • revenuecat
  • riverpod
  • sentry
  • sqlite
Share this project:

Updates

Submission history