Inspiration

I wanted something that pleases your eyes and makes you want to express how you feel. So instead of a dropdown or a keyboard emoji, there are eight little characters that breathe and blink on their own, and one of them looks like you right now. Tap it and you feel a heartbeat in your palm and a ripple across the screen.

If it is lovely to look at, you will want to open it. That is the whole idea.

What it does

Eight moods — happy, loved, calm, tired, sensitive, sad, irritated, angry. One tap from the app or straight from the Home Screen widget. Press and hold to attach a note when there's more to say.

Your moods never leave the iPhone. No account, no server, no analytics, no advertising, no tracking. The only network call the app makes is RevenueCat's, to ask whether you're subscribed.

How I built it

Built with Claude Code using SwiftUI. Moods can be logged with the widget. There is no server. The faces are drawn in a SwiftUI with Metal shaders that provides animation. RevenueCat handles the subscription.

Challenges I ran into

Main challenge was to get the animation to look nice and perfect and finalizing the design and theme of the app. Revenucat integration and testing took some time getting used to. Testing the entire app with mock data.

Accomplishments that we're proud of

A good-looking app that does one simple thing well, with payments and subscriptions working end to end.

What I learned

Revenuecat integration in a real app

What's next for MoodMate

See how the app actually performs now that it is live, find the pain points, and fix them. After that, on-device ML that reads the pattern in your moods and picks an inspirational or motivational quote worth reading on that particular day — chosen for where you actually are, rather than shown at random. All of it on the phone, like everything else in the app.

Built With

  • app-intents
  • core-haptics
  • metal
  • revenuecat
  • storekit
  • swift
  • swiftui
  • widgetkit
  • xcode
Share this project:

Updates

Submission history