<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Solaris PKN</title>
    <description>The latest articles on DEV Community by Solaris PKN (@solarispkn).</description>
    <link>https://dev.to/solarispkn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4061538%2F0476a9da-e277-40e0-92f2-a35060262642.jpg</url>
      <title>DEV Community: Solaris PKN</title>
      <link>https://dev.to/solarispkn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/solarispkn"/>
    <language>en</language>
    <item>
      <title>Orquestar, Auditar, Editar: del vibe coding a la programación consciente</title>
      <dc:creator>Solaris PKN</dc:creator>
      <pubDate>Mon, 07 Sep 2026 02:44:48 +0000</pubDate>
      <link>https://dev.to/solarispkn/orquestar-auditar-editar-del-vibe-coding-a-la-programacion-consciente-42c2</link>
      <guid>https://dev.to/solarispkn/orquestar-auditar-editar-del-vibe-coding-a-la-programacion-consciente-42c2</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Si el conocimiento no se comparte, muere."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Veinte minutos contra un mes
&lt;/h2&gt;

&lt;p&gt;En veinte minutos, Codex hizo lo que a mí me había llevado un mes.&lt;/p&gt;

&lt;p&gt;Le pedí que creara un entorno de prueba, copiara uno de mis proyectos y empezara a revisar vulnerabilidades y oportunidades de optimización. El agente recorrió el repositorio, creó archivos, modificó otros, eliminó lo que consideró innecesario y reorganizó partes de la estructura.&lt;/p&gt;

&lt;p&gt;El resultado era impresionante. También se sentía profundamente intrusivo.&lt;/p&gt;

&lt;p&gt;No porque la herramienta hubiera hecho algo que yo no le había permitido, sino porque avanzó más rápido de lo que mi cabeza podía acompañar. Mientras yo intentaba entender una decisión, el agente ya había tomado diez más. Al final recibí un resumen correcto, un proyecto transformado y una sensación inesperada: &lt;strong&gt;vacío&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Yo había obtenido el resultado, pero no había acompañado su construcción.&lt;/p&gt;

&lt;p&gt;Entonces me hice una pregunta que todavía me acompaña:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;¿Estoy usando la IA para aprender y ampliar mis capacidades, o para reemplazar el proceso que me permitía aprender?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Para entender por qué esa pregunta me afectó tanto, hay que volver al chico que desarmaba todo.&lt;/p&gt;




&lt;h2&gt;
  
  
  El chico que aprendía rompiendo cosas
&lt;/h2&gt;

&lt;p&gt;Nunca tuve demasiadas oportunidades económicas. Desde chico, la vida no me regaló cursos, laboratorios ni mentores. Pero había algo que nadie podía quitarme: &lt;strong&gt;la curiosidad&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Así terminé en el mundo de la infraestructura IT. No fue por un título universitario ni porque alguien me marcara un camino. Fue por necesidad, terquedad y amor por la tecnología.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Desarmaba computadoras para entender cada componente.&lt;/li&gt;
&lt;li&gt;Configuraba y desconfiguraba routers hasta aprender a recuperarlos.&lt;/li&gt;
&lt;li&gt;Probaba switches, VLAN, topologías y protocolos de red.&lt;/li&gt;
&lt;li&gt;Instalaba Windows, Linux, dual boots y servidores.&lt;/li&gt;
&lt;li&gt;Montaba servidores de juegos para mis amigos.&lt;/li&gt;
&lt;li&gt;Levantaba Apache, peleaba con Cloudflare y migraba servicios buscando la mejor relación entre costo y rendimiento.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cada necesidad abría una investigación. No buscaba solamente una solución: intentaba descubrir &lt;strong&gt;qué posibilidades, riesgos y dependencias rodeaban esa solución&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Mi mentor era la documentación, el error y la obligación de arreglar lo que yo mismo había roto.&lt;/p&gt;




&lt;h2&gt;
  
  
  La paternidad y el conocimiento compartido
&lt;/h2&gt;

&lt;p&gt;En 2026 me enteré de que seré padre.&lt;/p&gt;

&lt;p&gt;Durante mucho tiempo pensé que publicar lo que aprendía era regalar una ventaja que me había costado noches sin dormir. El conocimiento era interno, casi una propiedad privada. Pero la paternidad me obligó a mirar esa idea desde otro lugar:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;¿De qué sirve acumular conocimiento si muere conmigo?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Desde junio empecé a construir una infraestructura virtual donde documentar investigaciones, configuraciones, errores y aprendizajes. Dejé de atesorar conocimiento y empecé a sembrarlo.&lt;/p&gt;

&lt;p&gt;La IA tuvo un papel importante en ese cambio. Para alguien que aprendió casi siempre solo, se convirtió en una segunda voz: una forma de contrastar ideas, atravesar inseguridades y formular en voz alta preguntas que antes quedaban encerradas en mi cabeza.&lt;/p&gt;

&lt;p&gt;No quería un oráculo ni un jefe. Quería un interlocutor.&lt;/p&gt;




&lt;h2&gt;
  
  
  Mi primer método: la IA como manual, yo como constructor
&lt;/h2&gt;

&lt;p&gt;Durante mucho tiempo usé ChatGPT, Gemini, Claude o DeepSeek como si fueran manuales interactivos. Les pedía una estructura, un fragmento de código o una explicación; comparaba respuestas y después llevaba el resultado a mi entorno manualmente.&lt;/p&gt;

&lt;p&gt;Mi flujo era más o menos así:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Describía el problema y pedía una propuesta.&lt;/li&gt;
&lt;li&gt;Contrastaba la respuesta con otra IA o con documentación oficial.&lt;/li&gt;
&lt;li&gt;Creaba las carpetas y los archivos en mi máquina.&lt;/li&gt;
&lt;li&gt;Integraba el código en el lugar correspondiente.&lt;/li&gt;
&lt;li&gt;Ejecutaba el proyecto y leía los errores.&lt;/li&gt;
&lt;li&gt;Corregía, reorganizaba y volvía a probar.&lt;/li&gt;
&lt;li&gt;Revisaba datos sensibles, dependencias y archivos redundantes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;La IA entregaba texto. &lt;strong&gt;Yo tocaba el sistema.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ese método era lento y podía introducir errores manuales. Copiar código tampoco equivale automáticamente a comprenderlo: uno puede copiar de manera tan pasiva como puede aceptar el resultado de un agente. Pero el trabajo manual producía algo valioso: &lt;strong&gt;más puntos de contacto con el proyecto&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Al crear una carpeta, registraba su ubicación. Al integrar una función, veía qué importaba y quién la consumía. Al ejecutar un comando, descubría qué dependencias necesitaba. Cuando algo fallaba, tenía que leer el log, volver sobre mis pasos y construir un modelo mental del sistema.&lt;/p&gt;

&lt;p&gt;En ese recorrido aprendí metodologías que ni siquiera sabía que existían. Descubrí patrones, herramientas, validaciones y riesgos que no formaban parte de mi pregunta inicial.&lt;/p&gt;

&lt;p&gt;Y más de una vez encontré algo que ninguna IA había señalado: una contradicción con la intención original, un archivo histórico que todavía cumplía una función, una variable sensible, una dependencia implícita o un comportamiento que solo aparecía en mi entorno real.&lt;/p&gt;

&lt;p&gt;La IA puede procesar muchísimo contexto, pero no posee automáticamente toda la historia que yo tengo con el proyecto. Tampoco conoce una intención que nunca expresé. &lt;strong&gt;Por eso la auditoría humana sigue siendo necesaria.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Leer un libro no es construir una casa
&lt;/h2&gt;

&lt;p&gt;La comparación que mejor representa esta diferencia no es humano contra máquina. Es &lt;strong&gt;teoría contra práctica&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;El &lt;em&gt;vibe coding&lt;/em&gt; se puede parecer a leer un libro sobre cómo se construye una casa. La IA hace el trabajo y después puede explicarme qué modificó, qué patrón utilizó y por qué tomó cada decisión. Esa explicación puede ser excelente. Puedo leerla, comprenderla e incluso repetirla.&lt;/p&gt;

&lt;p&gt;Pero sigo recibiendo una construcción ya resuelta.&lt;/p&gt;

&lt;p&gt;Leer que una pared necesita cimientos no es lo mismo que nivelar el terreno. Leer por qué se usa determinado material no es lo mismo que colocarlo, descubrir que no encaja y tener que corregirlo. La teoría transmite conceptos; la práctica construye criterio operativo.&lt;/p&gt;

&lt;p&gt;Cuando copio e integro manualmente, o cuando uso una IA para codificar un sector específico y después lo audito, dejo de ser solamente lector. Tengo que relacionar lo nuevo con lo que ya existe, ejecutar, interpretar resultados y decidir qué hacer cuando la realidad contradice la explicación.&lt;/p&gt;

&lt;p&gt;Ahí aparece el aprendizaje que más valoro:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Descubrir una metodología porque tuve que aplicarla.&lt;/li&gt;
&lt;li&gt;Entender una dependencia porque rompí su integración.&lt;/li&gt;
&lt;li&gt;Recordar una ruta porque tuve que crearla y recorrerla.&lt;/li&gt;
&lt;li&gt;Detectar un supuesto equivocado porque el resultado real no coincidió con lo prometido.&lt;/li&gt;
&lt;li&gt;Encontrar un problema que la IA no vio porque yo conocía mejor la intención o la historia del proyecto.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La teoría importa. Sin teoría podemos repetir errores sin entenderlos. Pero &lt;strong&gt;leer el resumen de una práctica que realizó otro no produce la misma experiencia que participar en ella&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Y participar no exige escribir cada carácter con mis dedos. También es práctica dividir el problema por sectores, pedir una implementación acotada, revisar el diff, ejecutar las pruebas, intervenir y corregir antes de pasar al siguiente sector.&lt;/p&gt;

&lt;p&gt;La práctica comienza donde termina la aceptación pasiva.&lt;/p&gt;




&lt;h2&gt;
  
  
  Por qué el vibe coding puede ser más agresivo
&lt;/h2&gt;

&lt;p&gt;Los agentes actuales pueden leer un repositorio, ejecutar comandos y modificar directamente el sistema de archivos. La diferencia frente a copiar manualmente no es solamente de velocidad: es una diferencia de &lt;strong&gt;superficie de acción&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Cuando trabajo manualmente, cada cambio pasa por un cuello de botella: yo. Para crear veinte archivos tengo que atravesar veinte decisiones. Ese límite es ineficiente para producir, pero puede ser muy valioso para aprender.&lt;/p&gt;

&lt;p&gt;En cambio, un agente puede recorrer el repositorio completo en minutos. Puede cambiar una configuración, actualizar una dependencia, refactorizar una función y eliminar un archivo antes de que yo haya terminado de comprender la primera modificación.&lt;/p&gt;

&lt;p&gt;Cuanto más vaga sea la instrucción —"revisá todo", "optimizalo", "arreglá lo que encuentres"— mayor puede ser la intrusión. No necesariamente porque el agente actúe mal, sino porque le cedimos demasiadas decisiones al mismo tiempo.&lt;/p&gt;

&lt;p&gt;Eso es lo que vuelve peligroso al &lt;em&gt;vibe coding&lt;/em&gt; puro: no que la IA escriba código, sino que &lt;strong&gt;la cantidad y la velocidad de sus decisiones superen nuestra voluntad o capacidad de revisarlas&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;También entendí que Codex y el &lt;em&gt;vibe coding&lt;/em&gt; no son sinónimos. Una herramienta agéntica puede trabajar con límites, permisos, diffs, puntos de control y revisiones. Se pueden inspeccionar los cambios antes de confirmarlos y decidir qué conservar, revertir o corregir.&lt;/p&gt;

&lt;p&gt;El problema no es que el agente tenga manos. El problema aparece cuando nosotros dejamos de participar en la práctica.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tres formas de trabajar con IA
&lt;/h2&gt;

&lt;p&gt;No tenemos que elegir entre copiar absolutamente todo o entregar el proyecto entero a una máquina.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimensión&lt;/th&gt;
&lt;th&gt;Vibe coding pasivo&lt;/th&gt;
&lt;th&gt;Integración manual&lt;/th&gt;
&lt;th&gt;Agente orquestado por sectores&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cómo se trabaja&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Doy una intención amplia y recibo el resultado&lt;/td&gt;
&lt;td&gt;Creo e integro cada pieza&lt;/td&gt;
&lt;td&gt;Delego áreas pequeñas y avanzo por etapas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Qué veo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Principalmente el resultado y su explicación&lt;/td&gt;
&lt;td&gt;Cada archivo, comando y error&lt;/td&gt;
&lt;td&gt;Planes acotados, diffs, logs y pruebas por sector&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tipo de aprendizaje&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mayormente teórico&lt;/td&gt;
&lt;td&gt;Práctica directa&lt;/td&gt;
&lt;td&gt;Práctica supervisada&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cómo valido&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Acepto si parece funcionar&lt;/td&gt;
&lt;td&gt;Ejecuto y reviso personalmente&lt;/td&gt;
&lt;td&gt;Defino criterios, el agente prueba y yo audito la evidencia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ventaja&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Velocidad inmediata&lt;/td&gt;
&lt;td&gt;Máxima exposición al proceso&lt;/td&gt;
&lt;td&gt;Velocidad sin perder completamente el contacto&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Riesgo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cambios opacos y dependencia&lt;/td&gt;
&lt;td&gt;Lentitud y errores manuales&lt;/td&gt;
&lt;td&gt;Creer que una revisión parcial cubrió todo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Responsabilidad final&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mía&lt;/td&gt;
&lt;td&gt;Mía&lt;/td&gt;
&lt;td&gt;Mía&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;El método manual sigue teniendo una ventaja pedagógica real. Cuanto más nuevo es un tema para mí, más útil resulta recorrerlo paso a paso. La fricción me obliga a observar cosas que una automatización podría resolver sin enseñármelas.&lt;/p&gt;

&lt;p&gt;Pero trabajar con un agente por sectores también es práctica. Puedo pedirle que analice solamente la carga de datos, después auditarla; luego pasar a la interfaz, revisar su comportamiento; finalmente comprobar pruebas, seguridad y despliegue. No pulso cada tecla, pero participo en cada decisión importante.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Automatizar una parte del trabajo no es lo mismo que delegar la comprensión completa.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Mi método actual: Orquestar, Auditar, Editar
&lt;/h2&gt;

&lt;p&gt;Después de aquella primera sensación de vacío entendí que no necesitaba rechazar los agentes. Necesitaba aprender a dirigirlos.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Orquestar
&lt;/h3&gt;

&lt;p&gt;Antes de permitir cambios, defino:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qué problema quiero resolver.&lt;/li&gt;
&lt;li&gt;Qué sector del proyecto está dentro del alcance.&lt;/li&gt;
&lt;li&gt;Qué comportamiento, diseño o contenido debe preservarse.&lt;/li&gt;
&lt;li&gt;Qué riesgos deben revisarse.&lt;/li&gt;
&lt;li&gt;Qué acciones requieren mi aprobación.&lt;/li&gt;
&lt;li&gt;Qué pruebas demostrarán que esa etapa está terminada.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Una instrucción como "optimizá el proyecto" entrega demasiadas decisiones implícitas. Prefiero dividir: primero diagnosticar, después proponer, luego modificar un sector, auditarlo y recién entonces continuar.&lt;/p&gt;

&lt;p&gt;Orquestar significa conservar la intención y el orden del aprendizaje.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Auditar
&lt;/h3&gt;

&lt;p&gt;Antes, durante y después de cada cambio reviso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;El estado inicial del repositorio.&lt;/li&gt;
&lt;li&gt;El plan propuesto por la IA.&lt;/li&gt;
&lt;li&gt;Los archivos creados, modificados y eliminados.&lt;/li&gt;
&lt;li&gt;El diff completo, no solamente el resumen.&lt;/li&gt;
&lt;li&gt;Los resultados reales de las pruebas.&lt;/li&gt;
&lt;li&gt;Los cambios de dependencias y configuración.&lt;/li&gt;
&lt;li&gt;Los datos sensibles, permisos y superficies de seguridad.&lt;/li&gt;
&lt;li&gt;Aquello que la IA no pudo verificar.&lt;/li&gt;
&lt;li&gt;Aquello que la IA ni siquiera consideró revisar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pido explicaciones, pero no confundo explicación con evidencia. Comparo lo que la IA afirma con el código, los logs, la documentación y el comportamiento real.&lt;/p&gt;

&lt;p&gt;Auditar transforma teoría en práctica porque me obliga a comprobar si el relato coincide con el sistema.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Editar
&lt;/h3&gt;

&lt;p&gt;Editar no significa necesariamente pulsar cada tecla. Significa conservar la autoridad para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Corregir una decisión.&lt;/li&gt;
&lt;li&gt;Rechazar un cambio innecesario.&lt;/li&gt;
&lt;li&gt;Pedir una solución más pequeña.&lt;/li&gt;
&lt;li&gt;Dividir una modificación demasiado amplia.&lt;/li&gt;
&lt;li&gt;Recuperar una pieza eliminada por error.&lt;/li&gt;
&lt;li&gt;Cambiar manualmente lo que necesita contexto humano.&lt;/li&gt;
&lt;li&gt;Volver a ejecutar las validaciones antes de aprobar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si no puedo explicar razonablemente qué cambió, por qué cambió y qué evidencia demuestra que funciona, todavía no terminé.&lt;/p&gt;

&lt;p&gt;Editar significa intervenir en la construcción y asumir la responsabilidad.&lt;/p&gt;




&lt;h2&gt;
  
  
  Cuándo prefiero cada método
&lt;/h2&gt;

&lt;p&gt;No todos los trabajos persiguen el mismo objetivo.&lt;/p&gt;

&lt;p&gt;Si estoy explorando una tecnología nueva, aprendiendo una arquitectura o tratando de comprender un error, prefiero copiar, integrar o modificar en pasos pequeños. Quiero sentir la fricción, recorrer los archivos y cometer algunos errores controlados. En ese contexto, tardar más no siempre es una pérdida: muchas veces es el precio de convertir teoría en experiencia.&lt;/p&gt;

&lt;p&gt;Si ya conozco el terreno y enfrento una tarea repetitiva, una migración extensa o una auditoría amplia, un agente puede ahorrarme horas. Pero divido el trabajo por sectores, le doy límites, le exijo evidencia y reviso el resultado de cada etapa.&lt;/p&gt;

&lt;p&gt;Y si la tarea afecta producción, seguridad, datos sensibles o decisiones difíciles de revertir, la velocidad nunca reemplaza los controles.&lt;/p&gt;

&lt;p&gt;Mi pregunta dejó de ser "¿la IA debería tocar mis archivos?". Ahora pregunto:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;¿Qué parte de este trabajo quiero automatizar y qué parte necesito practicar para aprender?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Para el chico que desarmaba computadoras
&lt;/h2&gt;

&lt;p&gt;Si estás aprendiendo como aprendí yo —sin demasiado presupuesto, investigando a los golpes y construyendo con lo que tenés— no dejes que la comodidad te robe el conocimiento.&lt;/p&gt;

&lt;p&gt;Usá la IA. Pedile teoría, estructuras, alternativas, código y explicaciones. Usá agentes cuando la escala lo justifique. Pero mantenete dentro de la práctica:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dividí el proyecto en sectores comprensibles.&lt;/li&gt;
&lt;li&gt;Revisá cada archivo que se crea o elimina.&lt;/li&gt;
&lt;li&gt;Leé el diff completo.&lt;/li&gt;
&lt;li&gt;Buscá en la documentación oficial.&lt;/li&gt;
&lt;li&gt;Preguntá qué supuestos tomó la IA.&lt;/li&gt;
&lt;li&gt;Exigí pruebas y revisá sus resultados.&lt;/li&gt;
&lt;li&gt;Investigá lo que no entendés.&lt;/li&gt;
&lt;li&gt;Buscá también aquello que la IA no buscó.&lt;/li&gt;
&lt;li&gt;Conservá una forma segura de volver atrás.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Porque la IA puede encontrar errores que nosotros no vemos, pero nosotros también podemos encontrar errores, intenciones perdidas y riesgos que la IA no detectó.&lt;/p&gt;

&lt;p&gt;El objetivo no es demostrar que podemos hacer todo sin ayuda. Es evitar que la ayuda nos vuelva incapaces de comprender lo que construimos.&lt;/p&gt;




&lt;h2&gt;
  
  
  La conclusión que quiero dejar
&lt;/h2&gt;

&lt;p&gt;El &lt;em&gt;vibe coding&lt;/em&gt; puede ser un paso atrás cuando nuestro objetivo es aprender y terminamos leyendo explicaciones sobre cambios que nunca atravesamos en la práctica. También puede producir software funcional a una velocidad extraordinaria. Ambas cosas pueden ser ciertas.&lt;/p&gt;

&lt;p&gt;La programación asistida puede ser un paso adelante si usamos esa velocidad para explorar más, practicar mejor y ampliar lo que somos capaces de construir sin entregar nuestras decisiones.&lt;/p&gt;

&lt;p&gt;Hoy no creo que la diferencia esté solamente en quién pulsa las teclas. Creo que está en quién participa en la construcción, quién audita la evidencia y quién responde por las consecuencias.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;La IA puede ofrecer la teoría y ejecutar parte de la práctica. El criterio se forma cuando nosotros intervenimos.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Si voy a dejarle un ejemplo a mi hijo, no quiero que sea el de alguien que rechazó las herramientas nuevas por miedo ni el de alguien que les entregó su criterio por comodidad. Quiero mostrarle que se puede avanzar más rápido sin dejar de preguntar, practicar, aprender y hacerse responsable.&lt;/p&gt;

&lt;p&gt;Desde junio de 2026 publico lo que aprendo porque entendí algo sencillo: el conocimiento atesorado termina muriendo. El conocimiento que se explica, se pone en práctica, se corrige y se comparte permanece vivo.&lt;/p&gt;

&lt;p&gt;Si esta experiencia te resonó, compartila. Y antes de aceptar el próximo cambio generado por IA, preguntate:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;¿Estoy practicando con una herramienta o solamente leyendo lo que la herramienta hizo por mí?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;La experiencia, las decisiones y la responsabilidad son mías. La IA me ayudó a ordenar y editar las palabras.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>vibecoding</category>
      <category>programación</category>
      <category>agenticcoding</category>
    </item>
    <item>
      <title>StackBlitz + GitHub: The Missing Link in the Developer Portfolio</title>
      <dc:creator>Solaris PKN</dc:creator>
      <pubDate>Fri, 28 Aug 2026 00:58:21 +0000</pubDate>
      <link>https://dev.to/solarispkn/stackblitz-github-the-missing-link-in-the-developer-portfolio-2n0l</link>
      <guid>https://dev.to/solarispkn/stackblitz-github-the-missing-link-in-the-developer-portfolio-2n0l</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If I can open a repository, run it, and work with it... why can't I simply keep it linked to my profile?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🔗 The problem: GitHub gets in... but it doesn't stay
&lt;/h2&gt;

&lt;p&gt;I really like StackBlitz for one pretty simple reason: you grab a GitHub repository, open it, and within seconds you have a working development environment running directly in your browser.&lt;/p&gt;

&lt;p&gt;No installations.&lt;/p&gt;

&lt;p&gt;No manual cloning.&lt;/p&gt;

&lt;p&gt;No local environment to set up.&lt;/p&gt;

&lt;p&gt;You open the project and you're done. 🚀&lt;/p&gt;

&lt;p&gt;For compatible repositories — for example, projects built with Astro — it works incredibly well.&lt;/p&gt;

&lt;p&gt;Here's a real example:&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://stackblitz.com/github/SolarisPKN/SolarisPKN-Labs" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;stackblitz.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The problem comes afterward.&lt;/p&gt;

&lt;p&gt;Because the project you just opened, ran, and even modified inside StackBlitz is basically &lt;strong&gt;ephemeral from the perspective of your public profile&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You can use it.&lt;/p&gt;

&lt;p&gt;You can share the link.&lt;/p&gt;

&lt;p&gt;You can work on it.&lt;/p&gt;

&lt;p&gt;But you can't say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I want this repository to permanently appear among my projects.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And that's where the experience starts to feel a little off.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Obviously, I tried to find a workaround
&lt;/h2&gt;

&lt;p&gt;Before reaching this conclusion, I tried several things because I thought:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“There has to be some hidden option I'm missing.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But no. 😅&lt;/p&gt;

&lt;h3&gt;
  
  
  🔄 Syncing a project
&lt;/h3&gt;

&lt;p&gt;If you create a project directly inside StackBlitz, there isn't a really convenient workflow for later turning it into a synchronized representation of a GitHub repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  🍴 Creating an internal fork
&lt;/h3&gt;

&lt;p&gt;If you open a repository directly from GitHub, there also isn't a simple option like:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add to my projects&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Show on my profile&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project works, but it stays disconnected from your public identity inside StackBlitz.&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 Using Collections
&lt;/h3&gt;

&lt;p&gt;And this was the solution that made the most sense to me.&lt;/p&gt;

&lt;p&gt;StackBlitz already has &lt;strong&gt;Collections&lt;/strong&gt;, which are conceptually perfect for organizing projects.&lt;/p&gt;

&lt;p&gt;The problem is that they're designed around projects that live inside StackBlitz.&lt;/p&gt;

&lt;p&gt;I can't simply create something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SolarisPKN Projects
├── SolarisPKN-Labs
├── SolarisPKN-Stats
├── SolarisPKN-Transport
└── Other repositories
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and point each entry to its corresponding GitHub repository opened through StackBlitz.&lt;/p&gt;

&lt;p&gt;And that's where the question that ultimately led me to write this appears:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If StackBlitz already knows how to open the repository, why does it need to own the project in order to show it on my profile?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💡 I don't want another GitHub
&lt;/h2&gt;

&lt;p&gt;I think this point is important.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'm not proposing that StackBlitz clone all of our repositories and store them internally.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That would duplicate infrastructure without much reason.&lt;/p&gt;

&lt;p&gt;GitHub already stores the code.&lt;/p&gt;

&lt;p&gt;Git already handles versioning.&lt;/p&gt;

&lt;p&gt;GitHub already manages permissions, branches, commits, releases, and the entire history.&lt;/p&gt;

&lt;p&gt;I don't need StackBlitz to become GitHub.&lt;/p&gt;

&lt;p&gt;What I want is much simpler:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Let StackBlitz also act as an index for the projects it can already run.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🗂️ An index, not a mirror
&lt;/h2&gt;

&lt;p&gt;The solution could be extremely lightweight.&lt;/p&gt;

&lt;p&gt;If my StackBlitz account is connected to GitHub and I open a compatible repository, StackBlitz could let me mark it as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⭐ Show on my profile&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Internally, it would barely need to store anything beyond metadata.&lt;/p&gt;

&lt;p&gt;Conceptually, it could be as simple as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"projects"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"github"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"repository"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SolarisPKN/SolarisPKN-Labs"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"featured"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"github"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"repository"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SolarisPKN/SolarisPKN-Stats"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"featured"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;No need to duplicate the repository.&lt;/p&gt;

&lt;p&gt;No need to store hundreds of megabytes.&lt;/p&gt;

&lt;p&gt;No need to maintain two sources of truth.&lt;/p&gt;

&lt;p&gt;GitHub remains the source of the project.&lt;/p&gt;

&lt;p&gt;StackBlitz simply stores &lt;strong&gt;the reference&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ What happens when someone opens the project?
&lt;/h2&gt;

&lt;p&gt;Exactly what happens today.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;StackBlitz Profile
        │
        ▼
Indexed Project
        │
        ▼
GitHub Repository
        │
        ▼
StackBlitz WebContainer
        │
        ▼
Runnable Environment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The difference is that now there's a persistent layer that makes the project discoverable from the developer's profile.&lt;/p&gt;

&lt;p&gt;The code still lives on GitHub.&lt;/p&gt;

&lt;p&gt;StackBlitz simply provides the interactive experience.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 And I think this would be better for StackBlitz too
&lt;/h2&gt;

&lt;p&gt;There's something a little paradoxical about the current workflow.&lt;/p&gt;

&lt;p&gt;One of StackBlitz's most powerful features is precisely its ability to run external projects...&lt;/p&gt;

&lt;p&gt;...but afterward, those same projects practically &lt;strong&gt;disappear from the platform's social ecosystem&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That significantly limits the value of the public profile.&lt;/p&gt;

&lt;p&gt;A developer could have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;30 public repositories on GitHub&lt;/li&gt;
&lt;li&gt;15 projects perfectly compatible with StackBlitz&lt;/li&gt;
&lt;li&gt;several fully functional web projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and still open their StackBlitz profile and find it practically empty.&lt;/p&gt;

&lt;p&gt;🤨&lt;/p&gt;

&lt;p&gt;From a technical standpoint, it works.&lt;/p&gt;

&lt;p&gt;From a &lt;strong&gt;Developer Experience&lt;/strong&gt; standpoint, it feels incomplete.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 GitHub as the backend, StackBlitz as the experience
&lt;/h2&gt;

&lt;p&gt;I think that's the core idea.&lt;/p&gt;

&lt;p&gt;Don't turn StackBlitz into another repository hosting platform.&lt;/p&gt;

&lt;p&gt;Instead, make better use of the relationship between both platforms.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub
&lt;/h3&gt;

&lt;p&gt;It handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Commits&lt;/li&gt;
&lt;li&gt;Issues&lt;/li&gt;
&lt;li&gt;Releases&lt;/li&gt;
&lt;li&gt;Branches&lt;/li&gt;
&lt;li&gt;Permissions&lt;/li&gt;
&lt;li&gt;History&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  StackBlitz
&lt;/h3&gt;

&lt;p&gt;It handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Running the project&lt;/li&gt;
&lt;li&gt;Presenting it&lt;/li&gt;
&lt;li&gt;Letting people try it&lt;/li&gt;
&lt;li&gt;Creating an instant development environment&lt;/li&gt;
&lt;li&gt;Turning a repository into an interactive experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And between the two, only one thing is missing:&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 The index
&lt;/h3&gt;

&lt;p&gt;A minimal layer that says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;These are the repositories this developer wants to show on their profile.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nothing more.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 The profile could become a real developer portfolio
&lt;/h2&gt;

&lt;p&gt;And this is where I think the feature would go from being a small UX detail to something much more interesting.&lt;/p&gt;

&lt;p&gt;Today, many developer profiles are fragmented.&lt;/p&gt;

&lt;p&gt;You have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GitHub → Code

LinkedIn → Professional profile

Portfolio → Selected projects

StackBlitz → Runnable demos

Vercel / Netlify → Deployments
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But StackBlitz has something pretty special:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;it can turn code into a runnable experience almost instantly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If it also allowed external repositories to be indexed on a profile, that profile could become something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;An interactive developer portfolio.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You wouldn't just show a card saying you built a project.&lt;/p&gt;

&lt;p&gt;Someone opens it.&lt;/p&gt;

&lt;p&gt;They inspect the code.&lt;/p&gt;

&lt;p&gt;They run the project.&lt;/p&gt;

&lt;p&gt;They modify it.&lt;/p&gt;

&lt;p&gt;They test it.&lt;/p&gt;

&lt;p&gt;All from the browser.&lt;/p&gt;

&lt;p&gt;That's far more valuable than a simple screenshot.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Even Collections would make much more sense
&lt;/h2&gt;

&lt;p&gt;Imagine being able to create:&lt;/p&gt;

&lt;h3&gt;
  
  
  🌐 Web Projects
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;SolarisPKN-Labs&lt;/li&gt;
&lt;li&gt;Portfolio&lt;/li&gt;
&lt;li&gt;Astro experiments&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⚙️ Backend &amp;amp; Automation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Workers&lt;/li&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;Automations&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧪 Experiments
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Prototypes&lt;/li&gt;
&lt;li&gt;Tests&lt;/li&gt;
&lt;li&gt;Concepts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And each item would simply reference an external repository.&lt;/p&gt;

&lt;p&gt;At that point, &lt;strong&gt;Collections would stop organizing only projects that live inside StackBlitz and start organizing the developer's actual work&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To me, that's a huge difference.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Conclusion
&lt;/h2&gt;

&lt;p&gt;StackBlitz has already solved the hard part.&lt;/p&gt;

&lt;p&gt;It can take external code, spin it up inside a WebContainer, and give you a complete development environment directly in the browser.&lt;/p&gt;

&lt;p&gt;What's strange is that a much simpler feature is still missing afterward:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The ability to save that project as a reference on your profile.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I don't need them to duplicate my code.&lt;/p&gt;

&lt;p&gt;I don't need extra storage.&lt;/p&gt;

&lt;p&gt;I don't need another Git system.&lt;/p&gt;

&lt;p&gt;I just need to be able to say:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“This repository is mine, you already opened it successfully, and I want to show it on my profile.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An index.&lt;/p&gt;

&lt;p&gt;A reference.&lt;/p&gt;

&lt;p&gt;A button.&lt;/p&gt;

&lt;p&gt;Done. 🔗&lt;/p&gt;

&lt;p&gt;Sometimes a huge UX improvement doesn't require a huge architecture behind it.&lt;/p&gt;

&lt;p&gt;And I think this is one of those cases.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 What do you think?
&lt;/h2&gt;

&lt;p&gt;If you use StackBlitz together with GitHub, you've probably run into this separation at some point.&lt;/p&gt;

&lt;p&gt;Would you use your StackBlitz profile as a developer portfolio if you could add your GitHub repositories directly to it?&lt;/p&gt;

&lt;p&gt;I would.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And I'd probably end up using StackBlitz a lot more because of it.&lt;/strong&gt; 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>discuss</category>
      <category>reviews</category>
    </item>
  </channel>
</rss>
