Title: FurnFit, we know your fashion taste
Inspiration
- Make shopping match real-life style by using people’s own photos instead of generic catalogs.
- Reduce returns and decision fatigue by surfacing “looks like me” products automatically.
What it does
- Pulls user photos (IG → S3 → Supabase), runs RunPod to detect garments and extract embeddings, then kNN searches OpenSearch for the closest catalog items per photo.
- Uses Bedrock Nova to summarize style traits and short descriptions for each photo; stores summaries alongside URLs.
- Serves authenticated users a dashboard with per-photo recommendations (top matches, summaries) plus a text-based search/results page with pagination.
How we built it
- Frontend: Next.js/React app with Tailwind-style utility classes, React Query for data fetching, infinite scrolling batches, and a reusable Result/Pagination UI.
- Backend: NestJS with TypeORM + Supabase Postgres, Redis-backed sessions; OpenSearch for vector search; RunPod serverless for image embedding; AWS Bedrock (Nova) for style analysis; S3 for image storage.
- Glue:
product.servicehandles search/vector calls;users.serviceorchestrates IG ingestion, Nova calls, and Supabase writes.
Challenges we ran into
- Network/DNS timeouts to RunPod/OpenSearch and handling long-running fetches.
- Managing large embedding payloads and excluding them from responses.
- Keeping session auth working across Next.js proxy rewrites.
- Pagination math between OpenSearch kNN (
from/size/k) and UI expectations.
Accomplishments we’re proud of
- End-to-end personalized pipeline from user photos to product matches with vector search.
- Style summaries from Nova shown directly in the dashboard.
- Working pagination on result pages and per-photo recommendations with skeleton loading states.
What we learned
- Practical kNN paging in OpenSearch using
from/size/k. - Integrating Bedrock Nova for structured JSON outputs and storing per-image metadata.
- Coordinating multiple clouds/services (RunPod, AWS, Supabase) under one Nest/Next stack.
What’s next for FurnFit
- Add better timeout/retry and health checks for external ML endpoints.
- Refine virtual try-on UX and add price/size filters to recs.
- Cache popular searches and add A/B testing for ranking tweaks.
- Mobile-first polish and broader catalog ingestion to improve match coverage.
Demo Credentials ID: samuelchoi322@yahoo.com PW: After007!
Built With
- bedrock
- nest.js
- next
- opensearch
- redis
- s3
- typescript
Log in or sign up for Devpost to join the conversation.