Your AI fashion editor: photograph any garment, get weather + calendar-aware outfits, scan EU DPP QR tags, and resell from a polished marketplace β all in your pocket.
Live demo
DressApp turns a closet of physical clothes into a structured, quarriable wardrobe and uses that wardrobe to drive everyday styling decisions.
| Flow | What it does |
|---|---|
| Capture | Snap or upload photos. The vision pipeline crops each garment, removes the background, and auto-fills 20+ attributes (category, fabric, fit, season, dress-code, colours, condition, repair adviceβ¦). |
| Auto-fill & Re-analyse | Falls back to local SegFormer + rembg + Gemini. The Re-analyse Photo card features an interactive AI prompt box allowing users to ask The Eyes for specific modifications ("Remove the shoes", "Complete the hole where the hand was", "Remove metal studs") executing photorealistic inpainting via Nano Banana (gemini-3.1-flash-lite-image). |
| DPP QR scan | Scans EU Digital Product Passport QR codes (JSON-LD or inline JSON), imports brand, fibre composition, supply-chain trace and care info β even without a photo. |
| AI Stylist & Audio | Conversational chat (text or voice) that pulls weather, your calendar, your closet, and your cultural context to suggest complete outfits. Speaks 13 languages. Integrated STT/TTS routes between Gemma4 and Gemini 2.5 Flash, with native Web Speech transcription fallback and mobile offline VITS models (Piper/Sherpa-ONNX). |
| Marketplace | Sell, swap or donate pieces. Region-matched feed, Live PayPal checkout, transparent platform fee (7% after processing). |
| Experts directory | Find vetted stylists, tailors and designers. Self-serve promotion campaigns (Draft/Pending/Active/Paused/Rejected lifecycles) with daily billing options ($1.00 USD/day PayPal checkout), customizable notification timing, and detailed performance reports drive a region-aware ticker on the home screen. Includes a dedicated My Campaigns dashboard for active expert tracking. |
| Trend Scout | Daily and monthly background scheduler curating 7 distinct channels across Men's and Women's fashion ecosystems β Local News, Runway, Street Style, Sustainability, Influencers & Icons, Vintage / Archival, and Care & Repairs. Employs web scraping (httpx + BeautifulSoup), Gemini JSON synthesis, strict anti-commerce/anti-paywall heuristic shields, dynamic translation across 13 locales, 1-tap "Style with My Closet" outfit handoff, and personalized demographic ranking. |
| Shopping Assistant | Chrome extension that reads size charts on partner stores (Zara, Asos, etc.) and recommends sizes based on your stored measurements. |
| Suitcase | Intelligent travel packing assistant that generates daily outfits and a packing list based on trip context, weather, and calendar events, with an interactive refinement chat. |
| Group Tagging | Bulk categorize multiple closet garments instantly to speed up wardrobe organization and improve AI Stylist reasoning. |
| Outfit Canvas & 2D Avatar | Adaptive dual-canvas interactive avatar (real-body photo cutout with U2-Net matting vs dynamic SVG vector mannequin DynamicAvatar.jsx) with calibrated landmark positioning (top-[14.5%] collar-to-neckline and top-[36.5%] waistband-to-waistline), scikit-learn ANSUR II physical sizing predictor, proportional scaling, and interactive layer click details. |
| Wardrobe Scheduler | Automated daily push notifications with 3 styled outfit recommendations generated from your closet history, preventing wear repetition. |
| State & Network Optimization | useSyncExternalStore thread-safe state architecture across Stylist, Daily Suggestions, Closet, and Marketplace, with in-flight deduplication, 15-min caching, and visibilitychange tab revalidation (0 idle background GET requests). |
| Monetization & Limits | Gated closet space (50-item baseline limit for Free users) with a paid Pro upgrade path via PayPal Subscriptions REST API (mock-testing supported) or free expansion (+10 slots) via invite referral loops. Pre-paid credit bucket billing (10 free credits daily with 30-day expiry, and purchased credit packs that never expire) with soft/hard exhaustion thresholds and a pause-and-resume execution pattern. |
Backend β FastAPI (Python 3.11) Β· Motor async MongoDB driver Β· Pydantic v2
Frontend β React 19 Β· useSyncExternalStore custom stores Β· React Router Β· Tailwind Β· Shadcn/UI Β· react-i18next (13 locales) Β· Sonner toasts Β· Lucide icons
Vision pipeline β full stack:
rembg (U2-Net) for matting Β· HuggingFace SegFormer-b2-clothes for clothing parsing Β· Fashion-CLIP for embeddings β all CPU-local. See requirements-ml.txt and the auto-detection in app/config.py.Voice / Audio β Deepgram (STT/TTS fallback), Gemini 2.5 Flash native modulations (prebuilt voice configs puck/aoede/charon), Web Speech API browser integration, and local Piper ONNX support.
LLM / Inference Engine β Multi-tier production routing:
backend/app/services/llm_gateway.py with native google-genai SDK and sub-350ms TTFT.gemma-4-E4B) β Free Tier & Quota Safety Net: Self-hosted dressapp-eyes container running fine-tuned Gemma-4-E4B (gemma-4-E4B-it-Q3_K_M.gguf via llama-server on port 7860). Serves as the zero-cost baseline for offline/free usage and transparently intercepts quota exhaustion (429 / RESOURCE_EXHAUSTED) with zero downtime.External APIs β OpenWeather Β· PayPal Live Β· Google OAuth + Google Calendar Β· HuggingFace Inference API
Hosting β Docker Compose Β· Caddy 2 (auto Let's Encrypt) Β· MongoDB Atlas
Extension β Manifest V3 Shopping Assistant (React popup + content scripts)
βββββββββββββ HTTPS βββββββββββββ
β β
βββββββββββΌβββββββββ ββββββββββΌββββββββββ
β Caddy (TLS) β β Browser (PWA) β
β /api/* β backendβ ββββββββββββββββββββ
β /* β frontendβ
ββββββ¬βββββββββ¬βββββ
β β
βββββββββββΌβ ββββΌββββββββββββββββββ
β FastAPI β β Nginx (static SPA) β
β :8001 β β React build β
ββββββ¬ββββββ΄βββββ΄βββββββββββββββββββββ
β
ββ MongoDB Atlas (users, closet, listings, trends, β¦)
ββ Vision pipeline: local SegFormer + rembg + Fashion-CLIP
ββ Primary Engine: Google Gemini 3.5 Flash-Lite (native google-genai)
ββ On-prem Eyes (:7860): llama-server + Gemma-4-E4B (Free Tier & Quota Safety Net)
ββ Deepgram & Gemini Audio (STT/TTS over HTTPS)
ββ OpenWeather, PayPal Live, Google OAuth/Calendar
ββ High-cost generative cloud endpoints (BYOK keys for Nano Banana & Trend Scout)
docs/ARCHITECTURE.md β Monorepo structure, FARM runtime, ML vision stack, and Hetzner VPS topology.docs/MONGODB_SCHEMA.md β Complete 15-collection MongoDB Atlas schema, indexes, and credit bucket definitions.CONTEXT.md and docs/adr/ β Bounded contexts, architectural decision records, and deep module boundaries.wiki/en/overview.md β 40 detailed feature guides localized into 13 languages.CONCRETE_FACTS.md β Authoritative hardware, container layouts, and operational reference commands..
βββ apps/
β βββ web/ # React 19 Web SPA (CRA + Craco, Tailwind, i18next)
β βββ mobile/ # Expo 53 / React Native 0.79 Mobile App (iOS / Android)
β βββ android-twa/ # Android Trusted Web Activity packaging wrapper
β
βββ packages/
β βββ api-client/ # Shared isomorphic REST & streaming NDJSON client
β βββ i18n/ # Canonical translation catalogs across 13 locales
β βββ types/ # Shared TypeScript definitions for domain models
β
βββ backend/ # FastAPI Python 3.11 Backend Service
β βββ server.py # ASGI application root & CORS configuration
β βββ app/
β β βββ api/v1/ # Versioned API routes (auth, closet, stylist, marketplace, etc.)
β β βββ core/ # Configuration, JWT security, and dependency injection
β β βββ db/ # Motor MongoDB client and index initialization
β β βββ models/ # Pydantic v2 schemas (schemas.py, credit.py)
β β βββ services/ # Business logic, vision matting, stylist agent, and billing
β βββ scripts/ # Seeding and maintenance utilities
β βββ requirements.txt # Production backend dependencies
β βββ requirements-ml.txt # Local ML stack (torch, transformers, rembg)
β
βββ chrome-extension/ # Manifest V3 Shopping Assistant Extension
βββ inference-server/ # Optional standalone GPU inference server (BiRefNet / Gemma-4)
βββ deploy/ # Production Docker Compose, Caddyfile, and Dockerfiles
β βββ docker-compose.yml
β βββ Dockerfile.backend
β βββ Dockerfile.frontend
β βββ Caddyfile
β βββ nginx-frontend.conf
β βββ DEPLOY.md # Step-by-step VPS deployment guide
βββ docs/ # Technical documentation, ADRs, and schema references
β βββ ARCHITECTURE.md # Full system architecture
β βββ MONGODB_SCHEMA.md # MongoDB Atlas collection schemas
β βββ adr/ # Architectural Decision Records (0001 - 0004)
β βββ agents/ # AI agent guidelines and domain documentation
βββ .agents/ # AI agent skills & workflows
β βββ workFlows/ # Core workflows (deploy, labrrerian, translator, user-manual)
βββ quarantine/ # Archived historical session notes and debug logs
βββ wiki/ # Localized two-layer user documentation (13 languages)
# Install workspace dependencies from the repo root:
yarn install
cd backend
# Create and activate a Python 3.11 virtual environment:
python -m venv .venv
# On Linux/macOS:
source .venv/bin/activate
# On Windows PowerShell:
.\.venv\Scripts\Activate.ps1
# Install dependencies:
pip install -r requirements.txt
# Run the FastAPI development server:
python server.py # Or: uvicorn server:app --reload --port 8001
Required environment variables in backend/.env:
MONGO_URL, DB_NAME, JWT_SECRET, GEMINI_API_KEY, GOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRET, DEEPGRAM_API_KEY, OPENWEATHER_API_KEY, PAYPAL_LIVE_CLIENT_ID, PAYPAL_LIVE_CLIENT_SECRET, PAYPAL_ENV.
# Start the React 19 web application:
yarn --cwd apps/web start
# Access at http://localhost:3000 (REACT_APP_BACKEND_URL defaults to http://localhost:8001)
# Start the Expo development server:
yarn --cwd apps/mobile start
For a fresh database, populate listings, professionals, trend cards and a demo user:
cd backend
python -m scripts.seed_demo # idempotent β re-running upserts
4-container Docker Compose stack on Hetzner Cloud CPX32 VPS (4 AMD vCPUs, 8 GB RAM, running on dressapp.co):
backend β FastAPI + local SegFormer + rembg + Fashion-CLIP (~1.5 GB RAM at idle)eyes β Self-hosted inference server (llama-server + FastAPI proxy) running fine-tuned gemma-4-E4B-it-Q3_K_M.gguf on port 7860 (~2.85 GB RAM)frontend β Nginx serving the built React 19 SPAcaddy β TLS termination, automatic Let's Encrypt, HTTPβHTTPS redirectdeploy/Dockerfile.backend installs requirements.txt and requirements-ml.txt so torch / transformers / rembg are all present. app/config.py auto-detects them and turns USE_LOCAL_CLOTHING_PARSER and AUTO_MATTE_CROPS to true.
Step-by-step instructions: deploy/DEPLOY.md.
# After cloning on the VPS:
cd deploy
cp .env.example .env # then edit
docker compose up -d --build
Routine update:
git pull origin main
docker compose up -d --build
mainruff check backend/yarn --cwd apps/web lintyarn --cwd apps/mobile lintΒ© 2025β2026 DressApp. All rights reserved. The trademarks, product designs, and content displayed in the app are the property of their respective owners.
Your AI fashion editor: photograph any garment, get weather + calendar-aware outfits, scan EU DPP QR tags, and resell from a polished marketplace β all in your pocket.
Live demo
DressApp turns a closet of physical clothes into a structured, quarriable wardrobe and uses that wardrobe to drive everyday styling decisions.
| Flow | What it does |
|---|---|
| Capture | Snap or upload photos. The vision pipeline crops each garment, removes the background, and auto-fills 20+ attributes (category, fabric, fit, season, dress-code, colours, condition, repair adviceβ¦). |
| Auto-fill & Re-analyse | Falls back to local SegFormer + rembg + Gemini. The Re-analyse Photo card features an interactive AI prompt box allowing users to ask The Eyes for specific modifications ("Remove the shoes", "Complete the hole where the hand was", "Remove metal studs") executing photorealistic inpainting via Nano Banana (gemini-3.1-flash-lite-image). |
| DPP QR scan | Scans EU Digital Product Passport QR codes (JSON-LD or inline JSON), imports brand, fibre composition, supply-chain trace and care info β even without a photo. |
| AI Stylist & Audio | Conversational chat (text or voice) that pulls weather, your calendar, your closet, and your cultural context to suggest complete outfits. Speaks 13 languages. Integrated STT/TTS routes between Gemma4 and Gemini 2.5 Flash, with native Web Speech transcription fallback and mobile offline VITS models (Piper/Sherpa-ONNX). |
| Marketplace | Sell, swap or donate pieces. Region-matched feed, Live PayPal checkout, transparent platform fee (7% after processing). |
| Experts directory | Find vetted stylists, tailors and designers. Self-serve promotion campaigns (Draft/Pending/Active/Paused/Rejected lifecycles) with daily billing options ($1.00 USD/day PayPal checkout), customizable notification timing, and detailed performance reports drive a region-aware ticker on the home screen. Includes a dedicated My Campaigns dashboard for active expert tracking. |
| Trend Scout | Daily and monthly background scheduler curating 7 distinct channels across Men's and Women's fashion ecosystems β Local News, Runway, Street Style, Sustainability, Influencers & Icons, Vintage / Archival, and Care & Repairs. Employs web scraping (httpx + BeautifulSoup), Gemini JSON synthesis, strict anti-commerce/anti-paywall heuristic shields, dynamic translation across 13 locales, 1-tap "Style with My Closet" outfit handoff, and personalized demographic ranking. |
| Shopping Assistant | Chrome extension that reads size charts on partner stores (Zara, Asos, etc.) and recommends sizes based on your stored measurements. |
| Suitcase | Intelligent travel packing assistant that generates daily outfits and a packing list based on trip context, weather, and calendar events, with an interactive refinement chat. |
| Group Tagging | Bulk categorize multiple closet garments instantly to speed up wardrobe organization and improve AI Stylist reasoning. |
| Outfit Canvas & 2D Avatar | Adaptive dual-canvas interactive avatar (real-body photo cutout with U2-Net matting vs dynamic SVG vector mannequin DynamicAvatar.jsx) with calibrated landmark positioning (top-[14.5%] collar-to-neckline and top-[36.5%] waistband-to-waistline), scikit-learn ANSUR II physical sizing predictor, proportional scaling, and interactive layer click details. |
| Wardrobe Scheduler | Automated daily push notifications with 3 styled outfit recommendations generated from your closet history, preventing wear repetition. |
| State & Network Optimization | useSyncExternalStore thread-safe state architecture across Stylist, Daily Suggestions, Closet, and Marketplace, with in-flight deduplication, 15-min caching, and visibilitychange tab revalidation (0 idle background GET requests). |
| Monetization & Limits | Gated closet space (50-item baseline limit for Free users) with a paid Pro upgrade path via PayPal Subscriptions REST API (mock-testing supported) or free expansion (+10 slots) via invite referral loops. Pre-paid credit bucket billing (10 free credits daily with 30-day expiry, and purchased credit packs that never expire) with soft/hard exhaustion thresholds and a pause-and-resume execution pattern. |
Backend β FastAPI (Python 3.11) Β· Motor async MongoDB driver Β· Pydantic v2
Frontend β React 19 Β· useSyncExternalStore custom stores Β· React Router Β· Tailwind Β· Shadcn/UI Β· react-i18next (13 locales) Β· Sonner toasts Β· Lucide icons
Vision pipeline β full stack:
rembg (U2-Net) for matting Β· HuggingFace SegFormer-b2-clothes for clothing parsing Β· Fashion-CLIP for embeddings β all CPU-local. See requirements-ml.txt and the auto-detection in app/config.py.Voice / Audio β Deepgram (STT/TTS fallback), Gemini 2.5 Flash native modulations (prebuilt voice configs puck/aoede/charon), Web Speech API browser integration, and local Piper ONNX support.
LLM / Inference Engine β Multi-tier production routing:
backend/app/services/llm_gateway.py with native google-genai SDK and sub-350ms TTFT.gemma-4-E4B) β Free Tier & Quota Safety Net: Self-hosted dressapp-eyes container running fine-tuned Gemma-4-E4B (gemma-4-E4B-it-Q3_K_M.gguf via llama-server on port 7860). Serves as the zero-cost baseline for offline/free usage and transparently intercepts quota exhaustion (429 / RESOURCE_EXHAUSTED) with zero downtime.External APIs β OpenWeather Β· PayPal Live Β· Google OAuth + Google Calendar Β· HuggingFace Inference API
Hosting β Docker Compose Β· Caddy 2 (auto Let's Encrypt) Β· MongoDB Atlas
Extension β Manifest V3 Shopping Assistant (React popup + content scripts)
βββββββββββββ HTTPS βββββββββββββ
β β
βββββββββββΌβββββββββ ββββββββββΌββββββββββ
β Caddy (TLS) β β Browser (PWA) β
β /api/* β backendβ ββββββββββββββββββββ
β /* β frontendβ
ββββββ¬βββββββββ¬βββββ
β β
βββββββββββΌβ ββββΌββββββββββββββββββ
β FastAPI β β Nginx (static SPA) β
β :8001 β β React build β
ββββββ¬ββββββ΄βββββ΄βββββββββββββββββββββ
β
ββ MongoDB Atlas (users, closet, listings, trends, β¦)
ββ Vision pipeline: local SegFormer + rembg + Fashion-CLIP
ββ Primary Engine: Google Gemini 3.5 Flash-Lite (native google-genai)
ββ On-prem Eyes (:7860): llama-server + Gemma-4-E4B (Free Tier & Quota Safety Net)
ββ Deepgram & Gemini Audio (STT/TTS over HTTPS)
ββ OpenWeather, PayPal Live, Google OAuth/Calendar
ββ High-cost generative cloud endpoints (BYOK keys for Nano Banana & Trend Scout)
docs/ARCHITECTURE.md β Monorepo structure, FARM runtime, ML vision stack, and Hetzner VPS topology.docs/MONGODB_SCHEMA.md β Complete 15-collection MongoDB Atlas schema, indexes, and credit bucket definitions.CONTEXT.md and docs/adr/ β Bounded contexts, architectural decision records, and deep module boundaries.wiki/en/overview.md β 40 detailed feature guides localized into 13 languages.CONCRETE_FACTS.md β Authoritative hardware, container layouts, and operational reference commands..
βββ apps/
β βββ web/ # React 19 Web SPA (CRA + Craco, Tailwind, i18next)
β βββ mobile/ # Expo 53 / React Native 0.79 Mobile App (iOS / Android)
β βββ android-twa/ # Android Trusted Web Activity packaging wrapper
β
βββ packages/
β βββ api-client/ # Shared isomorphic REST & streaming NDJSON client
β βββ i18n/ # Canonical translation catalogs across 13 locales
β βββ types/ # Shared TypeScript definitions for domain models
β
βββ backend/ # FastAPI Python 3.11 Backend Service
β βββ server.py # ASGI application root & CORS configuration
β βββ app/
β β βββ api/v1/ # Versioned API routes (auth, closet, stylist, marketplace, etc.)
β β βββ core/ # Configuration, JWT security, and dependency injection
β β βββ db/ # Motor MongoDB client and index initialization
β β βββ models/ # Pydantic v2 schemas (schemas.py, credit.py)
β β βββ services/ # Business logic, vision matting, stylist agent, and billing
β βββ scripts/ # Seeding and maintenance utilities
β βββ requirements.txt # Production backend dependencies
β βββ requirements-ml.txt # Local ML stack (torch, transformers, rembg)
β
βββ chrome-extension/ # Manifest V3 Shopping Assistant Extension
βββ inference-server/ # Optional standalone GPU inference server (BiRefNet / Gemma-4)
βββ deploy/ # Production Docker Compose, Caddyfile, and Dockerfiles
β βββ docker-compose.yml
β βββ Dockerfile.backend
β βββ Dockerfile.frontend
β βββ Caddyfile
β βββ nginx-frontend.conf
β βββ DEPLOY.md # Step-by-step VPS deployment guide
βββ docs/ # Technical documentation, ADRs, and schema references
β βββ ARCHITECTURE.md # Full system architecture
β βββ MONGODB_SCHEMA.md # MongoDB Atlas collection schemas
β βββ adr/ # Architectural Decision Records (0001 - 0004)
β βββ agents/ # AI agent guidelines and domain documentation
βββ .agents/ # AI agent skills & workflows
β βββ workFlows/ # Core workflows (deploy, labrrerian, translator, user-manual)
βββ quarantine/ # Archived historical session notes and debug logs
βββ wiki/ # Localized two-layer user documentation (13 languages)
# Install workspace dependencies from the repo root:
yarn install
cd backend
# Create and activate a Python 3.11 virtual environment:
python -m venv .venv
# On Linux/macOS:
source .venv/bin/activate
# On Windows PowerShell:
.\.venv\Scripts\Activate.ps1
# Install dependencies:
pip install -r requirements.txt
# Run the FastAPI development server:
python server.py # Or: uvicorn server:app --reload --port 8001
Required environment variables in backend/.env:
MONGO_URL, DB_NAME, JWT_SECRET, GEMINI_API_KEY, GOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRET, DEEPGRAM_API_KEY, OPENWEATHER_API_KEY, PAYPAL_LIVE_CLIENT_ID, PAYPAL_LIVE_CLIENT_SECRET, PAYPAL_ENV.
# Start the React 19 web application:
yarn --cwd apps/web start
# Access at http://localhost:3000 (REACT_APP_BACKEND_URL defaults to http://localhost:8001)
# Start the Expo development server:
yarn --cwd apps/mobile start
For a fresh database, populate listings, professionals, trend cards and a demo user:
cd backend
python -m scripts.seed_demo # idempotent β re-running upserts
4-container Docker Compose stack on Hetzner Cloud CPX32 VPS (4 AMD vCPUs, 8 GB RAM, running on dressapp.co):
backend β FastAPI + local SegFormer + rembg + Fashion-CLIP (~1.5 GB RAM at idle)eyes β Self-hosted inference server (llama-server + FastAPI proxy) running fine-tuned gemma-4-E4B-it-Q3_K_M.gguf on port 7860 (~2.85 GB RAM)frontend β Nginx serving the built React 19 SPAcaddy β TLS termination, automatic Let's Encrypt, HTTPβHTTPS redirectdeploy/Dockerfile.backend installs requirements.txt and requirements-ml.txt so torch / transformers / rembg are all present. app/config.py auto-detects them and turns USE_LOCAL_CLOTHING_PARSER and AUTO_MATTE_CROPS to true.
Step-by-step instructions: deploy/DEPLOY.md.
# After cloning on the VPS:
cd deploy
cp .env.example .env # then edit
docker compose up -d --build
Routine update:
git pull origin main
docker compose up -d --build
mainruff check backend/yarn --cwd apps/web lintyarn --cwd apps/mobile lintΒ© 2025β2026 DressApp. All rights reserved. The trademarks, product designs, and content displayed in the app are the property of their respective owners.