MAI Chat
A chat app that feels what it says.
- Role
- Full-stack developer · Next.js, Supabase, OpenAI
- Stack
- Next.js · Supabase · OpenAI API · Redux

The challenge
Most AI chat interfaces look identical no matter what's being said. MAI Chat's idea: characters with real emotional range — happy, sad, angry — and an interface that feels those emotions too.
The approach
- 01
Personas with feelings
Built multiple AI characters on the OpenAI API, each able to express distinct emotions throughout a conversation.
- 02
UI as an emotional mirror
The interface reads each message's emotional context and shifts colors and backgrounds to match, so mood is felt before it's read.
- 03
Solid plumbing underneath
Supabase handles persistence and auth; Redux Toolkit keeps conversation and theme state predictable as moods change mid-chat.
What I built
- Built a multi-character AI chat app with Next.js, Supabase, OpenAI API, and RTK Redux. Users interact with personas expressing emotions such as happiness, sadness, or anger.
- The UI dynamically changes colors and backgrounds based on message context to reflect those emotions.
An immersive chat experience where design and AI work together — proof that AI products can have personality, not just answers.


