🌐 Sitio Web: rebelnotify.vercel.app
Mi primer proyecto masivo y probablemente el que más me enseñó sobre buildear cosas a escala.
Rebel Notify fue el primer cookgroup de Chile. Empezó en 2020 como un bot de Discord que monitoreaba restocks de zapatillas y descuentos en tiendas chilenas. Lo que partió como un experimento personal terminó siendo una comunidad con muchos miembros activos durante 3 años.
El stack era simple pero efectivo: monitores Python corriendo 24/7 en Heroku, webhooks de Discord para notificaciones instantáneas, y una extensión de Chrome para automatizar checkouts. Nada fancy, pero funcionaba.
Cerramos en 2023 cuando el mercado de reventa de sneakers colapsó. Nike cambió sus políticas, el mercado se saturó, y dejó de tener sentido seguir. Así es esto.
Este repo es básicamente un archivo de lo que fue. El código está aquí para cualquiera que quiera ver cómo se construye un servicio de monitoreo a escala, con toda la infraestructura cloud y la automatización detrás.
2020-2023
Monitoreaba productos específicos 24/7. Cuando había stock, notificación instantánea a Discord. Simple y efectivo.
Sitios:
- Bold.cl
- Moredrops.cl
- Nike SNKRS Chile
Escaneaba catálogos completos buscando nuevos drops. No necesitabas saber el SKU, el bot encontraba todo lo nuevo.
Sitios:
- Bold.cl
- Moredrops.cl
- Descuentosrata.com
- Knasta.cl
- Nike SNKRS Chile
Extensión para hacer checkout más rápido. Guardaba tus datos y llenaba formularios automáticamente. Hecha custom para Bold y Moredrops.
Actualización 2025: Migrada a Manifest V3 para funcionar en Chrome moderno. Los sitios probablemente cambiaron, pero la extensión carga correctamente.
rebelnotify/
├── bold-restock-sku/ # Monitor de restock de Bold.cl (SKU específicos)
├── nike-sku/ # Monitor de Nike SNKRS Chile (SKU específicos)
├── moredrops-restock-sku/ # Monitor de restock de Moredrops.cl
├── snkrs/ # Monitor general de Nike SNKRS
├── bold-general/ # Monitor general de Bold.cl
├── moredrops-general/ # Monitor general de Moredrops.cl
├── descuentosrata/ # Monitor de Descuentosrata.com
├── knasta/ # Monitor de Knasta.cl
└── chrome-extension/ # Extensión de Chrome para autofill
Cada carpeta contiene su propio README con instrucciones detalladas de instalación y uso.
- requests - Peticiones HTTP
- beautifulsoup4 - Web scraping HTML
- discord_webhook - Notificaciones Discord
- sqlalchemy - ORM para bases de datos
- helheim - Solución de Cloudflare challenges
- cloudscraper - Bypass anti-bot
- random_user_agent - Rotación de User-Agents
- python-dotenv - Gestión de variables de entorno
- JavaScript vanilla
- Chrome Storage API
- Chrome Content Scripts
- Discord OAuth 2.0
Si quieres correr esto localmente:
- Clona el repo
git clone https://github.com/srdanirz/rebelnotify.git
cd rebelnotify- Instala dependencias
cd [carpeta-del-monitor]
pip install -r requirements.txt- Configura tu
.env
WEBHOOK=tu_webhook_de_discord
USERNAME=Rebel Notify
COLOUR=16777215
KEYWORDS=jordan%dunk%yeezy
DELAY=3.0- Corre el monitor
python bot.pyCada carpeta tiene su propio README con instrucciones específicas.
Monitorea productos específicos en Bold.cl por SKU/PID.
Monitorea productos específicos en Moredrops.cl por SKU.
Monitoreo avanzado de Nike SNKRS con bypass de Cloudflare.
Detecta automáticamente nuevos productos en Bold.cl sin SKU específico.
Detecta automáticamente nuevos productos en Moredrops.cl.
Monitor general de Nike SNKRS Chile con información detallada de releases.
Detecta descuentos en Descuentosrata.com.
Detecta descuentos en Knasta.cl.
Extensión de Chrome para autofill automático de checkout.
Los monitores corrían en loops infinitos cada 3-5 segundos. Scrapeaban las tiendas, comparaban con lo que tenían guardado en SQLite, y si había algo nuevo mandaban webhook a Discord con toda la info: nombre, precio, imagen, link, tallas.
La extensión de Chrome completaba formularios de checkout automáticamente. Nada más.
Todo corriendo en la nube para tener uptime 24/7:
- Heroku - Worker dynos para los monitores Python
- Discord - Notificaciones y comunidad
- SQLite/Postgres - Tracking de productos y prevención de duplicados
- SmartProxy - Proxies rotativos para no comerse bans
- Heroku (custom) - Servicio OAuth para la extensión de Chrome
┌─────────────────────────────────────────────────────────────────┐
│ REBEL NOTIFY ARCHITECTURE │
└─────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────┐
│ HEROKU CLOUD │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Worker Dynos (Monitores Python) │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ • Bold Restock SKU • SNKRS General │ │ │
│ │ │ • Moredrops Restock SKU • Descuentosrata │ │ │
│ │ │ • Nike SKU Monitor • Knasta Monitor │ │ │
│ │ │ • Bold General • Moredrops General │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ │ ↓ │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ Heroku Postgres (opcional) │ │ │
│ │ │ • Tracking de productos notificados │ │ │
│ │ │ • Prevención de duplicados │ │ │
│ │ │ • Logs históricos │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────────────────┐
│ SMARTPROXY SERVICE │
│ • Proxies rotativos para evitar bans │
│ • Datacenter proxies (dc.smartproxy.com) │
│ • Pool de 100 proxies simultáneos │
└────────────────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────────────────┐
│ SITIOS WEB MONITOREADOS │
│ • Bold.cl • Moredrops.cl │
│ • Nike SNKRS CL • Descuentosrata.com │
│ • Knasta.cl │
└────────────────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────────────────┐
│ DISCORD WEBHOOKS │
│ • Notificaciones embed │
│ • Canales dedicados por tipo de producto │
│ • Menciones @everyone para drops importantes │
│ • Imágenes, precios, links de compra │
└────────────────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────────────────┐
│ COMUNIDAD DISCORD │
│ • Servidor privado con comunidad activa │
│ • Canales de notificaciones │
│ • Chat de comunidad │
│ • Soporte técnico │
└────────────────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────────────────┐
│ CHROME EXTENSION (Cliente Local) │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ • Autofill de checkout (Bold, Moredrops) │ │
│ │ • OAuth con Discord (via Lonthentication/Heroku) │ │
│ │ • Shortcuts personalizados │ │
│ │ • Almacenamiento local de credenciales │ │
│ └──────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
Backend:
- Python 3.8+
- Heroku Worker Dynos (24/7 uptime)
- Heroku Postgres (Base de datos SQLite local alternativa)
- SmartProxy (Proxies rotativos)
Web Scraping:
- requests + BeautifulSoup4 (HTML parsing)
- cloudscraper (Cloudflare bypass)
- helheim (Solución avanzada de Cloudflare challenges)
Notificaciones:
- Discord Webhooks
- Discord Bot API (opcional)
Frontend:
- Chrome Extension (Manifest V2)
- JavaScript vanilla
- Discord OAuth 2.0
- Lonthentication (Heroku) - Servidor OAuth personalizado
DevOps:
- Git/GitHub (Control de versiones)
- Heroku CLI (Deployment)
- dotenv (Gestión de secretos)
Los monitores corrían como worker dynos. Básicamente:
worker: python bot.py
Deploy era simple:
heroku create rebel-notify-bold
heroku config:set WEBHOOK="https://discord.com/api/webhooks/..."
git push heroku main
heroku ps:scale worker=1Si el bot se caía, Heroku lo reiniciaba automáticamente. Logs centralizados para debuggear cuando algo se rompía a las 3am.
Este fue mi primer proyecto masivo. Me enseñó a buildear cosas que tienen que funcionar 24/7, gestionar una comunidad grande, y debuggear a las 3am cuando un monitor se caía justo antes de un drop importante.
Gracias a todos los que fueron parte de Rebel Notify.
MIT License. El código está aquí para cualquiera que quiera aprender o reutilizar partes.
Nota: Los monitores y la extensión probablemente ya no funcionen. Han pasado 2-3 años y los sitios cambiaron sus estructuras. Este repo es solo referencia histórica del proyecto.
Hecho en Chile 🇨🇱 | 2020-2023

