Mobile app · 2026

Vestly

A mobile fashion app with AI virtual try-on, built from a personal online-shopping pain point and expanded into a full wardrobe assistant roadmap.

In development

Project description

Vestly comes from a personal drive: I wanted to see clothes on myself before buying online, not just on product models. Right now, the functional feature is the virtual try-on shown in the gallery above: users upload a garment and their own photo, and Gemini is used in the pipeline to generate the try-on output. The modules currently in development are the virtual wardrobe manager and the virtual shopping assistant, with item analysis, smart categorization, duplicate detection, outfit pairing suggestions, and contextual purchase recommendations.

Project highlights

  • Built with React Native + Expo to speed up iteration and keep mobile capture/preview workflows smooth.
  • Gemini integrated in the virtual try-on flow to process garment + user photo inputs and generate wearable previews.
  • Global state handled with Zustand for lightweight, predictable cross-screen state management.
  • Server-state and async request orchestration handled with TanStack Query for caching, loading/error states, and cleaner data flows.
  • Firebase-backed architecture for auth, persistence, and structured wardrobe/shopping assistant entities.

Technologies used

Tools that power the build

React Native
React Native
Expo
Expo
TypeScript
TypeScript
Zustand
Zustand
TanStack Query
TanStack Query
Firebase
Firebase
Gemini
Gemini
Figma
Figma
React Native
React Native
Expo
Expo
TypeScript
TypeScript
Zustand
Zustand
TanStack Query
TanStack Query
Firebase
Firebase
Gemini
Gemini
Figma
Figma
React Native
React Native
Expo
Expo
TypeScript
TypeScript
Zustand
Zustand
TanStack Query
TanStack Query
Firebase
Firebase
Gemini
Gemini
Figma
Figma
React Native
React Native
Expo
Expo
TypeScript
TypeScript
Zustand
Zustand
TanStack Query
TanStack Query
Firebase
Firebase
Gemini
Gemini
Figma
Figma
React Native
React Native
Expo
Expo
TypeScript
TypeScript
Zustand
Zustand
TanStack Query
TanStack Query
Firebase
Firebase
Gemini
Gemini
Figma
Figma
React Native
React Native
Expo
Expo
TypeScript
TypeScript
Zustand
Zustand
TanStack Query
TanStack Query
Firebase
Firebase
Gemini
Gemini
Figma
Figma