<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Con Criterio]]></title><description><![CDATA[Con Criterio es una newsletter sobre construir productos digitales con inteligencia artificial. No sobre la IA en abstracto, sino sobre el proceso real de crear algo que funcione, escale y tenga sentido.]]></description><link>https://www.concriterio.blog</link><image><url>https://substackcdn.com/image/fetch/$s_!_0cB!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7352102a-975a-44e6-8c38-2cce1ed25978_512x512.png</url><title>Con Criterio</title><link>https://www.concriterio.blog</link></image><generator>Substack</generator><lastBuildDate>Wed, 04 Nov 2026 16:52:53 GMT</lastBuildDate><atom:link href="https://www.concriterio.blog/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Pol Marzà]]></copyright><language><![CDATA[es]]></language><webMaster><![CDATA[hazloconcriterio@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[hazloconcriterio@substack.com]]></itunes:email><itunes:name><![CDATA[Pol Marzà]]></itunes:name></itunes:owner><itunes:author><![CDATA[Pol Marzà]]></itunes:author><googleplay:owner><![CDATA[hazloconcriterio@substack.com]]></googleplay:owner><googleplay:email><![CDATA[hazloconcriterio@substack.com]]></googleplay:email><googleplay:author><![CDATA[Pol Marzà]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[8 documentos para gobernarlos a todos]]></title><description><![CDATA[Dos para cada proyecto, cuatro para los que tienen usuarios, dos para los que cobran y lo m&#225;s importante: todos se escriben antes de empezar a construir.]]></description><link>https://www.concriterio.blog/p/porque-es-importante-publicar-tu</link><guid isPermaLink="false">https://www.concriterio.blog/p/porque-es-importante-publicar-tu</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Fri, 30 Oct 2026 09:55:56 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ba3f1ca3-b355-4fec-8381-fd117389eda8_1200x630.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Casi todos empezamos un proyecto igual: abrimos el agente y le pedimos que construya. Funciona hasta la tercera sesi&#243;n, cuando el agente ya no recuerda qu&#233; acordamos y empieza a rehacer cosas.</p><blockquote><p>Hoy te cuento <strong>qu&#233; hago entre crear el repositorio y escribir la primera l&#237;nea de c&#243;digo</strong>, y por qu&#233; el despliegue es de lo &#250;ltimo que me preocupa.</p></blockquote><p>Lo que veremos hoy:</p><ol><li><p>De la idea al repositorio</p></li><li><p>Crea el repositorio y cl&#243;nalo</p></li><li><p>La primera conversaci&#243;n</p></li><li><p>El tama&#241;o decide la documentaci&#243;n</p></li><li><p>Inicializar el proyecto</p></li><li><p>Requisitos, roadmap y fichas</p></li><li><p>Todo en local hasta que haya algo que ense&#241;ar</p></li><li><p>Qu&#233; descarto</p></li><li><p>Tres preguntas para seguir el hilo con Claude</p></li></ol><div><hr></div><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p5XV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3d00be-8ba9-4641-af4f-96beb01f7f99_1200x1200.png 424w, https://substackcdn.com/image/fetch/$s_!p5XV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3d00be-8ba9-4641-af4f-96beb01f7f99_1200x1200.png 848w, https://substackcdn.com/image/fetch/$s_!p5XV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3d00be-8ba9-4641-af4f-96beb01f7f99_1200x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!p5XV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3d00be-8ba9-4641-af4f-96beb01f7f99_1200x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p5XV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3d00be-8ba9-4641-af4f-96beb01f7f99_1200x1200.png" width="237" height="237" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb3d00be-8ba9-4641-af4f-96beb01f7f99_1200x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1200,&quot;resizeWidth&quot;:237,&quot;bytes&quot;:1271454,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/219215619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189ee727-84b5-4384-be0d-ef562ce0a087_1200x1200.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!p5XV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3d00be-8ba9-4641-af4f-96beb01f7f99_1200x1200.png 424w, https://substackcdn.com/image/fetch/$s_!p5XV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3d00be-8ba9-4641-af4f-96beb01f7f99_1200x1200.png 848w, https://substackcdn.com/image/fetch/$s_!p5XV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3d00be-8ba9-4641-af4f-96beb01f7f99_1200x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!p5XV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3d00be-8ba9-4641-af4f-96beb01f7f99_1200x1200.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></div></figure></div><p style="text-align: center;"><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p><strong>Un peque&#241;o recordatorio</strong>: El domingo hago un directo donde hablar&#233; del proceso que sigo para construir cualquier proyecto. Mostrar&#233; el proceso de principio a fin en una sesi&#243;n de 90 minutos. Puedes apuntarte gratis <strong><a href="https://luma.com/lluzk0n2">aqu&#237;</a></strong>. </p><h3><strong>1. De la idea al repositorio</strong></h3><p>En el <strong><a href="https://www.concriterio.blog/p/porque-tu-stack-favorito-no-es-siempre?r=3piuga&amp;utm_campaign=post&amp;utm_medium=web">env&#237;o anterior</a></strong> decidimos el stack con cuatro preguntas: qu&#233; es, qui&#233;n lo usa y qu&#233; hace ah&#237;, qu&#233; informaci&#243;n guarda y qui&#233;n la cambia, y qui&#233;n har&#225; la primera versi&#243;n. Primero la idea, despu&#233;s el stack.</p><p>Hoy damos el siguiente paso: convertir esa idea en un repositorio donde el agente sabe qu&#233; construir antes de escribir nada. Para eso uso mi plantilla, project-template. Impone una regla sencilla: antes de tocar c&#243;digo, el agente lee la documentaci&#243;n del proyecto. Si est&#225; vac&#237;a, pregunta. Si est&#225; rellena, arranca con todo el contexto.</p><blockquote><p>Un agente sin contexto no es m&#225;s r&#225;pido. Solo se equivoca antes.</p></blockquote><div><hr></div><h3 style="text-align: center;"><strong>Un peque&#241;o recordatorio</strong>: El domingo hago un directo donde hablar&#233; del proceso que sigo para construir cualquier proyecto. Mostrar&#233; el proceso de principio a fin en una sesi&#243;n de 90 minutos. Puedes apuntarte gratis <strong><a href="https://luma.com/lluzk0n2">aqu&#237;</a></strong>. </h3><div><hr></div><h3><strong>2. Crea el repositorio y cl&#243;nalo</strong></h3><p>Esto lo haces t&#250;, desde tu cuenta de GitHub:</p><ul><li><p>Abre <strong><a href="https://github.com/polmarza/project-template">github.com/polmarza/project-template</a></strong> y pulsa &#8220;Use this template&#8221; y despu&#233;s &#8220;Create a new repository&#8221;.</p></li><li><p>Elige tu cuenta como propietaria, ponle un nombre y decide si ser&#225; p&#250;blico o privado.</p></li><li><p>Pulsa &#8220;Create repository&#8221;.</p></li></ul><p>Ahora lo traes a tu ordenador. Crea una carpeta donde guardar tus proyectos (yo la llamo GitHub), haz clic derecho sobre ella, abre una terminal y escribe:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;a1772007-7d2a-4571-85b7-41acecc24c5d&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">git clone [URL de tu repositorio]</code></pre></div><p>Ya tienes una copia local del repositorio. De momento solo contiene la plantilla: documentos vac&#237;os y las instrucciones para el agente.</p><div><hr></div><h3><strong>3. La primera conversaci&#243;n</strong></h3><p>Abre Claude Code y selecciona la carpeta que acabas de clonar. Yo trabajo con la aplicaci&#243;n de escritorio, con el chat a un lado y la previsualizaci&#243;n de la web al otro, pero funciona igual desde la terminal.</p><p>Escribe cualquier cosa para empezar. Un &#8220;hola&#8221; basta. La plantilla hace que Claude lea primero sus instrucciones, vea que la documentaci&#243;n est&#225; vac&#237;a y te conteste con una pregunta: qu&#233; quieres construir y para qui&#233;n.</p><p>A partir de ah&#237; le cuentas tu idea y &#233;l te hace preguntas. Aqu&#237; es donde reutilizas lo que decidiste en el env&#237;o anterior: qu&#233; es, qui&#233;n lo usa, qu&#233; datos guarda y con qu&#233; stack lo vas a construir. Cuanto m&#225;s claro llegues, menos preguntas habr&#225;.</p><div><hr></div><h3><strong>4. El tama&#241;o decide la documentaci&#243;n</strong></h3><p>La plantilla trae ocho documentos, pero no todos los proyectos necesitan los ocho. Rellenar un modelo de datos para un portfolio es burocracia, y la burocracia in&#250;til ense&#241;a a saltarse el proceso entero.</p><p>Por eso lo primero que hace Claude es clasificar tu proyecto en uno de tres tama&#241;os:</p><ul><li><p><strong>Sitio peque&#241;o:</strong> landing, portfolio, web de contenido. Sin cuentas de usuario.</p></li><li><p><strong>Producto:</strong> hay usuarios, estado y datos que se guardan.</p></li><li><p><strong>Producto con negocio detr&#225;s:</strong> adem&#225;s hay que cobrar, medir o justificar decisiones.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uvf3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uvf3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png 424w, https://substackcdn.com/image/fetch/$s_!uvf3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png 848w, https://substackcdn.com/image/fetch/$s_!uvf3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png 1272w, https://substackcdn.com/image/fetch/$s_!uvf3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!uvf3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png" width="1456" height="1068" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1068,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133596,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/219215619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uvf3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png 424w, https://substackcdn.com/image/fetch/$s_!uvf3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png 848w, https://substackcdn.com/image/fetch/$s_!uvf3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png 1272w, https://substackcdn.com/image/fetch/$s_!uvf3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b66d362-0eaf-48a1-8378-5a8406fc2b53_1600x1174.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>En el portfolio del env&#237;o anterior, hecho con Astro y sin base de datos, Claude lo clasifica como sitio peque&#241;o: PRD y arquitectura obligatorios, design system recomendado, y fuera negocio, roadmap, flujos de usuario y modelo de datos.</p><p>Los documentos que no aplican se borran, no se dejan vac&#237;os. Un archivo vac&#237;o no se distingue de uno que se olvid&#243; rellenar. Antes de borrar, Claude te ense&#241;a la lista y espera tu confirmaci&#243;n.</p><p>Despu&#233;s rellena los que quedan, uno a uno, confirmando contigo antes de pasar al siguiente. Cada paso queda guardado con un commit en tu ordenador.</p><div><hr></div><h3><strong>5. Inicializar el proyecto</strong></h3><p>Con la documentaci&#243;n completa, Claude convierte la plantilla en tu proyecto. Reescribe el README para tu producto, rellena el archivo de instrucciones del agente con el nombre, el stack y las convenciones, ajusta la licencia y las variables de entorno, borra los restos de la plantilla y deja la primera entrada del registro de cambios.</p><p>El criterio es simple: cuando termina, ning&#250;n archivo habla de la plantilla. Todo habla de tu proyecto.</p><p>En este punto todav&#237;a no hay ni una l&#237;nea de c&#243;digo. Solo hay acuerdos escritos.</p><div><hr></div><h3><strong>6. Requisitos, roadmap y fichas</strong></h3><p>Cada funcionalidad del PRD lleva un identificador y un criterio para comprobar que funciona. Las priorizo con el m&#233;todo MoSCoW:</p><ul><li><p><strong>Must:</strong> imprescindible para que el proyecto tenga sentido.</p></li><li><p><strong>Should:</strong> importante, pero puede esperar a la segunda vuelta.</p></li><li><p><strong>Could:</strong> deseable si hay tiempo.</p></li><li><p><strong>Won&#8217;t:</strong> descartado para esta versi&#243;n, y se dice en voz alta.</p></li></ul><p>En los proyectos de tama&#241;o producto, el roadmap ordena esas funcionalidades: primero lo imprescindible, despu&#233;s lo dem&#225;s.</p><p>Antes de construir cualquier funcionalidad, Claude escribe su ficha: qu&#233; se construye, qu&#233; requisitos cierra y c&#243;mo se comprobar&#225; cada uno. La revisa buscando ambig&#252;edades y casos l&#237;mite, y me deja a m&#237; resolverlos. Yo leo la ficha, la corrijo si hace falta y la apruebo.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!teV6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!teV6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png 424w, https://substackcdn.com/image/fetch/$s_!teV6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png 848w, https://substackcdn.com/image/fetch/$s_!teV6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!teV6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!teV6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png" width="1200" height="1600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101246,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/219215619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!teV6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png 424w, https://substackcdn.com/image/fetch/$s_!teV6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png 848w, https://substackcdn.com/image/fetch/$s_!teV6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!teV6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b63ef2-c292-40d3-a959-8fcfba2199cd_1200x1600.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Solo entonces Claude empieza a construir.</p><blockquote><p>La ficha es el contrato. Si no est&#225; aprobada, no hay c&#243;digo.</p></blockquote><p>C&#243;mo construyo a partir de ah&#237; lo veremos en el directo.</p><div><hr></div><h3><strong>7. Todo en local hasta que haya algo que ense&#241;ar</strong></h3><p>Desplegar es publicar el proyecto en una direcci&#243;n de internet. Yo no lo hago el primer d&#237;a. Mientras construyo, todo vive en mi ordenador: Claude arranca un servidor local y veo cada cambio en la previsualizaci&#243;n al momento.</p><p>Si el proyecto tiene base de datos con Supabase, Claude levanta una copia local dentro de <strong><a href="https://www.docker.com">Docker</a></strong>. As&#237; los errores de la base de datos aparecen en mi ordenador y no el d&#237;a que subo a producci&#243;n.</p><p>Para esto necesitas Docker instalado. Lo veremos en otro env&#237;o.</p><p>Despliego cuando hay algo que se puede mostrar: una landing, la primera pantalla funcional, lo que sea que alguien pueda abrir y entender. Ese momento lo veremos con calma en un pr&#243;ximo env&#237;o.</p><div><hr></div><h3><strong>8. Qu&#233; descarto</strong></h3><ul><li><p><strong>Pedir los ocho documentos siempre.</strong> El tama&#241;o del proyecto decide cu&#225;les. Si crece, se a&#241;aden los que faltan en ese momento.</p></li><li><p><strong>Construir sin ficha.</strong> Ahorra diez minutos hoy y cuesta horas de rehacer despu&#233;s.</p></li><li><p><strong>Desplegar antes de tener algo que ense&#241;ar.</strong> Una direcci&#243;n p&#250;blica con una p&#225;gina vac&#237;a no comprueba nada que no compruebe el servidor local.</p></li><li><p><strong>Conectar herramientas antes de tener stack.</strong> La plantilla no configura conectores hasta que la arquitectura est&#225; decidida.</p></li></ul><div><hr></div><h3><strong>9. Tres preguntas para seguir el hilo con Claude</strong></h3><ul><li><p>Mi proyecto empez&#243; como sitio peque&#241;o y ahora quiero a&#241;adir cuentas de usuario: &#191;qu&#233; documentos me faltan y en qu&#233; orden los relleno sin rehacer lo que ya tengo?</p></li><li><p>&#191;C&#243;mo escribo un criterio de aceptaci&#243;n comprobable para una funcionalidad de mi PRD? Dame un ejemplo con &#8220;dado, cuando, entonces&#8221; aplicado a mi proyecto.</p></li><li><p>Quiero usar Supabase en local con Docker: &#191;qu&#233; necesito instalar, c&#243;mo lo arranco y c&#243;mo paso despu&#233;s los cambios de la base de datos a producci&#243;n?</p><div><hr></div></li></ul><p>&#161;Nada m&#225;s por hoy! Pon esto en pr&#225;ctica y <strong><a href="https://luma.com/lluzk0n2">nos vemos en el directo</a></strong> del domingo :)</p>]]></content:encoded></item><item><title><![CDATA[Tu Stack favorito no es (siempre) la mejor opción]]></title><description><![CDATA[Si empiezas por la herramienta, la idea se adapta a ella y no al rev&#233;s. Mira como se decide el stack a partir de lo que quieres construir.]]></description><link>https://www.concriterio.blog/p/porque-tu-stack-favorito-no-es-siempre</link><guid isPermaLink="false">https://www.concriterio.blog/p/porque-tu-stack-favorito-no-es-siempre</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Sat, 24 Oct 2026 08:02:08 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/15aac41c-aac7-4b20-8d5e-7c9d11f5eab6_1200x630.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><mark data-color="#ffff00" style="background-color: rgb(255, 255, 0); color: rgb(0, 0, 0);">Nivel: Medio</mark></p><p>Casi todos empezamos un proyecto con la herramienta ya elegida, ya sea la que conocemos, la que vimos en un v&#237;deo o la que usa todo el mundo. </p><p>Despu&#233;s la idea se va recortando hasta que cabe, y cuando por fin funciona ya no es lo que quer&#237;as construir. </p><p>Hoy te dejo cuatro preguntas para responder antes de abrir ninguna herramienta y un prompt para que Claude Code proponga el stack a partir de tus respuestas.</p><p><strong>Lo que veremos hoy</strong>:</p><ol><li><p>Primero la idea, despu&#233;s el stack</p></li><li><p>Las cuatro preguntas previas</p></li><li><p>Cada respuesta decide una pieza</p></li><li><p>El prompt para elegir las herramientas</p></li><li><p>Qu&#233; descarto al elegir un stack</p></li><li><p>Tres preguntas para seguir el hilo con Claude</p></li><li><p><strong>&#161;Ap&#250;ntate al primer DIRECTO! <a href="https://luma.com/lluzk0n2">AP&#218;NTETE AQU&#205;</a></strong></p></li></ol><div><hr></div><p style="text-align: center;"><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><h3>1. Primero la idea, despu&#233;s el stack</h3><p>Llamamos stack al conjunto de herramientas con las que construyes un proyecto: </p><ol><li><p>El framework (las piezas y reglas sobre las que se construye la web).</p></li><li><p>El sitio donde se guardan los datos.</p></li><li><p>El servicio donde se publica. </p></li></ol><p>Lo habitual es empezar por una que ya conoces y preguntarte qu&#233; puedes hacer con ella. </p><p>El problema es que cada herramienta trae decisiones tomadas de antemano, y es tu idea la que se ajusta: o incorporas piezas que el proyecto no necesita, como una base de datos en una web que solo muestra informaci&#243;n, o recortas una funci&#243;n que s&#237; necesitabas porque tu herramienta no lo pone f&#225;cil.</p><blockquote><p><strong>El stack se decide despu&#233;s de saber qu&#233; construyes, no antes</strong>.</p></blockquote><p>Por eso mi orden es siempre el mismo: primero escribo de qu&#233; va el proyecto, despu&#233;s dejo que esas respuestas decidan las piezas y, solo entonces, elijo herramientas concretas.</p><div><hr></div><h3>2. Las cuatro preguntas previas</h3><p>Resp&#243;ndelas por escrito, en una o dos frases cada una y sin mencionar ninguna herramienta:</p><ol><li><p><strong>Qu&#233; es:</strong> el proyecto en una frase, como se lo explicar&#237;as a alguien que no sabe de tecnolog&#237;a.</p></li><li><p><strong>Qui&#233;n lo usa y qu&#233; hace ah&#237;:</strong> si solo lee o tambi&#233;n escribe, publica o compra algo.</p></li><li><p><strong>Qu&#233; informaci&#243;n guarda y qui&#233;n la cambia:</strong> si la actualizas t&#250; de vez en cuando o la crean y modifican los usuarios.</p></li><li><p><strong>Qu&#233; no har&#225; la primera versi&#243;n:</strong> las funcionalidades que dejas fuera (idealmente la primera versi&#243;n solo debe resolver un problema).</p></li></ol><p>La cuarta es la que m&#225;s se salta y la que m&#225;s stack te ahorra, porque cada funci&#243;n que dejas fuera es una pieza que no hay que elegir ni mantener.</p><p>As&#237; quedan las respuestas para un <strong>portfolio</strong>:</p><ol><li><p><strong>Qu&#233; es:</strong> una web con mis proyectos y una forma de contactarme.</p></li><li><p><strong>Qui&#233;n lo usa:</strong> cualquiera que llegue desde un enlace. Solo lee y, como mucho, me escribe un correo desde un enlace a mi direcci&#243;n.</p></li><li><p><strong>Qu&#233; informaci&#243;n guarda:</strong> la lista de proyectos, que actualizo yo cada pocas semanas. Los visitantes no guardan nada.</p></li><li><p><strong>Qu&#233; no har&#225;:</strong> cuentas de usuario, comentarios ni blog en la primera versi&#243;n.</p></li></ol><div><hr></div><h3>3. Cada respuesta decide una pieza</h3><ul><li><p><strong>Si la informaci&#243;n la cambias t&#250;:</strong> puede vivir en archivos Markdown (texto con formato sencillo) dentro del propio proyecto, y no necesitas base de datos. <strong>Si la cambian los usuarios:</strong> necesitas una base de datos, que es donde la aplicaci&#243;n guarda y consulta informaci&#243;n que cambia.</p></li><li><p><strong>Si hay cuentas de usuario:</strong> necesitas autenticaci&#243;n, el sistema que gestiona el registro y el inicio de sesi&#243;n, y eso arrastra una base de datos. <strong>Si no las hay:</strong> no instales ninguna de las dos cosas.</p></li><li><p><strong>Si algo tiene que ocurrir fuera del navegador del usuario</strong> (enviar un correo, cobrar un pago, usar una clave que no debe verse): necesitas un backend, que es c&#243;digo que se ejecuta en un servidor y no en el navegador. <strong>Si no:</strong> basta una web est&#225;tica, un conjunto de p&#225;ginas ya construidas que se sirven tal cual.</p></li><li><p><strong>Si hay pocas pantallas y sobre todo contenido:</strong> un framework pensado para contenido, como Astro, suele darte lo que necesitas. <strong>Si hay muchas pantallas que cambian seg&#250;n lo que hace el usuario:</strong> un framework de aplicaciones, como Next.js. Son dos ejemplos, y en cada categor&#237;a hay m&#225;s opciones.</p></li></ul><p>Estos son solo algunos ejemplos. No lo cojas como una receta para todo. En funci&#243;n del proyecto, las necesidades de stack ser&#225;n unas u otras. </p><div><hr></div><h3>4. El prompt para elegir el stack</h3><p>Abre Claude Code en una carpeta vac&#237;a, pega tus cuatro respuestas donde se indica y env&#237;a esto:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;ed946aa2-b9b3-41b1-b77a-e9047d5e8f87&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">Voy a construir un proyecto web y quiero decidir el stack antes de escribir c&#243;digo. Estas son mis respuestas:

1. Qu&#233; es: [tu respuesta]

2. Qui&#233;n lo usa y qu&#233; hace ah&#237;: [tu respuesta]

3. Qu&#233; informaci&#243;n guarda y qui&#233;n la cambia: [tu respuesta]

4. Qu&#233; no har&#225; la primera versi&#243;n: [tu respuesta]

Expl&#237;camelo todo en lenguaje sencillo y define cada t&#233;rmino t&#233;cnico la primera vez que lo uses. Haz esto en orden y sin escribir c&#243;digo todav&#237;a:

1. Hazme, de una en una, las preguntas que falten para decidir el stack.

2. Prop&#243;n el stack m&#225;s peque&#241;o que cubra mis respuestas. Para cada pieza, dime en una frase qu&#233; hace y cu&#225;l de mis respuestas la justifica.

3. Dime qu&#233; piezas habituales NO necesito y por qu&#233;.

4. Dime cu&#225;l de mis respuestas pesa m&#225;s en la decisi&#243;n y qu&#233; cambiar&#237;a en el stack si esa respuesta fuera distinta.

5. Guarda el resultado en un archivo STACK.md.</code></pre></div><p>El punto 3 hace el trabajo de filtro y el 4 te dice qu&#233; respuesta vigilar cuando el proyecto crezca. Si una respuesta cambia, por ejemplo porque decides a&#241;adir cuentas de usuario, vuelve a pasar el prompt con la respuesta actualizada y compara el resultado con tu <code>STACK.md</code>.</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/porque-tu-stack-favorito-no-es-siempre?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Compartir&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Con Criterio! Este Post es p&#250;blico, as&#237; que comp&#225;rtelo con quien quieras.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/porque-tu-stack-favorito-no-es-siempre?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Compartir&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/p/porque-tu-stack-favorito-no-es-siempre?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Compartir</span></a></p></div><div><hr></div><h3>5. Qu&#233; descarto al elegir un stack</h3><p>Descarto tres criterios que se usan mucho. El primero es elegir por popularidad, porque lo que usa todo el mundo resuelve los problemas de otros proyectos. El segundo es decidir leyendo comparativas de herramientas.</p><blockquote><p><strong>Una comparativa de herramientas te dice qu&#233; existe, no qu&#233; necesita tu proyecto</strong>.</p></blockquote><p>El tercero es a&#241;adir base de datos y cuentas de usuario &#8220;por si acaso&#8221;, que es la forma m&#225;s r&#225;pida de multiplicar lo que tienes que mantener sin que el proyecto gane nada hoy. Si m&#225;s adelante hacen falta, se a&#241;aden entonces, con una necesidad concreta que te diga c&#243;mo.</p><div><hr></div><h3>6. Tres preguntas para seguir el hilo con Claude</h3><ol><li><p><em>Mi proyecto guarda reservas que crean los usuarios y que yo tambi&#233;n quiero poder editar: &#191;necesito una base de datos o me basta con un archivo dentro del repositorio, y en qu&#233; punto deja de ser suficiente?</em></p></li><li><p><em>Mi proyecto empez&#243; como una web est&#225;tica con Astro y ahora quiero a&#241;adir cuentas de usuario: &#191;qu&#233; piezas tengo que a&#241;adir y qu&#233; parte de lo ya construido tendr&#237;a que rehacer?</em></p></li><li><p><em>Mi stack consta de 5 piezas: &#191;c&#243;mo compruebo cu&#225;l puedo quitar sin que el proyecto deje de funcionar?</em></p></li></ol><div><hr></div><h3>7. Ap&#250;ntate al primer DIRECTO!</h3><p><strong><a href="https://luma.com/lluzk0n2">AP&#218;NTETE AQU&#205;</a></strong></p><p>Lo he dejado para el final, pero lo volver&#233; a repetir la pr&#243;xima semana (para los rezagados). </p><p>La semana pasada vimos <strong><a href="https://www.concriterio.blog/p/como-preparar-tu-ordenador-para-construir">c&#243;mo preparar tu ordenador para vibe codear</a></strong> (o para construir con IA, el t&#237;tulo era un poco clickbait), hoy hemos hablado del stack, y la semana que viene te contar&#233; <strong>la importancia de publicar tu web cuanto antes</strong>. </p><p>El directo es el paso que une todo eso: c&#243;mo empezar un proyecto para que la IA trabaje contigo y no a ciegas.</p><p><strong>&#191;Qu&#233; veremos?</strong></p><p>Te ense&#241;ar&#233; a usar <strong><a href="https://github.com/polmarza/project-template">la plantilla</a></strong> con la que arranco todos mis proyectos. Es un punto de partida que obliga a la IA a entender qu&#233; vas a construir antes de escribir una sola l&#237;nea de c&#243;digo. En resumen:</p><ul><li><p>Si el proyecto a&#250;n no est&#225; definido, la IA te hace preguntas en lugar de ponerse a programar.</p></li><li><p>Todo lo que decides (producto, dise&#241;o, datos, roadmap) queda documentado, as&#237; que no tienes que volver a explic&#225;rselo en cada conversaci&#243;n.</p></li><li><p>Cada cambio importante deja rastro: qu&#233; se hizo y por qu&#233;.</p></li><li><p>Las ideas que surgen por el camino se guardan sin desviarte de lo que est&#225;s haciendo.</p></li><li><p>Antes de publicar, una revisi&#243;n de seguridad busca claves expuestas y fallos comunes.</p></li></ul><p>Funciona con Claude Code, Cursor y otros agentes, y con el stack que elijas.</p><p>El funcionamiento lo veremos en directo, paso a paso, y al final habr&#225; tiempo para preguntas.</p><p><strong>Domingo 1 de noviembre, 19:00 (Madrid, UTC+1). Online y gratuito.</strong></p><p><strong><a href="https://luma.com/lluzk0n2">AP&#218;NTETE AQU&#205;</a></strong></p><div><hr></div><h3></h3>]]></content:encoded></item><item><title><![CDATA[Cómo preparar tu ordenador para vibe codear]]></title><description><![CDATA[Hoy vamos a ver el stack m&#237;nimo que necesita Claude Code (y t&#250;) para poder construir un proyecto]]></description><link>https://www.concriterio.blog/p/como-preparar-tu-ordenador-para-construir</link><guid isPermaLink="false">https://www.concriterio.blog/p/como-preparar-tu-ordenador-para-construir</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Sat, 17 Oct 2026 10:01:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8da363a1-550a-4044-8133-eabd6350192f_1200x630.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><mark data-color="#ffff00" style="background-color: rgb(255, 255, 0); color: rgb(0, 0, 0);">Nivel: b&#225;sico</mark></p><p>Muchas personas se bloquean al desplegar y publicar su proyecto, as&#237; que hoy voy a tratar de ense&#241;arte las 6 herramientas que usa Claude (y yo) para trabajar en cualquier proyecto web. Si lo que quieres es construir apps para mobile o desktop, no te vayas porque tambi&#233;n te interesa :)</p><p><strong>Lo que veremos hoy</strong>:</p><ol><li><p>El stack m&#237;nimo</p></li><li><p>Qu&#233; es Vercel y c&#243;mo funciona</p></li><li><p>Las tres cosas que tienes que hacer a mano</p></li><li><p>El prompt para que Claude Code instale lo dem&#225;s</p></li><li><p>Qu&#233; descarto del stack m&#237;nimo</p></li><li><p>Tres preguntas para seguir el hilo con Claude</p></li></ol><div><hr></div><p style="text-align: center;"><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p>Antes de empezar me gustar&#237;a repetir la encuesta de la semana pasada en la que te pregunt&#233; sobre cuando prefieres asistir a un directo:</p><div class="poll-embed" data-attrs="{&quot;id&quot;:1482687}" data-component-name="PollToDOM"></div><p>Igual es porque lanc&#233; la publicaci&#243;n en un puente (en Espa&#241;a), pero la participaci&#243;n fue MUY baja ^^&#8221;</p><p>Bueno, &#161;vamos al l&#237;o!</p><div><hr></div><h3>1. El stack m&#237;nimo</h3><p>Las seis son Node.js, pnpm, Git, GitHub, Claude Code y Vercel. Las uso igual en una landing, en un portfolio o en una aplicaci&#243;n con usuarios, y lo que cambia de un proyecto a otro es todo lo dem&#225;s (el framework, la base de datos, los servicios externos), que se decide cuando ya sabes qu&#233; quieres construir.</p><ul><li><p><strong>Node.js</strong> es un programa que hace falta para que funcionen las herramientas con las que se construye una web, como Astro, que usaremos en el directo.</p></li><li><p><strong>pnpm</strong> descarga e instala las librer&#237;as, que son trozos de c&#243;digo hechos por otras personas y que tu proyecto reutiliza, y apunta cu&#225;les son y en qu&#233; versi&#243;n. Existen otros programas que hacen lo mismo (npm y yarn).</p></li><li><p><strong>Git</strong> guarda el historial de tu proyecto: cada versi&#243;n que decides guardar (se llama commit) queda registrada y puedes volver a ella m&#225;s adelante. Tambi&#233;n permite crear ramas, que son copias paralelas del proyecto para probar cambios sin tocar la versi&#243;n principal, que se llama main.</p></li><li><p><strong>GitHub</strong> es un servicio en internet donde se guarda el proyecto con todo su historial. Esa carpeta del proyecto junto con su historial se llama repositorio.</p></li><li><p><strong>Claude Code</strong> escribe y modifica el c&#243;digo por ti a partir de lo que le pides en lenguaje normal. Tambi&#233;n puede ejecutar comandos en tu ordenador, y por defecto te pide permiso antes de hacerlo, as&#237; que en este env&#237;o le pediremos que instale el resto. Existe como aplicaci&#243;n de escritorio, en terminal, en editores y en la web, y yo uso la de escritorio porque permite ver los cambios a medida que los hace.</p></li><li><p><strong>Vercel</strong> publica tu proyecto en una direcci&#243;n web a partir de lo que hay en GitHub.</p></li></ul><p>Es bastante tralla para empezar, un buen glosario que te recomiendo que leas un par de veces antes de continuar. </p><p>No hace falta que te lo aprendas, pero es bueno que te vayan sonando estos conceptos porque ir&#225;n saliendo m&#225;s a menudo. </p><h3>2. Qu&#233; es Vercel y c&#243;mo funciona</h3><p>Vercel es el servicio que publica tu proyecto en una direcci&#243;n web, por ejemplo <code>tu-proyecto.vercel.app</code>. Se conecta a tu repositorio de GitHub, lee lo que hay dentro y lo publica sin que tengas que subir archivos a mano.</p><p>Para entender cu&#225;ndo publica, necesitas un concepto de Git: la rama. Un proyecto puede tener varias versiones en paralelo, y cada una de esas versiones es una rama. Parten del mismo proyecto y lo que cambias en una no afecta a las dem&#225;s. Todo proyecto tiene una rama principal, que se llama <code>main</code>, y es la versi&#243;n que consideras terminada.</p><p>Vercel act&#250;a seg&#250;n en qu&#233; rama est&#225; el cambio:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8re-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8re-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!8re-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!8re-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!8re-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!8re-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144919,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/219210336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8re-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!8re-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!8re-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!8re-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d0cfd08-b288-458b-bf88-0fd57e6a0d5d_1200x630.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p><code>main</code> es el nombre de la rama principal de tu proyecto, y lo que hay en ella es lo que Vercel publica en la direcci&#243;n principal.</p></blockquote><p>Una previsualizaci&#243;n es una copia de tu web con los cambios de esa rama, en una direcci&#243;n que solo tienes t&#250;. Sirve para abrirla, comprobar que todo se ve bien y decidir si el cambio se queda. Cuando lo das por bueno, lo incorporas a <code>main</code> y entonces pasa a ser p&#250;blico.</p><p>As&#237; se trabaja despu&#233;s con Claude Code: le pides que haga los cambios en una rama, abres la previsualizaci&#243;n que genera Vercel y, si te gusta, los incorporas a <code>main</code>.</p><h3>3. Las tres cosas que tienes que hacer a mano</h3><p>De las tres, la que puedes cambiar por otra es la primera. Yo uso Claude Code (I &lt;3 Claude), pero si prefieres usar Codex, Gemini o cualquier otra opci&#243;n, adelante:</p><ol><li><p>Claude Code. Descarga la aplicaci&#243;n de escritorio desde <strong><a href="https://claude.com/es/download">este enlace</a></strong>. Luego inicia sesi&#243;n (con Google) y abre la pesta&#241;a de Code. </p></li><li><p>GitHub. Crea una cuenta en <strong><a href="https://github.com">https://github.com</a></strong></p></li><li><p>Vercel. Reg&#237;strate en <strong><a href="https://vercel.com">https://vercel.com</a></strong> eligiendo la opci&#243;n de entrar con tu cuenta de GitHub (que has creado previamente). </p></li></ol><p>El orden del punto 2 y 3 debe ser este ya que Vercel necesita estar vinculado con tu cuenta de GitHub para que, m&#225;s tarde, puedas hacer los despliegues (poner tu web en internet) de manera autom&#225;tica.</p><h3>4. El prompt para que Claude Code instale lo dem&#225;s</h3><p>En la pesta&#241;a Code, elige una carpeta nueva (por ejemplo, una llamada Proyectos) y pega este prompt:</p><div class="callout-block" data-callout="true"><p><code>Quiero preparar este ordenador para construir proyectos web con ayuda de Claude Code. Necesito tener instalados Node.js (versi&#243;n LTS), pnpm 11 y Git. Haz esto en orden:</code></p><p><code>1. Comprueba cu&#225;les de estas herramientas ya est&#225;n instaladas y qu&#233; versi&#243;n tienen, y ens&#233;&#241;ame el resultado en una tabla.</code></p><p><code>2. Instala solo las que falten, con el m&#233;todo habitual de mi sistema operativo. Antes de cada instalaci&#243;n, dime qu&#233; vas a instalar y por qu&#233;, y espera mi confirmaci&#243;n.</code></p><p><code>3. Si alg&#250;n paso necesita contrase&#241;a de administrador o una descarga manual, no lo intentes: expl&#237;came con pasos sencillos lo que tengo que hacer yo.</code></p><p><code>4. Configura Git con mi nombre y mi correo (preg&#250;ntamelos).</code></p><p><code>5. Al final, comprueba que todo funciona y dame un resumen en lenguaje sencillo, con las versiones instaladas y lo que quede pendiente.</code></p></div><p>Claude Code te pedir&#225; permiso antes de cada comando, y conviene leer qu&#233; va a ejecutar antes de aprobarlo. Si algo falla, pega el mensaje de error en la misma conversaci&#243;n y p&#237;dele que lo resuelva.</p><p>Cuando el resumen final muestre las versiones de Node.js, pnpm y Git, el entorno est&#225; listo. Lo siguiente es decidir qu&#233; construir y qu&#233; m&#225;s necesita, que es el tema del pr&#243;ximo env&#237;o.</p><h3>5. Qu&#233; descarto del stack m&#237;nimo</h3><p>Hay tres cosas que no forman parte del stack m&#237;nimo y que puedes dejar para cuando las necesites  (o sientas curiosidad por ellas):</p><ul><li><p><strong>Editor de c&#243;digo</strong>. La aplicaci&#243;n de escritorio de Claude Code muestra los cambios que hace en tus archivos, as&#237; que para empezar no necesitas abrirlos en otro programa.</p></li><li><p><strong>Base de datos</strong>. Una landing o un portfolio muestran lo mismo a todos los visitantes y no necesitan guardar datos. Cu&#225;ndo a&#241;adirla y cu&#225;l elegir depende de la idea, y por eso es el tema del siguiente env&#237;o.</p></li><li><p><strong>Cuentas de usuario</strong>. Que la gente pueda registrarse exige una base de datos y un sistema de acceso, y nada de eso hace falta para publicar una primera web.</p></li></ul><h3>6. Tres preguntas para seguir el hilo con Claude</h3><ol><li><p><em>&#191;Qu&#233; es ese gestor de paquetes, qu&#233; instala exactamente y c&#243;mo lo desinstalo si quiero?</em></p></li><li><p><em>Mi repositorio de GitHub es privado y mi cuenta de Vercel es Hobby: &#191;qu&#233; restricciones tengo al desplegar y en qu&#233; casos me obliga a pasar a Pro?</em></p></li><li><p><em>&#191;Qu&#233; diferencia hay entre un commit y una rama, y cu&#225;ndo conviene pedirle a Claude Code que trabaje en una rama nueva en vez de en main?</em></p></li></ol>]]></content:encoded></item><item><title><![CDATA[Ahora te conozco un poco más :)]]></title><description><![CDATA[Hoy te muestro los resultados del email anterior y te detalle cu&#225;les y c&#243;mo ser&#225;n los pr&#243;ximos env&#237;os]]></description><link>https://www.concriterio.blog/p/ahora-te-conozco-un-poco-mas</link><guid isPermaLink="false">https://www.concriterio.blog/p/ahora-te-conozco-un-poco-mas</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Sat, 10 Oct 2026 10:02:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/845e57c7-c409-4bd8-b06c-d58ae6d2729e_1200x630.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>La semana pasada te ped&#237; que me dijeras qui&#233;n eres. </p><p>A pesar de que respondieron menos personas de las que esperaba, &#161;los resultados me han sorprendido!</p><p><strong>En este post te cuento</strong>:</p><ol><li><p>Qui&#233;n eres, seg&#250;n las encuestas</p></li><li><p>Qu&#233; se est&#225; construyendo</p></li><li><p>Qu&#233; cambia en noviembre</p></li><li><p>Nuevo: buz&#243;n de sugerencias</p></li><li><p>Pr&#243;ximas publicaciones</p></li></ol><div><hr></div><p style="text-align: center;"><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><h3>1. Qui&#233;n eres</h3><p>Contestaron 28 personas, pocas, as&#237; que no es una radiograf&#237;a de todos, sino de quien se anim&#243; a hablar. </p><p>El 57% me dijo que ya ha desplegado un proyecto. Solo el 11% no ha construido nada. El 62% trabaja con Claude Code. Yo hab&#237;a dado por hecho que escrib&#237;a para gente que se atasca al empezar, y casi nadie est&#225; ah&#237;: solo el 14% dijo no saber por d&#243;nde empezar.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6kv3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6kv3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png 424w, https://substackcdn.com/image/fetch/$s_!6kv3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png 848w, https://substackcdn.com/image/fetch/$s_!6kv3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png 1272w, https://substackcdn.com/image/fetch/$s_!6kv3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!6kv3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png" width="1456" height="764" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144394,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/219193388?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6kv3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png 424w, https://substackcdn.com/image/fetch/$s_!6kv3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png 848w, https://substackcdn.com/image/fetch/$s_!6kv3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png 1272w, https://substackcdn.com/image/fetch/$s_!6kv3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cfd211-6927-4b7c-af76-f1d50be1247e_2400x1260.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Donde s&#237; os atasc&#225;is es en dos sitios: desplegar y publicar (36%) y decidir qu&#233; herramientas usar (36%). Justo antes y justo despu&#233;s de construir. </p><p>As&#237; que el problema no es de c&#243;digo, es un problema de criterio, y por eso existe esta newsletter :)</p><h3>2. Lo que est&#225;is construyendo</h3><p>En los comentarios, alguien me cont&#243; que este mes cre&#243; su primera aplicaci&#243;n: un panel para entender c&#243;mo se comporta cada usuario de su membres&#237;a, con Vercel, GitHub y Supabase. Otra persona automatiza sus publicaciones en varias plataformas. Otra construye un sistema para que profesionales independientes validen una oferta. Nadie construye "una app": construye una herramienta para su propio problema. Yo escribo igual, y por eso funciona cuando coincidimos y falla cuando no.</p><p>Tambi&#233;n hubo un comentario que me quedo: alguien que no contest&#243; la pregunta abierta porque su problema es el tiempo, con dos peques. Lo he tenido en cuenta para lo que viene.</p><h3><strong>3. Lo que cambia en noviembre</strong></h3><p>Octubre lo tengo ocupado con clases en directo para una escuela online, as&#237; que el cambio empieza en noviembre. Seguir&#225; habiendo un env&#237;o semanal, el s&#225;bado, con la misma etiqueta de nivel, el &#237;ndice y el criterio de siempre. Y el domingo habr&#225; un directo semanal, grabado, para quien no pueda estar.</p><p>Cerca de un tercio de quienes le&#233;is est&#225;is en Latinoam&#233;rica, as&#237; que la hora importa. Domingo a las 17h de Madrid son las 10h en M&#233;xico y las 13h en Argentina. A las 19h son las 12h y las 15h. Voto abierto:</p><div class="poll-embed" data-attrs="{&quot;id&quot;:1430103}" data-component-name="PollToDOM"></div><h3>4. El buz&#243;n</h3><p>Con tantos niveles distintos, la &#250;nica forma que se me ocurre de escribir para ti es que me cuentes tu problema. Quiero que funcione como una sesi&#243;n 1:1, solo que en p&#250;blico, para que les pueda ser de utilidad a otras personas.</p><p>Cu&#233;ntame qu&#233; quieres hacer y no sabes c&#243;mo, o qu&#233; herramienta no sabes si usar, en cuatro l&#237;neas.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://forms.gle/ktFhKNoQ6dvgw8Bq9&quot;,&quot;text&quot;:&quot;Buz&#243;n de sugerencias&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://forms.gle/ktFhKNoQ6dvgw8Bq9"><span>Buz&#243;n de sugerencias</span></a></p><p>Cada semana elijo un problema, lo resuelvo en el env&#237;o del s&#225;bado y lo llevamos al directo del domingo. Y te contar&#233; siempre qu&#233; he descartado y por qu&#233;.</p><p>Gu&#225;rdate el enlace del buz&#243;n para cuando lo necesites :)</p><p>Igualmente, te lo a&#241;adir&#233; en cada env&#237;o para que siempre lo tengas a mano. </p><h3>5. Pr&#243;ximos env&#237;os</h3><p>Para no dejarte con las ganas (o s&#237;), te avanzo lo que se viene en las pr&#243;ximas semanas:</p><p>S&#225;bado 17/10 - <strong>Stack m&#237;nimo: Node, pnpm, Git, GitHub, CC, Vercel</strong></p><p>S&#225;bado 24/10 - <strong>Primero qu&#233; construyes, despu&#233;s el stack</strong></p><p>S&#225;bado 31/10 - <strong>Desplegar: de GitHub a Vercel</strong></p><p>Domingo 01/11 - <strong>Primer directo: la web de principio a fin</strong></p><div><hr></div><p>Si tienes nivel b&#225;sico, no te preocupes; explicar&#233; todos los conceptos para que, tengas el nivel que tengas, lo puedas entender e integrar en tu base de conocimiento. </p><p>Recarga pilas que esto ya empieza. </p><p>&#191;Dudas?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/ahora-te-conozco-un-poco-mas/comments&quot;,&quot;text&quot;:&quot;Deja un comentario&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/p/ahora-te-conozco-un-poco-mas/comments"><span>Deja un comentario</span></a></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[No sé para quién escribo esto]]></title><description><![CDATA[Escribo seg&#250;n los problemas que tengo yo, y no tienen por qu&#233; ser los tuyos. Hoy te cuento qui&#233;n soy y te pido que hagas lo mismo.]]></description><link>https://www.concriterio.blog/p/no-se-para-quien-escribo-esto</link><guid isPermaLink="false">https://www.concriterio.blog/p/no-se-para-quien-escribo-esto</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Fri, 02 Oct 2026 07:00:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/51dcc934-6262-4065-9337-1f2948d718cc_1200x630.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Llevo meses compartiendo mi criterio sobre construir con IA y he perdido la perspectiva de qui&#233;n lo lee. Este es, seguramente, mi post m&#225;s personal en el cual te cuento qui&#233;n soy y donde me gustar&#237;a saber qui&#233;n eres t&#250;.</p><p><strong>En este post te cuento:</strong></p><ul><li><p>Por qu&#233; construyo sin saber programar</p></li><li><p>Por qu&#233; ense&#241;ar es m&#225;s dif&#237;cil que construir</p></li><li><p>Por qu&#233; necesito saber qui&#233;n eres</p></li></ul><div><hr></div><p style="text-align: center;"><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><h3>Construyo sin saber programar porque lo m&#237;o es conectar problemas con soluciones</h3><p>Desde peque&#241;o he sido una persona creativa y con mucha imaginaci&#243;n. Gan&#233; un concurso de dibujo y el colegio lo pint&#243; en un trocito del muro del patio, gan&#233; un par de concursos literarios y antes de los 10 a&#241;os ya emprend&#237;a: con mi hermana montamos una revista de pasatiempos que vend&#237;amos a los vecinos.</p><p>Todo eso se par&#243; en la secundaria y volvi&#243; con la fotograf&#237;a. Intent&#233; vivir de ella, pero me costaba poner precio a mi trabajo y acab&#233; en ventas, y de ah&#237; a roles de asesor, atenci&#243;n al cliente, marketing y dise&#241;o.</p><p>En todas las empresas se repiti&#243; lo mismo:</p><blockquote><p>Soy la persona que ve problemas y plantea soluciones. Hasta finales de 2022, todas esas ideas se quedaban en una propuesta.</p></blockquote><p>Siempre se me han dado mal los idiomas. Hablo y escribo perfectamente en castellano y catal&#225;n, pero el ingl&#233;s se me ha resistido, y no me extra&#241;a no haber aprendido a programar a mano: lo he intentado y me aburre enormemente. Lo que se me da bien es cerrar los ojos y entender todas las piezas que necesita algo para funcionar, ver los flujos y c&#243;mo se conectan los datos.</p><p>A finales de 2022 lleg&#243; ChatGPT y, por primera vez, pod&#237;a ejecutar mis propias ideas. La que siempre quise hacer es yoleo.io, un recomendador de libros. </p><blockquote><p>En 2013 qued&#233; primero con esa idea en el concurso de ideas emprendedoras de mi ciudad y no pas&#243; de un dise&#241;o en Photoshop. Con la llegada de la IA la constru&#237; en HTML y CSS, de forma muy b&#225;sica e insegura. Hoy est&#225; online, es accesible y tiene m&#225;s de 200 usuarios.</p></blockquote><p>Desde entonces he construido decenas de proyectos. Al principio eran muy sencillos, pero fui conociendo m&#225;s opciones y formas de aplicar soluciones, y hoy construyo cosas que nunca pens&#233; que ser&#237;a capaz de hacer.</p><p>Construir es m&#225;s accesible de lo que parece. Solo necesitas ganas de encontrar la soluci&#243;n, practicar y hacerte preguntas constantemente.</p><h3>Ense&#241;ar es m&#225;s dif&#237;cil que construir porque cada persona llega con un nivel distinto</h3><blockquote><p>Ense&#241;ar es mucho m&#225;s dif&#237;cil que construir.</p></blockquote><p>Este &#250;ltimo a&#241;o he compaginado mi trabajo de oficina con dar clases. Primero me invitaron a charlas online a ra&#237;z de lo que compart&#237;a sobre AI coding (nocodehackers fue de las primeras) y m&#225;s tarde un par de escuelas me pidieron trabajar con ellas como profesor.</p><p>El problema se repite en las charlas, en las clases y tambi&#233;n aqu&#237;, en Substack: quienes me ven tienen perfiles y niveles distintos. En clase, si doy una sesi&#243;n b&#225;sica los avanzados se aburren, y si doy una m&#225;s t&#233;cnica los dem&#225;s se pierden. All&#237; al menos veo las caras y puedo corregir sobre la marcha, y en una newsletter no.</p><p>Por eso, desde hace poco, cada env&#237;o lleva una etiqueta de nivel debajo del t&#237;tulo. Es un primer intento y todav&#237;a no s&#233; si acierta.</p><h3>Necesito saber qui&#233;n eres para decidir qu&#233; descartar</h3><p>Con esta newsletter mi misi&#243;n es ofrecerte mi criterio y mi experiencia al construir con IA, pero ese criterio lo aplico seg&#250;n mis problemas actuales, que no tienen por qu&#233; coincidir con los tuyos. Sin saber qui&#233;n eres, no puedo decidir qu&#233; merece tu tiempo y qu&#233; descarto. Son tres encuestas y una pregunta abierta.</p><div class="poll-embed" data-attrs="{&quot;id&quot;:1382634}" data-component-name="PollToDOM"></div><div class="poll-embed" data-attrs="{&quot;id&quot;:1382666}" data-component-name="PollToDOM"></div><div class="poll-embed" data-attrs="{&quot;id&quot;:1382672}" data-component-name="PollToDOM"></div><p><strong>Por &#250;ltimo, &#191;Qu&#233; est&#225;s construyendo o qu&#233; quieres construir?</strong><br>Esta pregunta, al ser abierta, te agradecer&#237;a que la respondieras en la secci&#243;n de comentarios de este post. Con una l&#237;nea me basta :)</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/no-se-para-quien-escribo-esto/comments&quot;,&quot;text&quot;:&quot;Deja un comentario&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/p/no-se-para-quien-escribo-esto/comments"><span>Deja un comentario</span></a></p><div><hr></div><p>Las respuestas me dir&#225;n c&#243;mo ajustar los pr&#243;ximos env&#237;os. A partir de noviembre empiezo con directos y la newsletter va a cambiar para ser m&#225;s pr&#225;ctica y din&#225;mica. Te lo cuento en el pr&#243;ximo env&#237;o.</p>]]></content:encoded></item><item><title><![CDATA[Las 6 skills del infinito]]></title><description><![CDATA[Igual que Thanos ten&#237;a sus gemas, t&#250; necesitas 6 soft skills para construir con IA. Hoy veremos cu&#225;les son y c&#243;mo trabajarlas.]]></description><link>https://www.concriterio.blog/p/las-6-skills-del-infinito</link><guid isPermaLink="false">https://www.concriterio.blog/p/las-6-skills-del-infinito</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Fri, 18 Sep 2026 07:02:42 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b7e6a46c-9a68-4af4-8b8f-dc391c2fb0d1_1200x630.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><mark data-color="#ffff00" style="background-color: rgb(255, 255, 0); color: rgb(0, 0, 0);">Nivel: B&#225;sico</mark></p><p>Seguro que en redes has le&#237;do m&#225;s de una vez que para construir con IA no hace falta saber programar (aunque si sabes, tienes mucho ganado), pero lo que s&#237; hace falta es poseer un set de habilidades. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscribirse&quot;,&quot;language&quot;:&quot;es&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">&#161;Gracias por leer Con Criterio! Suscr&#237;bete gratis para recibir nuevos posts y apoyar mi trabajo.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Escribe tu correo electr&#243;nico..." tabindex="-1"><input type="submit" class="button primary" value="Suscribirse"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Este set de habilidades ser&#225;n las que determinen si terminas construyendo proyectos de forma exitosa o si te quedas por el camino. </p><h3><strong>Las 6 habilidades que veremos</strong></h3><ol><li><p>Tolerancia a la ambig&#252;edad</p></li><li><p>Descomposici&#243;n de problemas</p></li><li><p>Criterio para evaluar el output</p></li><li><p>Persistencia frente al error</p></li><li><p>Comunicaci&#243;n precisa</p></li><li><p>Curiosidad t&#233;cnica selectiva</p></li></ol><div><hr></div><p>Antes de empezar te quiero comentar que me han invitado a participar en el <strong>AI Summit</strong> que ha montado <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;David Dom&#237;nguez &#127913;&quot;,&quot;id&quot;:58882279,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!L9-2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dcc8595-16dc-4c0c-a60e-094b6151678e_800x800.png&quot;,&quot;uuid&quot;:&quot;a42777d3-1ca8-47ae-9914-19d7ff79a94c&quot;}" data-component-name="MentionToDOM"></span> donde ha reunido a 20 expert@s en distintas disciplinas para que cuenten qu&#233; usan exactamente, qu&#233; han probado, qu&#233; no les funcion&#243; y hacia donde va todo esto. </p><p>Algunas de las personas que hablaran seguro que las conoces:</p><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Lorena Bordonaba&quot;,&quot;id&quot;:279783032,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bdfa8ecc-71b6-4ba7-8a15-6b103e8df234_769x769.png&quot;,&quot;uuid&quot;:&quot;cf39a3b0-22cf-497e-a3bd-bcc2cd997f6f&quot;}" data-component-name="MentionToDOM"></span> &#183; <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Cristian Rico&quot;,&quot;id&quot;:339221355,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72f7d1b4-7660-4b75-950c-443b252d5f59_1024x1024.png&quot;,&quot;uuid&quot;:&quot;89d53c79-f342-492c-9f64-5f2507d9c989&quot;}" data-component-name="MentionToDOM"></span> &#183; <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Manuel Mas&quot;,&quot;id&quot;:3968332,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!dgzA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c6ffb70-78e3-47d2-9a37-fe7e87e6c5d2_426x426.png&quot;,&quot;uuid&quot;:&quot;9c360071-36a9-4e20-a182-f0a8b6c68001&quot;}" data-component-name="MentionToDOM"></span> &#183; <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Mike Fort&quot;,&quot;id&quot;:15134539,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4600cbdd-026c-40bd-a246-6f196e6ba118_1286x1286.jpeg&quot;,&quot;uuid&quot;:&quot;58837a20-4a6b-4529-9f1e-70b125611982&quot;}" data-component-name="MentionToDOM"></span> &#183; <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Manuel Algara &#127913;&quot;,&quot;id&quot;:291136183,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!sfFL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F651ce7ef-3941-4ba4-aaba-5ab6a43b707c_904x904.jpeg&quot;,&quot;uuid&quot;:&quot;83d51f54-17f0-4f78-b688-8cea446e8776&quot;}" data-component-name="MentionToDOM"></span> &#183; <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jorge Bosch Al&#233;s&quot;,&quot;id&quot;:5839054,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Xsw-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a18156-d02e-4c0c-baf4-60f4258bfe1f_662x662.png&quot;,&quot;uuid&quot;:&quot;920c5411-f029-48f2-b839-fd1af4b5cf23&quot;}" data-component-name="MentionToDOM"></span> &#183; <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Toni Herrera &#127913; eMarketerSocial&quot;,&quot;id&quot;:501282441,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/525f039c-fd49-447e-b59a-022f6107a234_800x800.jpeg&quot;,&quot;uuid&quot;:&quot;e60dc353-f062-40fa-b388-61a84c48b351&quot;}" data-component-name="MentionToDOM"></span> &#183; <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Marta Santamaria&quot;,&quot;id&quot;:270507958,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba334544-cd0d-4f49-9f31-39002b9bd286_688x836.jpeg&quot;,&quot;uuid&quot;:&quot;c072d887-85bd-4b6e-90d0-7d5868ccbdec&quot;}" data-component-name="MentionToDOM"></span> &#183; <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Patxi Fontalba&quot;,&quot;id&quot;:4443304,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bfaedf2-5fc5-4a49-a048-8be44ee706d4_3104x3104.jpeg&quot;,&quot;uuid&quot;:&quot;5059bce4-62cf-4205-9213-1b7621bacb3c&quot;}" data-component-name="MentionToDOM"></span> </p><p>Las charlas se publicaran del 21 al 25 de septiembre y <strong>la m&#237;a sale el viernes</strong>. </p><p>Pilla tu entra <strong><a href="https://www.masteryweeks.com/ia-summit/?sa=sa01810523576b31ed5f163947f7f912ede36afbf8">aqu&#237;</a></strong>. </p><div><hr></div><h4><strong>1. Tolerancia a la ambig&#252;edad</strong></h4><blockquote><p>Vas a construir sin saber si funciona hasta que lo pruebas. La IA te entrega una soluci&#243;n que parece razonable, pero puede estar mal, y tenemos la costumbre de esperar a tener una certeza total antes de avanzar, as&#237; que es la primera que hay que soltar.</p></blockquote><p><strong>La tolerancia a la ambig&#252;edad se entrena poni&#233;ndose l&#237;mites</strong> de tiempo para decidir en vez de investigar hasta sentirse seguro. Por ejemplo: &#8220;pruebo esta librer&#237;a 20 minutos, si no funciona cambio de enfoque.&#8221; </p><p>Construir bajo ese l&#237;mite obliga a actuar sin la informaci&#243;n completa que preferir&#237;as tener, y esa repetici&#243;n es lo que entrena la tolerancia.</p><h4><strong>2. Descomposici&#243;n de problemas</strong></h4><p>&#8220;Quiero una app de gesti&#243;n de tareas&#8221; no es una instrucci&#243;n ejecutable. &#8220;Quiero un formulario que guarde una tarea con t&#237;tulo y fecha en una tabla&#8221; s&#237;. </p><blockquote><p>La habilidad de partir una idea grande en piezas peque&#241;as y concretas es lo que separa a quien construye r&#225;pido de quien se traba contra la IA en un bucle de prompts cada vez m&#225;s vagos.</p></blockquote><p>Esta habilidad se entrena <strong>escribiendo la tarea</strong> en pasos numerados antes de tocar la IA, en un papel o una nota: </p><ol><li><p>Crear tabla de tareas. </p></li><li><p>Formulario con t&#237;tulo y fecha. </p></li><li><p>Bot&#243;n guardar que inserta en la tabla.</p></li></ol><p><strong>Si no puedes numerar los pasos, todav&#237;a no descompusiste lo suficiente</strong>, y ese bloqueo es el ejercicio en s&#237; mismo.</p><h4><strong>3. Criterio para evaluar el output </strong></h4><p>Cualquiera puede pedirle algo a la IA. </p><blockquote><p>La diferencia la hace saber si lo que devolvi&#243; es correcto, si tiene sentido o si es lo que realmente pediste. Sin esto, vas a acumular c&#243;digo que no se entiende y que falla de formas que no se pueden diagnosticar.</p></blockquote><p>Antes de aceptar un output, conviene <strong>preguntarse por escrito qu&#233; se supone que hace</strong> y probarlo espec&#237;ficamente para eso, no de forma gen&#233;rica. </p><p>Con el tiempo merece la pena llevar una lista personal de errores t&#237;picos que la IA repite (&#8221;siempre olvida las validaciones&#8221;, &#8220;asume que hay usuario logueado cuando no lo hay&#8221;) y revisarla antes de aceptar c&#243;digo nuevo.</p><p>TIP: Esta lista de errores tambi&#233;n te puede servir para <strong>crear una SKILL</strong> para Claude, para que revise ese checklist antes de dar el producto por terminado.</p><h4><strong>4. Persistencia frente al error</strong></h4><p>Va a haber bugs, deploys rotos y momentos en los que la IA arregla una cosa y rompe otra. </p><blockquote><p>La reacci&#243;n de &#8220;esto no funciona, no sirvo para esto&#8221; mata m&#225;s proyectos que la dificultad t&#233;cnica real.</p></blockquote><p>Cuando algo falla, conviene:</p><ol><li><p>Leer lo que ha ocurrido (aunque no lo entiendas).</p></li><li><p>Pegar el error en una conversaci&#243;n y pedirle a la IA que te lo explique.</p></li></ol><p> Llevar la cuenta mental de los bugs ya resueltos ayuda a contrarrestar la frustraci&#243;n cuando aparece el siguiente.</p><h4><strong>5. Comunicaci&#243;n precisa</strong></h4><p>Escribir prompts claros es una habilidad de comunicaci&#243;n, no una habilidad t&#233;cnica. </p><p><strong>Ser espec&#237;fico</strong> sobre qu&#233; se quiere, qu&#233; no se quiere y qu&#233; contexto importa determina la calidad de lo que se obtiene, igual que pasa al explicarle algo a otra persona.</p><p>Se entrena reescribiendo el prompt una vez antes de enviarlo y <strong>minimizar la ambig&#252;edad</strong>, es decir, cambiar &#8220;hazlo m&#225;s bonito&#8221; por &#8220;usa m&#225;s espacio en blanco entre secciones y una tipograf&#237;a m&#225;s grande en los t&#237;tulos&#8221;. </p><p>Practicarlo fuera de las herramientas de IA tambi&#233;n sirve. Describirle una tarea a alguien sin que pueda preguntar nada de vuelta trabaja el mismo ejercicio de precisi&#243;n.</p><h4><strong>6. Curiosidad t&#233;cnica selectiva</strong></h4><p>No hace falta entender todo el stack, pero s&#237; preguntar &#8220;&#191;por qu&#233; hiciste esto as&#237;?&#8221; o &#8220;&#191;c&#243;mo funciona esto?&#8221;.</p><blockquote><p>Esta curiosidad es puntual, pero debe ser continua. Esta habilidad es la que, con el tiempo, te ayudar&#225; a construir tu modelo mental.</p></blockquote><p>Es gratis y r&#225;pido: cuando la IA hace algo inesperado, preguntarle directamente antes de seguir, convierte cada sorpresa en una micro-lecci&#243;n en vez de dejarla pasar sin m&#225;s.</p><div><hr></div><p>Hay una s&#233;ptima habilidad que no he mencionado: <strong>la paciencia</strong>. </p><p>Cada una de estas 6 habilidades se van construyendo con el tiempo, proyecto a proyecto. Si quieres construir bien a largo plazo, no hay atajos. </p><div><hr></div><h2><strong>Preguntas para seguir el hilo con Claude</strong></h2><p>Si quieres seguir ahondando en este tema, te dejo algunas preguntas que le puedes soltar a Claude. </p><ul><li><p>Tengo un prompt que la IA malinterpreta siempre de la misma forma, &#191;c&#243;mo reestructuro la instrucci&#243;n para eliminar esa ambig&#252;edad concreta?</p></li><li><p>&#191;C&#243;mo distingo si un bug viene de un problema en mi l&#243;gica o de una limitaci&#243;n real de la herramienta que estoy usando?</p></li><li><p>&#191;Qu&#233; preguntas deber&#237;a hacerle a la IA sobre una pieza de c&#243;digo que gener&#243; para verificar que entiendo lo que hace antes de aceptarla?</p></li></ul><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscribirse&quot;,&quot;language&quot;:&quot;es&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">&#161;Gracias por leer Con Criterio! Suscr&#237;bete gratis para recibir nuevos posts y apoyar mi trabajo.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Escribe tu correo electr&#243;nico..." tabindex="-1"><input type="submit" class="button primary" value="Suscribirse"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Métele mano a Substack con esta SKILL]]></title><description><![CDATA[Substack tiene much&#237;sima m&#225;s informaci&#243;n de la que aparenta. Con esta SKILL puedes verla e interactuar con ella.]]></description><link>https://www.concriterio.blog/p/metele-mano-a-substack-con-esta-skill</link><guid isPermaLink="false">https://www.concriterio.blog/p/metele-mano-a-substack-con-esta-skill</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Sun, 13 Sep 2026 09:03:25 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f37b4a36-f199-4eae-89f8-15fc77c255c3_1200x630.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>La semana pasada te compart&#237; una extensi&#243;n para <strong><a href="https://open.substack.com/pub/hazloconcriterio/p/analiza-tu-substack-con-este-plugin?r=3piuga&amp;utm_campaign=post-expanded-share&amp;utm_medium=post%20viewer">analizar tu Substack</a></strong>. </p><p>Es la publicaci&#243;n que mejor ha funcionado en la (corta) historia de mi newsletter:</p><ul><li><p>373 visitas totales</p></li><li><p>11 likes</p></li><li><p>17 comentarios</p></li><li><p>3 restacks</p></li><li><p>7 veces compartido</p></li></ul><p>Lo mejor de todo es que <strong>13 personas se suscribieron a la newsletter</strong> y otras 16 personas se instalaron la extensi&#243;n. Algunas que me lo han comentado son:</p><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Man&#233; Gallo&quot;,&quot;id&quot;:177627685,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34fed43d-79a7-4312-8438-bd20d8f69c56_748x748.png&quot;,&quot;uuid&quot;:&quot;6c07963f-5fc7-40a4-817a-c225e0187ade&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Natalia Papiol&quot;,&quot;id&quot;:16183074,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!uqQ0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd67a1653-4b1d-47bb-a096-1e7a9ee83cea_783x786.png&quot;,&quot;uuid&quot;:&quot;7fef7977-a6f9-43b4-948b-5dd7f81c0fd9&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Mike Fort&quot;,&quot;id&quot;:15134539,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4600cbdd-026c-40bd-a246-6f196e6ba118_1286x1286.jpeg&quot;,&quot;uuid&quot;:&quot;d885e24b-5c53-4b20-96e4-1ed76cb2d037&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jorge Bosch Al&#233;s&quot;,&quot;id&quot;:5839054,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Xsw-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a18156-d02e-4c0c-baf4-60f4258bfe1f_662x662.png&quot;,&quot;uuid&quot;:&quot;88167bee-f4c1-45f9-a9ba-8cc72dd66481&quot;}" data-component-name="MentionToDOM"></span>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ruth Leon G&quot;,&quot;id&quot;:503693531,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eaa2701e-8eda-4e1b-959b-1cc3c97ecdb8_1173x1173.png&quot;,&quot;uuid&quot;:&quot;1d23de3b-adeb-40c9-b773-c8180199d4a0&quot;}" data-component-name="MentionToDOM"></span>, y <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Lorena Bordonaba&quot;,&quot;id&quot;:279783032,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bdfa8ecc-71b6-4ba7-8a15-6b103e8df234_769x769.png&quot;,&quot;uuid&quot;:&quot;22b52a2b-4343-4080-96c1-f77191f43c55&quot;}" data-component-name="MentionToDOM"></span> </p><p>La compart&#237; porque me pareci&#243; la forma m&#225;s sencilla de que cualquier persona, t&#233;cnica o no, pudiera ver sus n&#250;meros sin liarse. </p><div><hr></div><p style="text-align: center;">Si la probaste y te sirvi&#243;, me har&#237;as un favor enorme dejando una valoraci&#243;n en la ficha de la extensi&#243;n. En serio, ayuda much&#237;simo m&#225;s de lo que parece.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://chromewebstore.google.com/detail/nojlkggahlaaankemcnjdigdkogcnepn?utm_source=item-share-cb&quot;,&quot;text&quot;:&quot;Dejar rese&#241;a&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://chromewebstore.google.com/detail/nojlkggahlaaankemcnjdigdkogcnepn?utm_source=item-share-cb"><span>Dejar rese&#241;a</span></a></p><div><hr></div><p>PERO (aqu&#237; viene el pero de siempre) llevo unos d&#237;as d&#225;ndole vueltas a algo.</p><p>Cuando compart&#237; la extensi&#243;n, varios de vosotros (makers, builders o gente que ya construye con Claude) me escribisteis b&#225;sicamente lo mismo:</p><p>&#8220;Oye Pol, esto est&#225; genial, pero [rellena aqu&#237; tu petici&#243;n]&#8221;</p><p>Lo genial de la extensi&#243;n es que es un plug and play (enchufar y listo), pero los datos que trae son los que he decidido yo mostrar, c&#243;mo mostrarlos y lo peor es que son est&#225;ticos. </p><p>As&#237; que, hoy <strong><a href="https://github.com/polmarza/substack-stats-skill">te regalo la SKILL</a> </strong>para que puedas meterle mano a tus datos de Substack :)</p><div><hr></div><p style="text-align: center;"><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><h3>Vamos por partes</h3><p><strong><a href="https://github.com/polmarza/substack-stats-skill">Esta SKILL</a></strong> es b&#225;sicamente unos archivos e instrucciones que le ense&#241;an a Claude donde tiene que buscar los datos reales de Substack (los datos que usa la plataforma en su propio panel) y dej&#225;rtelos listos para consultar. </p><p>La SKILL te construye el mismo tipo de dashboard que la extensi&#243;n.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ngw5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ngw5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic 424w, https://substackcdn.com/image/fetch/$s_!ngw5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic 848w, https://substackcdn.com/image/fetch/$s_!ngw5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic 1272w, https://substackcdn.com/image/fetch/$s_!ngw5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!ngw5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:303808,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/215158768?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ngw5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic 424w, https://substackcdn.com/image/fetch/$s_!ngw5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic 848w, https://substackcdn.com/image/fetch/$s_!ngw5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic 1272w, https://substackcdn.com/image/fetch/$s_!ngw5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feed06e2f-91c6-4e39-8775-71af50dcc8b2_3584x2240.heic 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A primera vista podr&#237;as pensar que la SKILL y la <strong><a href="https://chromewebstore.google.com/detail/dashboard-for-substack/nojlkggahlaaankemcnjdigdkogcnepn?utm_source=item-share-cb">extensi&#243;n para Substack</a></strong> de la semana pasada son lo mismo, pero realmente tiene mucho m&#225;s.</p><blockquote><p><strong>Pero ojo</strong>: el dashboard es solo una posibilidad, no el objetivo. Lo que hace la SKILL de verdad es ense&#241;arle a Claude d&#243;nde est&#225;n tus datos y c&#243;mo leerlos. Que eso termine en un dashboard o simplemente en la respuesta a algo puntual que quieras saber, sin montar nada visual, depende de lo que t&#250; le pidas.</p></blockquote><p>He documentado un total de <strong>120 endpoints</strong> distintos de la API de Substack. Los puedes encontrar todos <strong><a href="https://github.com/polmarza/substack-stats-skill/blob/main/references/endpoints.md">aqu&#237;</a></strong>. </p><p>La gracia de mezclar la SKILL y esos endpoints es que puedes hablar con ellos, puedes preguntarle a Claude directamente, en lenguaje natural, cosas tipo &#8220;qu&#233; post terminaron m&#225;s personas&#8221;, &#8220;c&#243;mo es la estructura de los posts que m&#225;s retienen la atenci&#243;n&#8221;, etc. </p><p>Algunos de los endpoints que me han gustado m&#225;s son:</p><ul><li><p><strong>Finalizaci&#243;n de lectura</strong>. No cuantas personas abren tu post, sino cuantas terminan de leerlo. La primera vez que lo veas duele un poco ^^&#8221;</p></li><li><p><strong>Solapamiento de audiencia</strong>. Qu&#233; otras newsletter comparten tus mismos lectores. </p></li><li><p><strong>Conversi&#243;n por canal</strong>. A veces el canal que te trae m&#225;s tr&#225;fico no es el que m&#225;s suscriptores convierte. </p></li><li><p><strong>Comparativa contra posts similares</strong>. Si un poz concreto lo hizo mejor o peor que la media de los que se parecen. </p></li></ul><h3>C&#243;mo instalar la SKILL</h3><p>Para hacerlo de la manera m&#225;s ordenada posible:</p><ol><li><p>Crea una carpeta en tu ordenador llamada &#8220;substack stats&#8221; (por ejemplo)</p></li><li><p>Abre la carpeta dentro de Claude Code</p></li><li><p>P&#233;gale la siguiente instrucci&#243;n &#8220;Instala esta skill de forma global: https://github.com/polmarza/substack-stats-skill&#8221;</p></li></ol><h3>C&#243;mo usar la SKILL</h3><p>Una vez instalada p&#237;dele a Claude que te muestre tu dashboard. </p><p>El agente abrir&#225; su navegador interno y navegar&#225; hasta Substack. </p><p>Al ser la primera vez, tendr&#225;s que iniciar sesi&#243;n en tu cuenta en ese navegador (pones tu email, substack te manda un c&#243;digo, lo pones, listo). </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q_9v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q_9v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic 424w, https://substackcdn.com/image/fetch/$s_!Q_9v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic 848w, https://substackcdn.com/image/fetch/$s_!Q_9v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic 1272w, https://substackcdn.com/image/fetch/$s_!Q_9v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q_9v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:272179,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/215158768?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Q_9v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic 424w, https://substackcdn.com/image/fetch/$s_!Q_9v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic 848w, https://substackcdn.com/image/fetch/$s_!Q_9v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic 1272w, https://substackcdn.com/image/fetch/$s_!Q_9v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dc90fb7-747b-4890-aebb-9cce20dba779_3584x2240.heic 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Claude empezar&#225; a recopilar todos tus datos. </p><p>Esto suele tardar 1-2 min ya que lo he configurado para que las peticiones est&#233;n algo separadas en el tiempo, para no saturar el servidor de Substack. </p><p>Tambi&#233;n depender&#225; del n&#250;mero de publicaciones (newsletter y Notes) que hayas hecho a lo largo del tiempo.</p><p>Una vez termine, te mostrar&#225; algo as&#237;:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7JQK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7JQK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic 424w, https://substackcdn.com/image/fetch/$s_!7JQK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic 848w, https://substackcdn.com/image/fetch/$s_!7JQK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic 1272w, https://substackcdn.com/image/fetch/$s_!7JQK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!7JQK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic" width="884" height="418" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:418,&quot;width&quot;:884,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17309,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/215158768?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7JQK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic 424w, https://substackcdn.com/image/fetch/$s_!7JQK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic 848w, https://substackcdn.com/image/fetch/$s_!7JQK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic 1272w, https://substackcdn.com/image/fetch/$s_!7JQK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6a2bbfd-c309-447b-bcd7-2cab9ef94258_884x418.heic 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Gu&#225;rdalo en &#8220;Descargas&#8221;. Este archivo .json es toda la data que ha podido recopilar Claude sobre tu(s) publicaci&#243;n(es) en Substack. </p><p>&#191;Recuerdas el panel que te he ense&#241;ado al principio del post? Pues ese es el que se poblar&#225; con los datos de este json descargado. </p><div><hr></div><p>Substack guarda much&#237;simos m&#225;s datos de los que al final te ense&#241;a y, por el momento, no tiene una herramienta nativa para interactuar con ellos. </p><p><strong><a href="https://github.com/polmarza/substack-stats-skill">Esta SKILL</a></strong> pretende subsanar eso. </p><p>Disfr&#250;tala :)</p><p></p><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Analiza tu Substack con el Plugin DEFINITIVO]]></title><description><![CDATA[Un dashboard interactivo y sincronizado donde podr&#225;s saber qu&#233; funciona y qu&#233; no, tanto a nivel de Newsletter como Note.]]></description><link>https://www.concriterio.blog/p/analiza-tu-substack-con-este-plugin</link><guid isPermaLink="false">https://www.concriterio.blog/p/analiza-tu-substack-con-este-plugin</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Sat, 05 Sep 2026 15:29:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/faead3db-0e9f-401c-bafa-21fa3d3187a1_1200x630.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Llevo varios meses publicando en Substack. Hasta hace nada, cuando quer&#237;a saber c&#243;mo iban mis publicaciones no ten&#237;a un &#250;nico lugar para verlo todo, tanto las publicaciones de la Newsletter como mis Notes. Al final siempre terminaba abriendo tropocientas pesta&#241;as para poder tener una visi&#243;n m&#225;s o menos global.</p><p>Ese era nuestro problema (porque creo que es compartido), hasta ahora.</p><p>Hoy te voy a ense&#241;ar el plugin &#8220;<strong>Panel para Substack</strong>&#8221; (que puedes instalar desde <strong><a href="https://chromewebstore.google.com/detail/nojlkggahlaaankemcnjdigdkogcnepn?utm_source=item-share-cb">aqu&#237;</a></strong>) para que sientas la misma satisfacci&#243;n que experimento yo cada d&#237;a. </p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><h3>Qu&#233; descubrir&#225;s</h3><p>Gracias a <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Mike Fort&quot;,&quot;id&quot;:15134539,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4600cbdd-026c-40bd-a246-6f196e6ba118_1286x1286.jpeg&quot;,&quot;uuid&quot;:&quot;4ac0903d-aac9-4f66-b8c5-2400366242c5&quot;}" data-component-name="MentionToDOM"></span></strong> este dashboard no muestra (solamente) m&#233;tricas vanidosas. Cuatro son las preguntas que vas a poder responder:</p><ol><li><p>Qu&#233; temas funcionan y cu&#225;les no</p></li><li><p>Qu&#233; notas merecen el rato que les dedicas</p></li><li><p>Si tu tasa de apertura se est&#225; torciendo y desde cu&#225;ndo</p></li><li><p>(Si tienes m&#225;s de una newsletter) cu&#225;l crece m&#225;s, no cu&#225;l tiene m&#225;s seguidores</p></li></ol><blockquote><p><strong>AVISO</strong>: Ver&#225;s que el dashboard est&#225; en ingl&#233;s. Arriba a la derecha puedes cambiar el idioma de la interfaz clicando en el icono de la bola del mundo. </p></blockquote><h3>C&#243;mo funciona</h3><p>Solo tres pasos te separan de ver tus stats:</p><ol><li><p><strong><a href="https://chromewebstore.google.com/detail/nojlkggahlaaankemcnjdigdkogcnepn?utm_source=item-share-cb">Instalas la extensi&#243;n</a></strong> desde la <strong>Chrome Web Store</strong></p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fxzz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fxzz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png 424w, https://substackcdn.com/image/fetch/$s_!fxzz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png 848w, https://substackcdn.com/image/fetch/$s_!fxzz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png 1272w, https://substackcdn.com/image/fetch/$s_!fxzz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!fxzz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png" width="1456" height="735" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26754790-fcf1-4c52-adae-3e7525028523_1719x868.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:735,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:155917,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/214284344?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fxzz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png 424w, https://substackcdn.com/image/fetch/$s_!fxzz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png 848w, https://substackcdn.com/image/fetch/$s_!fxzz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png 1272w, https://substackcdn.com/image/fetch/$s_!fxzz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26754790-fcf1-4c52-adae-3e7525028523_1719x868.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="2"><li><p>Una vez instalada pulsala y dale al bot&#243;n &#8220;<strong>Sync all publications</strong>&#8221;. </p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!l0lf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l0lf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png 424w, https://substackcdn.com/image/fetch/$s_!l0lf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png 848w, https://substackcdn.com/image/fetch/$s_!l0lf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png 1272w, https://substackcdn.com/image/fetch/$s_!l0lf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!l0lf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png" width="584" height="307" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:307,&quot;width&quot;:584,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33529,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/214284344?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!l0lf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png 424w, https://substackcdn.com/image/fetch/$s_!l0lf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png 848w, https://substackcdn.com/image/fetch/$s_!l0lf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png 1272w, https://substackcdn.com/image/fetch/$s_!l0lf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81b70dd-ad52-4515-8d05-b6cc1aba8edc_584x307.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Al sincronizar, el plugin abrir&#225; una pesta&#241;a por cada publicaci&#243;n que tengas (si solo tienes una newsletter, solo abre una), lee tus estad&#237;sticas con la sesi&#243;n que ya tienes puesta. </p><p>Si tienes muchos posts, tarda un par de minutos. Va despacio para respetar las consultas a la API de Substack. </p><blockquote><p><strong>BONUS</strong>: <strong>Ancla la extensi&#243;n</strong> a tu barra de navegaci&#243;n para tenerla siempre a mano. </p></blockquote><ol start="3"><li><p>Cuando haya terminado, dale a &#8220;<strong>Open the dashboard</strong>&#8221; y ver&#225;s algo as&#237; (adaptado a ti):</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uKKW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uKKW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!uKKW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!uKKW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!uKKW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!uKKW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png" width="1280" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96718,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/214284344?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!uKKW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!uKKW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!uKKW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!uKKW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13ce39ba-cd92-43ac-b42d-c55a6c435907_1280x800.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Esto de arriba es lo primero que ver&#225;s cuando todo est&#233; sincronizado: suscriptores, vistas, tasa de apertura, media de reacciones y altas atribuidas a posts. Debajo la progresi&#243;n de suscriptores y de d&#243;nde vienen. </p><p>Puedes <strong>pulsar en cualquier post</strong> de la tabla para ver sus estad&#237;sticas sin tener que cambiar de pantalla:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YmLj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YmLj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!YmLj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!YmLj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!YmLj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!YmLj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png" width="1280" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92416,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/214284344?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YmLj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!YmLj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!YmLj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!YmLj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f308c5e-ecd5-4ec2-a333-7acedc9915bf_1280x800.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Ah&#237; ves de d&#243;nde vino su tr&#225;fico, qu&#233; enlaces se clicaron m&#225;s, c&#243;mo fueron sus vistas d&#237;a a d&#237;a la primera semana. Adem&#225;s, en la columna de la derecha puedes <strong>comparar este post</strong> con tu propio post medio. </p><p>Si escribes en m&#225;s de un sitio, la <strong>vista comparativa</strong> las pone todas juntas y te muestra el top 10 global de posts:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ocfU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ocfU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!ocfU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!ocfU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!ocfU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!ocfU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png" width="1280" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:143369,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/214284344?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ocfU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!ocfU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!ocfU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!ocfU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef1f9c5c-66ba-49ca-a41f-4b80446974d0_1280x800.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p style="text-align: center;">Si este post te resulta &#250;til, &#191;qu&#233; te parece si lo compartes? &#128540;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/analiza-tu-substack-con-este-plugin?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Compartir&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.concriterio.blog/p/analiza-tu-substack-con-este-plugin?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Compartir</span></a></p><div><hr></div><h3>Un comentario que lo cambio todo</h3><p>Mientras estaba construyendo este plugin, le&#237; un comentario de <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Mike Fort&quot;,&quot;id&quot;:15134539,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4600cbdd-026c-40bd-a246-6f196e6ba118_1286x1286.jpeg&quot;,&quot;uuid&quot;:&quot;f14eba96-2078-44b1-8e3e-bc63e9db3e38&quot;}" data-component-name="MentionToDOM"></span></strong> en una publicaci&#243;n de <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Man&#233; Gallo&quot;,&quot;id&quot;:177627685,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34fed43d-79a7-4312-8438-bd20d8f69c56_748x748.png&quot;,&quot;uuid&quot;:&quot;e15e1fed-62b9-4ebe-8805-8fb51e61e12d&quot;}" data-component-name="MentionToDOM"></span></strong> donde este segundo publicaba sus stats (lo hace cada martes, al desnudo). </p><p>Mike coment&#243;:</p><div class="pullquote"><p>No ser&#237;a mejor tener <strong>m&#233;tricas relativas</strong> en vez de absolutas? Por ejemplo, un x3 en likes no es objetivo porque ahora tienes m&#225;s seguidores. El ratio likes/seguidores o likes/visualizaciones ser&#237;a mucho m&#225;s interesante.</p></div><p>&#161;Y no puede tener m&#225;s raz&#243;n!</p><p>Un post que mandas a 1.800 personas le va a ganar siempre a uno que mandaste a 200, aunque el viejo llegara a una porci&#243;n mucho mayor de personas. </p><p>Para eso <strong>el panel tiene dos modos</strong>:</p><p>En &#8220;absoluto&#8221; ves las cifras tal cual, como en cualquier dashboard. Pero en relativo el alcance se divide entre los que de verdad recibieron cada env&#237;o y la interacci&#243;n entre las vistas de ese mismo post. </p><p>Te lo muestro con un par de capturas:</p><h4 style="text-align: center;">Absolutas</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Uzii!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Uzii!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png 424w, https://substackcdn.com/image/fetch/$s_!Uzii!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png 848w, https://substackcdn.com/image/fetch/$s_!Uzii!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png 1272w, https://substackcdn.com/image/fetch/$s_!Uzii!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Uzii!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png" width="1456" height="1227" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1227,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:478782,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/214284344?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Uzii!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png 424w, https://substackcdn.com/image/fetch/$s_!Uzii!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png 848w, https://substackcdn.com/image/fetch/$s_!Uzii!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png 1272w, https://substackcdn.com/image/fetch/$s_!Uzii!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb640c42f-0799-4566-92ed-20c44e88a5b8_2800x2360.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h4 style="text-align: center;">Relativas</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pVvy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pVvy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png 424w, https://substackcdn.com/image/fetch/$s_!pVvy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png 848w, https://substackcdn.com/image/fetch/$s_!pVvy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png 1272w, https://substackcdn.com/image/fetch/$s_!pVvy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!pVvy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png" width="1456" height="1227" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1227,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:499081,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/214284344?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pVvy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png 424w, https://substackcdn.com/image/fetch/$s_!pVvy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png 848w, https://substackcdn.com/image/fetch/$s_!pVvy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png 1272w, https://substackcdn.com/image/fetch/$s_!pVvy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffca991a3-cfa9-4855-bb16-342b3a068fed_2800x2360.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>Los datos son los mismos en ambas, pero cambia contra qu&#233; lo mides. A mi me cambi&#243; el orden de cu&#225;les cre&#237;a que eran mis mejores posts. </p><h3>&#191;Y los datos?</h3><p>Tus datos son tuyos y yo no los quiero para nada, as&#237; que todo se guarda en tu ordenador. </p><p>No hay servidor, ni cuenta, registro o anal&#237;tica. La extensi&#243;n habla con Substack para obtener los datos y estos van directos a tu navegador. Las estad&#237;sticas se guardan en el almacenamiento que Chrome reserva en tu propio equipo. </p><blockquote><p><strong>AVISO</strong>: Si cambias de ordenador tendr&#225;s que volver a sincronizar tus datos (un par de minutos)</p></blockquote><p>Un par de cosas m&#225;s antes de terminar, porque prefiero ser transparente:</p><ol><li><p>El plugin usa la misma API interna de Substack, pero no est&#225; documentada (ni es oficial), as&#237; que si Substack la cambia, tocar&#225; actualizar (yo me encargo). </p></li><li><p>Como he comentado antes, la interfaz est&#225; en ingl&#233;s (por si esto peta y llega lejos). Arriba a la derecha tienes un bot&#243;n (globo) para pasarla a espa&#241;ol.</p></li></ol><div><hr></div><h3>Agradecimientos</h3><p>Antes de terminar me gustar&#237;a dar las gracias a 3 personas:</p><ul><li><p>A <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Man&#233; Gallo&quot;,&quot;id&quot;:177627685,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34fed43d-79a7-4312-8438-bd20d8f69c56_748x748.png&quot;,&quot;uuid&quot;:&quot;4464ca7a-80f4-4901-b249-32faf8ed19e9&quot;}" data-component-name="MentionToDOM"></span></strong> porque fue el primero que vi que compart&#237;a sus stats. &#201;l lo hace a trav&#233;s de un Artefacto de Claude (amo a Claude) y espero que ahora lo haga a trav&#233;s de <strong><a href="https://chromewebstore.google.com/detail/nojlkggahlaaankemcnjdigdkogcnepn?utm_source=item-share-cb">mi extensi&#243;n</a></strong>. </p></li><li><p>A <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Damian Soto&quot;,&quot;id&quot;:43892226,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/717b5db1-5d24-4985-86aa-f80334c173f0_2232x2232.jpeg&quot;,&quot;uuid&quot;:&quot;ab054393-db7a-4d21-85e2-2e23baa4ec6c&quot;}" data-component-name="MentionToDOM"></span></strong> por encenderme la chispa de lo que comparto hoy. Su primera soluci&#243;n fue descargarse el CSV (aunque &#233;l mismo declaro que era un rollo) y hoy ha publicado su propio <strong><a href="https://substack.com/@sotoplatero/note/p-214281089?r=3piuga&amp;utm_source=notes-share-action&amp;utm_medium=web">plugin.</a></strong> </p></li><li><p>A <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Mike Fort&quot;,&quot;id&quot;:15134539,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4600cbdd-026c-40bd-a246-6f196e6ba118_1286x1286.jpeg&quot;,&quot;uuid&quot;:&quot;43ba7178-366a-44a0-9c8a-ad4779d39638&quot;}" data-component-name="MentionToDOM"></span></strong> por inconformista. Porque, charlando, me dijo que le molar&#237;a un panel donde no solo ver las estad&#237;sticas vanidosas, sino las relativas. Porque no es lo mismo ver tus stats cuando ten&#237;as 10 seguidores que cuando tengas 10k. </p></li></ul><div><hr></div><h3 style="text-align: center;">&#191;Te ha resultado &#250;til este recurso?</h3><p style="text-align: center;">Todos los recursos y materiales de Con Criterio son gratuitos, pero si me quieres apoyar para que siga construyendo y compartiendo de esta manera, puedes invitarme a un caf&#233; :)</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://buymeacoffee.com/polmarza&quot;,&quot;text&quot;:&quot;Inv&#237;tame a un caf&#233;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://buymeacoffee.com/polmarza"><span>Inv&#237;tame a un caf&#233;</span></a></p><div><hr></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Por qué el desarrollo se parece a una cebolla]]></title><description><![CDATA[Construyes de dentro hacia afuera cuando el dominio est&#225; claro y de fuera hacia dentro cuando el riego est&#225; en si el producto tiene sentido]]></description><link>https://www.concriterio.blog/p/por-que-el-desarrollo-se-parece-a</link><guid isPermaLink="false">https://www.concriterio.blog/p/por-que-el-desarrollo-se-parece-a</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 02 Sep 2026 06:00:38 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f7d56905-98ac-4106-a7ff-7406cf33ce2f_2000x1000.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="native-audio-embed" data-component-name="AudioPlaceholder" data-attrs="{&quot;label&quot;:null,&quot;mediaUploadId&quot;:&quot;7d450441-9345-495b-851e-75b0c2b8e270&quot;,&quot;duration&quot;:619.729,&quot;downloadable&quot;:true,&quot;isEditorNode&quot;:true}"></div><p>&#161;Hola, hola!</p><p>Antes de empezar a leer f&#237;jate que he grabado una nota de voz. Quer&#237;a probar esta nueva funcionalidad de Substack y como siempre me han dicho que tengo voz de locutor&#8230; Pues vamos a darle uso. As&#237; que te invito a escucharme :)</p><p>&#191;Qu&#233; tal el verano? </p><p>Ya, seguro que pensaste que no me volver&#237;as a ver por aqu&#237;&#8230;</p><p>El pre-verano estuvo lleno de cambios, mucho trabajo y nuevas responsabilidades y abandon&#233; un poco esta newsletter porque, ya sabes, escribo por placer y por compartir, pero esto no es mi negocio. </p><p>As&#237; que estoy feliz de retomar esto con ganas de aportar nuevos conceptos, con criterio :D</p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p>Hoy quiero hablarte del <strong>orden</strong> en el cual construyo mis proyectos. El orden es importante para que tengas una estructura que puedas replicar, para que cada proyecto tenga un orden. </p><p>Habitualmente construyo de dentro hacia afuera, es decir:</p><ol><li><p>BBDD</p></li><li><p>Backend</p></li><li><p>Frontend</p></li></ol><p>Esto tiene sentido la mayor&#237;a de las veces, sobretodo cuando ya tengo claro lo que quiero construir. </p><h3>Por qu&#233; funciona</h3><p>Funciona porque la base de datos es el &#8220;contrato&#8221; de verdad de la aplicaci&#243;n. Ella define:</p><ul><li><p>Qu&#233; entidades existen</p></li><li><p>C&#243;mo se relacionan</p></li><li><p>Qu&#233; es obligatorio</p></li><li><p>Qu&#233; es &#250;nico</p></li></ul><p>Si cambias el modelo de datos despu&#233;s de construir el frontend, arrastras cambios en cascada: formularios, validaciones, tipos, consultas&#8230; todo se reescribe. </p><p>El backend expone ese modelo mediante reglas de negocio y permisos, as&#237; que hay que construirlo despu&#233;s de la BBDD, pero antes del front para evitar dise&#241;ar pantallas alrededor de una API que a&#250;n no sabes c&#243;mo se comportar&#225; (paginaci&#243;n, errores y/o estados intermedios). </p><p>El frontend es la capa m&#225;s barata de rehacer. Cambiar un componente cuesta minutos, pero cambiar un esquema de datos con datos reales ya insertados cuesta horas o migraciones (y cosas que se pueden romper). </p><h3>Cu&#225;ndo NO aplica</h3><p>Si est&#225;s validando una idea de producto y no sabes si el usuario la quiere, construir la BBDD primero es prematuro. Ah&#237; conviene &#8220;frontend-first&#8221; con datos mockeados para iterar sobre UX y descartar r&#225;pido (lo que vendr&#237;a siendo vibe coding). </p><p>Con herramientas como Lovable, el coste es mejor y reduce parcialmente la penalizaci&#243;n de invertir el orden. </p><p>Perfecto, ya tenemos claro cuando aplicar una u otra metodolog&#237;a. Ahora bien, <strong>&#191;c&#243;mo empezar?</strong> </p><div><hr></div><div class="callout-block" data-callout="true"><p style="text-align: center;">Si este post te resulta &#250;til, &#191;qu&#233; te parece si lo compartes? &#128540;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/por-que-el-desarrollo-se-parece-a?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Compartir&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.concriterio.blog/p/por-que-el-desarrollo-se-parece-a?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Compartir</span></a></p></div><div><hr></div><h3>Cuando empiezas frontend-first (Lovable u otra herramienta similar)</h3><p>Realmente no necesitas una documentaci&#243;n formal; necesitas responder tres preguntas b&#225;sicas antes de escribir el primer prompt:</p><ol><li><p>Qu&#233; pantalla o flujo concreto vas a ense&#241;ar (no &#8220;una app de gesti&#243;n de tareas&#8221;, sino &#8220;el flujo de crear una tarea y marcarla como hecha&#8221;).</p></li><li><p>A qui&#233;n se lo vas a ense&#241;ar y qu&#233; decisi&#243;n tomar&#225; esa persona al verlo (invertir, usarlo, darte feedback).</p></li><li><p>Qu&#233; datos son reales y cu&#225;les son inventados para la demo (esto evita que luego confundas mock con producci&#243;n).</p></li></ol><p>Con esto en mente ya puedes entrar a Lovable. </p><h3>Cuando empiezas dentro-fuera (BBDD &#8594; backend &#8594; frontend)</h3><p>Mientras que en la opci&#243;n anterior pod&#237;as improvisar m&#225;s (y de hecho, esa es su gracia), aqu&#237; s&#237; conviene un protocolo, porque el coste de un agente escribiendo c&#243;digo sin entender el dominio completo, es alto. </p><p>Cuando construyo as&#237;, siempre uso mi plantilla <strong><a href="https://github.com/polmarza/project-template">project-template</a></strong></p><p>Lo que resuelve o con lo que te ayuda esta plantilla en este contexto es:</p><ul><li><p>Antes de que el agente empiece a escribir c&#243;digo, lee la carpeta docs/. Los documentos por defecto est&#225;n vac&#237;os, as&#237; que primero te empieza a hacer preguntas para rellenarlos. </p></li><li><p>Cada funcionalidad (feature) se acuerda primero en una ficha (docs/features/) con criterios de aceptaci&#243;n comprobables antes de implementar nada. </p></li><li><p>Un script en CI verifica que ning&#250;n requisito quede sin su test o justificaci&#243;n de porqu&#233; no aplica. </p></li><li><p>El registro en changelog/ deja trazabilidad de qu&#233; se construy&#243; y por qu&#233;, evitando as&#237; que en la siguiente sesi&#243;n el agente repita contexto o se pierda. </p></li></ul><div><hr></div><blockquote><p>La diferencia pr&#225;ctica entre ambos casos es que en Lovable clarificas en tu cabeza porque vas a iterar r&#225;pido y descartar (vibe coding), mientras que en el otro caso clarificas en documentos porque el coste de deshacer un error de modelo de datos es demasiado alto como para ir improvisando (se acerca m&#225;s a SDD o Spec Driven Development). </p></blockquote><p></p><p>&#161;Nada m&#225;s por hoy! Espero que la lectura te haya resultado interesante :)</p><p>Ahora lo m&#225;s importante es que empieces a aplicarlo. No te quedes solo con la teor&#237;a y el &#8220;ah, ya lo entiendo&#8221;. Hasta que no lo pruebes no ver&#225;s si realmente te sirve para ti.</p><p></p><p>&#161;Hasta la semana que viene!</p><div><hr></div><h3 style="text-align: center;">&#191;Te ha resultado &#250;til este recurso?</h3><p style="text-align: center;">Todos los recursos y materiales de Con Criterio son gratuitos, pero si me quieres apoyar para que siga construyendo y compartiendo de esta manera, puedes invitarme a un caf&#233; :)</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://buymeacoffee.com/polmarza&quot;,&quot;text&quot;:&quot;Inv&#237;tame a un caf&#233;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://buymeacoffee.com/polmarza"><span>Inv&#237;tame a un caf&#233;</span></a></p><div><hr></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Wanderlore: mi primera app 100% mobile]]></title><description><![CDATA[Con vibe coding, no todo son p&#225;ginas web. Hoy vamos a ver c&#243;mo y por qu&#233; construir una app para smartphones]]></description><link>https://www.concriterio.blog/p/wanderlore-mi-primera-app-100-mobile</link><guid isPermaLink="false">https://www.concriterio.blog/p/wanderlore-mi-primera-app-100-mobile</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 15 Jul 2026 06:01:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/cee3efe8-8b6e-4491-a955-8f3e30b8d3eb_2000x1000.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Tanto si llevas poco como mucho tiempo practicando vibe coding (o AI coding), estoy 99% seguro que lo &#250;nico que has hecho han sido <strong>p&#225;ginas web</strong>. Es posible que hayas hecho un CRM, una landing, una &#8220;app&#8221; con Lovable o incluso alguna app que solo corr&#237;a en tu m&#225;quina (en el famoso localhost).</p><p>Y es normal, ya que la mayor&#237;a de creadores de contenido, cuando hablan de vibe coding hablan de hacer p&#225;ginas web.</p><p>Pero ya tu sabes que yo no soy la mayor&#237;a.</p><p>Hoy vamos a hablar de c&#243;mo, cu&#225;ndo y por qu&#233; <strong>construir una app en mobile</strong>. &#191;Por qu&#233; piensas que me decid&#237; por este formato? Vamos a verlo &#128540;</p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p>Antes de entrar al tema quiero explicarte qu&#233; he desarrollado exactamente: se trata de un <strong>juego de rol y exploraci&#243;n urbana</strong>. El mapa del mundo (si, porque puedes jugarlo desde cualquier rinc&#243;n del planeta) aparece cubierto de niebla y se revela a medida que caminas por la ciudad, en la vida real.</p><p>Pero no se queda en el mapa. El mundo esta poblado de lugares con narrativa propia: tabernas, academias, bosques, torres&#8230; En cada lugar puedes interactuar con un <strong>DM</strong> (un director de juego, en este caso una IA) que te narra una historia y responde a tus decisiones.</p><p>A partir de ah&#237; puedes construir equipamiento (espadas, escudos, cascos&#8230;) para enfrentarte a maleantes que aparecen en tu camino mientras exploras el reino.</p><p>La decisi&#243;n que defini&#243; el proyecto desde el inicio fue la necesidad de tener el <strong>GPS activo aunque el m&#243;vil est&#233; bloqueado en el bolsillo</strong>. Eso es lo que hace que puedas ir caminando tranquilamente sin tener el m&#243;vil en la mano y que este vibre cuando te cruzas con un malhechor.</p><p>Otra caracter&#237;stica t&#233;cnica que me hizo decidirme por una aplicaci&#243;n nativa fue la necesidad de <strong>persistencia (de datos) garantizada</strong>. En el caso de una PWA (Progressive Web App), el sistema operativo Android o (sobretodo) iOS pueden borrar datos de las aplicaciones si consumen mucho o hace tiempo que no se usan.</p><p>Ahora s&#237;, al l&#237;o.</p><p>Como todo desarrollo, este consisti&#243; en tres fases:</p><p><strong>Clarificaci&#243;n &#8594; Construcci&#243;n &#8594; Distribuci&#243;n</strong></p><div><hr></div><h3>Clarificaci&#243;n</h3><p>En esta primera fase no hay diferencia respecto a clarificar el desarrollo de un sitio web; el PRD es el mismo ejercicio, es decir, definir para qui&#233;n es la aplicaci&#243;n, qu&#233; hace y qu&#233; decide no hacer.</p><p>La arquitectura, el modelo de datos, el flujo de usuario, la monetizaci&#243;n&#8230; Aunque sean plataformas distintas, todas tienen el mismo esqueleto.</p><p>Recuerda que en la clarificaci&#243;n tambi&#233;n piensas en el stack, y aqu&#237; es donde viene el gran cambio, ya que al ser una app nativa no puedes desarrollar con React, Astro o Vue si no que tienes que hacerlo con <strong>Flutter o Swift</strong> (entre otras).</p><blockquote><p><strong>PRO TIP</strong>: Es muy importante que antes de decidir en que builder quieres construir (Lovable, Bolt, Cursor&#8230;) definas qu&#233; stack necesitas, ya que eso te va a condicionar todo lo dem&#225;s. </p></blockquote><div><hr></div><h3>Construcci&#243;n</h3><p>En mi caso me decid&#237; por <strong>Flutter</strong> ya que te permite escribir el c&#243;digo una vez y compilarlo para iOS y Android.</p><p>Con <strong>Claude Code</strong> como agente, la construcci&#243;n sigue la misma l&#243;gica que cualquier otro proyecto vibe codeado:</p><ol><li><p>Te apoyas en un agente para redactar las specs (clarificaci&#243;n)</p></li><li><p>Adjuntas dichas specs al proyecto (Local o en la nube)</p></li><li><p>Empieza de dentro hacia fuera (datos &#8594; backend &#8594; frontend)</p></li><li><p>Revisas</p></li><li><p>Iteras</p></li></ol><p>La diferencia con una web no est&#225; en el m&#233;todo de trabajo con la IA, es una diferencia de herramienta, no de filosof&#237;a.</p><div><hr></div><h3>Distribuci&#243;n</h3><p>El gran cambio, para m&#237;, lleg&#243; aqu&#237;.</p><p>Una web se despliega en Vercel y en segundos la tienes viva y accesible por URL, actualizable al momento. Una app m&#243;vil, no.</p><p>Una app pasa por <strong>tiendas de aplicaciones</strong>, revisi&#243;n de Apple y de Google, procesos de testers (antes de llegar a producci&#243;n); tiempos con los que no contabas. Sin menospreciar el pago de las licencias de desarrollador &#128517; (<strong>99&#8364;/a&#241;o</strong> en el caso de Apple y <strong>25&#8364;</strong> para Android).</p><p>Actualmente me encuentro en esta fase, la de <strong>testeo</strong>. Para que la aplicaci&#243;n salga adelante y cualquier persona se la pueda descargar, necesito que varios usuarios la est&#233;n probando, rompiendo y d&#225;ndome feedback.</p><p>As&#237; que si has llegado hasta aqu&#237;, &#191;te animas a jugar?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.wanderlore.gg&quot;,&quot;text&quot;:&quot;Jugar a Wanderlore&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.wanderlore.gg"><span>Jugar a Wanderlore</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[3 respuestas que te ahorrarán decenas de errores]]></title><description><![CDATA[Porque la frase "el plan es que no hay plan" solo sirve para salir de copas, no para construir proyectos serios.]]></description><link>https://www.concriterio.blog/p/3-respuestas-que-te-ahorraran-decenas</link><guid isPermaLink="false">https://www.concriterio.blog/p/3-respuestas-que-te-ahorraran-decenas</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 08 Jul 2026 06:02:41 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1c0e3c44-a198-4483-b5ed-b7014cafda79_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hola, &#191;c&#243;mo va el verano? &#128515;</p><p>Hoy vengo a hablarte sobre las 3 preguntas/respuestas que te ahorrar&#225;n much&#237;simo tiempo cuando construyes con IA. </p><p>Ya te adelanto que hoy vas a ver muchos treses &#128514;</p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p>Vivimos en la era de la inmediatez, lo queremos todo para ayer y el problema es que muchas veces aplicamos esta filosof&#237;a cuando nos sentamos delante del ordenador y nos ponemos a construir nuestro pr&#243;ximo proyecto. </p><p>Es posible que este m&#233;todo (el vibe coding puro y duro) funcione durante las primeras horas o para proyectos peque&#241;os, pero cuando quieres empezar a construir algo con cierta seriedad, el no haber planificado nada de antemano te va a salir muy caro. </p><p>Yo aprend&#237; esto a la fuerza. </p><p>Hace 3 a&#241;os constru&#237;a sin criterio. Pensaba: &#8220;&#191;para qu&#233; voy a perder tiempo en redactar lo que quiero construir si lo tengo todo en la cabeza?&#8221;</p><p>&#161;Me sent&#237;a invencible! </p><ul><li><p>Invencible hasta que las cosas empezaban a no cuadrar.</p></li><li><p>Cuando me empezaba a contradecir. </p></li><li><p>A no recordar las decisiones. </p></li></ul><p>Entonces un buen amigo me recomend&#243; que &#8220;c&#243;mo m&#237;nimo tienes que responder a estas 3 preguntas&#8221;:</p><ol><li><p>QU&#201; quieres construir</p></li><li><p>Para QUI&#201;N</p></li><li><p>POR QU&#201;</p></li></ol><p>La tercera pregunta responde a la pregunta de por qu&#233; debe existir tu app, qu&#233; problema resuelve concretamente. Es quiz&#225; la pregunta m&#225;s importante de las tres, ya que si solo te sirve a ti, esta bien construirla, pero si quieres que tu app tenga &#233;xito, debe resolver un problema real. </p><p>La respuesta a estas 3 preguntas es la especificaci&#243;n m&#237;nima que debes redactar antes de empezar a construir nada. </p><p>Y no, no es perder el tiempo, es lo que va a evitar que construyas al tunt&#250;n y que acabes pariendo un Frankenstein. </p><div><hr></div><p>Con esto ya puedes empezar a construir con Lovable, pero si lo tuyo es Claude Code, te recomiendo que uses esta plantilla que cre&#233; hace alg&#250;n tiempo:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/HombreFeliz/project-template&quot;,&quot;text&quot;:&quot;Project Template&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://github.com/HombreFeliz/project-template"><span>Project Template</span></a></p><p>Entre otras cosas, dentro encontrar&#225;s:</p><h4><strong><span>CLAUDE.md</span></strong><span> </span></h4><p><span>Archivo de referencia que lee cualquier agente de codificaci&#243;n antes de tocar el proyecto. Si </span><code>docs/</code><span> est&#225; vac&#237;o, obliga al agente a preguntar "qu&#233; quieres construir y para qui&#233;n" y a rellenar la documentaci&#243;n en orden antes de escribir c&#243;digo. Define stack tecnol&#243;gico, convenciones, qu&#233; NO hacer, y protocolo obligatorio de cambios: changelog, actualizaci&#243;n de docs, revisi&#243;n de seguridad.</span></p><h4><span>docs/ </span></h4><p><span>Carpeta de documentaci&#243;n estructurada: prd.md, business.md, design-system.md, architecture.md, data-model.md, roadmap.md, user-flows.md. Es donde viven las respuestas a qu&#233;, qui&#233;n y por qu&#233;, convertidas en especificaci&#243;n real.</span></p><h4>changelog/ </h4><p>Registro de cada cambio relevante: fecha, tipo (feature, fix, refactor, migraci&#243;n, documentaci&#243;n, configuraci&#243;n), qu&#233; se hizo, qu&#233; se modific&#243;, por qu&#233;.</p><h4>mejoras/ </h4><p>Backlog de ideas que no entran en el sprint actual: t&#237;tulo, descripci&#243;n, motivaci&#243;n, prioridad.</p><div><hr></div><p>No es perfecto y seguro que se puede mejorar, pero es un punto de partida mucho mejor que empezar a promptear sin criterio.</p><p>&#191;Cu&#225;l es tu m&#233;todo? Te leo en los comentarios &#129299;</p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Un servicio en la nube que se cuenta a sí mismo (Parte 2/2)]]></title><description><![CDATA[En la primera parte dej&#233; el experimento encallado: quer&#237;a un agente que publicara solo cada ma&#241;ana, pero /loop no serv&#237;a para eso y, de paso, me hab&#237;a bloqueado Claude con un error del sistema de archivos.]]></description><link>https://www.concriterio.blog/p/un-servicio-en-la-nube-que-se-cuenta</link><guid isPermaLink="false">https://www.concriterio.blog/p/un-servicio-en-la-nube-que-se-cuenta</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 01 Jul 2026 06:02:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/890455b3-c950-4072-8fa3-e6e406ae9c13_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>En la primera parte dej&#233; el experimento encallado: quer&#237;a un agente que publicara solo cada ma&#241;ana, pero <code>/loop</code> no serv&#237;a para eso y, de paso, me hab&#237;a bloqueado Claude con un error del sistema de archivos. La conclusi&#243;n fue inc&#243;moda pero clara: <strong>el problema no era de permisos, era de arquitectura.</strong> Mi automatizaci&#243;n depend&#237;a de mi port&#225;til, y un port&#225;til no es un servidor.</p><p>As&#237; que me plant&#233; delante de una bifurcaci&#243;n.</p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><h2><strong>Local con el Mac despierto, o la nube</strong></h2><p>La primera opci&#243;n era quedarme en local y obligar al Mac a no dormirse: evitar el reposo, programar un despertador, mantener la sesi&#243;n viva. Funcionar&#237;a&#8230; mientras el Mac estuviera encendido, enchufado y de buen humor. Fr&#225;gil.</p><p>La segunda era sacarlo todo de mi m&#225;quina y meterlo en la nube. M&#225;s trabajo de montaje, pero a cambio: <strong>corre aunque el Mac est&#233; apagado, sin permisos de macOS de por medio, sin servidores que mantener.</strong> Eleg&#237; la nube. Si el objetivo era &#8220;olv&#237;date y que funcione&#8221;, no hab&#237;a color.</p><p>Pero la nube tra&#237;a una pregunta que tuve que decidir con criterio: mi agente guardaba su memoria &#8212;los posts, las m&#233;tricas, lo aprendido&#8212; en una base de datos local. Una tarea en la nube no puede leer un archivo de mi disco. &#191;D&#243;nde viv&#237;a entonces la memoria?</p><p>La respuesta result&#243; casi indolora: <strong>Cloudflare D1, que es literalmente SQLite en la nube.</strong> Migr&#233; la base sin apenas tocar el c&#243;digo. La memoria dej&#243; de ser un archivo en mi disco para ser algo que el sistema alcanza desde cualquier sitio.</p><h2><strong>La decisi&#243;n de la que m&#225;s orgulloso estoy</strong></h2><p>Aqu&#237; viene la parte <em>con criterio</em> de verdad. Cuando mov&#237; la l&#243;gica a la nube, ten&#237;a dos caminos:</p><ol><li><p>Dejar que la IA, adem&#225;s de escribir los posts, <strong>razonara tambi&#233;n los n&#250;meros</strong>: qu&#233; &#225;ngulo funcion&#243; mejor, qu&#233; puntuaci&#243;n ten&#237;a cada uno.</p></li><li><p>Que la IA solo escribiera, y que <strong>el c&#225;lculo lo hiciera c&#243;digo</strong> determinista.</p></li></ol><p>Eleg&#237; el segundo, y creo que es la decisi&#243;n clave de todo el proyecto. Porque esto es un <em>experimento</em>: el sentido es medir qu&#233; funciona y aprender con el tiempo. Y en un experimento, el instrumento de medida tiene que ser <strong>constante</strong>. Si le pides a un modelo de lenguaje que punt&#250;e, con los mismos datos puede darte resultados ligeramente distintos un d&#237;a u otro &#8212; y peor a&#250;n, ese ruido se realimenta, porque la puntuaci&#243;n de hoy condiciona el contenido de ma&#241;ana. Una regla que cambia de longitud cada vez no sirve para medir nada.</p><p>La frase que me qued&#243; grabada: <strong>la IA escribe, el c&#243;digo calcula.</strong> Para lo que es juicio &#8212;redactar, elegir el &#225;ngulo&#8212; la IA. Para lo que es un c&#225;lculo fijo &#8212;puntuar, rankear&#8212; c&#243;digo. Mezclarlos te da lo peor de los dos mundos.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JH83!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JH83!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png 424w, https://substackcdn.com/image/fetch/$s_!JH83!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png 848w, https://substackcdn.com/image/fetch/$s_!JH83!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png 1272w, https://substackcdn.com/image/fetch/$s_!JH83!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!JH83!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png" width="1240" height="558" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:558,&quot;width&quot;:1240,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:112008,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/203211089?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JH83!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png 424w, https://substackcdn.com/image/fetch/$s_!JH83!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png 848w, https://substackcdn.com/image/fetch/$s_!JH83!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png 1272w, https://substackcdn.com/image/fetch/$s_!JH83!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5296b87-34a4-4488-ab0c-52854220ee0f_1240x558.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Lo que aprendes solo cuando lo enchufas</strong></h2><p>Sobre el papel todo encaja; al conectarlo aparecen las sorpresas. Tres que me llevo:</p><p><strong>Pagar calderilla a prop&#243;sito.</strong> En local, la IA escrib&#237;a los posts con mi suscripci&#243;n de Claude, gratis. Pero una tarea en la nube no puede usar mi suscripci&#243;n. Para que el sistema fuera de verdad aut&#243;nomo, el agente llama directamente a la API de pago. Cuesta unos c&#233;ntimos al mes &#8212; y los pago encantado a cambio de independencia total. A veces la decisi&#243;n correcta es dejar de optimizar el &#8220;gratis&#8221;.</p><p><strong>Los detalles de integraci&#243;n que ning&#250;n tutorial cuenta.</strong> El conector &#8220;oficial&#8221; de Buffer hablaba con un servidor interno; mi token personal iba contra otra direcci&#243;n distinta. Media hora de errores 401 hasta dar con ello. La fiabilidad de una automatizaci&#243;n casi nunca est&#225; en la idea, est&#225; en estos detalles.</p><p><strong>La IA no sabe contar.</strong> Bluesky limita los posts a 300 caracteres, pero el modelo se pasaba una y otra vez por mucho que se lo pidiera. La soluci&#243;n no fue rogar m&#225;s fuerte, sino poner una red: si un post se pasa, el sistema le pide que lo reescriba m&#225;s corto, hasta que cabe.</p><h2><strong>El &#250;ltimo ajuste: que sonara a persona</strong></h2><p>Cuando por fin publicaba, los textos sal&#237;an correctos pero <strong>telegr&#225;ficos</strong>: frase corta, punto, frase corta, punto. Sonaban a lista, no a alguien contando algo. Curiosamente, la culpa era m&#237;a: para respetar el l&#237;mite de caracteres le hab&#237;a pedido al modelo &#8220;frases secas&#8221;, y eso produc&#237;a justo ese estilo a trompicones. Cambi&#233; las instrucciones hacia una prosa m&#225;s narrativa y humana, y el cambio se nota.</p><p>[VISUAL 4: antes/despu&#233;s del tono &#8212; telegr&#225;fico vs narrativo, mismo contenido]</p><h2><strong>Qu&#233; me llevo</strong></h2><p>El agente qued&#243; funcionando: cada ma&#241;ana, en la nube y sin mi Mac de por medio, recog&#237;a m&#233;tricas, escrib&#237;a y publicaba, y guardaba lo aprendido. Y aunque ahora paro este experimento para llevar la idea a LinkedIn, me llevo tres cosas en la mochila:</p><ul><li><p><strong>Entiende la herramienta antes de forzarla.</strong> Medio drama me lo ahorraba sabiendo qu&#233; era <code>/loop</code>.</p></li><li><p><strong>La IA para el juicio, el c&#243;digo para los n&#250;meros.</strong> No los mezcles.</p></li><li><p><strong>La fiabilidad vive en los detalles, no en la idea.</strong> Lo dif&#237;cil no es construir el agente; es que corra solo cuando no est&#225;s mirando.</p></li></ul><p>Que, mira, es exactamente la tesis con la que empec&#233;: el problema no es construir, es la distribuci&#243;n. Solo que esta vez el experimento me lo demostr&#243; a m&#237; mismo.</p><p><em>Fin de la serie.</em></p>]]></content:encoded></item><item><title><![CDATA[Quería que una IA publicara por mí cada mañana (Parte 1/2)]]></title><description><![CDATA[Acab&#233; pele&#225;ndome con un error de los a&#241;os 90.]]></description><link>https://www.concriterio.blog/p/queria-que-una-ia-publicara-por-mi</link><guid isPermaLink="false">https://www.concriterio.blog/p/queria-que-una-ia-publicara-por-mi</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 24 Jun 2026 06:02:01 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/607916cc-962c-4317-bab8-826896348cc1_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Llevo semanas con una tesis en la cabeza&#8230; <strong>El problema ya no es construir, es que alguien lo vea</strong>. Construir se ha vuelto barato y r&#225;pido; la distribuci&#243;n, en cambio, sigue siendo dura y manual. As&#237; que me propuse un experimento: montar un agente que se ocupara de la parte aburrida (publicar, medir y aprender) mientras yo me dedicaba a otra cosa.</p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p>El plan era sencillo. Cada ma&#241;ana, el agente escribir&#237;a tres versiones de un post (tres &#225;ngulos distintos), las publicar&#237;a en Bluesky a trav&#233;s de Buffer, recoger&#237;a las m&#233;tricas del d&#237;a anterior y ajustar&#237;a el contenido del siguiente. Y lo m&#225;s bonito: el contenido ir&#237;a sobre <strong>c&#243;mo se estaba construyendo el propio agente</strong>. El medio como mensaje.</p><p>Para el disparo diario tir&#233; de lo que ten&#237;a m&#225;s a mano: <code>/loop</code>, el comando de Claude Code que repite una tarea cada cierto tiempo. &#8220;Que se lance solo a las ocho&#8221;, pens&#233;. Dejaba el Mac en reposo por la noche y, en teor&#237;a, a la ma&#241;ana siguiente el agente habr&#237;a publicado.</p><p>Spoiler: no funcion&#243; &#129394;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!l_up!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l_up!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png 424w, https://substackcdn.com/image/fetch/$s_!l_up!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png 848w, https://substackcdn.com/image/fetch/$s_!l_up!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png 1272w, https://substackcdn.com/image/fetch/$s_!l_up!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!l_up!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png" width="1240" height="686" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:686,&quot;width&quot;:1240,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83179,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/203208419?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!l_up!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png 424w, https://substackcdn.com/image/fetch/$s_!l_up!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png 848w, https://substackcdn.com/image/fetch/$s_!l_up!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png 1272w, https://substackcdn.com/image/fetch/$s_!l_up!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0b77b7f-88d3-46d5-a49e-2fa670dd2734_1240x686.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>El muro</strong></h2><p>Lo primero que descubr&#237; es que <code>/loop</code> <strong>no estaba pensado para esto</strong>. </p><p><code>/loop</code> vive dentro de una sesi&#243;n abierta y necesita el ordenador despierto: cuando el Mac entra en reposo, macOS suspende los procesos y el temporizador, sencillamente, no dispara. </p><p>Pero el problema de verdad lleg&#243; cuando intent&#233; forzarlo. </p><p>Para que el agente publicara sin pedirme permiso cada ma&#241;ana, edit&#233; a mano la configuraci&#243;n de permisos. Y ah&#237; Claude Code empez&#243; a bloquearse: cada vez que enviaba un mensaje, ocurr&#237;a esto: <code>process exited with code 1 &#8212; an internal error occurred (EPERM)</code>. Treinta minutos sin poder trabajar, desinstalando y reinstalando para recuperar el control.</p><p><code>EPERM</code> significa <em>&#8220;operation not permitted&#8221;</em>. Es un error del <strong>sistema de archivos</strong>, no de la configuraci&#243;n de Claude. &#191;La causa de fondo? Ten&#237;a todo (el proyecto y la carpeta de configuraci&#243;n de Claude) en un <strong>disco externo</strong>. Las escrituras y los bloqueos que Claude hace constantemente empezaron a chocar con los permisos del volumen externo. </p><h2><strong>La lecci&#243;n que me llev&#233;</strong></h2><p>Pas&#233; un buen rato culpando a mi configuraci&#243;n. Estaba equivocado: un <code>EPERM</code> casi nunca es culpa de tu config, sino del sistema de archivos que tienes debajo. Pero la lecci&#243;n m&#225;s &#250;til no fue esa, fue otra:</p><p><strong>Hab&#237;a confundido dos cosas que parecen iguales y no lo son: lo atendido y lo desatendido.</strong></p><p><code>/loop</code> es una herramienta <em>atendida</em>: brilla cuando est&#225;s delante, con la m&#225;quina despierta y la sesi&#243;n viva. Para vigilar un deploy mientras trabajas, para iterar sobre una tarea hasta terminarla, es perfecta. Lo que yo necesitaba era lo contrario: algo <em>desatendido</em>, que corriera cada ma&#241;ana durante semanas, con el Mac apagado y sin nadie delante. Dos mundos distintos.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_mGi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_mGi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png 424w, https://substackcdn.com/image/fetch/$s_!_mGi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png 848w, https://substackcdn.com/image/fetch/$s_!_mGi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png 1272w, https://substackcdn.com/image/fetch/$s_!_mGi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!_mGi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png" width="780" height="363" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:363,&quot;width&quot;:780,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31937,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/203208419?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_mGi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png 424w, https://substackcdn.com/image/fetch/$s_!_mGi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png 848w, https://substackcdn.com/image/fetch/$s_!_mGi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png 1272w, https://substackcdn.com/image/fetch/$s_!_mGi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cbf959e-9364-45ff-b6cb-83c54392d81b_780x363.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Y ah&#237; estaba el verdadero problema de dise&#241;o: <strong>no era de permisos, era de arquitectura.</strong> Mi automatizaci&#243;n depend&#237;a de mi port&#225;til, y un port&#225;til se duerme, se apaga y vive en un disco que se queja. Si quer&#237;a que aquello corriera de verdad solo, ten&#237;a que sacarlo de mi m&#225;quina.</p><div><hr></div><p>En la segunda parte cuento c&#243;mo lo hice: moverlo todo a la nube, qu&#233; decisiones tom&#233; <em>con criterio</em> por el camino (incluida una que me hizo pasar de &#8220;gratis&#8221; a pagar unos c&#233;ntimos al mes, a prop&#243;sito), y c&#243;mo qued&#243; un sistema que, literalmente, se cuenta a s&#237; mismo.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Cómo tener email profesional gratis en tus proyectos]]></title><description><![CDATA[El setup que uso en cada proyecto que lanzo y no me cuesta un euro al mes.]]></description><link>https://www.concriterio.blog/p/como-tener-email-profesional-gratis</link><guid isPermaLink="false">https://www.concriterio.blog/p/como-tener-email-profesional-gratis</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 17 Jun 2026 06:01:16 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7f664cc9-01f4-44f0-b1f4-cff2164d0f16_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#161;Buenos d&#237;as!</p><p>Hoy vengo a hablarte de una elegante soluci&#243;n para resolver un problema com&#250;n.</p><p>Cada vez que monto un proyecto aparece la misma situaci&#243;n: necesito un correo profesional con mi dominio, estilo &#8220;hola@tuproyecto.com&#8221;</p><p>La soluci&#243;n que aplicaba hasta hace unos meses era contratar un plan de email de Hostinger (porque el 99% de los dominios los registro desde ah&#237;). </p><p>El tema es que hacerlo de esta manera comporta pagar unos 4 euros al mes por buz&#243;n (que casi no vas a usar). </p><p>As&#237; que hoy te quiero plantear la alternativa que estoy usando desde principios de a&#241;o.</p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><h3>Cloudflare + Gmail</h3><p>Cloudflare tiene un servicio gratuito llamado <strong>Email Routing</strong>. La idea es simple: en lugar de contratar un buz&#243;n de correo para cada proyecto, creas un alias.</p><p>Un alias es una direcci&#243;n como <em>hola@tuproyecto.com</em> que no tiene buz&#243;n propio. Cuando alguien te escribe ah&#237;, el mensaje llega directamente a tu Gmail.</p><p>La diferencia con Hostinger u otros hostings de email es que ellos te alojan un buz&#243;n real en sus servidores. Cloudflare no aloja nada, solo reenv&#237;a. Para el 95% de proyectos es m&#225;s que suficiente, y el coste es cero.</p><p>Puedes <strong>crear tantos alias como quieras</strong> y repetirlo con todos los dominios que tengas. Todo llega al mismo Gmail (o a la direcci&#243;n que desees).</p><p>El paso que mucha gente se salta es el del env&#237;o. Es decir, puedes configurar Gmail para que al responder, el correo salga con la direcci&#243;n de tu dominio. El destinatario ve <em>hola@tuproyecto.com</em>, no tu cuenta personal. Recibir y enviar, sin pagar nada.</p><h3>C&#243;mo se configura</h3><p><em>Parte 1: Recibir correo</em></p><ol><li><p>Entra a tu dominio en Cloudflare y ve a <strong>Compute &gt; Email Service &gt; Email Routing</strong></p></li><li><p>Haz clic en &#8220;Onboard Domain&#8221; y selecciona tu dominio. Cloudflare a&#241;ade los registros necesarios autom&#225;ticamente</p></li><li><p>Ve a <strong>Destination Addresses</strong>, a&#241;ade tu Gmail y conf&#237;rma el email de verificaci&#243;n que te mandan</p></li><li><p>Ve a <strong>Routing Rules &gt; Create routing rule</strong>, escribe el alias que quieres (hola, contacto, soporte...) y selecciona tu Gmail como destino</p></li></ol><p><em>Parte 2: Enviar desde Gmail con tu alias</em></p><ol start="5"><li><p>En Gmail ve a <strong>Ajustes &gt; Cuentas e importaci&#243;n &gt; Enviar correo como &gt; A&#241;adir otra direcci&#243;n</strong></p></li><li><p>Escribe el nombre y la direcci&#243;n del alias. Desmarca &#8220;Tratarlo como un alias&#8221;</p></li><li><p>Servidor SMTP: smtp.gmail.com, puerto 587. Usa tu cuenta Gmail con una contrase&#241;a de aplicaci&#243;n (necesitas el 2FA activado en Google)</p></li><li><p>Verifica con el c&#243;digo que llega al Gmail</p></li><li><p>Al redactar un correo ya puedes elegir desde qu&#233; direcci&#243;n env&#237;as</p></li></ol><div class="callout-block" data-callout="true"><p><span>Este setup es para correo manual: el de contacto, soporte, una landing. No sirve para emails transaccionales, es decir, confirmaciones de registro, resets de contrase&#241;a o magic links. Para eso existe </span><a href="https://resend.com/">Resend</a><span>, que veremos en una pr&#243;xima entrega.</span></p></div><h3>Nota importante para usuarios de Espa&#241;a</h3><p>En Espa&#241;a, durante los d&#237;as de <strong>partido de LaLiga</strong>, las operadoras bloquean rangos de IPs de Cloudflare para cortar retransmisiones ilegales. Tu web puede quedar inaccesible como da&#241;o colateral, sin que hayas hecho nada mal.</p><p>Si usas Cloudflare solo para Email Routing esto no te afecta. Pero si tambi&#233;n tienes la web con el proxy activo, conviene saberlo: en el panel de DNS ver&#225;s un icono de <strong>nube</strong> junto a cada registro. Si est&#225; <strong>naranja</strong>, el tr&#225;fico pasa por Cloudflare. Si est&#225; gris, va directo a tu servidor. Durante los d&#237;as de partido puedes ponerla en gris para evitar el bloqueo.</p><div><hr></div><p>&#161;Nada m&#225;s por hoy! Gu&#237;a cortita, al pie, como a mi me gustan :) </p><p>Si tienes alguna duda puedes dejar un comentario y estar&#233; encantado de ayudarte. Y si te ha gustado la publicaci&#243;n, no olvides compartirla. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Compartir Con Criterio&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Compartir Con Criterio</span></a></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Adiós Lovable... ¡Hola Claude Code (Desktop)!]]></title><description><![CDATA[Si llevas un tiempo construyendo con IA, probablemente hayas empezado por Lovable. Yo tambi&#233;n. Pero hay un paso natural siguiente, y es m&#225;s accesible de lo que parece.]]></description><link>https://www.concriterio.blog/p/adios-lovable-hola-claude-code-desktop</link><guid isPermaLink="false">https://www.concriterio.blog/p/adios-lovable-hola-claude-code-desktop</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 10 Jun 2026 06:01:20 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1109b925-66cc-4af7-a266-5b0b5028e525_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#161;Buenos d&#237;as!</p><p>Si me has estado siguiendo, sabr&#225;s que cuando empec&#233; a construir con IA, lo hice con ChatGPT. Mi segundo gran salto fue Lovable, una herramienta que me permiti&#243; tener un producto funcionando en horas, sin saber pr&#225;cticamente nada de c&#243;digo. </p><p>Pero <strong>con el tiempo aparecen los roces</strong>.</p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p>Con <strong><a href="https://lovable.dev/invite/MPJIZGX">Lovable</a></strong>, la documentaci&#243;n que te permite adjuntar la herramienta es limitada. Puedes a&#241;adir una peque&#241;a base de conocimiento, pero no una documentaci&#243;n viva que el agente consulte y actualice de forma din&#225;mica. Adem&#225;s:</p><ul><li><p><strong>Solo puedes construir con React y Vite</strong>, lo que cierra la puerta a otros stacks.</p></li><li><p><strong>Cada conversaci&#243;n queda dentro del chat</strong>, sin una forma sencilla de convertirla en conocimiento reutilizable.</p></li><li><p>La personalizaci&#243;n del agente tiene un techo bajo.</p></li><li><p>Las integraciones disponibles son las que son: no puedes conectar MCPs propios ni usar Skills.</p></li></ul><p>No es una cr&#237;tica a Lovable. Para empezar, es fant&#225;stico. Pero llega un momento en que necesitas m&#225;s.</p><div><hr></div><h3><strong>Claude Code Desktop: dos modos de trabajo</strong></h3><p>La app de Claude tiene una pesta&#241;a llamada Code. </p><p>Cuando se habla de Claude Code en LinkedIn, casi todo el mundo lo asocia a la terminal: comandos, CLI y con perfiles t&#233;cnicos. </p><p>Y es comprensible, porque as&#237; es como se present&#243; al principio. Pero existe otra forma de usarlo que muy poca gente menciona: <strong>la versi&#243;n de escritorio</strong>. Con grandes funcionalidades, una interfaz visual, y que yo, personalmente, nunca he abandonado. Todo lo que he construido con Claude Code lo he hecho desde ah&#237;. </p><p>Confesi&#243;n: Con Claude, nunca he tocado el terminal.</p><p>Desde <strong><a href="https://claude.com/download">la versi&#243;n de escritorio</a></strong> puedes trabajar de dos formas distintas:</p><div><hr></div><h4><strong>a. Modo remoto (con GitHub)</strong></h4><p>Seleccionas un repositorio de GitHub y una rama. </p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-9v2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png 424w, https://substackcdn.com/image/fetch/$s_!-9v2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png 848w, https://substackcdn.com/image/fetch/$s_!-9v2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png 1272w, https://substackcdn.com/image/fetch/$s_!-9v2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!-9v2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png" width="1091" height="227" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:227,&quot;width&quot;:1091,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29793,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/201366219?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-9v2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png 424w, https://substackcdn.com/image/fetch/$s_!-9v2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png 848w, https://substackcdn.com/image/fetch/$s_!-9v2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png 1272w, https://substackcdn.com/image/fetch/$s_!-9v2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89c915cc-8ead-475c-99c0-7189a5cbb44c_1091x227.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Claude crea un entorno temporal en la nube donde trabaja con ese c&#243;digo. Haces tus peticiones en lenguaje natural, &#233;l implementa los cambios, y cuando est&#225;s conforme le pides que lo suba a GitHub. Limpio, trazable y sin salir del chat.</p><div><hr></div><h4><strong>b. Modo local</strong></h4><p>En lugar de un repositorio remoto, apuntas a una carpeta de tu m&#225;quina. Aqu&#237; es donde aparece algo que te resultar&#225; muy familiar si vienes de Lovable: el preview en tiempo real. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E5sN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E5sN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png 424w, https://substackcdn.com/image/fetch/$s_!E5sN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png 848w, https://substackcdn.com/image/fetch/$s_!E5sN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png 1272w, https://substackcdn.com/image/fetch/$s_!E5sN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!E5sN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png" width="1456" height="1167" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1167,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:472713,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/201366219?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!E5sN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png 424w, https://substackcdn.com/image/fetch/$s_!E5sN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png 848w, https://substackcdn.com/image/fetch/$s_!E5sN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png 1272w, https://substackcdn.com/image/fetch/$s_!E5sN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44429343-da22-440e-a8b2-52f4c34e9539_1716x1375.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Mientras Claude va haciendo cambios, los ves reflejados al instante. Y cuando quieres subir el proyecto a GitHub, simplemente se lo pides. A trav&#233;s del MCP de GitHub, Claude crea el repositorio, sube el contenido y gestiona los cambios. Sin terminal. </p><p>Una experiencia muy similar a la que ya has experimentado con Lovable, pero con todo el potencial y libertad de Claude.</p><div><hr></div><h3><strong>Por qu&#233; me parece relevante para ti</strong></h3><p>Porque en Claude Desktop tienes acceso a todo el ecosistema que ya conoces si sigues esta newsletter: Skills, MCPs, SDD desde el primer momento. Es m&#225;s, puedes:</p><ol><li><p><strong>Planificar</strong> y clarificar desde el mismo chat del proyecto. </p></li><li><p><strong>Dise&#241;ar</strong> a trav&#233;s de <strong><a href="https://claude.ai/design">Claude Design</a></strong> (y exportar lo que has hecho).</p></li><li><p><strong>Construir</strong> y desplegar a trav&#233;s del chat con Claude Code. </p></li></ol><p>No est&#225;s limitado a un stack ni a un conjunto cerrado de integraciones. Y el modelo que hay detr&#225;s es el mismo que usa Lovable, solo que sin la capa intermedia que te recorta las posibilidades.</p><div><hr></div><p>Tengo ganas de grabar o de hacer un directo. Si tienes ganas de ver el proceso completo desde la ideaci&#243;n con SDD, pasar por Claude Design y terminar cosntruyendo con Claude Code Desktop, dejame un buen comentario y montamos algo &#128522;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/adios-lovable-hola-claude-code-desktop/comments&quot;,&quot;text&quot;:&quot;Deja un comentario&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/p/adios-lovable-hola-claude-code-desktop/comments"><span>Deja un comentario</span></a></p><div><hr></div><p>&#161;Y hasta aqu&#237; la newsletter de hoy! Si te ha gustado lo que has le&#237;do no te olvides de compartirlo &#128521;</p><p></p><p>Pol Marz&#224; - AI Product Builder</p>]]></content:encoded></item><item><title><![CDATA[¿Qué pasaría si 50 personas compartieran tu producto?]]></title><description><![CDATA[En 2026 tu mayor desaf&#237;o ya no es construir, es que tu producto llegue al p&#250;blico que lo necesita. Tu mayor desaf&#237;o es la DISTRIBUCI&#211;N.]]></description><link>https://www.concriterio.blog/p/que-pasaria-si-50-personas-compartieran</link><guid isPermaLink="false">https://www.concriterio.blog/p/que-pasaria-si-50-personas-compartieran</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 03 Jun 2026 06:51:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/91499cda-dfec-4205-9468-cc843638f97e_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#161;Buenos d&#237;as!</p><p>&#191;C&#243;mo est&#225;s? :)</p><p>El jueves pasado estuve en Valencia. Di una charla en NTT Data, organizada por <strong>Product Beers Valencia</strong>, sobre m&#237;: sobre c&#243;mo construyo con IA desde 2023 y c&#243;mo ha cambiado por completo mi forma de hacerlo en estos casi 4 a&#241;os. De programar con ChatGPT y VSCode a orquestar agentes que hacen el 80% del trabajo pesado.</p><p>Pero lo interesante no pas&#243; en la charla. Pas&#243; despu&#233;s, con una cerveza en la mano.</p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p>Hablando con la gente que hab&#237;a venido, una idea sal&#237;a una y otra vez en distintas conversaciones: <strong>construir ya no es el problema.</strong> Hoy, levantar un SaaS, una app, una web o un agente est&#225; al alcance de much&#237;sima m&#225;s gente. La barrera t&#233;cnica, esa que durante a&#241;os dej&#243; fuera a los no-t&#233;cnicos, se ha difuminado. Cualquiera con una buena idea y constancia puede tener un producto funcionando en un fin de semana.</p><p>&#191;Y entonces cu&#225;l es el problema? <strong>El mismo de siempre, solo que se ha movido de sitio: la distribuci&#243;n.</strong></p><p>Puedes construir algo brillante y que no lo vea nadie. Lanzas en X, en Product Hunt, en LinkedIn&#8230; y tienes muy poco impacto. Porque las redes premian a quien <em>ya</em> tiene audiencia, y la mayor&#237;a de los que construimos en solitario tenemos audiencias peque&#241;as. Un producto t&#233;cnicamente superior puede morir en el lanzamiento simplemente porque nadie lo vio.</p><p>Esa noche, de vuelta en el hostal, no me lo pod&#237;a quitar de la cabeza. </p><p>Y se me ocurri&#243; una idea.</p><h3><strong>La idea: solos llegamos a mil; juntos, a diez mil</strong></h3><p>Imagina que lanzas tu proyecto t&#250; solo y tu audiencia es de 1.000 personas. Llegas a 1.000 personas. Punto.</p><p>Ahora imagina que <strong>diez builders de una comunidad</strong> publican sobre tu proyecto el d&#237;a del lanzamiento. Si cada uno tiene 1.000 seguidores, de repente tu alcance potencial no es 1.000: son 10.000. La comunidad no te suma, <strong>te multiplica</strong>. Te catapulta.</p><p>Esa es toda la filosof&#237;a de <strong><a href="https://swapicorn.com">Swapicorn</a></strong>.</p><h3><strong>Qu&#233; es Swapicorn</strong></h3><p>Swapicorn es un <strong>ecosistema de distribuci&#243;n colaborativa para builders de IA</strong>. No es publicidad ni un directorio m&#225;s donde subir tu link y rezar. Es un sistema de apoyo mutuo, meritocr&#225;tico y de suma positiva. Lo defino como un <strong>&#8220;sindicato de creadores&#8221;</strong>: donde el &#233;xito de uno impulsa al resto.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dFhn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dFhn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png 424w, https://substackcdn.com/image/fetch/$s_!dFhn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png 848w, https://substackcdn.com/image/fetch/$s_!dFhn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png 1272w, https://substackcdn.com/image/fetch/$s_!dFhn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!dFhn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png" width="1456" height="1032" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1032,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:458624,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/200410252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dFhn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png 424w, https://substackcdn.com/image/fetch/$s_!dFhn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png 848w, https://substackcdn.com/image/fetch/$s_!dFhn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png 1272w, https://substackcdn.com/image/fetch/$s_!dFhn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ab116c3-8e03-416e-a94f-ea29d38138ff_1709x1211.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Proyectos actuales en la comunidad</figcaption></figure></div><p>Funciona con un sistema de cr&#233;ditos llamados <strong>Swapis</strong>:</p><ul><li><p>Te registras, conectas tus redes y el sistema te asigna un <strong>nivel del 1 al 5</strong> seg&#250;n tu alcance.</p></li><li><p>Publicas tu proyecto y le asignas un presupuesto de swapis.</p></li><li><p><strong>Otros builders lo promocionan</strong> en sus redes y, a cambio, ganan tokens (swapis).</p></li><li><p>T&#250;, a tu vez, <strong>ganas swapis promocionando los proyectos de otros</strong>.</p></li></ul><p>Es un c&#237;rculo virtuoso: ayudas a la comunidad y la comunidad te ayuda a ti. Nadie depende de tener ya un p&#250;blico enorme ni de gastar un euro en ads. El m&#233;rito y la reciprocidad sustituyen al algoritmo y al presupuesto.</p><p>Y lo mejor: cuando alguien promociona tu proyecto, no es un bot ni un anuncio fr&#237;o. Es otro builder, con su voz y su audiencia real, cont&#225;ndole a su gente lo que has construido.</p><div><hr></div><div class="callout-block" data-callout="true"><p style="text-align: center;">Si este post te resulta &#250;til, &#191;qu&#233; te parece si lo compartes? &#128540;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/que-pasaria-si-50-personas-compartieran?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Compartir&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.concriterio.blog/p/que-pasaria-si-50-personas-compartieran?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Compartir</span></a></p></div><div><hr></div><h3><strong>Lo constru&#237; este fin de semana (y eso es parte del mensaje)</strong></h3><p>Hay algo que me hace gracia y que encaja perfecto con la tesis de la charla: <strong>mont&#233; Swapicorn entero este fin de semana, construyendo con IA.</strong> Lo que antes habr&#237;a sido un proyecto de meses, hoy es un finde. La parte dif&#237;cil ya no era hacerlo. La parte dif&#237;cil sigue siendo que llegue a la gente adecuada.</p><p>As&#237; que Swapicorn es, en cierto modo, una soluci&#243;n construida con la propia herramienta que crea el problema. Me parece po&#233;tico.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9S81!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9S81!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png 424w, https://substackcdn.com/image/fetch/$s_!9S81!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png 848w, https://substackcdn.com/image/fetch/$s_!9S81!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png 1272w, https://substackcdn.com/image/fetch/$s_!9S81!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!9S81!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png" width="1456" height="691" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:691,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:131260,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/200410252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9S81!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png 424w, https://substackcdn.com/image/fetch/$s_!9S81!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png 848w, https://substackcdn.com/image/fetch/$s_!9S81!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png 1272w, https://substackcdn.com/image/fetch/$s_!9S81!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7baf461-99a7-42db-88b6-f1bff61668e3_1707x810.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Lo lanc&#233; hace apenas un par de d&#237;as, lo he ido ense&#241;ando en grupos peque&#241;os y <strong>ya hay seis proyectos publicados</strong>. Est&#225; en <strong>beta</strong>: puede tener errores, cosas a medio pulir, detalles que mejorar. Cuento con ello.</p><h3><strong>Esto es para ti si construyes con IA</strong></h3><p>Si est&#225;s leyendo esto y construyes productos (solo o en equipo) y te suena eso de &#8220;lo lanc&#233; y no lo vio nadie&#8221;, <strong>Swapicorn es para ti</strong>.</p><p>Entra, sube tu proyecto y deja que la comunidad lo amplifique. Y si por el camino te encuentras un bug, una fricci&#243;n o algo que no cuadra, <strong>d&#233;jamelo en los comentarios</strong>: estoy puliendo la plataforma en directo y cada feedback me ayuda a hacerla mejor.</p><p>&#128073; <a href="https://swapicorn.com/">&#218;nete a Swapicorn</a></p>]]></content:encoded></item><item><title><![CDATA[El vibe coding no ha muerto. Solo lo estabas usando mal]]></title><description><![CDATA[&#191;Cu&#225;ndo usar vibe coding y cu&#225;ndo SDD? Esa es la pregunta que te deber&#237;as estar haciendo.]]></description><link>https://www.concriterio.blog/p/el-vibe-coding-no-ha-muerto-solo</link><guid isPermaLink="false">https://www.concriterio.blog/p/el-vibe-coding-no-ha-muerto-solo</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 27 May 2026 06:02:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7a2b2a8f-32db-45e7-936d-b18fdd6d7413_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>La semana pasada mi jefe lleg&#243; con un v&#237;deo de YouTube. El titular dec&#237;a algo as&#237; como que el vibe coding hab&#237;a muerto, que los datos lo demostraban, y que era hora de pasar p&#225;gina. </p><p>Lo vi. Entend&#237; el argumento. Y <strong>creo que est&#225; equivocado</strong>, aunque no por las razones que imaginas.</p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p>D&#233;jame contarte <strong>c&#243;mo uso yo el vibe coding</strong>, porque creo que ah&#237; est&#225; la clave.</p><p>Cuando tengo una idea, lo primero que hago no es sentarme a planificar. Lo primero que hago es construirla. Sin estructura, sin documentaci&#243;n y sin pensar demasiado. </p><p>Abro Lovable o Claude Code y les describo lo que tengo en la cabeza. En media hora tengo algo que puedo tocar. Algo que funciona m&#225;s o menos, que tiene agujeros por todos lados y que probablemente tire a la basura en dos d&#237;as.</p><p>Y eso es exactamente lo que quiero.</p><p>Porque lo que me da ese prototipo no es c&#243;digo. <strong>Me da claridad</strong>. Cuando construyes algo r&#225;pido y mal: </p><ul><li><p>Descubres los problemas reales antes de invertir tiempo en resolverlos bien. </p></li><li><p>Descubres que el flujo que imaginabas no tiene sentido cuando lo usas. </p></li><li><p>Que la funcionalidad que cre&#237;as central resulta secundaria. </p></li><li><p>Que hay un problema t&#233;cnico concreto que no hab&#237;as visto desde la descripci&#243;n.</p></li></ul><p>Despu&#233;s de ese prototipo, lo tiro. Y construyo de nuevo, esta vez con <strong><a href="https://www.nexy.ai/es/concept/desarrollo-guiado-por-especificaciones-sdd">SDD</a></strong>. Pero ya no estoy construyendo a ciegas. S&#233; lo que quiero que haga la aplicaci&#243;n. S&#233; los retos a los que me voy a enfrentar. <strong>Tengo criterio para tomar decisiones</strong> porque ya he tropezado con los problemas una vez.</p><p>El vibe coding no es una metodolog&#237;a de desarrollo. Es una <strong>metodolog&#237;a de exploraci&#243;n</strong>. Y los que dicen que ha muerto est&#225;n comparando dos cosas que no compiten entre s&#237;.</p><p>Los datos que citan esos v&#237;deos son reales: la gente que intent&#243; lanzar productos serios solo con vibe coding se encontr&#243; con c&#243;digo fr&#225;gil, <strong><a href="https://www.nexy.ai/es/concept/deuda-tecnica">deuda t&#233;cnica</a></strong> imposible de gestionar y aplicaciones que no escalaban. Pero ese no es un problema del vibe coding; es un problema de <strong>usarlo para lo que no fue pensado</strong>.</p><div><hr></div><div class="callout-block" data-callout="true"><p style="text-align: center;">Si este post te resulta &#250;til, &#191;qu&#233; te parece si lo compartes? &#128540;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/el-vibe-coding-no-ha-muerto-solo?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Compartir&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.concriterio.blog/p/el-vibe-coding-no-ha-muerto-solo?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Compartir</span></a></p></div><div><hr></div><p>Para recapitular antes de cerrar: </p><p><strong>1. Vibe codea tu idea</strong> &#8594; Sin pensar demasiado. El objetivo no es el c&#243;digo, es entender si la idea tiene sentido cuando la tocas con las manos.</p><p><strong>2. Clarifica tus hallazgos</strong> &#8594; Antes de tirar el prototipo, documenta lo que has aprendido. Qu&#233; funcion&#243;, qu&#233; no, qu&#233; problema real has descubierto debajo del problema que cre&#237;as tener.</p><p><strong>3. Redacta los docs en SDD</strong> &#8594; Ahora s&#237;. Con ese conocimiento encima de la mesa, define la arquitectura, el modelo de datos, el comportamiento esperado. Ya no est&#225;s especulando, est&#225;s describiendo algo que entiendes.</p><p><strong>4. Construye con Claude Code</strong> &#8594; Con los docs como contexto, el agente tiene todo lo que necesita para generar c&#243;digo que no tendr&#225;s que tirar.</p>]]></content:encoded></item><item><title><![CDATA[La actualización más radical de Lovable]]></title><description><![CDATA[Lovable y el SEO siempre han estado re&#241;idos. Hasta ahora.]]></description><link>https://www.concriterio.blog/p/la-actualizacion-mas-grande-de-lovable</link><guid isPermaLink="false">https://www.concriterio.blog/p/la-actualizacion-mas-grande-de-lovable</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 20 May 2026 06:01:57 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4499132c-2adb-4c21-ab4f-b07fa82d71d2_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Si me conoces, sabes que a cualquier persona que me preguntaba si pod&#237;a hacer la web de su negocio con Lovable, siempre le respond&#237;a: ni en pintura. No porque fuese una mala herramienta sino porque, a ojos de los robots de Google (o LLMs), los proyectos que all&#237; constru&#237;as estaban vac&#237;os. </p><p>Hablo en pasado porque <strong>esto acaba de cambiar</strong>. </p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p>Para entender qu&#233; ha pasado, primero necesitas saber por qu&#233; estaba roto. </p><p>Cuando visitas una web, tu navegador recibe un documento HTML y lo muestra. Pero hay dos formas de generar ese documento:</p><ul><li><p><strong><a href="https://www.nexy.ai/es/concept/renderizado-del-lado-del-servidor-ssr">SSR</a>  </strong>(Server-Side Rendering): el servidor te lo manda ya construido, con todo el contenido dentro. </p></li><li><p><strong><a href="https://www.nexy.ai/es/concept/single-page-application-spa">SPA</a> </strong>(Single Page Application): el servidor te manda un esqueleto casi vac&#237;o y un mont&#243;n de JavaScript que se ejecuta en tu navegador para construir la p&#225;gina. </p></li></ul><p>T&#250;, como usuario, no notas la diferencia. Ves el t&#237;tulo, el texto, las im&#225;genes. Todo normal. El problema es que los robots no funcionan como t&#250;.</p><p>Cuando Google rastrea una web, manda un programa que descarga el HTML inicial y lo lee tal cual. En una web construida con Lovable, ese HTML inicial era b&#225;sicamente un <code>&lt;div&gt;</code> vac&#237;o (era una SPA). El contenido real lo generaba <strong><a href="https://es.react.dev/">React</a></strong> despu&#233;s, en tu navegador, pero para cuando eso ocurr&#237;a el robot ya se hab&#237;a ido. Lo mismo le pasaba a ChatGPT, a Perplexity, a cualquier herramienta que intentase leer el contenido de tu app a partir de su URL.</p><p>Llevaba meses se&#241;alando esto en LinkedIn cada vez que el tema sal&#237;a. Si necesitabas posicionamiento, recomendaba <strong><a href="https://astro.build">Astro</a></strong>, <strong><a href="https://nextjs.org/">Next.js</a></strong>, o trabajar directamente con Claude Code. Herramientas que generan el HTML completo en el servidor (SSR) antes de mand&#225;rtelo, para que cuando llegue el robot encuentre algo que leer.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NqtP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NqtP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic 424w, https://substackcdn.com/image/fetch/$s_!NqtP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic 848w, https://substackcdn.com/image/fetch/$s_!NqtP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic 1272w, https://substackcdn.com/image/fetch/$s_!NqtP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!NqtP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96075,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/198447352?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NqtP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic 424w, https://substackcdn.com/image/fetch/$s_!NqtP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic 848w, https://substackcdn.com/image/fetch/$s_!NqtP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic 1272w, https://substackcdn.com/image/fetch/$s_!NqtP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54be315d-31d6-4b44-b097-8e7e1c075728_1848x1232.heic 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Lovable acaba de hacer exactamente eso. Los proyectos nuevos se construyen sobre <strong><a href="https://tanstack.com/start/latest">TanStack Start</a></strong>, un framework con renderizado en el servidor nativo. Las p&#225;ginas llegan al navegador ya completas. Google las puede leer desde el primer momento. ChatGPT tambi&#233;n. Y los proyectos existentes reciben autom&#225;ticamente un sistema de snapshots est&#225;ticos que hace accesible el contenido a los <strong><a href="https://www.nexy.ai/es/concept/crawlers">crawlers</a></strong> sin que tengas que migrar nada ni tocar ning&#250;n ajuste.</p><p>Es un cambio t&#233;cnico, s&#237;. Pero lo que representa va m&#225;s all&#225; de la t&#233;cnica. Lovable lleva tiempo siendo la herramienta favorita para construir prototipos r&#225;pidos, pero con este movimiento est&#225; diciendo que quiere ser algo m&#225;s: una plataforma desde la que lanzar productos reales, que compitan, que el mundo pueda encontrar. </p><div><hr></div><div class="callout-block" data-callout="true"><p style="text-align: center;">Si este post te resulta &#250;til, &#191;qu&#233; te parece si lo compartes? &#128540;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/la-actualizacion-mas-grande-de-lovable?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Compartir&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.concriterio.blog/p/la-actualizacion-mas-grande-de-lovable?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Compartir</span></a></p></div><div><hr></div><p>Hoy el post ha sido algo m&#225;s cortito, con un par de enlaces a las definiciones de SSR y SPA en <strong><a href="https://nexy.ai">nexy.ai</a></strong> y otros enlaces a las webs de frameworks. &#191;Qu&#233; te parece este formato? D&#233;jame tu opini&#243;n en los comentarios :) </p><p>Por cierto, el pr&#243;ximo jueves 28 de mayo estar&#233; en Valencia dando una charla con los compa&#241;eros de <strong><a href="https://www.linkedin.com/company/product-beers/">Product Beers Valencia</a></strong>. Explicar&#233; como ha sido mi camino de AI CODING, desde mis inicios con ChatGPT en noviembre de 2022 hasta Claude Code. Hablar&#233; de la mentalidad maker m&#225;s que de las herramientas, explicar&#233; mi experiencia construyendo, desde los proyectos Frankenstein hasta el SDD. </p><p>Si est&#225;s por Valencia, &#161;<strong><a href="https://www.linkedin.com/safety/go/?url=https%3A%2F%2Flnkd.in%2FesqQV5Xw&amp;urlhash=Onh4&amp;mt=y8cA7zyewZ7669ddwk8JcVoTHKd8nKt__OQA7NF2U2G1VTdmnk8YSLrltq03UsxL0zGXd5iaPWUs0z1QrLHmYoNZmj7NuMZNEJxMWgGgMzHtw-A6_WxOKGoE&amp;isSdui=true&amp;lipi=urn%3Ali%3Apage%3Ad_flagship3_detail_base%3Bc5GoPB0tSN6819tDJAxsqQ%3D%3D">ap&#250;ntate</a></strong> que las reservas est&#225;n volando! </p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[¿Tu app es segura? 3 validaciones antes de lanzar]]></title><description><![CDATA[No necesitas ser experto en ciberseguridad para aplicar un nivel de protecci&#243;n decente. Necesitas tres h&#225;bitos y dos herramientas.]]></description><link>https://www.concriterio.blog/p/tu-app-es-segura-3-validaciones-antes</link><guid isPermaLink="false">https://www.concriterio.blog/p/tu-app-es-segura-3-validaciones-antes</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 06 May 2026 06:02:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c75d6595-9a74-40f4-8aa2-3d21618c9340_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Construir r&#225;pido tiene un precio que no siempre se ve en el momento: el c&#243;digo que genera la IA funciona, pero no siempre es seguro. Y "funciona" y "es seguro" son dos propiedades distintas.</p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><p>Hoy hablaremos de seguridad en nuestros desarrollos &#129299;</p><p>Te hago un peque&#241;o resumen por si quieres ir directamente a ese apartado que m&#225;s te interese:</p><ul><li><p><strong>Las imperdibles</strong>&#8212; Variables de entorno, RLS en Supabase y rotaci&#243;n de keys: lo que ninguna herramienta puede compensar si lo ignoras.</p></li><li><p><code>/security-review</code><strong> en Claude Code</strong> &#8212; El comando nativo de Anthropic que audita tu c&#243;digo antes de cada deploy, sin configuraci&#243;n.</p></li><li><p><strong>Aikido: escaneo continuo</strong> &#8212; Conecta tu repositorio y vigila vulnerabilidades en segundo plano, gratis hasta 10 repos.</p></li><li><p><strong>Bonus: pentesting en Lovable</strong> &#8212; Agentes que atacan tu app en vivo para encontrar lo que el an&#225;lisis est&#225;tico no ve.</p></li></ul><p>Ahora s&#237;, &#161;empezamos!</p><div><hr></div><h2>1. Las imperdibles</h2><p>Antes de hablar de herramientas, hay decisiones de arquitectura que ning&#250;n esc&#225;ner puede compensar si las ignoras desde el principio.</p><p><strong>Nunca hardcodees credenciales en el c&#243;digo.</strong> Las API keys, tokens de base de datos y secrets no deben estar escritos en ning&#250;n archivo de tu repositorio, ni en comentarios, ni en archivos de configuraci&#243;n que subes a <strong><a href="https://github.com">GitHub</a></strong>. Esto parece obvio hasta que ves a alguien publicar un repo con las keys de Stripe expuestas.</p><p>La alternativa es usar variables de entorno. En <strong><a href="https://vercel.com">Vercel</a></strong> las gestionas desde el panel del proyecto (Settings &#8594; Environment Variables). En Supabase tienes las claves de servicio accesibles desde Project Settings &#8594; API. Tu c&#243;digo lee esas variables pero nunca las contiene.</p><p><strong>Activa Row Level Security en Supabase desde el inicio.</strong> Si construyes con <strong><a href="https://supabase.com">Supabase</a></strong> y no activas RLS en tus tablas, cualquier usuario autenticado puede leer (o modificar) los datos de cualquier otro usuario. No es una vulnerabilidad avanzada, es la configuraci&#243;n por defecto cuando creas una tabla sin pol&#237;ticas.</p><p>Act&#237;valo al crear la tabla, no despu&#233;s. A&#241;adirlo retroactivamente cuando ya tienes datos y l&#243;gica construida es m&#225;s costoso y m&#225;s f&#225;cil de hacer mal.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vsuo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vsuo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic 424w, https://substackcdn.com/image/fetch/$s_!vsuo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic 848w, https://substackcdn.com/image/fetch/$s_!vsuo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic 1272w, https://substackcdn.com/image/fetch/$s_!vsuo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!vsuo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic" width="1277" height="743" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:743,&quot;width&quot;:1277,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44894,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/196579469?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vsuo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic 424w, https://substackcdn.com/image/fetch/$s_!vsuo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic 848w, https://substackcdn.com/image/fetch/$s_!vsuo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic 1272w, https://substackcdn.com/image/fetch/$s_!vsuo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d1162ce-2572-4d03-943a-0c6308268c97_1277x743.heic 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Rota las keys si sospechas una exposici&#243;n.</strong> Si en alg&#250;n momento una key estuvo en un commit, en un mensaje de chat, o en cualquier lugar fuera de las variables de entorno, inval&#237;dala y genera una nueva. El tiempo que tardas en rotar es menor que el da&#241;o potencial.</p><div><hr></div><h2>2. Auditor&#237;a con Claude Code: el comando <code>/security-review</code></h2><p>Claude Code incluye por defecto un slash command mantenido por Anthropic llamado <code>/security-review</code>. No hay que instalarlo ni configurarlo: est&#225; ah&#237; desde el primer momento.</p><p>Lo que hace es analizar los cambios pendientes en tu codebase buscando vulnerabilidades reales y explotables. No es una b&#250;squeda por patrones superficiales: examina el c&#243;digo en contexto, entiende qu&#233; hace cada parte y filtra los falsos positivos para darte solo hallazgos que merecen atenci&#243;n.</p><p>Las categor&#237;as que cubre:</p><ul><li><p>Inyecci&#243;n de SQL, comandos y otros vectores de inyecci&#243;n</p></li><li><p>Problemas de autenticaci&#243;n y autorizaci&#243;n (escalada de privilegios, bypass de sesiones)</p></li><li><p>Exposici&#243;n de datos sensibles y secrets en el c&#243;digo</p></li><li><p>Problemas criptogr&#225;ficos</p></li><li><p>Configuraciones inseguras</p></li></ul><p><strong>C&#243;mo usarlo:</strong> abre Claude Code en tu proyecto, escribe <code>/security-review</code> y deja que analice. El momento ideal es antes de cada deploy relevante, especialmente si has tocado autenticaci&#243;n, esquema de base de datos o endpoints de API.</p><p>Tambi&#233;n puedes integrarlo en GitHub Actions para que revise autom&#225;ticamente cada pull request. El repositorio oficial de Anthropic (<code>anthropics/claude-code-security-review</code>) tiene el workflow listo para copiar.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FECb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FECb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic 424w, https://substackcdn.com/image/fetch/$s_!FECb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic 848w, https://substackcdn.com/image/fetch/$s_!FECb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic 1272w, https://substackcdn.com/image/fetch/$s_!FECb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!FECb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic" width="905" height="297" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:297,&quot;width&quot;:905,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13082,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/196579469?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FECb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic 424w, https://substackcdn.com/image/fetch/$s_!FECb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic 848w, https://substackcdn.com/image/fetch/$s_!FECb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic 1272w, https://substackcdn.com/image/fetch/$s_!FECb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f3e4c-5536-498c-ad2e-c92c025b58bd_905x297.heic 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Un par de enlaces de inter&#233;s:</p><ul><li><p><strong><a href="https://support.claude.com/en/articles/11932705-automated-security-reviews-in-claude-code">Documentaci&#243;n oficial</a></strong> sobre /security-review en el blog de Anthropic. </p></li><li><p><strong><a href="https://github.com/anthropics/claude-code-security-review">Repositorio</a></strong> oficial en Github. </p></li></ul><div><hr></div><h2>3. Aikido: escaneo continuo del repositorio</h2><p><code>/security-review</code> analiza tus cambios de forma manual y bajo demanda. <strong><a href="https://www.aikido.dev">Aikido</a></strong> hace algo diferente: conecta con tu repositorio de GitHub, lo escanea de forma autom&#225;tica cada pocos d&#237;as y te avisa cuando encuentra algo.</p><p>El plan gratuito incluye hasta 10 repositorios, 2 usuarios y escaneo b&#225;sico. Para un builder individual o un equipo peque&#241;o es suficiente para tener visibilidad continua sin pagar nada.</p><p>Lo que escanea en el plan gratuito:</p><ul><li><p><strong>SCA</strong> (Software Composition Analysis): vulnerabilidades conocidas en tus dependencias npm. Las librer&#237;as que instalas tambi&#233;n tienen CVEs, y Aikido los detecta antes de que alguien los explote.</p></li><li><p><strong>SAST</strong> (Static Application Security Testing): an&#225;lisis est&#225;tico del c&#243;digo buscando patrones de vulnerabilidad.</p></li><li><p><strong>Detecci&#243;n de secrets</strong>: credenciales que pudieran haberse filtrado en el repositorio.</p></li><li><p><strong>Escaneo de cloud</strong>: misconfigurations en tu cuenta de Vercel, AWS o GCP si la conectas.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qh1b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qh1b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png 424w, https://substackcdn.com/image/fetch/$s_!Qh1b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png 848w, https://substackcdn.com/image/fetch/$s_!Qh1b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png 1272w, https://substackcdn.com/image/fetch/$s_!Qh1b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qh1b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png" width="1456" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1086,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:301409,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/196579469?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Qh1b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png 424w, https://substackcdn.com/image/fetch/$s_!Qh1b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png 848w, https://substackcdn.com/image/fetch/$s_!Qh1b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png 1272w, https://substackcdn.com/image/fetch/$s_!Qh1b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9613715-4e12-4a09-9611-2bfcd3432be0_1645x1227.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>La diferencia respecto a otras herramientas similares es la reducci&#243;n de ruido. Contextualiza los hallazgos seg&#250;n tu entorno real y descarta los que no suponen un riesgo efectivo. Menos alertas, m&#225;s se&#241;al.</p><p><strong>C&#243;mo empezar:</strong> entra en aikido.dev, conecta tu cuenta de GitHub y selecciona los repositorios que quieras monitorizar. El primer escaneo tarda entre 1 y 5 minutos.</p><div><hr></div><h2>Bonus track: pentesting con Aikido en Lovable</h2><p>Si construyes con Lovable, hay una capa adicional disponible desde marzo de 2026: <strong><a href="https://docs.lovable.dev/integrations/aikido">pentesting con IA</a></strong> directamente integrado en el editor.</p><p>La distinci&#243;n importante es que el esc&#225;ner de seguridad de Lovable (que ya exist&#237;a) hace an&#225;lisis est&#225;tico: lee el c&#243;digo y detecta patrones problem&#225;ticos. El pentesting de Aikido hace an&#225;lisis din&#225;mico: despliega agentes que atacan la aplicaci&#243;n en vivo, como lo har&#237;a un atacante real. Prueban flujos de autenticaci&#243;n, intentan acceder a datos de otros usuarios, sondean las APIs.</p><p>Las dos cosas son complementarias:</p><ul><li><p>El <strong>est&#225;tico</strong> detecta lo que podr&#237;a ir mal en el c&#243;digo. </p></li><li><p>El <strong>din&#225;mico</strong> detecta lo que efectivamente se rompe cuando alguien lo intenta.</p></li></ul><p>Para proyectos en Lovable, el precio de lanzamiento es de 100 d&#243;lares por test. Tambi&#233;n hay &#8220;Security weekends&#8221; gratuitos anunciados puntualmente. El modelo de pago es c&#243;modo: puedes iniciar el pentest sin pagar y solo desbloqueas el informe completo si decides que los hallazgos merecen el coste.</p><p>El flujo desde Lovable: Settings &#8594; Connectors &#8594; App connectors &#8594; Aikido. Desde ah&#237; puedes lanzar el test y los hallazgos se sincronizan directamente en tu proyecto para corregirlos sin salir del editor.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gxCT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gxCT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png 424w, https://substackcdn.com/image/fetch/$s_!gxCT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png 848w, https://substackcdn.com/image/fetch/$s_!gxCT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png 1272w, https://substackcdn.com/image/fetch/$s_!gxCT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!gxCT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png" width="1456" height="494" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:494,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Lovable se asocia con Aikido para llevar el pentesting a las aplicaciones  Vibe-Coded&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Lovable se asocia con Aikido para llevar el pentesting a las aplicaciones  Vibe-Coded" title="Lovable se asocia con Aikido para llevar el pentesting a las aplicaciones  Vibe-Coded" srcset="https://substackcdn.com/image/fetch/$s_!gxCT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png 424w, https://substackcdn.com/image/fetch/$s_!gxCT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png 848w, https://substackcdn.com/image/fetch/$s_!gxCT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png 1272w, https://substackcdn.com/image/fetch/$s_!gxCT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda071c73-9c40-4a0f-bf30-1d5803b63526_1600x543.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>El orden l&#243;gico</h2><p>Las tres validaciones no son alternativas, son capas:</p><ol><li><p>Las buenas pr&#225;cticas son el suelo. Sin ellas, nada de lo dem&#225;s importa.</p></li><li><p><code>/security-review</code> es la revisi&#243;n activa antes de cada deploy importante.</p></li><li><p>Aikido es la vigilancia continua en segundo plano.</p></li></ol><p>El pentesting es el siguiente paso cuando el producto ya est&#225; en producci&#243;n y quieres poder demostrar, no solo suponer, que es seguro.</p><p>Construir r&#225;pido no obliga a construir inseguro. Solo requiere que estas validaciones sean parte del flujo desde el principio, no algo que se a&#241;ade cuando ya hay un problema.</p><div><hr></div><div class="callout-block" data-callout="true"><p style="text-align: center;">Si este post te resulta &#250;til, &#191;qu&#233; te parece si lo compartes? &#128540;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/tu-app-es-segura-3-validaciones-antes?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Compartir&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.concriterio.blog/p/tu-app-es-segura-3-validaciones-antes?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Compartir</span></a></p></div><div><hr></div><p>&#161;Y hasta aqu&#237; la newsletter de esta semana! Espero que no haya sido muy densa.</p><p>Lo bueno de todo esto es que, como digo al final, &#161;lo puedes empezar a aplicar desde YA! No esperes a que salgan errores. </p><p>&#161;Nos vemos la pr&#243;xima semana!</p><p>Un abrazo. </p>]]></content:encoded></item><item><title><![CDATA[yoleo: pasado, presente y futuro de mi plataforma de libros]]></title><description><![CDATA[yoleo responde a la pregunta: "&#191;y ahora qu&#233; leo?"]]></description><link>https://www.concriterio.blog/p/yoleo-pasado-presente-y-futuro-de</link><guid isPermaLink="false">https://www.concriterio.blog/p/yoleo-pasado-presente-y-futuro-de</guid><dc:creator><![CDATA[Pol Marzà]]></dc:creator><pubDate>Wed, 29 Apr 2026 06:00:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7790fd4e-55cd-45db-9037-3ad14770e31b_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#161;Buenos d&#237;as!</p><p>Antes de nada, disc&#250;lpame por no escribir desde principios de mes&#8230; Pero hoy si, hoy vamos a hablar de algo que ya adelant&#233; hace unos d&#237;as en LinkedIn. Hoy vamos a hablar de <strong><a href="https://yoleo.io">yoleo</a></strong>. </p><div><hr></div><p><em>Hola, soy Pol Marz&#224;, AI Product Builder y cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><div><hr></div><h2>yoleo v1</h2><p>La primera vez que constru&#237; yoleo no ten&#237;a ni idea de programar. </p><p>2023 acababa de empezar. Unos pocos meses antes hab&#237;a llegado a nuestras vidas la versi&#243;n comercial de ChatGPT y, con ella, la promesa de poder construir cualquier cosa con la ayuda de la IA. O eso pensaba yo &#128517;</p><p>Pero si, lo constru&#237;. </p><p>Para esa primera versi&#243;n solo us&#233; HTML, CSS y JS. El funcionamiento era sencillo: ten&#237;as un input (una caja de texto) donde escrib&#237;as el t&#237;tulo de un libro que te hab&#237;a gustado. Luego, por detr&#225;s, yo lanzaba una petici&#243;n a la API de OpenAI (ChatGPT) con un <em>prompt</em> tipo:</p><p>&#8220;Act&#250;a como un librero y dame 5 libros que tengan relaci&#243;n sem&#225;ntica con {libro}&#8221;</p><p>Pero esta primera versi&#243;n ten&#237;a dos problemas:</p><ol><li><p>ChatGPT alucinaba bastante (se inventaba t&#237;tulos)</p></li><li><p>&#161;ALERTA! La clave API estaba expuesta en el c&#243;digo</p></li></ol><p>El primer problema ten&#237;a un pase, no era cr&#237;tico. Pero el segundo&#8230; Ese s&#237; que pod&#237;a ser un problem&#243;n &#128579;</p><p>Lo intent&#233; ocultar, lo intent&#233; enmascarar, pero si sab&#237;as lo que buscabas&#8230; No era dif&#237;cil de encontrar. </p><div><hr></div><h2>yoleo v2</h2><p>Unos meses m&#225;s tarde de construir esta primera versi&#243;n, un compa&#241;ero de trabajo me present&#243; a un desarrollador llamado <strong><a href="https://www.linkedin.com/in/pablofguillen/">Pablo</a></strong>. </p><p>Con &#233;l, constru&#237; la segunda versi&#243;n de yoleo. Pablo se encarg&#243; de toda la parte de backend y base de datos. Yo me encargu&#233; del front y de la direcci&#243;n de producto. </p><p>Juntos fuimos tomando decisiones importantes y resolvimos los problemas de la primera versi&#243;n:</p><ol><li><p>Alucinaciones &#8594; Compar&#225;bamos cada libro devuelto por ChatGPT con la API de Google Books. Si exist&#237;a lo mostr&#225;bamos al usuario y si no, no. </p></li><li><p>API expuesta &#8594; Ahora ya en variables de entorno. Lejos de ojos fisgones. </p></li><li><p>A&#241;adimos la opci&#243;n de que el usuario se pudiera registrar para tener un historial de sus libros buscados. </p></li></ol><p>Con todo esto, en 2024 presentamos el proyecto en LinkedIn y a alguien le pareci&#243; interesante qu&#233; y c&#243;mo lo hab&#237;amos construido, as&#237; que nos fuimos para Madrid a presentarlo. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Bkio!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bkio!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!Bkio!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!Bkio!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!Bkio!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Bkio!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:373897,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/195788576?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Bkio!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic 424w, https://substackcdn.com/image/fetch/$s_!Bkio!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic 848w, https://substackcdn.com/image/fetch/$s_!Bkio!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic 1272w, https://substackcdn.com/image/fetch/$s_!Bkio!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8707f-5c56-4bf7-affe-06018512d698_2048x1536.heic 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>yoleo v3</h2><p>Y aqu&#237; llegamos a la versi&#243;n actual del proyecto &#129395;</p><p>&#191;Qu&#233; ha cambiado?</p><ol><li><p>Para las peticiones de la API ya no uso (solamente) ChatGPT, sino que uso la API de <strong><a href="https://openrouter.ai">Openrouter</a> </strong>y voy cambiando de proveedores. Al principio empec&#233; con Gemini 2.5 Flash, pero ahora estoy usando Deepseek v3.2 que ofrece resultados parecidos a un coste menor. </p></li><li><p>En la v2 de yoleo us&#225;bamos MongoDB. Ahora uso Supabase tanto para almacenar los datos (libros, autores, portadas, preferencias de los usuarios&#8230;) como para el OAuth con Google. </p></li><li><p>En un principio, esta versi&#243;n usaba la <em>search_tool</em> (a trav&#233;s de la API), tanto para buscar libros nuevos como para ofrecer las recomendaciones (en cada ficha se ofrecen hasta  8 libros relacionados), pero era MUY caro. Ahora funciona con <strong>embeddings</strong> de libros que ya se encuentran dentro de yoleo. Es decir, he vectorizado los 50k libros. </p></li></ol><p>Lo que m&#225;s me gusta de esta nueva versi&#243;n es:</p><ul><li><p>Las portadas &#8594; Ten&#237;a un problema con ellas, ya que la API de Google Books y la de Open Library, la mitad de las veces no me devolv&#237;an la portada del libro en su idioma o directamente no me devolv&#237;an nada &#129315; As&#237; que dije &#8220;hasta aqu&#237;&#8221; y, lo que ten&#237;a que ser un parche se ha convertido en una de sus se&#241;as. </p><p>Las portadas son generadas al vuelo y se toma su <em>main_category</em> como referencia para elegir el color de la portada. Adem&#225;s, tambi&#233;n se a&#241;ade el autor/a, el t&#237;tulo y a&#241;o de publicaci&#243;n. </p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qzd4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qzd4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qzd4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qzd4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qzd4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!qzd4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg" width="1155" height="949" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:949,&quot;width&quot;:1155,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114295,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/195788576?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2bfc3c-ee49-4f03-ae00-c1e12343ea30_1155x1221.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qzd4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qzd4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qzd4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qzd4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f6fb956-93e7-42e3-b067-cd278668fa59_1155x949.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Afinidad &#8594; Esto es algo que no he encontrado en otras p&#225;ginas y se trata de mostrarte como de posible es que te guste un libro en funci&#243;n de los libros que hayas valorado o le&#237;do previamente. Lo mejor de todo es que no usa IA sino que se basa en los libros que has le&#237;do o puntuado. Pura l&#243;gica. Puedes desbloquear la afinidad cuando hayas valorado/a&#241;adido un m&#237;nimo de 5 libros a tu biblioteca &#129392;</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!984C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!984C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic 424w, https://substackcdn.com/image/fetch/$s_!984C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic 848w, https://substackcdn.com/image/fetch/$s_!984C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic 1272w, https://substackcdn.com/image/fetch/$s_!984C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!984C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic" width="1456" height="1093" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1093,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77945,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.concriterio.blog/i/195788576?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!984C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic 424w, https://substackcdn.com/image/fetch/$s_!984C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic 848w, https://substackcdn.com/image/fetch/$s_!984C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic 1272w, https://substackcdn.com/image/fetch/$s_!984C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e18426-9d31-4c94-99f0-bfa74936fcd9_1608x1207.heic 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>Hay m&#225;s cosas y muchas m&#225;s que espero ir a&#241;adiendo (poco a poco) a yoleo. </p><p>Y muchas otras cosas que ya existen, pero no puedo explicarlas todas. As&#237; que te dejo que seas tu quien las descubras &#129303; Actualmente la plataforma cuenta con:</p><p>Una de las cosas que he decidido hacer en este proyecto es intentar ser lo m&#225;s transparente posible, tanto en cuanto a los datos de la plataforma (n&#250;mero de libros, autores y usuarios) con contadores din&#225;micos que encontrar&#225;s mientras navegas por yoleo, como lo que me cuesta mantener el proyecto en marcha (lo puedes ver al final de la landing).</p><p>De cara a las pr&#243;ximas semanas, me gustar&#237;a seguir mejorando la plataforma pero eso solo tendr&#225; sentido si te registras, compartes y le das cari&#241;o a <strong><a href="https://yoleo.io">yoleo</a></strong>. </p><p>&#191;Hay hueco para otra plataforma de libros? </p><p>&#191;Qu&#233; echas de menos en la plataforma actual? </p><p>D&#233;jamelo en los comentarios &#128071;</p><div><hr></div><p>&#161;Y hasta aqu&#237; la newsletter!</p><p>Nos vemos pr&#243;ximamente :)</p>]]></content:encoded></item></channel></rss>