Wish it
Un servicio gratuito de listas de deseos. El deseo se añade con un enlace de cualquier sitio, la lista se comparte por enlace o código QR y los amigos reservan el regalo para no regalar lo mismo dos veces.
- Rol
- Producto, diseño, desarrollo
- Stack
- Nuxt 3 · Nitro · MySQL
- Plazo
- 6 semanas hasta producción
- Año
- 2025

La tarea
La lista de deseos suele vivir en las notas y en los chats: los enlaces se pierden y dos amigos traen el mismo regalo. Hacía falta un servicio donde el deseo entre con un solo enlace desde cualquier sitio y los amigos vean que el regalo ya está reservado.
La solución
El deseo se añade con un enlace: el servidor extrae por sí mismo el título, la descripción y la imagen. Yandex Market, Ozon, Wildberries y Gold Apple no devuelven etiquetas Open Graph útiles, así que para cada uno hay un script propio en un navegador headless.
Los deseos se reparten en listas públicas y privadas, la lista se comparte por enlace o código QR y un amigo reserva el regalo durante 30 días. Las colecciones «ideas de regalo» se copian con un clic, el bot @WishItRuBot recibe un enlace y crea un borrador del deseo; interfaz en dos idiomas, tema oscuro, blog y PWA, que se instala en la pantalla de inicio.
Cómo fue el trabajo
Lo hice todo yo —producto, interfaz, frontend, backend, base de datos y DevOps—, y 251 de los 252 commits son míos. El repositorio lo abrí en diciembre de 2024; el desarrollo principal llevó 6 semanas, del 7 de mayo al 19 de junio de 2025, unos 250 commits. En producción está exactamente esta versión.
Con qué está hecho
Nuxt 3 y Vue 3 con la API en Nitro dentro de una sola aplicación SSR: 52 rutas de API y 15 tablas en MySQL 8. Interfaz en Nuxt UI 3 y Tailwind 4, estado en Pinia, i18n y PWA. Acceso por JWT con roles; entrada por correo electrónico o teléfono con confirmación por correo (nodemailer) o por SMS (SMS Aero), mediante Google OAuth y Telegram Login, y dentro de Telegram Mini App de forma automática; el bot va sobre node-telegram-bot-api. Los enlaces los analiza Playwright con Chromium headless, los errores los recoge Sentry, las pruebas van en Vitest y Playwright; Docker y GitLab CI despliegan la build en un VPS detrás de nginx.





