-
-
app icon
-
welcome screen
-
today's screen
-
the closet
-
smart AI to detect many items
-
Shop screen
-
Style DNA that grows everyday
-
Packing items for a trip
-
store listing image 1
-
store listing image 2
-
store listing image 3
-
store listing image 4
-
store listing image 5
-
store listing image 6
-
store listing image 7
-
store listing image 8
Inspiration
I was tired of wardrobe apps that feel like spreadsheets. Uploading took forever, outfits repeated, and nothing stopped me from buying a third black knit. People don’t want a catalog they want to know what to wear this morning, and whether that thing in the shop is worth it.
Shipaton forced one UX bet: make the wardrobe feel like a stylist. From that, Matchy became a mobile-first habit get dressed, shop smarter, wear what you already own.
What it does
Matchy is a personal stylist for clothes you already have.
- Today — one weather-aware outfit, not a grid, with a short explainable “Why this?”
- Add many (Pro) — lay-out or several photos; auto cutout + color/category so the closet is usable fast
- Scan — camera → Buy / Wait / Skip with a one-line reason. Free gets the verdict + outfit-count; Pro gets duplicate details and cost-per-wear
- Style DNA — learns from wears, love/nice ratings, skips, and rejects, then biases the next look and shop check
- Closet — cutouts on ivory, laundry, favorites, forgotten / least-worn views
- Memories — full timeline free; Wear it again is Pro
- Packing (Pro) — trip outfits from the real closet
- Habit — one tap “I’ll wear this,” a small celebration, look-lock photo
How I built it
- App: Expo (React Native) + TypeScript, NativeWind, Reanimated, FlashList, expo-image
- State: Zustand, MMKV, TanStack Query
- Backend: Supabase (Postgres) for accounts, closet, and scans
- Payments: RevenueCat for Matchy Pro
- Vision: fal.ai for background removal (cutouts); Gemini for clothing recognition (category, colors, etc.)
- Stylist: rule-based scoring for launch (weather, what you wear, favorites, Style DNA) — explainable reasons, not LLM copy. Smarter models later if they stay trustworthy
- Weather: Open-Meteo
- Forms: react-hook-form + Zod
- Also: one design-token file, Expo for builds/testers, CI lint + typecheck, Next.js for matchy.se
Challenges
- Upload friction — closet apps die at add. Add many + cheap rembg was the unlock; single-piece add stays free.
- Trust vs “AI” — generative outfit text felt fake. Launch reasons are explainable and human (“You already own something similar.”).
- Cost vs magic — vision is the expensive meter. Core daily look stays free; scans, closet size, DNA, packing, Add many are gated.
- Habit — one recommendation, tiny surprises, low-friction love/nice — not twenty options.
- Camera production — permissions, image size, Edge quotas, rembg coalescing so a refetch doesn’t double-bill fal.
Accomplishments
- Add many that makes a pile of clothes a closet in one sitting
- Today loop you can accept in one tap
- Scan that is closet-aware, not a shopping feed
- Live on the App Store; matchy.se for the listing
- A real brand (mascot, blush-on-ivory, voice) instead of a generic AI wrapper
What I learned
Fixing upload friction beats “more AI.” Explainability beats generative magic for trust. Freemium has to sit on cost hotspots (vision), not fake scarcity. Tokens + one design system keep the app feeling premium while you ship fast.
What’s next
Stronger duplicate signals (visual embeddings, opt-in). Optional LLM-edge explanations that stay transparent. Deeper Style DNA as the closet grows.
How to try it
Download from the App Store (or matchy.se). Add ~8–12 real pieces, open Today, accept a look, then Scan something close to what you already own.
Use these credentials: Email:[email protected] Password:Test1234
Built With
- accessibility-first-design
- app
- ci-/-typescript
- design-tokens
- expo.io
- fal.ai-(background-removal)
- flashlist
- google-gemini-edge-(vision-stubs)
- lucide-react-native
- mmkv
- nativewind
- next.js-(landing)
- open-meteo
- postgresql
- react-hook-form
- react-native
- react-native-reanimated
- revenuecat
- supabase
- tailwind-css
- tanstack-query
- typescript
- vercel-(landing)
- zod
- zustand