Case study

Resilient Mind

A web application concept for accessible emotional support, through AI-assisted conversations and self-guided exercises.

Role
Solo developer
Period
2025–2026
Project type
Mental health support / AI integration
  • Vue 3
  • TypeScript
  • Firebase
  • OpenAI
  • GitHub Pages
Landing page of the live Resilient Mind app. The navigation offers Sign in and Create account. Four cards read AI Chat Support, Book Therapy, Recovery Programs, and Community.
Landing page. The cards describe the product idea. Therapy booking and the community are unfinished modules.

Overview

Emotional support, built as an application prototype.

Resilient Mind is a mental health support concept for people affected by the war in Ukraine and for anyone seeking emotional support. The product vision includes an AI chatbot, therapy booking, recovery programs, and a community.

The implemented application provides email and password accounts, an AI-assisted chat for signed-in users, and self-guided breathing and CBT exercises in the browser.

My role

Solo developer across the stack.

I designed and built the Vue 3 and TypeScript application end to end: frontend architecture and routing, Pinia state, Firebase Authentication and Firestore integration, and the callable Cloud Function that connects to OpenAI. Every commit in the repository is mine.

Implemented features

What ships in the prototype.

Authentication

Email and password sign-up and sign-in with Firebase Authentication. Protected routes require a signed-in session.

AI chatbot

OpenAI gpt-4o-mini through the authenticated Cloud Function handleAIChat. The chat is available after sign-in.

Self-guided exercises

Browser-based breathing patterns and CBT forms (thought record and behavioral activation). Progress is not persisted.

Sign-in screen with email and password fields and a Sign in button.
Sign-in — Firebase Authentication.
Signed-in AI Support Chat. A disclaimer says the assistant is not a replacement for professional care. The thread shows a welcome message, the word Hello, and a short reply.
AI chat after sign-in — messages go through the deployed Cloud Function.
Breathing exercise with a blue circle labeled Ready, a timer at 0:00, Start and Reset buttons, a five-minute duration, and the 4-7-8 pattern selected.
Breathing exercise — runs locally in the browser.

Architecture

From the UI to the OpenAI model.

Vue 3 + Pinia → Firebase Cloud Function (handleAIChat) → OpenAI API (gpt-4o-mini).

handleAIChat runs only for signed-in users through Firebase Authentication. The OpenAI key is stored in a Firebase secret, not in the client bundle. There is no separate application server.

  1. 01

    Vue 3 and TypeScript with Vue Router and Pinia for application structure and state.

  2. 02

    Server-side OpenAI integration through Firebase Cloud Functions.

  3. 03

    GitHub Pages deployment with Vite base /resilient-mind/ and SPA fallback for direct routes.

Project status

Prototype scope.

A working application prototype with authentication, AI-assisted conversations and self-guided exercises. Therapist booking, community features and advanced recovery modules remain unfinished.

Technology stack

What the running application uses.

  • Vue 3
  • TypeScript
  • Vite
  • Vue Router
  • Pinia
  • Tailwind CSS
  • Firebase Authentication
  • Cloud Firestore
  • Firebase Cloud Functions
  • OpenAI API
  • GPT-4o-mini
  • GitHub Actions
  • GitHub Pages

Links

Interested in working together? Get in touch.

Back to work