Inspiration
We all have closets full of clothes but still feel like we have nothing to wear. The average person only uses about 20% of their wardrobe regularly. We wanted to build something that helps people make the most of what they already own an AI stylist that actually knows your clothes and your style.
What it does
Outfitted lets you upload photos of your clothing items. The app automatically identifies each piece (category, color, style) and builds a digital wardrobe. From there, our AI stylist generates personalized outfit combinations based on your style profile and preferences. You can then virtually try on any outfit to see how it looks before getting dressed.
How we built it
- Frontend: Next.js 16 with React 19, Tailwind CSS, Radix UI, and Framer Motion for animations
- Auth: Auth0 for user authentication
- Database: SQLite via Drizzle ORM for wardrobe and outfit storage
- Image pipeline: Cloudinary for hosting, GPT Image 1.5 (via Replicate) for background removal and item isolation
- AI stylist: Google Gemini 3.1 Flash Lite analyzes wardrobe photos and generates outfit combinations as structured JSON
- Virtual try-on: Gemini 3.1 Flash image preview (via OpenRouter) generates try-on images from outfit and user photos
- State management: Zustand for client-side store
Challenges we faced
- Getting Gemini to return consistent, parseable JSON for outfit generation required careful prompt engineering and a cleanup layer to strip markdown fences and handle edge cases
- The image pipeline had to handle varied photo quality - users upload everything from professional product shots to dimly lit mirror selfies
- Coordinating multiple AI services (Gemini for analysis, Replicate for isolation, OpenRouter for try-on) with different response formats and latencies was tricky to get right in a single upload flow
- Virtual try-on image quality varies significantly based on input photo quality, so managing user expectations was important
What we learned
- Multimodal AI models have gotten remarkably good at understanding clothing and fashion context from images alone
- Chaining multiple AI services together requires solid error handling at each step - one flaky response can break the whole pipeline
- Structured output from LLMs is powerful but fragile; you need defensive parsing even when the model "supports" JSON mode
- Building a polished UX on top of AI features means hiding latency creatively (optimistic UI, streaming, progressive loading)
Built With
- auth0
- cloudinary
- gemini
- solana



Log in or sign up for Devpost to join the conversation.