Membangun AI Fashion Stylist dari Nol — Behind the Scenes OutfittingMe
Di artikel ini, gue mau share cerita di balik pembangunan OutfittingMe — platform AI fashion stylist pertama di Indonesia. Bukan cuma soal teknologi, tapi juga soal product decisions, engineering trade-offs, dan lessons learned.
The Problem Statement
Indonesia punya pasar fashion e-commerce senilai $6.2 miliar. Tapi ada gap besar: 30% pembelian online dikembalikan karena ga cocok. Kenapa? Karena ga ada tools yang bener-bener memahami bentuk tubuh dan preferensi personal.
Existing solutions? Stylist manusia mahal ($500-5000/sesi). Recommendation engine marketplace? Cuma berdasarkan "orang yang beli X juga beli Y" — ga memahami body shape atau color matching.
Architecture Overview
OutfittingMe dibangun dengan stack modern yang optimized untuk AI processing:
- Backend: Fastify 5 (Node.js) — fast, lightweight, excellent TypeScript support
- Frontend: Next.js 15 — SSR untuk SEO, React untuk interactivity
- Database: PostgreSQL 16 dengan pgvector extension — untuk vector similarity search
- AI/ML: Ollama embeddings (768D), GPT-4o-mini untuk VTO
- Cache: Redis 7 — session management dan recommendation caching
- ORM: Prisma — type-safe database access
The 9-Layer Recommendation Engine
Core innovation dari OutfittingMe adalah 9-layer recommendation engine. Kenapa 9 layer? Karena fashion itu complex — ga cukup cuma "kamu suka warna biru, ini produk biru".
Setiap layer memproses data secara berurutan:
- Body Shape Analysis — Input: measurements → Output: shape classification (pear/apple/hourglass/rectangle/inverted triangle)
- Undertone Detection — Input: skin analysis quiz → Output: warm/cool/neutral
- 12-Season Color Harmony — Input: undertone + hair/eye color → Output: seasonal palette
- Silhouette Scoring — Input: body shape + garment shape → Output: compatibility score 0-100
- Textile Physics — Input: fabric type + body type → Output: draping prediction
- Modest-Fit Scoring — Input: modest requirements + garment → Output: modesty score
- Style Personality — Input: quiz answers → Output: style archetype
- Occasion Matching — Input: context + garment → Output: appropriateness score
- Budget Optimization — Input: budget + options → Output: ranked list
Vector Search for Fashion
Salah satu technical challenge terbesar adalah product matching. Dengan 10,000+ produk, gimana cara cari yang paling cocok dalam milliseconds?
Jawabannya: pgvector. Setiap produk di-embed ke 768-dimensional vector menggunakan Ollama. Ketika user request recommendation, profil mereka juga di-embed, lalu cosine similarity search di PostgreSQL. Result: sub-100ms response time.
Virtual Try-On Implementation
VTO Studio menggunakan GPT Image generation untuk bikin photorealistic outfit visualization. Challenge-nya:
- Latency: Image generation butuh 5-15 detik. Solution: streaming response + progress indicator
- Quality vs Speed: Dua mode — Speed (1 credit, 2 items) dan Quality (2 credits, 6 items)
- Body Accuracy: Manekin virtual harus representatif. Solution: parameterized body model dari measurements
Lessons Learned
- Start with data: Fashion AI butuh data yang banyak. Kami mulai dengan affiliate integration untuk populate product catalog
- User feedback loop: Setiap recommendation yang user like/skip = training data untuk improve model
- Cultural sensitivity: Modest fashion punya requirement yang unik. Generic AI models ga handle ini — perlu custom scoring
- Performance matters: Recommendation harus real-time. Pre-compute yang bisa, cache aggressively
Tech Stack Decision Log
- Fastify over Express: 2-3x faster, built-in TypeScript, schema validation
- PostgreSQL over MongoDB: ACID compliance untuk transactions, pgvector untuk vector search
- Prisma over TypeORM: Better TypeScript integration, migration system, studio untuk debugging
- Ollama over OpenAI embeddings: Self-hosted, no API cost, 768D quality sufficient
- Next.js over plain React: SEO critical untuk fashion platform, SSR mandatory
What's Next
OutfittingMe masih dalam early stage. Roadmap:
- Brand partner dashboard (live analytics untuk brand)
- AR try-on (real-time camera overlay)
- Social features (share outfits, community voting)
- API access untuk third-party integration
Interested in the tech? Check out outfittingme.com atau reach out ke [email protected].
READY_TO_ARCHITECT_FUTURE?
EverDev Team
ARCHITECT_CORE
EverDev Team — Full-stack development, AI/ML tutorials, tech insights
SYSTEMS_COMM