All work
AI · Chat

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
MAI Chat — main screen

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

  1. 01

    Personas with feelings

    Built multiple AI characters on the OpenAI API, each able to express distinct emotions throughout a conversation.

  2. 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.

  3. 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.

MAI Chat — screen 2
MAI Chat — screen 3
MAI Chat — screen 4