Emotional Friend Chatbot.

A gentle, privacy-conscious space for thoughtful conversational support.

Back to Projects

30m

Private guest session stored only in the browser

0

Camera frames uploaded or saved

8K

Character limit for room to express a complete thought

Support that respects uncertainty.

Emotional Friend offers registered conversations and a temporary guest demo for talking through what is on your mind. Clear boundaries make it explicit that the product is not therapy, diagnosis, crisis monitoring, or emergency care.

Optional expression context runs in the browser after explicit consent. The app shares only a coarse, time-bounded label with the assistant when the user enables tone adaptation—never video frames, landmarks, embeddings, or biometric templates.

Guest conversations remain in versioned local storage and expire after 30 minutes of inactivity. Registered chats are owner-scoped, and the interface supports multiple chats, message recovery, renaming, and clear deletion flows.

Supported Emotions

😊
Happy
😢
Sad
😠
Angry
😲
Surprised
😨
Fearful
🤢
Disgusted
+ Neutral

Advanced AI technology.

A carefully bounded AI system with explicit consent, safety routing, and recoverable states.

Emotion Recognition

A lazy-loaded browser model estimates one of seven normalized expression labels after consent. Every estimate is presented as a guess, never a fact.

On-device Model • Explicit Consent • Seven Labels

Conversational Support

Server-side prompt construction sends bounded, authorized context to the OpenAI Responses API with timeouts, idempotency, and reviewed safety routing.

OpenAI Responses API • Safety • Bounded Context

Resilient Messaging

Optimistic messages reconcile through stable request IDs, retries never send the same message twice, and failed replies keep the user’s original text intact.

Idempotency • Recovery • Clear Status

Privacy by design.

Built with user privacy as the foundation. All emotion detection is optional.

Camera frames, landmarks, embeddings, and biometric templates stay on the device and are never persisted. Chatting works the same way with expression context switched off.

Registered data is scoped to the signed-in user in Firebase, while guest chat text remains local. Server logs exclude complete conversation text and sensitive identity by default.

Privacy Features

Optional Detection

Complete control over emotion detection activation

Local Processing

Camera data processed locally on your device

Encrypted Storage

Owner-scoped Firebase authentication and Firestore access

Built with cutting-edge technology.

Clear runtime boundaries keep private data, AI calls, and browser-only features in the right place.

Frontend & Interface

React 19 + TypeScript

Accessible, responsive conversation states

Vite

Fast application shell and controlled model delivery

Local Expression Model

Lazy loading, explicit consent, and complete teardown

AI & Backend

Firebase

Authentication and owner-scoped registered conversations

Vercel TypeScript APIs

Identity checks, safety routing, rate limits, and AI calls

OpenAI Responses API

Reviewed prompts with bounded history and stable errors

Experience empathetic AI.

Try a private browser-only demo, or create an account to keep future conversations.

Back to Projects