Inspiration
Most of my projects start from an indie developer mindset focused on building and shipping, but AI Feelings Wheel was different. This one was genuinely close to my heart, and I built it more for the experience than for making money.
I'm really interested in psychology, lifestyle, and productivity, and I've personally wanted a better way to understand and get clarity over my emotions. That's where the idea came from.
I wanted to build something that didn't just ask "How are you feeling?" but actually encouraged me to slow down, explore what I was feeling, and understand it better. I also had a lot of fun adding things like sound effects and Easter eggs because I wanted the app to feel enjoyable, not clinical.
What it does
AI Feelings Wheel starts with an interactive feeling wheel where users can explore emotions and progressively select more specific sub-emotions.
After selecting a feeling, users can add more context, such as the intensity of the emotion and what they were experiencing at that moment.
The Awareness feature goes a step further by asking questions designed to make the user have a conversation with themselves. The goal isn't simply to record an emotion, but to help users understand what they're actually feeling and gain more clarity.
The app also uses AI to help users understand their emotions and reflect on them more deeply.
How we built it
AI Feelings Wheel is built with Kotlin Multiplatform and Compose Multiplatform, using my open-source KMP Starter Template as the foundation.
The template helped me move extremely fast by already providing things like purchases, onboarding, paywalls, remote configuration, analytics, and other common infrastructure.
The feeling wheel itself is built using Canvas, while the sound effects use platform-specific APIs. I also contributed improvements back to the KMP Starter Template while building this project.
A lot of the infrastructure that would normally take significant time was already available, letting me focus more on the actual product and experience.
Challenges we ran into
Honestly, I didn't run into many major development challenges because the KMP Starter Template handled a lot of the usual infrastructure for me.
The biggest unexpected issue was having my AI API key exposed and subsequently stolen. I fixed the issue in the latest build, which is currently under review.
It was a good reminder that even when the product itself is working well, security around AI integrations needs to be considered from the beginning.
Accomplishments that we're proud of
I became surprisingly attached to this app while building it. I genuinely love using the final product, which isn't something I can say about every project I've made.
One of my favorite details is an Easter egg in the feeling wheel: if you rotate it extremely fast, the wheel actually breaks and you have to fix it.
I also spent time creating custom sound effects using ElevenLabs. They turned out much better than I expected and completely changed how the app feels.
Those small details weren't necessary for the core functionality, but they made the experience feel much more alive. That's probably what I'm most proud of — I built something that I genuinely enjoy interacting with.
What we learned
One of the biggest things I learned is how much sound can change the perception of a UI.
Even a relatively simple interface can feel significantly more polished and premium when the right sound effects and interactions are added.
I also saw firsthand how much a good foundation can accelerate development. Because the KMP Starter Template already had analytics, purchases, and other infrastructure prepared, I didn't have to spend much time reinventing those parts. I could focus on the actual experience instead.
What's next for AI Feelings Wheel
For now, I don't have a specific roadmap for the app. I'll continue fixing bugs, improving the existing experience, and listening to how people use it.
If I get an idea that genuinely makes the experience better, I'll build it. For now, I'm happy letting the app evolve naturally rather than adding features just for the sake of having a bigger roadmap.
Built With
- compose
- kmp-starter-template
- kotlin
- kotlin-multiplatform
Log in or sign up for Devpost to join the conversation.