{"id":77777,"date":"2025-11-26T07:00:00","date_gmt":"2025-11-26T15:00:00","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=77777"},"modified":"2025-11-26T13:23:10","modified_gmt":"2025-11-26T21:23:10","slug":"como-usar-vobe-code","status":"publish","type":"post","link":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/","title":{"rendered":"Le Ense\u00f1\u00e9 a Mi Abuela Vibe Code (Esto es Lo Que Pas\u00f3)"},"content":{"rendered":"\n<p>Mi abuela gestion\u00f3 hojas de c\u00e1lculo de inventario para una empresa textil durante 40 a\u00f1os. Calcula descuentos compuestos en su cabeza m\u00e1s r\u00e1pido que la mayor\u00eda de las personas con calculadora, pero no tiene ninguna experiencia en programaci\u00f3n.<\/p>\n\n\n\n<p>Cuando le suger\u00ed que construy\u00e9ramos juntas una aplicaci\u00f3n para rastrear un jard\u00edn usando IA, su escepticismo fue casi instant\u00e1neo.<\/p>\n\n\n\n<p>Dos horas despu\u00e9s, ten\u00eda una aplicaci\u00f3n web funcionando\u2026 hasta que pedimos una cosa m\u00e1s y la app se rompi\u00f3. Esta es una historia demasiado com\u00fan en el vibe coding.<\/p>\n\n\n\n<p>Ahora tengo un marco para entender lo que el vibe coding realmente ofrece frente a lo que promete, para que puedas ver m\u00e1s all\u00e1 del marketing y aprovechar realmente el producto.<\/p>\n\n\n\n<h2 id=\"h-primero-que-es-el-vibe-coding\" class=\"wp-block-heading\">Primero, \u00bfQu\u00e9 es el Vibe Coding?<\/h2>\n\n\n\n<p>El vibe coding consiste en<strong> crear software describiendo lo que quieres en un ingl\u00e9s sencillo y dejando que la IA escriba el c\u00f3digo por ti.<\/strong><\/p>\n\n\n\n<p>El exdirector de IA de Tesla y cofundador de OpenAI, Andrej Karpathy, acu\u00f1\u00f3 el t\u00e9rmino en febrero de 2025 cuando <a href=\"https:\/\/x.com\/karpathy\/status\/1886192184808149383?lang=en\">tuite\u00f3<\/a>: \u201cHay un nuevo tipo de programaci\u00f3n que llamo \u2018vibe coding\u2019, donde te entregas completamente a las vibras, abrazas los exponenciales y olvidas que el c\u00f3digo siquiera existe\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"826\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01-Que-es-Vibe-Coding-1024x826.jpg\" alt=\"Tuit de Andrej Karpathy que describe el enfoque de vibe coding, donde depende en gran medida de asistentes de programaci\u00f3n con IA y del copiar-y-pegar en lugar de comprender el c\u00f3digo.\" class=\"wp-image-77790 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01-Que-es-Vibe-Coding-1024x826.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01-Que-es-Vibe-Coding-300x242.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01-Que-es-Vibe-Coding-768x620.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/01-Que-es-Vibe-Coding-1536x1239.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/01-Que-es-Vibe-Coding-600x484.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/01-Que-es-Vibe-Coding-1200x968.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/01-Que-es-Vibe-Coding-730x589.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/01-Que-es-Vibe-Coding-1460x1178.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/01-Que-es-Vibe-Coding-784x633.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/01-Que-es-Vibe-Coding-1568x1265.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/01-Que-es-Vibe-Coding-877x708.jpg.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/01-Que-es-Vibe-Coding.jpg.webp 1600w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/826;\" \/><\/figure>\n\n\n\n<p>La publicaci\u00f3n explot\u00f3 con m\u00e1s de 5 millones de vistas, capturando un enfoque de desarrollo que ya se estaba extendiendo por la comunidad tecnol\u00f3gica.<\/p>\n\n\n\n<p>En lugar de aprender lenguajes de programaci\u00f3n y luchar con la sintaxis, simplemente le dices a una IA lo que quieres construir. La IA genera el c\u00f3digo. Te conviertes en un gerente de producto en lugar de un programador, enfoc\u00e1ndote en lo que la app debe hacer en lugar de c\u00f3mo hacer que funcione.<\/p>\n\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-por-que-importa-el-vibe-coding-ahora\">\u00bfPor Qu\u00e9 Importa el Vibe Coding Ahora?<\/h3>\n\n\n\n<p><a href=\"https:\/\/www.mckinsey.com\/capabilities\/people-and-organizational-performance\/our-insights\/five-fifty-the-skillful-corporation\">El 87% de las empresas<\/a> enfrentan escasez de talento o esperan hacerlo en los pr\u00f3ximos a\u00f1os, seg\u00fan McKinsey.<\/p>\n\n\n\n<p>Las herramientas de codificaci\u00f3n con IA como Bolt.new, Lovable, Replit Agent y Cursor prometen resolver este problema al mejorar la productividad de los desarrolladores actuales y permitir que quienes no son devs prueben sus ideas r\u00e1pidamente.<\/p>\n\n\n\n<p>Los n\u00fameros respaldan el auge:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>En marzo de 2025, Y Combinator revel\u00f3 que el <a href=\"https:\/\/techcrunch.com\/2025\/03\/06\/a-quarter-of-startups-in-ycs-current-cohort-have-codebases-that-are-almost-entirely-ai-generated\/\">25% de su cohorte de invierno 2025<\/a> ten\u00eda el 95% de su c\u00f3digo generado por IA.<\/li>\n\n\n\n<li>En abril de 2025, el CEO de Microsoft, Satya Nadella, revel\u00f3 que entre el <a href=\"https:\/\/www.cnbc.com\/2025\/04\/29\/satya-nadella-says-as-much-as-30percent-of-microsoft-code-is-written-by-ai.html\">20% y el 30%<\/a> del c\u00f3digo fue escrito por IA.<\/li>\n\n\n\n<li><a href=\"https:\/\/techcrunch.com\/2025\/03\/06\/a-quarter-of-startups-in-ycs-current-cohort-have-codebases-that-are-almost-entirely-ai-generated\/\">Un cuarto de las startups en la cohorte actual de YC<\/a> tiene bases de c\u00f3digo casi completamente generadas por IA.<\/li>\n\n\n\n<li>El CEO de Google, Sundar Pichai, report\u00f3 cifras similares, afirmando que <a href=\"https:\/\/blog.google\/inside-google\/message-ceo\/alphabet-earnings-q3-2024\/#search:~:text=Today%2C%20more%20than%20a%20quarter%20of%20all%20new%20code%20at%20Google%20is%20generated%20by%20AI%2C%20then%20reviewed%20and%20accepted%20by%20engineers.%20This%20helps%20our%20engineers%20do%20more%20and%20move%20faster\">m\u00e1s del 25% del c\u00f3digo de Google<\/a> es generado por IA.<\/li>\n<\/ul>\n\n\n\n<p>Hemos pasado del autocompletado b\u00e1sico a escribir aplicaciones completas con un aporte humano m\u00ednimo.<\/p>\n\n\n\n<p>Pero las mismas caracter\u00edsticas que hacen que el vibe coding sea accesible, como la entrada en lenguaje natural, la generaci\u00f3n aut\u00f3noma de c\u00f3digo y el manejo autom\u00e1tico de la complejidad, crean problemas serios cuando tu app necesita crecer m\u00e1s all\u00e1 de esa primera versi\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-que-puedes-construir-realmente-con-vibe-coding\">\u00bfQu\u00e9 Puedes Construir Realmente con Vibe Coding?<\/h3>\n\n\n\n<p>Lo que realmente puedes construir con vibe coding depende de tres cosas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Qu\u00e9 tan compleja necesita ser tu aplicaci\u00f3n<\/li>\n\n\n\n<li>Si puedes identificar c\u00f3digo deficiente y fallas de seguridad<\/li>\n\n\n\n<li>Si sabes cu\u00e1ndo dejar de agregar funciones<\/li>\n<\/ul>\n\n\n\n<p>Si los requisitos de tu app son simples, y puedes detectar vac\u00edos t\u00e9cnicos y resistir agregar funciones innecesarias, el vibe coding puede ayudarte a obtener resultados funcionales r\u00e1pidamente.<\/p>\n\n\n\n<p>Sin embargo, a medida que la complejidad aumenta o si necesitas construir aplicaciones de nivel producci\u00f3n, la revisi\u00f3n profesional y la planificaci\u00f3n arquitect\u00f3nica se vuelven innegociables.<\/p>\n\n\n\n<p>La experiencia de mi abuela construyendo una app para rastrear un jard\u00edn mostr\u00f3 exactamente d\u00f3nde est\u00e1n estos l\u00edmites.<\/p>\n\n\n\n<h2 id=\"h-que-paso-en-la-primera-hora-instrucciones-simples-funcionaron\" class=\"wp-block-heading\">\u00bfQu\u00e9 Pas\u00f3 en la Primera Hora? Instrucciones Simples Funcionaron<\/h2>\n\n\n\n<p>Existen al menos una docena de plataformas de vibe coding con IA como Bolt, Lovable, OpenAI Code, Claude Code, Google Opal, etc.<\/p>\n\n\n\n<p>Comenzamos con la <a href=\"https:\/\/developers.openai.com\/codex\/ide\/\">extensi\u00f3n OpenAI Codex en VS Code<\/a> porque ya ten\u00eda una suscripci\u00f3n, pero recomendar\u00eda empezar con Bolt.new, Lovable o Vercel para una experiencia de vibe coding m\u00e1s visual.<\/p>\n\n\n\n<p>Nuestro primer prompt: \u201cCrea una aplicaci\u00f3n para rastrear un jard\u00edn donde pueda registrar qu\u00e9 plant\u00e9, cu\u00e1ndo lo plant\u00e9 y cu\u00e1nto cosech\u00e9. Incluye una forma de ver qu\u00e9 plantas rindieron mejor cada temporada.\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"976\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_Nuestro-primer-prompt_Codex-1024x976.jpg\" alt=\"Cursor AI IDE mostrando un plan de varios pasos para crear una aplicaci\u00f3n de seguimiento de jardines, con una lista de tareas e interfaz de chat para la asistencia de la IA.\" class=\"wp-image-77791 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_Nuestro-primer-prompt_Codex-1024x976.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_Nuestro-primer-prompt_Codex-300x286.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_Nuestro-primer-prompt_Codex-768x732.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/02_Nuestro-primer-prompt_Codex-1536x1464.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/02_Nuestro-primer-prompt_Codex-600x572.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/02_Nuestro-primer-prompt_Codex-1200x1144.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/02_Nuestro-primer-prompt_Codex-730x696.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/02_Nuestro-primer-prompt_Codex-1460x1392.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/02_Nuestro-primer-prompt_Codex-784x747.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/02_Nuestro-primer-prompt_Codex-1568x1495.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/02_Nuestro-primer-prompt_Codex-877x836.jpg.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/02_Nuestro-primer-prompt_Codex.jpg.webp 1600w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/976;\" \/><\/figure>\n\n\n\n<p><strong>Este prompt funcion\u00f3 porque conten\u00eda tres elementos cr\u00edticos:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Estructura de datos clara<\/strong> (nombre de la planta, fecha de siembra, cantidad de cosecha, temporada)<\/li>\n\n\n\n<li><strong>Resultado definido <\/strong>(comparaci\u00f3n de rendimiento por temporada)<\/li>\n\n\n\n<li><strong>Contexto espec\u00edfico del caso de uso <\/strong>(seguimiento de un jard\u00edn personal)<\/li>\n<\/ul>\n\n\n\n<p>En pocos minutos, Codex gener\u00f3 una aplicaci\u00f3n completa. Ten\u00eda una base de datos SQLite con tablas para plantas, siembras y cosechas; endpoints API REST para operaciones CRUD; un frontend en Python con tablas de datos y formularios de entrada; y estilos b\u00e1sicos con CSS.<\/p>\n\n\n\n<p>Incluso tra\u00eda algunos datos de demostraci\u00f3n por defecto.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"924\" height=\"1024\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-924x1024.jpg\" alt=\"Interfaz de la aplicaci\u00f3n Garden Tracker que muestra cuatro tarjetas de plantas con detalles de Fresa, Pepino, Tomate y Albahaca, incluyendo fechas de siembra y registros de cosecha.\" class=\"wp-image-77792 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-924x1024.jpg 924w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-271x300.jpg 271w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-768x852.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-1385x1536.jpg 1385w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-600x665.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-1200x1331.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-730x809.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-1460x1619.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-784x869.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-1568x1739.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo-877x972.jpg.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascada-de-complejidad-de-codigo.jpg.webp 1600w\" data-sizes=\"(max-width: 924px) 100vw, 924px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 924px; --smush-placeholder-aspect-ratio: 924\/1024;\" \/><\/figure>\n\n\n\n<p>La aplicaci\u00f3n web se ve\u00eda bien. Ese es el superpoder del vibe coding\u2026 y tambi\u00e9n su mayor peligro. Pero antes de entrar en eso, d\u00e9jame explicar lo que realmente est\u00e1 pasando detr\u00e1s del razonamiento de Codex. Jugu\u00e9 un rato con la app, descubr\u00ed qu\u00e9 ten\u00edamos y qu\u00e9 m\u00e1s necesit\u00e1bamos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-lo-que-paso-detras-de-la-interfaz\">Lo Que Pas\u00f3 Detr\u00e1s de la Interfaz<\/h3>\n\n\n\n<p>El c\u00f3digo generado tom\u00f3 decisiones arquitect\u00f3nicas para una aplicaci\u00f3n de un solo usuario. El esquema de base de datos pod\u00eda manejar nuevas entradas sin problema. La API segu\u00eda convenciones REST. Los componentes del frontend estaban separados de manera l\u00f3gica.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"659\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1024x659.jpg\" alt=\"Editor de Visual Studio Code mostrando c\u00f3digo TypeScript para una aplicaci\u00f3n de seguimiento de jardines, con el archivo models.ts abierto que muestra las interfaces Plant y PlantLog.\" class=\"wp-image-77793 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1024x659.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-300x193.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-768x494.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1536x989.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-600x386.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1200x773.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-730x470.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1460x940.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-784x505.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1568x1009.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-877x565.jpg.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional.jpg.webp 1600w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/659;\" \/><\/figure>\n\n\n\n<p>Sin embargo, not\u00e9 que no incorpor\u00f3 consideraciones cr\u00edticas de seguridad por defecto. No hab\u00eda validaci\u00f3n de entradas, ni capa de autenticaci\u00f3n, ni limitaci\u00f3n de solicitudes, ni consideraciones para evitar vulnerabilidades de inyecci\u00f3n SQL, ni cifrado.<\/p>\n\n\n\n<p><strong>La arquitectura del agente de IA asum\u00eda un \u00fanico usuario de confianza en un entorno controlado.<\/strong><\/p>\n\n\n\n<p>Dado que este era un proyecto para mi abuela y para nadie m\u00e1s, estas omisiones son riesgos manejables. Sin embargo, para cualquiera que considere usar vibe coding para construir una aplicaci\u00f3n web multiusuario, estos son riesgos de seguridad cr\u00edticos que simplemente no pueden ignorarse.<\/p>\n\n\n\n<p>Veo discusiones sobre esto com\u00fanmente en Reddit o PostStatus: los desarrolladores logran iterar exitosamente sobre c\u00f3digo generado por IA porque identifican estas brechas e implementan capas de seguridad adecuadas. Los usuarios no t\u00e9cnicos ven una app funcionando y asumen que est\u00e1 lista para producci\u00f3n.<\/p>\n\n\n\n<h2 id=\"h-que-paso-en-la-segunda-hora-el-feature-creep-se-volvio-evidente\" class=\"wp-block-heading\">\u00bfQu\u00e9 Pas\u00f3 en la Segunda Hora? El \u201cFeature Creep\u201d se Volvi\u00f3 Evidente<\/h2>\n\n\n\n<p>La aplicaci\u00f3n funcionaba como estaba previsto, y ese momento de logro le dio confianza. Mi abuela empez\u00f3 a pensar en mejoras. Aqu\u00ed es donde las limitaciones del vibe coding se vuelven evidentes.<\/p>\n\n\n\n<p>Probamos una solicitud de funci\u00f3n: &#8220;Agrega la capacidad de subir fotos de cada planta para poder ver c\u00f3mo se ve\u00edan en diferentes etapas de crecimiento.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"831\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/image-64-1024x831.jpeg\" alt=\"Interfaz de Cursor AI que muestra el progreso en la implementaci\u00f3n de la funci\u00f3n de carga de fotos para las plantas, con el desglose de tareas y el estado de finalizaci\u00f3n.\" class=\"wp-image-77785 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/image-64-1024x831.jpeg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/image-64-300x243.jpeg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/image-64-768x623.jpeg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/image-64-1536x1246.jpeg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/image-64-600x487.jpeg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/image-64-1200x974.jpeg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/image-64-730x592.jpeg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/image-64-1460x1184.jpeg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/image-64-784x636.jpeg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/image-64-1568x1272.jpeg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/image-64-877x711.jpeg.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/image-64.jpeg.webp 1600w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/831;\" \/><\/figure>\n\n\n\n<p>Esta solicitud aparentemente simple desencaden\u00f3 una cascada de complejidad arquitect\u00f3nica.<\/p>\n\n\n\n<p><strong>Cambios necesarios en el esquema de la base de datos y en los m\u00f3dulos de la app:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nueva tabla de fotos con columnas: id, plant_id (clave for\u00e1nea), photo_url, upload_date, growth_stage<\/li>\n\n\n\n<li>Definici\u00f3n de la relaci\u00f3n entre plantas y fotos (uno-a-muchos)<\/li>\n\n\n\n<li>Estrategia de migraci\u00f3n para los datos existentes<\/li>\n<\/ul>\n\n\n\n<p><strong>Modificaciones necesarias en el backend:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Endpoint para subir archivos con manejo de formularios multiparte<\/li>\n\n\n\n<li>Soluci\u00f3n de almacenamiento de archivos (sistema local vs. almacenamiento en la nube)<\/li>\n\n\n\n<li>Nuevos endpoints API para operaciones CRUD de fotos<\/li>\n\n\n\n<li>Actualizaci\u00f3n de los endpoints existentes de plantas para incluir datos de fotos<\/li>\n<\/ul>\n\n\n\n<p><strong>Cambios requeridos en el frontend:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Componente de carga de archivos con funci\u00f3n de arrastrar y soltar<\/li>\n\n\n\n<li>Vista previa de im\u00e1genes<\/li>\n\n\n\n<li>Galer\u00eda de fotos para cada planta<\/li>\n\n\n\n<li>Actualizaci\u00f3n de las tarjetas de plantas para mostrar miniaturas<\/li>\n\n\n\n<li>Estados de carga para el progreso de subida<\/li>\n<\/ul>\n\n\n\n<p>OpenAI Codex intent\u00f3 implementar todo simult\u00e1neamente. El modelo m\u00e1s reciente, GPT5-Codex-High, logr\u00f3 hacer que esto funcionara en aproximadamente 5 minutos despu\u00e9s de ingresar el prompt.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"924\" height=\"1024\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_Codex_cascade-of-architectural-complexity-924x1024.jpg\" alt=\"P\u00e1gina de detalles de la planta Pepino en Garden Tracker que muestra el historial de cosecha con dos registros, un total cosechado de 5.60 libras y una secci\u00f3n para cargar fotos.\" class=\"wp-image-77795 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_Codex_cascade-of-architectural-complexity-924x1024.jpg 924w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_Codex_cascade-of-architectural-complexity-271x300.jpg 271w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_Codex_cascade-of-architectural-complexity-768x852.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/06_Codex_cascade-of-architectural-complexity-1385x1536.jpg 1385w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascade-of-architectural-complexity-600x665.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascade-of-architectural-complexity-1200x1331.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascade-of-architectural-complexity-730x809.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascade-of-architectural-complexity-1460x1619.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascade-of-architectural-complexity-784x869.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascade-of-architectural-complexity-1568x1739.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascade-of-architectural-complexity-877x972.jpg.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/06_Codex_cascade-of-architectural-complexity.jpg.webp 1600w\" data-sizes=\"(max-width: 924px) 100vw, 924px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 924px; --smush-placeholder-aspect-ratio: 924\/1024;\" \/><\/figure>\n\n\n\n<p>El problema es que gener\u00f3 c\u00f3digo con errores y sin seguridad adecuada. Esto fue lo que se rompi\u00f3:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cambi\u00f3 la estructura original de la tabla de plantas<\/li>\n\n\n\n<li>Componentes del frontend que depend\u00edan del esquema anterior dejaron de funcionar<\/li>\n\n\n\n<li>Aparecieron conflictos de CSS entre los nuevos componentes de fotos y la interfaz existente (como se ve en la captura)<\/li>\n<\/ul>\n\n\n\n<p>Y luego estuvo el problema del sobreingenier\u00eda: Codex gener\u00f3 un sistema complejo con procesamiento de im\u00e1genes innecesario y datos adicionales para cada foto, etc.<\/p>\n\n\n\n<p>Cada intento de correcci\u00f3n introduc\u00eda nuevos problemas. Actualizabas el esquema de la base de datos y se romp\u00eda la API. Arreglabas la API y se romp\u00eda el frontend. Solucionabas los problemas del frontend y aparec\u00edan nuevos errores en el backend. La base de c\u00f3digo, que funcionaba perfectamente con 200 l\u00edneas, ahora se extend\u00eda a m\u00e1s de 1,500 l\u00edneas con dependencias interconectadas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-la-trampa-de-la-arquitectura-no-extensible\">La Trampa de la Arquitectura No Extensible<\/h3>\n\n\n\n<p>La arquitectura de la aplicaci\u00f3n estaba optimizada \u00fanicamente para lo que pedimos en la primera hora. Con vibe coding, tienes que ser muy espec\u00edfico, y esa es la parte dif\u00edcil para quienes no son desarrolladores.<\/p>\n\n\n\n<p>No sabr\u00edas qu\u00e9 significa \u201carquitectura extensible\u201d aunque la IA la hubiera implementado.<\/p>\n\n\n\n<p>Si tienes una app simple lista y luego necesitas ampliarla, una arquitectura no extensible significa que tendr\u00e1s que reescribir el c\u00f3digo desde cero para la IA.<\/p>\n\n\n\n<p><strong>Suposiciones arquitect\u00f3nicas de la primera hora:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dise\u00f1o de tabla \u00fanica (razonable para datos simples)<\/li>\n\n\n\n<li>Consultas directas API\u2192base de datos (r\u00e1pido para operaciones de lectura)<\/li>\n\n\n\n<li>Definiciones de componentes inline (aceptable para interfaces peque\u00f1as)<\/li>\n\n\n\n<li>Sin separaci\u00f3n entre l\u00f3gica de negocio y acceso a datos (bien para CRUD b\u00e1sicos)<\/li>\n<\/ul>\n\n\n\n<p><strong>Por qu\u00e9 estas suposiciones se convirtieron en limitaciones:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El dise\u00f1o de tabla \u00fanica imped\u00eda un modelado relacional adecuado para fotos<\/li>\n\n\n\n<li>Las consultas directas requer\u00edan reescrituras completas cuando cambiaba el esquema<\/li>\n\n\n\n<li>Los componentes inline hac\u00edan que los cambios se propagaran por toda la base de c\u00f3digo<\/li>\n\n\n\n<li>Sin una capa de l\u00f3gica de negocio, cada funci\u00f3n tocaba directamente la base de datos<\/li>\n<\/ul>\n\n\n\n<p>Ya hab\u00edamos pasado el punto de retorno. Exist\u00eda demasiado c\u00f3digo como para descartarlo. Cada intento de correcci\u00f3n consum\u00eda m\u00e1s tokens al tratar de salvar una arquitectura que no pod\u00eda soportar los nuevos requisitos.<\/p>\n\n\n\n<h2 id=\"h-que-paso-en-la-tercera-hora-agotamiento-de-tokens-y-codigo-apenas-funcional\" class=\"wp-block-heading\">\u00bfQu\u00e9 Pas\u00f3 en la Tercera Hora? Agotamiento de Tokens y C\u00f3digo Apenas Funcional<\/h2>\n\n\n\n<p>Despu\u00e9s de que la funci\u00f3n de subir fotos funcionara, intentamos mejoras adicionales.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u201cAgrega categor\u00edas para tipos de plantas (vegetales, hierbas, flores)\u201d<\/li>\n\n\n\n<li>\u201cMuestra recomendaciones de siembra seg\u00fan la temporada\u201d<\/li>\n\n\n\n<li>\u201cPerm\u00edteme marcar plantas como favoritas\u201d<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"659\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-1024x659.jpg\" alt=\"Cursor AI mostrando la finalizaci\u00f3n de la creaci\u00f3n de la aplicaci\u00f3n de seguimiento de jardines, con funciones a\u00f1adidas como categor\u00edas de plantas, recomendaciones estacionales y favoritos, con el c\u00f3digo visible.\" class=\"wp-image-77796 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-1024x659.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-300x193.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-768x494.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-1536x989.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-600x386.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-1200x773.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-730x470.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-1460x940.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-784x505.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-1568x1009.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1-877x565.jpg.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/07_Agotamiento-de-Tokens-y-Codigo-Apenas-Funcional-1.jpg.webp 1600w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/659;\" \/><\/figure>\n\n\n\n<p>Cada solicitud sigui\u00f3 el mismo patr\u00f3n: Codex intent\u00f3 una implementaci\u00f3n exhaustiva incluso para peticiones aparentemente simples, introdujo cambios que romp\u00edan partes existentes, cre\u00f3 soluciones sobreingenierizadas y consumi\u00f3 miles de tokens intentando arreglar los errores resultantes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"932\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementaciones-1024x932.jpg\" alt=\"Cursor AI mostrando la finalizaci\u00f3n de la creaci\u00f3n de la aplicaci\u00f3n de seguimiento de jardines, con funciones a\u00f1adidas como categor\u00edas de plantas, recomendaciones estacionales y favoritos, con el c\u00f3digo visible.\" class=\"wp-image-77799 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementaciones-1024x932.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementaciones-300x273.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementaciones-768x699.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/08_implementaciones-1536x1399.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/08_implementaciones-600x546.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/08_implementaciones-1200x1093.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/08_implementaciones-730x665.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/08_implementaciones-1460x1330.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/08_implementaciones-784x714.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/08_implementaciones-1568x1428.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/08_implementaciones-877x799.jpg.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/08_implementaciones.jpg.webp 1600w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/932;\" \/><\/figure>\n\n\n\n<p>La aplicaci\u00f3n funciona perfectamente, y mi abuela qued\u00f3 satisfecha con el resultado.<\/p>\n\n\n\n<p>Como desarrollador, sin embargo, pude ver claramente que est\u00e1bamos en el \u00faltimo tramo en t\u00e9rminos de c\u00f3digo. Unas cuantas funciones m\u00e1s y la app ser\u00eda un desastre.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"620\" height=\"421\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/Patrick.jpg\" alt=\"Meme de Bob Esponja que muestra a Patricio frustrado frente a la computadora con el texto \u201c\u00bfFunciona?\u201d y \u201cNo, est\u00e1 roto, pero no lo rompas.\u201d\" class=\"wp-image-77800 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/Patrick.jpg.webp 620w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/Patrick-300x204.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/Patrick-600x407.jpg.webp 600w\" data-sizes=\"(max-width: 620px) 100vw, 620px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 620px; --smush-placeholder-aspect-ratio: 620\/421;\" \/><\/figure>\n\n\n\n<p>via <a href=\"https:\/\/imgflip.com\/i\/tc9hy\">Imgflip<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-por-que-es-un-problema-tan-comun\">\u00bfPor Qu\u00e9 Es un Problema Tan Com\u00fan?<\/h3>\n\n\n\n<p>Los agentes de programaci\u00f3n son simplemente grandes modelos de lenguaje \u201cinstruidos\u201d para generar c\u00f3digo.<\/p>\n\n\n\n<p>As\u00ed que tienen todos los problemas que tienen los modelos de lenguaje, incluyendo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No ser espec\u00edficos sobre lo que se espera de ellos<\/li>\n\n\n\n<li>Inventar llamadas a funciones al azar (alucinaciones)<\/li>\n\n\n\n<li>Escribir c\u00f3digo complicado para objetivos simples<\/li>\n<\/ul>\n\n\n\n<p>Adem\u00e1s, a medida que crece el historial del chat, los agentes de programaci\u00f3n alcanzan los <a href=\"https:\/\/www.ibm.com\/think\/topics\/context-window\">l\u00edmites de su ventana de contexto<\/a>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Decisiones arquitect\u00f3nicas originales y su razonamiento<\/li>\n\n\n\n<li>Modificaciones posteriores y sus interdependencias<\/li>\n\n\n\n<li>Errores actuales y sus causas ra\u00edz<\/li>\n\n\n\n<li>Funcionalidad deseada para nuevas caracter\u00edsticas<\/li>\n<\/ul>\n\n\n\n<p>Cada nuevo prompt se interpretaba de manera aislada, sin un entendimiento completo del historial arquitect\u00f3nico. La IA suger\u00eda soluciones que ten\u00edan sentido para caracter\u00edsticas individuales, pero creaban conflictos sist\u00e9micos al integrarse con el c\u00f3digo existente.<\/p>\n\n\n\n<p>Esta <a href=\"https:\/\/www.reddit.com\/r\/ClaudeAI\/comments\/1kivv0w\/the_ultimate_vibe_coding_guide\/\">gu\u00eda de Reddit enfatiza<\/a>: \u201cCuando el chat se vuelve muy grande, simplemente abre uno nuevo. La ventana de contexto de la IA es limitada. Si el chat es muy grande, olvidar\u00e1 todo lo anterior, olvidar\u00e1 cualquier patr\u00f3n y dise\u00f1o, y empezar\u00e1 a producir malos resultados.\u201d<\/p>\n\n\n\n<p>Pero abrir un chat nuevo significaba perder todo el contexto de lo que ya exist\u00eda. Proporcionar ese contexto consum\u00eda tokens. Incluso con un contexto \u201cresumido\u201d, seguimos perdiendo detalles importantes cuando se trata de c\u00f3digo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-nos-enfrentamos-al-problema-de-la-app-tea-a-menor-escala\">Nos Enfrentamos al Problema de la App TEA a Menor Escala<\/h3>\n\n\n\n<p>La app TEA demostr\u00f3 exactamente este patr\u00f3n de fallo a escala de producci\u00f3n. Lanzada en 2023 como una plataforma de seguridad para mujeres, creci\u00f3 r\u00e1pidamente hasta 1,6 millones de usuarias.<\/p>\n\n\n\n<p><strong>Luego, en julio de 2025, fall\u00f3 de forma catastr\u00f3fica:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>La brecha:<\/strong> Investigadores de seguridad descubrieron un bucket de almacenamiento de Firebase sin protecci\u00f3n que conten\u00eda 72.000 im\u00e1genes de usuarias, incluidas 13.000 selfies de verificaci\u00f3n y documentos de identidad oficiales. Una segunda base de datos expuso 1,1 millones de mensajes privados.<\/li>\n\n\n\n<li><strong>Los fallos t\u00e9cnicos:<\/strong> Claves de API hardcodeadas en el c\u00f3digo fuente, bucket de Firebase p\u00fablicamente accesible sin autenticaci\u00f3n, sin protecciones en tiempo de ejecuci\u00f3n y sin una capa de revisi\u00f3n de seguridad. Expertos vincularon estas vulnerabilidades a pr\u00e1cticas de <em>vibe coding<\/em>, donde la velocidad de desarrollo de funciones eclips\u00f3 la arquitectura de seguridad.<\/li>\n\n\n\n<li><strong>El resultado:<\/strong> Un usuario an\u00f3nimo de 4chan descubri\u00f3 y comparti\u00f3 herramientas de descarga. Se presentaron demandas colectivas en un plazo de 48 horas. La plataforma cerr\u00f3. Costo promedio de la brecha: 4,88 millones de d\u00f3lares.<\/li>\n<\/ul>\n\n\n\n<p>El fallo de TEA sigue el mismo patr\u00f3n que experimentamos a una escala diminuta, lo que me hace preguntarme por qu\u00e9 la gente no verifica el c\u00f3digo generado por IA.<\/p>\n\n\n\n<p>Ten\u00edamos una implementaci\u00f3n inicial que funcionaba bien; sin embargo, la incorporaci\u00f3n de funcionalidades complic\u00f3 la arquitectura, se pasaron por alto consideraciones de seguridad para la nueva funcionalidad y vulnerabilidades sist\u00e9micas quedaron abiertas sin saberlo para su explotaci\u00f3n.<\/p>\n\n\n\n<h2 id=\"h-como-hacer-vibe-coding-sin-sufrir-los-mismos-problemas-que-nosotros\" class=\"wp-block-heading\">C\u00f3mo Hacer Vibe Coding sin Sufrir los Mismos Problemas que Nosotros<\/h2>\n\n\n\n<p>Si no eres desarrollador, es imposible evitar por completo estos problemas. Sin embargo, s\u00ed hay formas de minimizarlos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-empieza-con-un-minimalismo-implacable-de-funcionalidades\">1. Empieza con un Minimalismo Implacable de Funcionalidades<\/h3>\n\n\n\n<p>Define el conjunto m\u00ednimo de funcionalidades antes de escribir el primer prompt, pero resiste siempre la tentaci\u00f3n de agregar funciones durante el desarrollo inicial.<\/p>\n\n\n\n<p><strong>Marco eficaz de definici\u00f3n de alcance:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Enumera todas las funcionalidades deseadas<\/li>\n\n\n\n<li>Identifica las 3\u20135 funciones que validan tu hip\u00f3tesis central<\/li>\n\n\n\n<li>Construye solo esas funciones en la versi\u00f3n uno<\/li>\n\n\n\n<li>Lanza, valida e itera<\/li>\n<\/ol>\n\n\n\n<p><em>No des prompts del tipo: \u201cConstruye toda esta funcionalidad por m\u00ed\u201d. La IA alucinar\u00e1 y producir\u00e1 c\u00f3digo terrible. Divide cualquier funcionalidad en al menos 3\u20135 solicitudes secuenciales.<\/em><\/p>\n\n\n\n<p>Si no puedes identificar el conjunto m\u00ednimo de funcionalidades, utiliza el \u201c<strong>modo Plan<\/strong>\u201d o el \u201c<strong>modo Chat<\/strong>\u201d disponibles en la mayor\u00eda de las herramientas de programaci\u00f3n con IA.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"955\" height=\"1024\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10-Claude_Plan-mode-1-955x1024.jpg\" alt=\"Interfaz de Claude Code que muestra un estado vac\u00edo con un personaje en pixel art y una indicaci\u00f3n para escribir \/model y seleccionar una herramienta de programaci\u00f3n con IA.\" class=\"wp-image-77801 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10-Claude_Plan-mode-1-955x1024.jpg 955w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10-Claude_Plan-mode-1-280x300.jpg 280w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10-Claude_Plan-mode-1-768x823.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/10-Claude_Plan-mode-1-1433x1536.jpg 1433w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/10-Claude_Plan-mode-1-600x643.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/10-Claude_Plan-mode-1-1200x1286.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/10-Claude_Plan-mode-1-730x782.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/10-Claude_Plan-mode-1-1460x1565.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/10-Claude_Plan-mode-1-784x840.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/10-Claude_Plan-mode-1-1568x1681.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/10-Claude_Plan-mode-1-877x940.jpg.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/10-Claude_Plan-mode-1.jpg.webp 1600w\" data-sizes=\"(max-width: 955px) 100vw, 955px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 955px; --smush-placeholder-aspect-ratio: 955\/1024;\" \/><\/figure>\n\n\n\n<p>Esto te permite decirle al agente lo que quieres en lenguaje natural y le permite a la IA decidir c\u00f3mo dividir la aplicaci\u00f3n en funciones o archivos individuales.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-haz-commit-en-git-despues-de-cada-funcion-que-funcione\">2. Haz commit en Git Despu\u00e9s de Cada Funci\u00f3n que Funcione<\/h3>\n\n\n\n<p>Para alguien que no es desarrollador, el control de versiones puede sonar complicado, pero es una adici\u00f3n necesaria. Git es una herramienta de control de versiones que crea puntos de restauraci\u00f3n cuando la adici\u00f3n de nuevas funciones rompe funcionalidades existentes.<\/p>\n\n\n\n<p><strong>Flujo de trabajo con Git para vibe coding:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Inicializa el repositorio antes del primer prompt<\/li>\n\n\n\n<li>Haz commit despu\u00e9s de la primera versi\u00f3n funcional<\/li>\n\n\n\n<li>Crea una nueva rama para cada funci\u00f3n adicional<\/li>\n\n\n\n<li>Haz commits frecuentes durante el desarrollo de cada funci\u00f3n<\/li>\n\n\n\n<li>Prueba completamente antes de fusionar con la rama principal<\/li>\n<\/ol>\n\n\n\n<p>Puedes pedirle al agente de programaci\u00f3n de tu preferencia que haga esto por ti si no te sientes c\u00f3moda con los <a href=\"https:\/\/www.dreamhost.com\/blog\/es\/comandos-git-ejemplos-aplicados\/\">comandos de Git<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-disena-para-la-extensibilidad-en-los-prompts-iniciales\">3. Dise\u00f1a Para la Extensibilidad en los Prompts Iniciales<\/h3>\n\n\n\n<p>Tu primer prompt define toda la base de c\u00f3digo. Prompts simples solo te dar\u00e1n una app funcional\u2026 hasta que empieces a pedir nuevas funciones.<\/p>\n\n\n\n<p>En su lugar, pide una arquitectura extensible desde el principio.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Prompt inicial inefectivo:<\/strong><strong><br><\/strong> <em>&#8220;Construye una aplicaci\u00f3n para rastrear un jard\u00edn donde pueda registrar qu\u00e9 plant\u00e9 y qu\u00e9 cosech\u00e9.&#8221;<\/em><\/li>\n\n\n\n<li><strong>Prompt inicial efectivo:<\/strong><strong><br><\/strong> <em>&#8220;Construye una aplicaci\u00f3n para rastrear un jard\u00edn con un esquema de base de datos extensible que pueda adaptarse a futuras funciones. Usa una arquitectura modular donde los componentes del frontend, los endpoints de la API y el acceso a la base de datos est\u00e9n separados. Incluye documentaci\u00f3n clara del esquema y la estructura de la API para futuras modificaciones.&#8221;<\/em><\/li>\n<\/ul>\n\n\n\n<p>Esto s\u00ed aumenta el uso de tokens al inicio. Sin embargo, cuando comiences a agregar nuevas funciones, la IA no necesitar\u00e1 desperdiciar tokens refactorizando el c\u00f3digo antiguo para acomodar tus solicitudes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-4-elige-herramientas-basadas-en-la-estabilidad-de-la-arquitectura\">4. Elige Herramientas Basadas en la Estabilidad de la Arquitectura<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Bolt.new, Replit agent, y Lovable:<\/strong> Excelentes para prototipos de una sola sesi\u00f3n y despliegue f\u00e1cil. Malos para agregar funciones en m\u00faltiples sesiones. La arquitectura se vuelve progresivamente m\u00e1s fr\u00e1gil con cada modificaci\u00f3n.<\/li>\n\n\n\n<li><strong>Agentes de programaci\u00f3n de Claude\/OpenAI\/Gemini:<\/strong> A veces \u00fatiles para codificaci\u00f3n compleja, pero pueden sentirse m\u00e1s complicados comparados con las apps visuales que hemos visto antes.<\/li>\n\n\n\n<li><strong>DreamHost Liftoff:<\/strong> Excelente como base en WordPress con patrones probados de extensibilidad. La arquitectura de WordPress est\u00e1 dise\u00f1ada para modificaciones y adiciones de plugins. Esto resuelve el problema de la arquitectura no extensible comenzando con una base extensible y probada en batalla.\u00a0<\/li>\n<\/ul>\n\n\n\n<div class=\"single__related-article\"><span>Related Article<\/span><div class=\"single__related-article__wrap\"><div class=\"single__related-article__title\">Creador de Sitios Web con IA vs. WordPress: \u00bfCu\u00e1l es Mejor?<\/div><a class=\"btn btn--sm btn--brand\" href=\"https:\/\/www.dreamhost.com\/blog\/es\/constructor-sitios-ia-vs-wordpress\/\">Read More<\/a><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-5-implementa-seguridad-desde-la-primera-hora\">5. Implementa Seguridad Desde la Primera Hora<\/h3>\n\n\n\n<p>Al igual que con la extensibilidad, quieres integrar la seguridad desde el primer prompt. As\u00ed que, junto con pedir una arquitectura modular y extensible, tambi\u00e9n debes a\u00f1adir componentes de seguridad desde el inicio.<\/p>\n\n\n\n<p><strong>Aqu\u00ed tienes un ejemplo de c\u00f3mo a\u00f1adir\u00eda seguridad en el primer prompt:<\/strong><\/p>\n\n\n\n<p>&#8220;Construye una aplicaci\u00f3n para rastrear un jard\u00edn con cifrado de contrase\u00f1as usando bcrypt, validaci\u00f3n de entrada en todos los campos, consultas SQL parametrizadas para evitar ataques de inyecci\u00f3n, limitaci\u00f3n de solicitudes en todos los endpoints de la API y secretos almacenados en variables de entorno que nunca se expongan al frontend.&#8221;<\/p>\n\n\n\n<p><strong>Si est\u00e1s construyendo una app para clientes, ten en cuenta lo siguiente:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nunca conf\u00edes en los datos del cliente: valida y sanitiza en el servidor<\/li>\n\n\n\n<li>Mant\u00e9n los secretos en variables de entorno<\/li>\n\n\n\n<li>Verifica permisos para cada acci\u00f3n<\/li>\n\n\n\n<li>Usa mensajes de error gen\u00e9ricos\u2014registros detallados solo para desarrolladores<\/li>\n\n\n\n<li>Implementa verificaciones de propiedad para evitar accesos no autorizados<\/li>\n\n\n\n<li>Protege las APIs con l\u00edmites de solicitudes<\/li>\n<\/ul>\n\n\n\n<p>Entender <a href=\"https:\/\/www.dreamhost.com\/blog\/es\/guia-principiantes-ia-generativa\/\">c\u00f3mo funciona la IA generativa<\/a> te ayuda a reconocer cu\u00e1ndo la IA hace suposiciones de seguridad que generan vulnerabilidades.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-6-aprende-cuando-empezar-desde-cero-vs-continuar\">6. Aprende Cu\u00e1ndo Empezar Desde Cero vs. Continuar<\/h3>\n\n\n\n<p>Reconoce las se\u00f1ales de que seguir insistiendo solo desperdiciar\u00e1 tokens.<\/p>\n\n\n\n<p><strong>Empieza desde cero cuando:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El consumo de tokens supera los 300k sin funciones que funcionen<\/li>\n\n\n\n<li>Cada correcci\u00f3n de errores introduce dos nuevos<\/li>\n\n\n\n<li>Las modificaciones arquitect\u00f3nicas rompen varias funciones existentes<\/li>\n\n\n\n<li>El historial del chat supera los 30 intercambios<\/li>\n\n\n\n<li>No puedes explicar la arquitectura actual del c\u00f3digo<\/li>\n<\/ul>\n\n\n\n<p><strong>Contin\u00faa cuando:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Las nuevas funciones se integran limpiamente con el c\u00f3digo existente<\/li>\n\n\n\n<li>Las correcciones de errores resuelven problemas sin efectos secundarios<\/li>\n\n\n\n<li>El consumo de tokens se mantiene dentro del presupuesto<\/li>\n\n\n\n<li>La arquitectura sigue siendo comprensible<\/li>\n<\/ul>\n\n\n\n<p>Cuando la IA se equivoca y toma el camino incorrecto, volver atr\u00e1s, ajustar el prompt y enviarlo de nuevo suele ser mucho mejor que completar ese c\u00f3digo basura.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-7-haz-una-revision-con-un-analisis-de-seguridad-por-ia\">7. Haz una Revisi\u00f3n con un An\u00e1lisis de Seguridad por IA<\/h3>\n\n\n\n<p>Despu\u00e9s de construir la funcionalidad principal, copia toda la base de c\u00f3digo en Gemini 2.5 Pro para un an\u00e1lisis de seguridad completo. Prefiero este modelo porque tiene una ventana de contexto de dos millones de tokens, lo que te permite mover toda la base de c\u00f3digo all\u00ed.<\/p>\n\n\n\n<p><strong>Prompt de revisi\u00f3n de seguridad:<\/strong> <em>&#8220;Act\u00faa como experto en seguridad. Analiza esta base de c\u00f3digo completa en busca de vulnerabilidades. Identifica riesgos de inyecci\u00f3n SQL, vulnerabilidades XSS, debilidades de autenticaci\u00f3n, fallas de autorizaci\u00f3n, exposici\u00f3n de credenciales y cualquier problema del OWASP Top 10. Proporciona ubicaciones espec\u00edficas del c\u00f3digo y recomendaciones para corregirlo.&#8221;<\/em><\/p>\n\n\n\n<p>Esto se aproxima a una auditor\u00eda profesional de seguridad a una fracci\u00f3n del costo.<\/p>\n\n\n\n<p>No es suficiente para un despliegue en producci\u00f3n, pero s\u00ed identifica fallas catastr\u00f3ficas en prototipos antes de que lleguen a los usuarios.<\/p>\n\n\n\n<h2 id=\"h-cuando-tiene-sentido-usar-vibe-coding-para-un-negocio\" class=\"wp-block-heading\">\u00bfCu\u00e1ndo Tiene Sentido Usar Vibe Coding Para un Negocio?<\/h2>\n\n\n\n<p>No tienes que descartar el vibe coding solo porque hoy no pueda crear aplicaciones complejas. Aqu\u00ed tienes algunos casos en los que un prototipo o app creada con vibe coding s\u00ed tiene sentido.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Validaci\u00f3n r\u00e1pida de conceptos:<\/strong> Construye prototipos en horas para probar inter\u00e9s de mercado. El costo promedio de validaci\u00f3n baj\u00f3 de $15,000\u2013$100,000+ a menos de $500. Usa <em>vibe coding<\/em> para responder: <em>\u201c\u00bfLos clientes quieren esto lo suficiente como para usarlo?\u201d<\/em><\/li>\n\n\n\n<li><strong>Automatizaci\u00f3n de procesos internos:<\/strong> Crea herramientas para tu equipo donde t\u00fa controlas el acceso y puedes aceptar un mayor nivel de riesgo porque el radio de impacto es limitado. Las herramientas internas pueden evolucionar hacia la seguridad en lugar de requerirla desde el d\u00eda uno.<\/li>\n\n\n\n<li><strong>Especificaci\u00f3n previa al desarrollo:<\/strong> Entiende los requisitos antes de <a href=\"https:\/\/www.dreamhost.com\/blog\/es\/como-contratar-un-desarrollador-web\/\">contratar desarrolladores<\/a> para reducir malentendidos costosos. Los prototipos creados con <em>vibe coding<\/em> funcionan como documentos interactivos de requisitos.<\/li>\n\n\n\n<li><strong>MVP para levantar inversi\u00f3n:<\/strong> Demuestra funcionalidad a inversionistas siendo transparente sobre la madurez t\u00e9cnica. Muchas startups usan MVPs generados con <em>vibe coding<\/em> para conseguir inversi\u00f3n semilla y luego reconstruyen correctamente con equipos profesionales.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cuando-el-desarrollo-profesional-se-vuelve-no-negociable\">Cuando el Desarrollo Profesional se Vuelve No Negociable<\/h3>\n\n\n\n<p>Las aplicaciones orientadas a clientes que procesan cualquier tipo de datos de usuario requieren una revisi\u00f3n profesional de seguridad. El costo de una implementaci\u00f3n incorrecta de seguridad supera cualquier ahorro obtenido con vibe coding.<\/p>\n\n\n\n<p>Casos donde necesitas revisi\u00f3n profesional:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Autenticaci\u00f3n multiusuario<\/li>\n\n\n\n<li>Procesamiento de pagos<\/li>\n\n\n\n<li>Almacenamiento de informaci\u00f3n personal<\/li>\n\n\n\n<li>Despliegue p\u00fablico<\/li>\n\n\n\n<li>Situaciones con requisitos de cumplimiento (como GDPR, CCPA, HIPAA)<\/li>\n<\/ul>\n\n\n\n<p>El CEO de Microsoft revel\u00f3 que el <a href=\"https:\/\/www.cnbc.com\/2025\/04\/29\/satya-nadella-says-as-much-as-30percent-of-microsoft-code-is-written-by-ai.html\">30% del c\u00f3digo de la empresa<\/a> ahora es generado por IA. Google report\u00f3 <a href=\"https:\/\/abc.xyz\/investor\/events\/event-details\/2025\/2025-Q1-Earnings-Call\/\">cifras similares<\/a>. Ambas organizaciones mantienen procesos extensos de revisi\u00f3n de seguridad, pruebas automatizadas y supervisi\u00f3n humana.<\/p>\n\n\n\n<p>El despliegue en producci\u00f3n requiere protecciones similares sin importar c\u00f3mo se gener\u00f3 el c\u00f3digo.<\/p>\n\n\n\n<p>Comprender <a href=\"https:\/\/www.dreamhost.com\/blog\/es\/ia-reemplazara-desarrolladores-futuro-programacion\/\">si la IA reemplazar\u00e1 a los desarrolladores<\/a> ayuda a establecer expectativas realistas sobre lo que puedes construir y desplegar con seguridad por tu cuenta. Explora los <a href=\"https:\/\/www.dreamhost.com\/blog\/es\/mejores-recursos-en-linea-aprender-codificar\/\">mejores recursos en l\u00ednea para aprender programaci\u00f3n<\/a> y as\u00ed cerrar la brecha entre prototipos creados con <em>vibe coding<\/em> y sistemas listos para producci\u00f3n.<\/p>\n\n\n\n<h2 id=\"h-preguntas-frecuentes-sobre-el-vibe-coding\" class=\"wp-block-heading\">Preguntas Frecuentes Sobre el Vibe Coding<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-que-es-el-vibe-coding-y-en-que-se-diferencia-de-la-programacion-tradicional\">\u00bfQu\u00e9 es el vibe coding y en qu\u00e9 se diferencia de la programaci\u00f3n tradicional?<\/h3>\n\n\n\n<p>El vibe coding es el proceso de crear aplicaciones describiendo los requisitos en ingl\u00e9s sencillo para que una IA genere el c\u00f3digo por ti. A diferencia de la programaci\u00f3n tradicional, que exige conocer lenguajes de programaci\u00f3n, el vibe coding cambia el enfoque hacia la gesti\u00f3n del producto y la intenci\u00f3n, en lugar de la escritura manual de c\u00f3digo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-pueden-los-no-desarrolladores-crear-aplicaciones-listas-para-produccion-usando-vibe-coding\">\u00bfPueden los no desarrolladores crear aplicaciones listas para producci\u00f3n usando vibe coding?<\/h3>\n\n\n\n<p>Aunque el vibe coding permite que personas sin conocimientos t\u00e9cnicos creen prototipos funcionales r\u00e1pidamente, la mayor\u00eda del c\u00f3digo generado por IA carece de la seguridad y robustez necesarias para un despliegue en producci\u00f3n. Dicho esto, los prototipos creados con vibe coding son excelentes para validar conceptos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cuales-son-los-mayores-riesgos-de-usar-codigo-generado-por-ia-para-desarrollar-apps\">\u00bfCu\u00e1les son los mayores riesgos de usar c\u00f3digo generado por IA para desarrollar apps?<\/h3>\n\n\n\n<p>Los riesgos m\u00e1s importantes incluyen fallas de seguridad (como falta de validaci\u00f3n, autenticaci\u00f3n, limitaci\u00f3n de solicitudes y protecci\u00f3n contra inyecci\u00f3n SQL), arquitectura no extensible y la feature creep, que termina creando sistemas fr\u00e1giles o rotos. La brecha de seguridad de la app TEA es un ejemplo de desarrollo r\u00e1pido sin la revisi\u00f3n de seguridad adecuada, lo que result\u00f3 en consecuencias catastr\u00f3ficas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cuando-tiene-sentido-usar-vibe-coding-para-proyectos-reales-de-negocio\">\u00bfCu\u00e1ndo tiene sentido usar vibe coding para proyectos reales de negocio?<\/h3>\n\n\n\n<p>El vibe coding es ideal para prototipos r\u00e1pidos, herramientas internas, especificaci\u00f3n previa al desarrollo (recolecci\u00f3n de requisitos) y MVPs para levantar inversi\u00f3n. Sin embargo, para apps orientadas al cliente o que procesan datos sensibles, siempre invierte en desarrollo profesional y revisiones de seguridad.<\/p>\n\n\n\n<h2 id=\"h-la-conclusion-conoce-tus-limites-arquitectonicos\" class=\"wp-block-heading\">La Conclusi\u00f3n: Conoce tus L\u00edmites Arquitect\u00f3nicos<\/h2>\n\n\n\n<p>Mi abuela sigue usando su rastreador de jard\u00edn simplificado para uso personal. Tambi\u00e9n a\u00f1adi\u00f3 an\u00e1lisis funcionales (el bot\u00f3n de la barra de navegaci\u00f3n no llevaba a ninguna parte antes) para ver el rendimiento de su jard\u00edn.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"1006\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_analiticas-funcionales-1-1024x1006.jpg\" alt=\"Panel que muestra an\u00e1lisis del rendimiento de plantas con datos de dos temporadas, destacando 22 cosechas de albahaca en primavera y 5.6 libras de pepinos en verano.\" class=\"wp-image-77802 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_analiticas-funcionales-1-1024x1006.jpg 1024w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_analiticas-funcionales-1-300x295.jpg 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_analiticas-funcionales-1-768x755.jpg 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/11_analiticas-funcionales-1-1536x1509.jpg 1536w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/11_analiticas-funcionales-1-600x590.jpg.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/11_analiticas-funcionales-1-1200x1179.jpg.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/11_analiticas-funcionales-1-730x717.jpg.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/11_analiticas-funcionales-1-1460x1434.jpg.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/11_analiticas-funcionales-1-784x770.jpg.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/11_analiticas-funcionales-1-1568x1541.jpg.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/11_analiticas-funcionales-1-877x862.jpg.webp 877w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2025\/11\/11_analiticas-funcionales-1.jpg.webp 1600w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/1006;\" \/><\/figure>\n\n\n\n<p>Esto funciona como una app de un solo usuario. Si est\u00e1s construyendo una plataforma para m\u00faltiples clientes, a\u00fan puedes crear prototipos, MVPs, etc., usando vibe coding para comenzar. Pero depender \u00fanicamente del vibe coding sin entender qu\u00e9 est\u00e1 pasando es repetir la historia de la app TEA.<\/p>\n\n\n\n<p>El vibe coding democratiza la creaci\u00f3n de software, pero introduce nuevas responsabilidades. Puedes crear aplicaciones en 30 minutos. Sin embargo, debes comprender los l\u00edmites arquitect\u00f3nicos, las implicaciones de seguridad y los patrones de consumo de tokens antes de lanzarlas a los usuarios.<\/p>\n\n\n\n<p>El futuro pertenece a quienes entienden la brecha entre prototipo y producci\u00f3n.<\/p>\n\n\n\n<p>\u00bfListo para construir tu primera aplicaci\u00f3n web? Comienza con <a href=\"https:\/\/www.dreamhost.com\/es\/caracteristicas\/creador-sitios-web-ia\/\"><strong>DreamHost Liftoff<\/strong><\/a>, una experiencia de <em>vibe coding<\/em> basada en WordPress que incluye arquitectura extensible, hosting administrado, infraestructura de seguridad y escalabilidad comprobada desde el d\u00eda uno.<\/p>\n\n\n\n<p><strong>Construye r\u00e1pido. Extiende con seguridad. Haz tuyo el c\u00f3digo.<\/strong><\/p>\n\n\n\n\n<div class=\"article-cta-shared article-cta-small article-cta--product\">\n\t<div class=\"tr-img-wrap-outer jsLoading\"><img decoding=\"async\" class=\"js-img-lazy \" src=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/lazy-loading-transparent.webp\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/product-cta-pro-services-design-877x586.webp 1x, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2024\/03\/product-cta-pro-services-design.webp 2x\"  \/><\/div>\n\n\t<a href='https:\/\/www.dreamhost.com\/pro-services\/design\/' class='link-top' target='_blank' rel='noopener noreferrer'>\n\t\t<span>Pro Services &#8211; Design<\/span>\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\" width=\"15\"><path d=\"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg>\n\t<\/a>\n\n\t<div class=\"content-btm\">\n\t\t<h2 class=\"h2--md\">\n\t\t\tBeautiful Websites, Designed From Scratch\n\t\t<\/h2>\n\t\t<p class=\"p--md\">\n\t\t\tStand out from the crowd with a modern WordPress website that\u2019s 100% unique to you.\n\t\t<\/p>\n\n\t\t        <a\n            href=\"https:\/\/www.dreamhost.com\/pro-services\/design\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            See More                    <\/a>\n\n\t<\/div>\n<\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ense\u00f1ar a mi abuela a crear una app con IA revel\u00f3 exactamente d\u00f3nde el vibe coding triunfa y d\u00f3nde falla de forma catastr\u00f3fica. El primer prompt funcion\u00f3 perfecto. Agregar funciones lo rompi\u00f3 todo. Esto es lo que la brecha de seguridad de la app de TEA nos ense\u00f1\u00f3 sobre el c\u00f3digo generado por IA y c\u00f3mo construir de forma segura.<\/p>\n","protected":false},"author":1058,"featured_media":77804,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_metadesc":"Le ense\u00f1\u00e9 a mi abuela a usar vibe code. Hora 1: una app funcionando. Hora 3: funciones rotas por el l\u00edmite de tokens. Descubre qu\u00e9 funciona, qu\u00e9 falla y c\u00f3mo evitar desastres de seguridad como la brecha de TEA.","toc_headlines":"","hide_toc":false,"footnotes":""},"categories":[14852],"tags":[],"class_list":["post-77777","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-es"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>La realidad del vibe coding: Qu\u00e9 funcion\u00f3, qu\u00e9 fall\u00f3 y riesgos de seguridad - DreamHost<\/title>\n<meta name=\"description\" content=\"Le ense\u00f1\u00e9 a mi abuela a usar vibe code. Hora 1: una app funcionando. Hora 3: funciones rotas por el l\u00edmite de tokens. Descubre qu\u00e9 funciona, qu\u00e9 falla y c\u00f3mo evitar desastres de seguridad como la brecha de TEA.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Le ense\u00f1\u00e9 a mi abuela a usar vibe code: Qu\u00e9 funcion\u00f3 y qu\u00e9 fall\u00f3\" \/>\n<meta property=\"og:description\" content=\"Ense\u00f1ar a mi abuela a crear una app con IA revel\u00f3 exactamente d\u00f3nde el vibe coding triunfa y d\u00f3nde falla de forma catastr\u00f3fica. El primer prompt funcion\u00f3 perfecto. Agregar funciones lo rompi\u00f3 todo. Esto es lo que la brecha de seguridad de la app de TEA nos ense\u00f1\u00f3 sobre el c\u00f3digo generado por IA y c\u00f3mo construir de forma segura.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-26T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-26T21:23:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1220x628_OGIMAGE_How-To-Vibe-Code-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ian Hernandez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Le ense\u00f1\u00e9 a mi abuela a usar vibe code: Qu\u00e9 funcion\u00f3 y qu\u00e9 fall\u00f3\" \/>\n<meta name=\"twitter:description\" content=\"Ense\u00f1ar a mi abuela a crear una app con IA revel\u00f3 exactamente d\u00f3nde el vibe coding triunfa y d\u00f3nde falla de forma catastr\u00f3fica. El primer prompt funcion\u00f3 perfecto. Agregar funciones lo rompi\u00f3 todo. Esto es lo que la brecha de seguridad de la app de TEA nos ense\u00f1\u00f3 sobre el c\u00f3digo generado por IA y c\u00f3mo construir de forma segura.\" \/>\n<meta name=\"twitter:creator\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ian Hernandez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"La realidad del vibe coding: Qu\u00e9 funcion\u00f3, qu\u00e9 fall\u00f3 y riesgos de seguridad - DreamHost","description":"Le ense\u00f1\u00e9 a mi abuela a usar vibe code. Hora 1: una app funcionando. Hora 3: funciones rotas por el l\u00edmite de tokens. Descubre qu\u00e9 funciona, qu\u00e9 falla y c\u00f3mo evitar desastres de seguridad como la brecha de TEA.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/","og_locale":"en_US","og_type":"article","og_title":"Le ense\u00f1\u00e9 a mi abuela a usar vibe code: Qu\u00e9 funcion\u00f3 y qu\u00e9 fall\u00f3","og_description":"Ense\u00f1ar a mi abuela a crear una app con IA revel\u00f3 exactamente d\u00f3nde el vibe coding triunfa y d\u00f3nde falla de forma catastr\u00f3fica. El primer prompt funcion\u00f3 perfecto. Agregar funciones lo rompi\u00f3 todo. Esto es lo que la brecha de seguridad de la app de TEA nos ense\u00f1\u00f3 sobre el c\u00f3digo generado por IA y c\u00f3mo construir de forma segura.","og_url":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2025-11-26T15:00:00+00:00","article_modified_time":"2025-11-26T21:23:10+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1220x628_OGIMAGE_How-To-Vibe-Code-1.jpg","type":"image\/jpeg"}],"author":"Ian Hernandez","twitter_card":"summary_large_image","twitter_title":"Le ense\u00f1\u00e9 a mi abuela a usar vibe code: Qu\u00e9 funcion\u00f3 y qu\u00e9 fall\u00f3","twitter_description":"Ense\u00f1ar a mi abuela a crear una app con IA revel\u00f3 exactamente d\u00f3nde el vibe coding triunfa y d\u00f3nde falla de forma catastr\u00f3fica. El primer prompt funcion\u00f3 perfecto. Agregar funciones lo rompi\u00f3 todo. Esto es lo que la brecha de seguridad de la app de TEA nos ense\u00f1\u00f3 sobre el c\u00f3digo generado por IA y c\u00f3mo construir de forma segura.","twitter_creator":"@dreamhost","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Ian Hernandez","Est. reading time":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/#article","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/"},"author":{"name":"Ian Hernandez","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96"},"headline":"Le Ense\u00f1\u00e9 a Mi Abuela Vibe Code (Esto es Lo Que Pas\u00f3)","datePublished":"2025-11-26T15:00:00+00:00","dateModified":"2025-11-26T21:23:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/"},"wordCount":4443,"publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095-BLOG-HERO-How-To-Vibe-Code.jpg","articleSection":["AI"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/","name":"La realidad del vibe coding: Qu\u00e9 funcion\u00f3, qu\u00e9 fall\u00f3 y riesgos de seguridad - DreamHost","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/#primaryimage"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095-BLOG-HERO-How-To-Vibe-Code.jpg","datePublished":"2025-11-26T15:00:00+00:00","dateModified":"2025-11-26T21:23:10+00:00","description":"Le ense\u00f1\u00e9 a mi abuela a usar vibe code. Hora 1: una app funcionando. Hora 3: funciones rotas por el l\u00edmite de tokens. Descubre qu\u00e9 funciona, qu\u00e9 falla y c\u00f3mo evitar desastres de seguridad como la brecha de TEA.","breadcrumb":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/#primaryimage","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095-BLOG-HERO-How-To-Vibe-Code.jpg","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2025\/11\/1460x1095-BLOG-HERO-How-To-Vibe-Code.jpg","width":1460,"height":1095},{"@type":"BreadcrumbList","@id":"https:\/\/www-dev.dreamhost.com\/blog\/es\/como-usar-vobe-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"Le Ense\u00f1\u00e9 a Mi Abuela Vibe Code (Esto es Lo Que Pas\u00f3)"}]},{"@type":"WebSite","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website","url":"https:\/\/www-dev.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www-dev.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www-dev.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96","name":"Ian Hernandez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","caption":"Ian Hernandez"},"description":"Ian is a Product Designer based in Los Angeles, California. He is responsible for driving brand and product design at DreamHost, developing and maintaining our internal design system, and writing frontend code when he can. In his free time, he enjoys walking his dog, learning history, and discovering new music online and irl. Connect with him on LinkedIn: https:\/\/www.linkedin.com\/in\/ianhernandez23\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/author\/ianh\/"}]}},"lang":"es","translations":{"es":77777,"en":77844,"de":78687,"it":78701,"pt":78730,"fr":78738,"pl":78752,"nl":78760,"uk":78899,"ru":78968},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/77777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/1058"}],"replies":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/comments?post=77777"}],"version-history":[{"count":2,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/77777\/revisions"}],"predecessor-version":[{"id":77807,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/77777\/revisions\/77807"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/77804"}],"wp:attachment":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=77777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=77777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=77777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}