Back

Nini AI

AI companion app helping people understand relationship dynamics and build healthier connections through guided conversations, case tracking, and personalized insights.

React NativeExpoAIIAP
getniniapp.com
Nini AI case study cover

Role

Senior Mobile Engineer

Mobile Stack

React Native, Expo, TypeScript, Expo Router, TanStack Query, Sentry, IAP.

Year

2025-2026

Backend Stack

Node.js, Express, PostgreSQL, Python, FastAPI, LangGraph, Firebase, Google Cloud, Docker.

Overview

Nini AI is an AI companion app designed to help people understand relationship dynamics and build healthier connections through guided conversations, case tracking, and personalized insights.

The product needed to turn a sensitive, AI-powered relationship support experience into a mobile app that felt private, trustworthy, and easy to use. Users needed a way to talk through situations, create cases, follow their emotional journey, and receive structured guidance from their phone.

I owned the mobile app architecture and delivery as the Senior Mobile Engineer, working closely with backend and full-stack engineers to bring the iOS and Android apps from concept to App Store and Google Play launch.

The Challenge

Nini AI needed to transform a complex and sensitive AI product into a polished mobile experience for users dealing with emotionally difficult relationship situations.

The app had to feel supportive and simple on the surface, while handling AI chat, case creation, onboarding, subscriptions, analytics, attribution, and production release workflows behind the scenes.

The app needed to:

  • Create a safe and intuitive onboarding experience for new users
  • Support AI-powered conversations around relationship patterns
  • Allow users to create and manage personal cases
  • Track user progress through status and My Journey flows
  • Handle subscriptions and entitlement access reliably
  • Integrate analytics, attribution, crash reporting, and OTA updates
  • Ship to both the App Store and Google Play with production-ready quality

The Solution

We built a dedicated mobile experience with React Native, Expo, and TypeScript, using Expo Router to structure app flows and keep navigation scalable as the product evolved.

On the mobile side, I integrated the app with a backend architecture where requests flowed through a Node.js / Express API Gateway into core backend services, with AI-specific workflows handled by separate Python / FastAPI / LangGraph microservices.

I owned the mobile architecture, app flows, API integration, subscriptions, analytics, attribution, OTA updates, and release workflows. I collaborated with backend and full-stack engineers to align API contracts, AI-driven flows, and mobile requirements, while keeping my ownership focused on the iOS and Android app.

The result was a production-ready iOS and Android app with strong stability during testing, integrated observability, attribution tracking, and a release pipeline ready for continuous iteration before the project was paused for budget reasons shortly after launch.

Key Features

Core mobile features included:

  • Safe onboarding for a sensitive relationship-support product
  • AI-powered chat for understanding relationship dynamics
  • Case creation and management
  • Status and My Journey progress flows
  • Subscriptions, entitlement access, analytics, attribution, and crash reporting
Nini AI app screens

Technical Highlights

Expo Router gave Nini AI a scalable navigation foundation for authenticated flows, onboarding, chat, cases, status, and My Journey screens.

Server state was handled with TanStack React Query, supporting caching, synchronization, and clean request lifecycle management across authenticated user flows.

Native integrations included In-App Purchases, Sentry, Vexo Analytics, Singular attribution, Google Cloud Storage, OTA Updates, and EAS Build.

While my main ownership was the mobile app, the product integrated with a containerized backend architecture using Node.js, Express, PostgreSQL, Python, FastAPI, and LangGraph, allowing core app logic and AI orchestration to evolve in separate services.

Mobile Architecture

Nini AI is a React Native / Expo app built with a modular feature-based architecture. It separates presentation, business logic, API communication, and native integrations through reusable components, custom hooks, context providers, and service modules.

Server state is handled with TanStack React Query for caching, synchronization, and request lifecycle management. Native concerns such as subscriptions, analytics, attribution, crash reporting, OTA delivery, and secure app flows are composed through dedicated service layers.

Backend Architecture

Nini AI uses a containerized backend architecture where the mobile app communicates with a Node.js / Express API Gateway.

Requests are routed into core backend services built with Node.js / Express and PostgreSQL, while AI-specific workflows are handled by separate Python / FastAPI / LangGraph microservices deployed on Google Cloud Run.

Firebase and Google Cloud support authentication, infrastructure, storage, and deployment workflows, while Docker is used to package services consistently across environments.