DEV Community

Cover image for Threadwise: A Local-First AI Closet That Makes Getting Dressed Easier
Isoken Ibizugbe
Isoken Ibizugbe

Posted on

Threadwise: A Local-First AI Closet That Makes Getting Dressed Easier

Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady

Threadwise is a virtual closet that helps me keep track of clothes I already own, put outfits together, and plan what to pack for a trip. The idea is to make the small, repetitive decisions around getting dressed take less effort.

The problem

I wanted one simple place to remember what is in my wardrobe and make it easier to reuse those pieces. Instead of scrolling through photos, trying combinations from memory, or writing a separate packing checklist, I can add garments once and work with them in the app.

What I built

  • Add a clothing photo from a camera or photo library, give it a name, and choose its category, colour, and season.
  • Remove the photo background in the browser and save the garment in a local wardrobe.
  • Filter the wardrobe by clothing category.
  • Select pieces to create a look manually, or ask an optional local AI stylist for suggestions.
  • Create a trip packing list, enter a destination, and mark selected pieces as packed.

Demo


Code

Threadwise

Threadwise is a mobile-friendly, local-first wardrobe app: photograph a garment, remove its background, organize your closet, build outfits, and make a trip packing list.

Threadwise uses an open-weight model through local Ollama inference; your photos stay in the browser.

What works in this MVP

  • Add clothing photos from a camera or photo library. Background removal runs in the browser, before the transparent image is saved to IndexedDB.
  • Sort and filter a personal wardrobe by tops, trousers, skirts, dresses, outerwear, shoes, and accessories.
  • Ask a locally running Ollama model for outfit ideas based on item names, colors, categories, and seasons.
  • Build a look yourself, or create a trip packing list and mark pieces as packed.
  • Use the app from a phone on the same Wi-Fi network as the computer running it.

Run it locally

Requirements: Node.js 20.19 or newer. Ollama is optional; without it, photo capture, your wardrobe, manual outfit…

How the AI works

Threadwise uses AI for two distinct jobs:

  1. Photo preparation: @imgly/background-removal runs in the browser to create a garment cutout before it is saved.
  2. Outfit ideas: an optional Ollama service runs the qwen3:4b text model locally. It receives garment metadata—names, categories, colours, and seasons—not the photos. The model suggests combinations from the pieces already in the closet.

Manual outfit building, wardrobe organization, and packing do not require Ollama. If the local model is unavailable, those parts of the app remain usable.

Why open innovation matters here

Clothing photos can be personal. Using an open-source, browser-side image-processing library means the photos do not need to be uploaded to a third-party image API for background removal. Running the outfit model with Ollama also gives people a way to try AI styling without sending wardrobe metadata to a hosted model provider. The open tools make it possible to inspect, run, and adapt the parts that matter to this experience.

The photo-processing model assets are fetched by the browser when needed, but garment photos and wardrobe records are stored in that browser's IndexedDB. They are not synced between devices or backed up by the server.

How it is built

  • Frontend: React, TypeScript, and Vite
  • Local wardrobe storage: IndexedDB
  • Image processing: @imgly/background-removal
  • Optional text AI: Ollama with Qwen3
  • API and production serving: Express
graph TD
  Person[You] --> Browser[React app in browser]
  Browser --> Cutout[Browser-side background removal]
  Browser --> Wardrobe[(IndexedDB: photos and wardrobe)]
  Browser -->|Garment metadata only| API[Express API]
  API --> Ollama[Optional local Ollama + Qwen3]
  API --> Static[Production app files]

The project is licensed under AGPL-3.0. The background-removal library is also AGPL-3.0.

The Lazy Payoff

The payoff is less repeated searching and remembering: the wardrobe becomes a reusable list for outfit planning and packing. I have not measured a time-saved number yet, so I won't invent one; a useful next test is to compare preparing a real trip list with and without Threadwise.

What I learned and what is next

The most important product decision was to keep the closet useful without the AI. A local model can add convenience, but the basic task should not fail just because model setup is unavailable. Keeping photos in the browser also makes the privacy boundary easier to explain.

Prize Categories

Best Use of Render

Top comments (0)