Una artista plástica ecuatoriana manejaba su comunidad de IG a mano — DMs sin responder, escuela sin sistema, obra sin canal de venta online. Construí el bot, el dashboard y el sitio web que usa hoy.
An Ecuadorian visual artist was managing her IG community by hand — unanswered DMs, school with no system, artwork with no online sales channel. I built the bot, dashboard, and website she uses today.
Mikaela tiene seguidores activos en Instagram, alumnos en su escuela permanente y obra para vender — pero todo ocurría a mano, sin trazabilidad ni automatización.
Mikaela has active followers on Instagram, students in her permanent school, and artwork to sell — but everything was done by hand, with no traceability or automation.
La bandeja de Instagram acumulaba mensajes sobre precios de obra, talleres e información general. Responder a mano era lento e inconsistente — muchos mensajes quedaban sin respuesta.
The Instagram inbox accumulated messages about artwork pricing, workshops, and general info. Replying manually was slow and inconsistent — many messages went unanswered.
La escuela permanente de Mikaela no tenía sistema de asistencia ni seguimiento de pagos. ¿Quién asistió? ¿Quién pagó su período? ¿Cuándo vence el siguiente ciclo? Todo estaba en la memoria o en notas.
Mikaela's permanent school had no attendance or payment tracking. Who attended? Who paid for their period? When does the next cycle expire? Everything lived in memory or scattered notes.
No había forma de comprar obra, merch o inscribirse a talleres desde el sitio web. Las ventas dependían de DMs y coordinación manual de transferencias — fricción pura para el comprador.
There was no way to buy artwork, merch, or sign up for workshops from the website. Sales depended on DMs and manual transfer coordination — pure friction for the buyer.
Un bot de IA estándar no conoce la obra de Mikaela, sus precios reales, su escuela ni su estilo. Se necesitaba RAG para que el bot hablara con autoridad sobre su trabajo específico.
A standard AI bot doesn't know Mikaela's artwork, real prices, school, or style. RAG was needed so the bot could speak with authority about her specific work.
Bot con RAG para los DMs, dashboard de operaciones para la escuela y las conversaciones, y sitio web público con checkout Stripe para vender obra y merch.
RAG-powered bot for DMs, operations dashboard for the school and conversations, and a public website with Stripe checkout to sell artwork and merch.
GPT-4o con sistema de RAG sobre el catálogo real de Mikaela: obra, precios, técnicas, escuela, talleres. El bot responde preguntas específicas, informa sobre obra disponible, deriva a compra y escala conversaciones complejas a Mikaela.
GPT-4o with RAG over Mikaela's real catalog: artwork, prices, techniques, school, workshops. The bot answers specific questions, informs about available work, guides to purchase, and escalates complex conversations to Mikaela.
Panel que Mikaela abre todos los días: conversaciones con filtros de escalados/tomados, escuela permanente con asistencia por alumno y ciclos de pago, campañas de respuesta automática por post, y control de bot por conversación.
Panel Mikaela opens every day: conversations with escalated/taken filters, permanent school with per-student attendance and payment cycles, automatic response campaigns per post, and per-conversation bot control.
Sitio público de Mikaela con galería de obra reciente, sección de merch (pañuelos, totes) y exposiciones. Checkout directo con Stripe — el comprador elige, paga y listo, sin pasar por DMs.
Mikaela's public site with recent artwork gallery, merch section (scarves, totes), and exhibitions. Direct Stripe checkout — the buyer selects, pays, and done, without going through DMs.
El bot recibe DMs en Instagram, consulta el índice de RAG sobre la obra de Mikaela (embeddings en pgvector), y responde con contexto real: precios de obras específicas, técnicas, disponibilidad, información de la escuela. Detecta cuándo escalar a Mikaela y pausa el bot por conversación cuando ella toma control. Campañas de respuesta automática activadas por post_id — cuando Mikaela publica, el bot responde a los comentarios con mensajes personalizados según la publicación.
The bot receives Instagram DMs, queries the RAG index on Mikaela's work (embeddings in pgvector), and responds with real context: specific artwork prices, techniques, availability, school info. Detects when to escalate to Mikaela and pauses the bot per conversation when she takes over. Automatic response campaigns triggered by post_id — when Mikaela posts, the bot responds to comments with messages customized per publication.
Vista de todas las conversaciones activas de Instagram con búsqueda en tiempo real. Filtros por estado: Todos, Escalados (⚠ requieren atención de Mikaela) y Tomados (bot pausado, Mikaela conversando directamente). Desde cada conversación: leer el historial, responder, pausar/reactivar el bot, y marcar como resuelta.
View of all active Instagram conversations with real-time search. Filters by state: All, Escalated (⚠ require Mikaela's attention) and Taken (bot paused, Mikaela conversing directly). From each conversation: read history, reply, pause/reactivate the bot, and mark as resolved.
Módulo completo para la escuela permanente de Mikaela. Cada alumno tiene tarjeta con asistencia dot-by-dot por período (28 días / 4 clases), control de pagos por ciclo, fecha de inicio editable de cada período, y estado activo/inactivo. Al completar 4 clases en un período aparece botón para confirmar pago y habilitar el siguiente ciclo. Todos los datos persisten en Supabase — funciona desde cualquier dispositivo.
Full module for Mikaela's permanent school. Each student has a card with dot-by-dot attendance per period (28 days / 4 classes), per-cycle payment control, editable start date for each period, and active/inactive status. When 4 classes complete in a period, a button appears to confirm payment and enable the next cycle. All data persists to Supabase — works from any device.
Cuando Mikaela publica en Instagram activa una campaña desde el dashboard: vincula el post_id con un mensaje personalizado. Cada persona que comenta ese post recibe automáticamente un DM del bot con el mensaje de la campaña. En el lanzamiento de un reel, más de 100 personas escribieron el primer día — el bot respondió a todas sin intervención manual. Sin el sistema, Mikaela hubiera tenido que responder cada DM a mano.
When Mikaela posts on Instagram she activates a campaign from the dashboard: links the post_id to a custom message. Everyone who comments on that post automatically receives a DM from the bot. On a reel launch, over 100 people wrote on day one — the bot handled every single message without manual intervention. Without the system, Mikaela would have had to reply to each DM by hand.
Sitio público de Mikaela con galería de obra reciente, sección de exposiciones, y tienda con checkout directo vía Stripe. El comprador puede adquirir obra original, pañuelos y totes sin pasar por DMs. Las imágenes se sirven desde Supabase Storage proxeadas por weserv.nl para reducir egress al mínimo.
Mikaela's public site with recent artwork gallery, exhibitions section, and store with direct Stripe checkout. Buyers can purchase original artwork, scarves, and totes without going through DMs. Images served from Supabase Storage proxied through weserv.nl to minimize egress.
Pipeline de RAG sobre el catálogo, precios, técnicas, biografía y escuela de Mikaela. Ingestión: chunks de contenido → embeddings con text-embedding-3-small → vectores en pgvector (Supabase). Query: la pregunta se embeds, se recuperan los 5 fragmentos más cercanos por similitud coseno, se pasan a GPT-4o con contexto real. El bot responde como si conociera la obra de primera mano.
RAG pipeline over Mikaela's catalog, prices, techniques, biography and school. Ingestion: content chunks → text-embedding-3-small embeddings → vectors in pgvector (Supabase). Query: question is embedded, top-5 chunks retrieved by cosine similarity, passed to GPT-4o with real context. The bot responds as if it knows the work firsthand.
Sistema activo desde 2025. El bot gestiona DMs de Instagram en tiempo real, la escuela corre en Supabase como fuente de verdad, y el sitio procesa pedidos directamente vía Stripe.
System live since 2025. The bot manages Instagram DMs in real time, the school runs on Supabase as source of truth, and the site processes orders directly via Stripe.