đź’ˇ What it does
FitCheck is a Chrome extension that lets users virtually try on clothes directly on e-commerce websites. It detects product images, adds a “Try On” button, and uses Google Gemini with a Firebase backend to generate realistic try-on previews.
Before processing, the user’s uploaded image is validated through the Prompt API, which checks whether it’s suitable and properly formatted for virtual try-on. The result appears instantly in a sleek modal where users can download or share their look — all without leaving the website.
🛠️ How we built it
FitCheck was built as a Manifest V3 Chrome extension with popup, content, and background scripts.
- Popup: users upload avatars via file input or drag-and-drop. The Prompt API checks image suitability, then Gemini performs on-device validation (with a RAM check via
chrome.system.memory). Valid avatars are stored locally. - Content script: auto-detects clothing pages, injects “Try On” buttons, and handles image clicks synced with the popup.
- Background: routes messages and relays VTO/fetch requests through a proxy to bypass CORS.
- Backend: a Firebase Cloud Function calls Gemini for virtual try-on, using detailed prompts for pose, lighting, and garment details. A Flask proxy on Cloud Run manages CORS and base64 conversions, with secrets in Google Secret Manager.
- UI: designed with gradient pill buttons, fade/slide modals, and soft
#EFBFFFaccents. - Supports major sites like Nike, Zara, Amazon, H&M, and Adidas, with avatars and settings saved in
chrome.storage.local.
⚙️ Challenges we ran into
- Handling CORS restrictions and Manifest V3 limitations during extension development.
- Realizing the Prompt API requires 16 GB RAM, forcing a redesign of on-device validation.
- Deploying and debugging the proxy and VTO Cloud Functions on Cloud Run, including CORS and permission errors.
- Coordinating team collaboration, syncing code and environments across multiple members.
- Navigating through endless, cryptic Chrome and API errors, testing our patience and persistence.
🏆 Accomplishments that we're proud of
- Building a working end-to-end virtual try-on inside a browser.
- Seamlessly integrating Gemini AI, Firebase, and Chrome APIs.
- Designing a clean, intuitive UX that feels native to e-commerce sites.
- Achieving privacy-friendly, on-device image validation.
- Overcoming CORS, memory, and deployment challenges under tight time pressure.
đź§ What we learned
- How to bridge browser limitations with backend AI orchestration.
- How to design around Manifest V3 constraints and CORS restrictions.
- Effective collaboration across frontend, backend, and AI integration.
- Building production-ready workflows with Gemini and Chrome extensions.
🚀 What's next for FitCheck
- Expand beyond fashion to include accessories, glasses, and furniture.
- Build an outfit builder for mixing and matching items from multiple retailers.
- Add personalized recommendations using user style data and try-on history.
- Enhance try-on realism with improved pose, lighting, and texture understanding.
- Support more e-commerce platforms and optimize performance for lower-RAM devices.
Log in or sign up for Devpost to join the conversation.