Inspiration

Last year I gained a lot of weight - up to 118 kg. Walking, moving, and working out became really hard.
What helped me get back on track was a friend and a simple bit of gamification: every day we wrote down small quests and competed with each other.
In just 3–4 months I dropped to 90 kg, fixed my diet, and felt in shape again.

But as a digital nomad, I had to move from Asia to Tbilisi, and we no longer trained together.
Without the competitive element and those little gamified rituals, it became much harder to maintain my progress.
That’s when it hit me - I needed a new kind of motivation.

That’s how PulzUp was born: turn fitness into a game where every step feels like a sword strike.
Your steps, calories, and workouts become damage against mobs and bosses.
Not just numbers in an app, but battles where your progress is instantly visible.

To inspire others and prove that this really works, we launched a 30-day challenge and actually completed it during the hackathon itself.
Challenge.jpg That experience became the foundation of our Legendary Tier Battle Pass - a special level with exclusive bosses and rewards, designed to mirror the feeling of a real challenge.

What it does

PulzUp turns your daily activity into a card-based RPG loop:

  • Dashboard: your HQ with stats - steps, calories, workout minutes. Every movement fuels your in-game damage.
  • Doors: open one and face what’s behind it - loot or a monster.
    • 3 free doors: easy, medium, hard.
    • Elite Battle Pass: a legendary tier with exclusive bosses and loot, inspired by our 30-day challenge.
  • Combat: your real stats = your attack power. Each enemy has HP, resistances, and a timer. Win by moving more, lose if the timer runs out.
  • Loot & Inventory: gear and consumables, each tied to specific body slots (head, hands, body). Yes, dual-wield is possible - but only one helmet.
  • Achievements: your grind turns into trophies, just like medals after a marathon.
  • Leaderboard: compare by steps, calories, minutes, or level.
  • Friends & Rivalries: invite buddies, keep each other accountable, flex your wins.

How we built it

  • Client: Flutter for iOS, with card animations, haptics, and one-hand UX.
  • Health Data: Apple HealthKit pulls steps, calories, and workout minutes. (Google Fit support in progress.)
  • Purchases: RevenueCat SDK for subscriptions, trials, entitlements, and webhooks.
  • Game Core:
    • Points Engine → converts real-world activity into damage.
    • Door Engine → RNG encounters with resistances and loot tables.
    • Combat Engine → simple deterministic battles: your damage vs enemy HP, under a timer.
  • Backend: Supabase Edge Functions.
    • Supabase Auth + Apple Sign-In.
    • Workers for streak rollovers and RevenueCat webhooks.
  • Push & Engagement (OneSignal):
    • “You’ve got damage” — a reminder to jump in and open a door.
    • “Door still open” — the door is active, you’ve got damage stored, go finish that monster.
    • “Morning kick-off” — a daily nudge: start your day with PulzUp.
  • Infra: Feature flags, remote config, Sentry, Xcode Cloud for CI/CD.
  • Testing: during the hackathon we ran our own 30-day challenge, using real fitness data to stress-test the mechanics.

Design

We drew inspiration from Arcane, Gravity Falls, Gorillaz, and Warner Brothers.
Equipment.jpg The style is bold, quirky, fun - but still clear and readable when you’re out of breath.

For production, we used a Veo 3 + MidJourney pipeline:

  • MidJourney for characters, concepts, and card art.
  • Veo 3 for cinematic animations and vibe consistency.
  • Combined, this workflow let us create a “fitness meets RPG” aesthetic fast, while keeping it polished.

Lore

For every race in the game, we crafted a unique piece of lore for each character, breathing a bit of soul into their story. Each one embodies a specific barrier to your fitness goals - with their own motives, always plotting to keep you from reaching the finish line.

Each Glazeborn is a living dessert with a wicked twist — meet them all and taste the chaos they bring. Read their stories here. Glazeborns Glazeborns-1.jpg

Each Snoozer drifts through the world as a fragment of sleep itself — from lazy tricksters to dream-born tyrants, all sworn to slow your every move. Read their stories here. Snoozers Snoozers.jpg

Each Time Leech is a living trap for your attention — masters of stolen minutes and vanished days, thriving on every moment you thought was yours. Read their stories here. Time Leeches
Time Leeches.jpg

Challenges we ran into

  • Apple submission hell. We resubmitted over and over — every time Apple found new bugs, so shipping to the App Store was a real grind.
  • The real 30-day challenge. Doing sport daily, hacking at night, and still handling our day jobs — tough mix. But it proved the concept works.
  • Go-to-market. The hardest part for any startup, and no surprise — it’s hard for us too. Figuring out distribution, early users, and channels is an ongoing battle.
  • Design pain. Early on, our cards and UI didn’t click at all. It took multiple iterations before we found a style that worked.
  • Tiny team. With just a few people, every bug, every task, every late night hit harder. But we pushed through.
  • Company setup. To publish on the App Store we had to register a company, set up accounts, and handle all the paperwork — a project in itself.
  • Time pressure. Hackathon deadlines mean no luxury of polish. Every feature cut or scope change hurt, but speed was survival.

Accomplishments that we're proud of

  • We shipped to the App Store. Despite endless resubmissions and Apple nitpicks, PulzUp is live and downloadable today.
  • We survived our own 30-day challenge. Training every day while building the app and hacking at night wasn’t easy — but it proved our loop works in real life.
  • RevenueCat integration is rock solid. Battle-pass working end-to-end, ready for users and scalable for growth.
  • We built a working combat loop. Doors, monsters, loot, inventory, streaks — all in place and playable.
  • We nailed the design direction. From failed first drafts to a unique style inspired by Arcane, Gravity Falls, Gorillaz, and Warner Brothers — it finally clicks.
  • We set up the company. All the legal and admin work needed for publishing and payments is done, so we’re ready to operate for real.
  • We grew a small community. Early users are giving feedback, sharing streaks, and already waiting for challenges and new content.

What we learned

  • Apple submission is a beast. Be ready for multiple rejections, bug hunts, and paperwork. Shipping is half coding, half patience.
  • Real-life testing beats theory. Our 30-day challenge gave us better insights than any spreadsheet — what feels motivating, what feels like a chore.
  • Design takes iteration. First versions of our cards and UI flopped. Only through constant rework did we find the vibe that clicked.
  • Revenue models need clarity. Users understand and trust simple tiers: free → Battle Pass → Legendary. Anything vague creates friction.
  • Tiny teams need ruthless focus. We had to cut scope and prioritize daily. Otherwise, nothing ships.
  • Community feedback is gold. Early users shaped how we explain “steps = damage” and pushed us to polish onboarding.

What's next for PulzUp

Roadmap

  • Android launch with Google Fit support.
  • Seasonal events and rotating bosses.
  • Social play: leaderboards, PvP, co-op raids.
  • Deeper economy: crafting, cosmetics, vanity items.
  • Accessibility improvements (contrast, reduced motion).
  • Scale backend and push engagement with OneSignal.

Built With

  • applehealthkit
  • elevenlabs
  • flutter
  • onesignal
  • revenuecat
  • supabase
  • xcode
Share this project:

Updates