Encuentra dónde comprar los outfits que te inspiran en Pinterest.
Translation pending
CommerceTypeScript · JavaScriptGitHub @Juli6895OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Plataforma de moda para el mercado colombiano: conecta tu Pinterest, sube una inspiración y te decimos dónde comprar prendas similares online usando Google Shopping. Stack: Next.js 14 (App Router) · TypeScript · Tailwind · Supabase · NextAuth (Pinterest OAuth) · Claude (Anthropic) + Google Cloud Vision (fallback) · Cloudinary. Deploy gratis en Vercel.Read the full README ↗
Plataforma de moda para el mercado colombiano: conecta tu Pinterest, sube una inspiración y te decimos dónde comprar prendas similares online usando Google Shopping.
Stack: Next.js 14 (App Router) · TypeScript · Tailwind · Supabase · NextAuth (Pinterest OAuth) · Claude (Anthropic) + Google Cloud Vision (fallback) · Cloudinary. Deploy gratis en Vercel.
gl=co&hl=es-419).ppr_max:N para que solo aparezcan productos
en su rango.config/merchant-exclusions.txt. Cada query se inyecta con
-site:dominio para sacar esos comercios de los resultados.npm install
cp .env.example .env.local # llena las variables
npm run dev # http://localhost:3000
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY (⚠️ solo se usa en el servidor)supabase/schema.sql
para crear las tablas users, outfits y searches.http://localhost:3000/api/auth/callback/pinteresthttps://TU-DOMINIO.vercel.app/api/auth/callback/pinterestPINTEREST_CLIENT_IDPINTEREST_CLIENT_SECRETuser_accounts:read, boards:read, pins:read.Pinterest exige verificación de dominio antes de pasar la app a producción. Para probar, agrega tu propia cuenta como Trusted Tester en la consola.
ANTHROPIC_API_KEY.Usamos Claude Haiku 4.5 con visión multimodal y tool use para forzar
output estructurado (searchTerms, dominantColors, rawLabels). El system
prompt usa prompt caching (TTL 5min) para amortizar el costo del
vocabulario en español colombiano.
Costo aprox: ~$0.001 por outfit. Mucho mejor identificación de prendas y colores que Vision (que mira la imagen como un bag de labels + colores globales y termina atribuyendo el café de la pared al pantalón).
GOOGLE_CLOUD_VISION_API_KEY.Solo se llama si Claude falla o no hay
ANTHROPIC_API_KEY. Free tier: 1.000 unidades/mes por feature × 3 features = ~330 imágenes/mes gratis.
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAMECLOUDINARY_API_KEYCLOUDINARY_API_SECRETopenssl rand -base64 32 → NEXTAUTH_SECRET.NEXTAUTH_URL=http://localhost:3000.NEXTAUTH_URL=https://TU-DOMINIO.vercel.app.app/
api/
auth/[...nextauth]/route.ts # NextAuth handler
outfits/route.ts # CRUD de outfits (Supabase)
pinterest/boards/route.ts # Boards del usuario
vision/route.ts # Análisis de imagen
buscar/page.tsx # Formulario de análisis
mis-outfits/page.tsx # Outfits guardados + boards
layout.tsx, page.tsx, globals.css
components/
Hero.tsx, Navbar.tsx, Providers.tsx
SearchBox.tsx, SearchResult.tsx
OutfitCard.tsx, TagChip.tsx, BoardsList.tsx
lib/
auth.ts # Opciones de NextAuth + provider Pinterest
supabase.ts # Clientes anon + service
cloudinary.ts # Upload helper
garment-ai.ts # Análisis con Claude (multimodal, principal)
vision.ts # Análisis con Google Vision (fallback) + scraping Pinterest
shopping.ts # URLs de Google Shopping (geo Colombia, precio, exclusiones)
merchant-exclusions.ts # Lee la lista de comercios excluidos
config/
merchant-exclusions.txt # Comercios a excluir (uno por línea, # = comentario)
supabase/schema.sql
types/
index.ts, next-auth.d.ts
.env.example.NEXTAUTH_URL con tu dominio definitivo y agregar
el callback de Pinterest a la app en Pinterest Developers.next build + CDN./mis-outfits)./mis-outfits./buscar analiza una URL de pin pública.gl=co&hl=es-419./buscar la usuaria puede ingresar un monto total en COP (también hay
chips rápidos: $150k, $300k, $500k, $1M)./api/vision. Claude lo reparte realisticamente
entre las prendas detectadas (jean/chaqueta/tenis pesan más, accesorios menos)
y devuelve priceMaxCop por prenda.tbs=mr:1,price:1,ppr_max:N en la URL
de Google Shopping → solo aparecen productos hasta ese precio.Edita config/merchant-exclusions.txt:
shein.com
temu.com
exito.com
# se ignoran.https://, sin www.).-site:dominio para que Google Shopping los saque.| Síntoma | Posible causa |
|---|---|
| "Pinterest API: 401" | Token expirado o scopes faltantes — reloguéate. |
| "No pudimos leer la imagen del pin" | Pin privado o URL inválida. |
| Resultados muy genéricos | Claude está cayendo a Vision. Revisa ANTHROPIC_API_KEY y los logs [/api/vision] Claude falló. |
| Vision devuelve pocas etiquetas | Imagen muy oscura o sin prenda clara — usa otra. |
| Outfits no se guardan | Revisa SUPABASE_SERVICE_ROLE_KEY y que el schema.sql se haya ejecutado. |
MIT — úsalo, fórkealo, mejóralo.