Inspiration
FeelGood started from a problem we kept running into ourselves: we wanted to move, but figuring out what to do felt like another decision. Some days we had the energy for a full workout. Other days, ten minutes of stretching or a walk was all we had. Even then, we'd burn time deciding. Gym, yoga, a walk, or rest? And it gets worse at the gym: standing there trying to plan a workout, or scrolling through routines you meant to try while someone waits for your machine.
The smallest decisions can be enough to make you do nothing at all.
That's where FeelGood came from. Instead of asking "What workout should I do?", we wanted to ask "How do I want to feel today?"
You check in with your energy, your time, and how you're feeling, and FeelGood turns that into a small menu of movement that fits your day. The goal was simple: less deciding, more moving, even if you only have 5 minutes.
What it does
FeelGood is a movement companion that turns a short check-in into a daily menu. You tell it your energy, your time, and how you want to feel, and it hands back a small set of options that fit today.
- Covers Pilates, yoga, strength training, stretching, walking, breathing and more.
Built on the dopamine menu
- Borrowed from the dopamine menu, an idea popular in ADHD communities. Instead of a to-do list that asks you to decide everything, you get a short menu of pre-chosen options at different effort levels.
- Follows a familiar meal structure: an Appetizer for a small start, a Main, optional Sides, and a Dessert for movement you enjoy.
- Rest is a valid choice too.
- Every recommendation comes with a plain-language reason, so you're never wondering why something was picked.
- A short in-app tour explains the idea to first-time users.
- FeelGood is not a treatment or a medical tool, and it makes no claims about ADHD. It borrows a format that many people find easier to start from.
Movement that doesn't have to be a workout
- A day can be two minutes of box breathing, a ten-minute walk, or a gentle stretch, and all of it counts.
- The check-in asks how you want to feel, not how hard you want to work.
- Breathing and slower sessions sit on the same menu as strength and Pilates.
- The goal is to help you notice your body and reconnect with it, even on days when a rigorous workout isn't realistic.
Sessions
- Authored, step-by-step routines that play inside FeelGood.
- Timers and written instructions.
- Exercise demonstrations where available.
- Audio guidance in selected sessions.
Chat companion
- Say, "I've been sitting for a while and need to move," ask for something gentler, add a recommended routine to Today, or update your check-in through conversation.
- Before your first chat, FeelGood asks whether you want AI replies or replies that stay on your device.
- Free users can try one chat exchange before upgrading.
FeelGood Pro
- Unlimited chat.
- Unlimited menu swaps and adjustments (free users get one swap a day).
- Calendar-aware planning, plus a menu that learns from your recent history.
- Calendar integration is optional and uses free and busy time to keep plans realistic.
- A separate movement-recognition setting can spot planned activities such as Pilates, yoga or the gym.
- A calendar event counts as completed movement only when you confirm it.
- If a planned workout didn't happen, you can say so, and the app rebuilds the menu from your check-in and actual activity, without logging a miss.
Little Wins and returning
- Progress is celebrated with fruit badges instead of streaks.
- Preferences and optional body considerations shape recommendations.
- Returning after time away gets a shorter, warmer menu, so you never feel you have to catch up.
How we built it
FeelGood uses SwiftUI for the interface, SwiftData for local persistence, and an on-device planning engine that builds the daily menu. A bundled session catalog powers the in-app player and exercise demonstrations. RevenueCat manages Pro purchases, restores and subscription access through StoreKit. Monthly and yearly plans are available, and the paywall shows the selected plan's actual price and any eligible trial.
AI, with consent. Optional AI features use Google Gemini through our Cloudflare Worker. If you choose AI replies, Chat sends your messages and conversation history, after filtering, plus relevant context (activity preferences, equipment, today's menu and recent progress), to Cloudflare AI Search and Gemini to generate replies and suggestions. Before anything leaves your device, we remove emails, phone numbers and links, and scrub a list of sensitive health terms. That filtering is not a guarantee that every sensitive detail is removed. The AI never chooses what you do with your body: it writes framing copy only, and your menu is already on screen before it is asked. Breathing sessions use narration generated with ElevenLabs text-to-speech. We generate the clips ahead of time and bundle them in the app, so playback works offline and nothing about your session is sent to ElevenLabs. The voice is AI-generated, not a recording of a real person.
For Pro subscribers, Today's headline is also written by Gemini. It sees only coarse information (which sessions are on your menu, why, and your energy and time), never your messages, body notes or work-arounds. The daily planning engine itself runs entirely on your device.
Accounts and analytics. Accounts are optional. Signing in with Apple, Google or email uses Firebase Authentication, and your preferences, own routines and completed sessions sync through Firebase. PostHog records product analytics under a random per-install ID and never receives health data.
Notifications. OneSignal handles optional re-engagement. If you pause a session, you may get one reminder about 2.5 hours later, never after 8:30 PM, to finish it. Returning after time away can show a short welcome-back message. Notifications are opt-in and requested in context.
Challenges and what we learned
The hard part was keeping the next action clear while supporting different activities, energy levels, available time and equipment. A small menu and plain-language reasons made those choices easier to understand.
Making a recorded voice keep pace with a live visual. Starting a breathing animation and a voice track together doesn't make them match. We also hid the numeric countdown on breathing steps, since a ticking clock doesn't really correlate to slow breathing, and added gentle haptic pulses on each counted second, with a firmer one on real transitions.
We have never experimented with text to voice generation, so we iterated a lot on the voice and script. "In for four, hold for four" sounded like a drill sergeant, so we rewrote the script as a slow count-up ("Breathe in… two… three… four") and chose a steadier voice. We now generate each clip once and skip anything already made, so tuning doesn't burn credits.
The same approach now covers six breathing sessions, including ones with no hold, where nothing is announced because there isn't one.
We also separated installation onboarding from account restoration, so a missing local profile can be recovered without asking a returning user to repeat the quiz.
What we're proud of
FeelGood changed a lot once other people started using it, and we are so glad we got out of our comfort zone to do so. We shared early versions with friends and the community, and their feedback shaped the product in ways we couldn't have planned. One person told us FeelGood made sense for their "ADHD brain" because it removed the pressure of choosing from too many workouts. Others said they'd been looking for an app that helps them move without becoming another overwhelming task. Hearing 'this seems like an app I would use definitely helped us keep going.
That feedback led us to simplify onboarding, improve selected states, add movement previews, rethink when certain messages and paywall moments appear, and make the whole experience calmer.
We’re proud that FeelGood became more than the app we originally imagined. It became something people could actually see themselves using when they don’t know where to start.
What's next for FeelGood
In future iterations, we hope to:
Smoother animations and more variety
- Smoother animations.
- More progressive disclosure in the design.
- Better movement demos.
- More sessions across activities, durations and energy levels.
More personal ways to celebrate progress
- More small rewards that let people celebrate at their own pace.
Audio guidance beyond breathing
- Spoken instructions across more sessions, so you can follow along without watching the screen.
Building in public
- Above all, we've learned that posting in public helps us take feedback and keep shipping, so we'll keep doing it.



Log in or sign up for Devpost to join the conversation.