<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alvaro Llamojha</title>
    <description>The latest articles on DEV Community by Alvaro Llamojha (@llamojha).</description>
    <link>https://dev.to/llamojha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3617468%2F194837f9-bb65-4a5b-b928-3d17e82a7234.jpeg</url>
      <title>DEV Community: Alvaro Llamojha</title>
      <link>https://dev.to/llamojha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/llamojha"/>
    <language>en</language>
    <item>
      <title>Agent-as-a-Service: Comparing Claude Managed Agents and Amazon Bedrock AgentCore</title>
      <dc:creator>Alvaro Llamojha</dc:creator>
      <pubDate>Sun, 12 Apr 2026 23:36:06 +0000</pubDate>
      <link>https://dev.to/aws-builders/agent-as-a-service-comparing-claude-managed-agents-and-amazon-bedrock-agentcore-22eb</link>
      <guid>https://dev.to/aws-builders/agent-as-a-service-comparing-claude-managed-agents-and-amazon-bedrock-agentcore-22eb</guid>
      <description>&lt;h2&gt;
  
  
  Agent-as-a-Service
&lt;/h2&gt;

&lt;p&gt;I've come to realise that building a good and secure agent is not straightforward, it relies on a good harness and good infrastructure. It needs a runtime, isolation boundaries, session handling, recovery logic, credential management, observability, and some workable approach to governance once more than one team starts building them. The scaffolding required to make that agent do real work safely and reliably.&lt;/p&gt;

&lt;p&gt;That is a lot of work and a lot of moving pieces, and why should you do it yourself when someone else can handle it for you? This is where Agents as a Service come in.&lt;/p&gt;

&lt;p&gt;Anthropic recently announced &lt;a href="https://platform.claude.com/docs/en/managed-agents/overview" rel="noopener noreferrer"&gt;&lt;strong&gt;Claude Managed Agents&lt;/strong&gt;&lt;/a&gt; and AWS had its own solution already &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html" rel="noopener noreferrer"&gt;&lt;strong&gt;Amazon Bedrock AgentCore&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;They are both responses to the same problem, but they solve it from different starting assumptions. Anthropic is packaging a managed &lt;strong&gt;Claude-native worker runtime&lt;/strong&gt;. AWS is packaging a &lt;strong&gt;modular platform of agent infrastructure services&lt;/strong&gt;. One is closer to managing the worker itself. The other is closer to managing the factory around the worker.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude Managed Agents
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fca0na4kz8e1vqn25nkjh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fca0na4kz8e1vqn25nkjh.png" alt="CMA" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/engineering/managed-agents" rel="noopener noreferrer"&gt;Claude Managed Agents&lt;/a&gt; is Anthropic’s answer to Agent as a Service. The product is opinionated by design. Instead of exposing a set of low-level infrastructure building blocks and asking users to assemble them, Anthropic gives you a managed runtime for running a Claude-based agent over time.&lt;/p&gt;

&lt;p&gt;The important part in here is that Anthropic is taking ownership of the runtime concerns around the agent itself. Session handling, execution flow, the harness around the model, and the relationship between long-running work and the execution environment are treated as part of the managed product.&lt;/p&gt;

&lt;p&gt;Architecturally, this is where Anthropic’s approach stands out. The system separates the orchestration layer from the tool execution environment and persistent session state. In practice, that means the session can outlive the specific container doing the work. If execution fails or a container dies, the agent does not have to lose the whole thread of work with it.&lt;/p&gt;

&lt;p&gt;This approach reduces the amount of infrastructure a team has to build before the agent becomes useful. You are closer to a working system earlier. It also means you are buying into Anthropic’s way of structuring agent execution. That is the trade-off here. You get speed and a more integrated runtime, but the abstraction is more opinionated and more tightly coupled to the Claude ecosystem.&lt;/p&gt;

&lt;p&gt;If your team is already committed to Claude (and only to Claude) and wants the shortest path from prototype to production, that is exactly the appeal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Amazon Bedrock AgentCore
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdelduklndl57a1lkfdeq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdelduklndl57a1lkfdeq.png" alt="ABAC" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AWS is not really trying to package the entire agent experience into one tightly integrated harness. Instead, it does what it knows best. It is building a broader system of services around the operational realities of agents. &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-how-it-works.html" rel="noopener noreferrer"&gt;Runtime&lt;/a&gt; is part of that system, but it is not the whole story. Around it, AWS has added &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/how-it-works.html" rel="noopener noreferrer"&gt;Memory&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-core-concepts.html" rel="noopener noreferrer"&gt;Gateway&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-overview.html" rel="noopener noreferrer"&gt;Identity&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/observability.html" rel="noopener noreferrer"&gt;Observability&lt;/a&gt;, Policy, &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/browser-tool.html" rel="noopener noreferrer"&gt;Browser&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/code-interpreter-tool.html" rel="noopener noreferrer"&gt;Code Interpreter&lt;/a&gt;, and &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/registry.html" rel="noopener noreferrer"&gt;Registry&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It assumes that production agent systems have multiple distinct concerns, and those concerns should have separate surfaces, separate controls, and separate service boundaries.&lt;br&gt;&lt;br&gt;
Runtime handles execution. Identity handles authentication and authorization. Gateway helps expose tools and services in a cleaner way, including MCP-oriented patterns. Memory deals with short-term and longer-lived context. Observability and Policy exist because once agents start taking actions, inspection and guardrails stop being optional. &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/registry.html" rel="noopener noreferrer"&gt;Registry&lt;/a&gt; exists because once multiple teams start building agents, tools, prompts, and workflows, discovery and governance become real platform problems.&lt;/p&gt;

&lt;p&gt;It is worth mentioning that while you can use Amazon Bedrock catalogue of models (including Claude models), you can also &lt;a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/using-any-model.html" rel="noopener noreferrer"&gt;bring your own model&lt;/a&gt; and integrate it into the runtime. This gives you the flexibility you need in an era where a new model seems to appear every week.&lt;/p&gt;

&lt;p&gt;So, while Claude Managed Agents feels like a managed worker runtime, AgentCore feels more like a platform substrate for agent systems. It is less about hiding the moving parts and more about standardizing them.&lt;/p&gt;

&lt;p&gt;That makes it a better fit for teams that already think in platform terms, care about explicit boundaries, or need their agent stack to sit naturally inside broader AWS operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing reflects the philosophy
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener noreferrer"&gt;Claude Managed Agents pricing&lt;/a&gt;, you pay for model usage, and on top of that Anthropic charges a session-based runtime fee while the agent is actively running. Claude Managed Agents keeps pricing relatively simple: you pay the normal Claude token rates, plus &lt;strong&gt;$0.08 per active session-hour&lt;/strong&gt; while the agent is running, which makes it easier to estimate from the outside because the extra runtime cost is tied to the session itself rather than broken into infrastructure-style units.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/bedrock/agentcore/pricing/" rel="noopener noreferrer"&gt;Amazon Bedrock AgentCore pricing&lt;/a&gt; is more granular and more AWS-like. You pay for model inference separately, and then pay infrastructure-style pricing for Runtime at &lt;strong&gt;$0.0895 per vCPU-hour&lt;/strong&gt; and &lt;strong&gt;$0.00945 per GB-hour&lt;/strong&gt;, with other services such as Gateway and Memory billed by usage as needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which one actually fits better
&lt;/h2&gt;

&lt;p&gt;This is not a winner-takes-all comparison. The better product depends on where you want the abstraction boundary to sit.&lt;/p&gt;

&lt;p&gt;If you want the provider to manage the worker, Claude Managed Agents is closer to that model. Anthropic owns more of the harness, the session lifecycle, and the execution flow. That is attractive when speed matters, when you already trust the Claude stack, and when your main goal is to get a capable Claude-based worker into production without building too much surrounding infrastructure yourself.&lt;/p&gt;

&lt;p&gt;If you want the provider to manage the factory around the worker, AgentCore is closer to that model. AWS gives you a broader set of services for runtime, memory, identity, gateway, observability, policy, and discovery. That is a better fit for environments where those concerns need to be explicit, separate, and governable.&lt;/p&gt;

&lt;p&gt;So the real decision is not whether one product is universally better. The real decision is whether you want a more opinionated managed runtime or a more modular agent platform.&lt;/p&gt;

&lt;p&gt;If you want a managed Claude worker runtime, Claude Managed Agents is the cleaner answer.&lt;br&gt;&lt;br&gt;
If you want a modular enterprise platform for agents, AgentCore is the stronger answer.&lt;/p&gt;

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

&lt;p&gt;Managed agent services are becoming important for the same reason managed databases, serverless runtimes, and managed messaging systems became important. Teams do not want to keep rebuilding the substrate around the thing they actually care about.&lt;/p&gt;

&lt;p&gt;In the case of agents, that substrate includes execution, isolation, sessions, tools, credentials, observability, memory, policy, identity, and governance. That is the space both Claude Managed Agents and Amazon Bedrock AgentCore are trying to own.&lt;/p&gt;

&lt;p&gt;Claude Managed Agents reduces complexity by owning more of the runtime harness itself.&lt;/p&gt;

&lt;p&gt;Amazon Bedrock AgentCore reduces complexity by standardizing the surrounding services as a platform.&lt;/p&gt;

&lt;p&gt;If you have already tried Claude Managed Agents, AgentCore, or both, let me know how it felt in practice. Share your experience in the comments. &lt;/p&gt;

</description>
      <category>claude</category>
      <category>aws</category>
      <category>ai</category>
    </item>
    <item>
      <title>Cómo sacar el máximo partido a Kiro</title>
      <dc:creator>Alvaro Llamojha</dc:creator>
      <pubDate>Mon, 16 Mar 2026 22:20:04 +0000</pubDate>
      <link>https://dev.to/aws-builders/como-sacar-el-maximo-partido-a-kiro-4i00</link>
      <guid>https://dev.to/aws-builders/como-sacar-el-maximo-partido-a-kiro-4i00</guid>
      <description>&lt;p&gt;Empecé con Kiro hace unos meses, en octubre de 2025, durante un hackathon llamado Kiroween. Fue básicamente mi punto de partida para empezar a probar Kiro como IDE y entender qué estaba intentando hacer AWS con esta propuesta. Mi objetivo era probar Kiro y ver en qué se diferenciaba de otras herramientas que ya estaba usando.&lt;/p&gt;

&lt;p&gt;En aquel entonces tampoco había demasiadas guías sobre Kiro. Así que casi todo lo que hice fue exploratorio: abrir proyectos, probar el vibecoding, entender eso del spec-driven development y ver cómo respondía el IDE.&lt;/p&gt;

&lt;p&gt;Con el paso de los meses y metiéndome más en la comunidad de Kiro, empecé a descubrir todo lo que realmente hay detrás del IDE. No es solamente un editor con IA. Hay todo un sistema alrededor de cómo gestionar el contexto de la IA, cómo configurar el comportamiento del IDE y cómo gobernar lo que hace.&lt;/p&gt;

&lt;p&gt;Ahí es donde empiezan a aparecer conceptos como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;steerings&lt;/li&gt;
&lt;li&gt;hooks&lt;/li&gt;
&lt;li&gt;MCPs&lt;/li&gt;
&lt;li&gt;powers&lt;/li&gt;
&lt;li&gt;agentes&lt;/li&gt;
&lt;li&gt;prompts&lt;/li&gt;
&lt;li&gt;skills&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si ya estás usando Kiro, o estás pensando en usarlo, y aun no sabes como encajan todas estas piezas, este artículo es para ti.&lt;/p&gt;

&lt;h2&gt;
  
  
  TLDR: instalar Kiro
&lt;/h2&gt;

&lt;p&gt;Si todavía no tienes Kiro instalado, aquí tienes los enlaces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kiro.dev/docs/getting-started/installation/" rel="noopener noreferrer"&gt;Instalación de Kiro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kiro.dev/downloads/" rel="noopener noreferrer"&gt;Instalación en Windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kiro.dev/docs/cli/installation/" rel="noopener noreferrer"&gt;Instalación en Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Con eso deberías poder tener el IDE funcionando en unos minutos.&lt;br&gt;
A partir de aquí es donde empieza lo interesante.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steerings
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fln5u8gu7wnrvh2fq36yv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fln5u8gu7wnrvh2fq36yv.png" alt="Kiro Steerings" width="578" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Los &lt;a href="https://kiro.dev/docs/steering/" rel="noopener noreferrer"&gt;Steerings&lt;/a&gt; son simplemente archivos Markdown donde defines instrucciones, reglas o contexto que quieres que Kiro tenga en cuenta cuando trabaja en tu proyecto. &lt;/p&gt;

&lt;p&gt;No solamente sirven para dar instrucciones. También pueden contener información estructural sobre tu proyecto.&lt;/p&gt;

&lt;p&gt;Por ejemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La estructura y organizacion del repositorio&lt;/li&gt;
&lt;li&gt;Convenciones de código y nomenclatura&lt;/li&gt;
&lt;li&gt;Arquitectura del proyecto&lt;/li&gt;
&lt;li&gt;Como generar la documentación&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Uno de los casos más comunes es pedirle a Kiro que genere los &lt;em&gt;Foundational&lt;/em&gt; Steerings.&lt;/p&gt;

&lt;p&gt;Cuando haces esto, Kiro escanea tu proyecto y genera varios archivos dentro del directorio de configuración de Kiro. Normalmente incluyen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;producto&lt;/li&gt;
&lt;li&gt;estructura&lt;/li&gt;
&lt;li&gt;tech&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Todo esto se genera usando el contexto que Kiro detecta en el repositorio. Es un buen punto de partida porque te da una base de documentación que la IA puede usar cuando trabaja en el código.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steerings que recomiendo usar
&lt;/h3&gt;

&lt;p&gt;Además de los foundational steerings, hay varios tipos que son bastante útiles añadir en proyectos reales.&lt;/p&gt;

&lt;p&gt;Por ejemplo:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reglas de trabajo en el proyecto&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cómo trabaja el equipo en ese repositorio. Esto puede incluir cosas como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Convenciones de nomenclaturas&lt;/li&gt;
&lt;li&gt;Estructura de carpetas&lt;/li&gt;
&lt;li&gt;Vision y Mision del projecto&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esto ayuda mucho a que Kiro no empiece a generar cosas que se salgan del estilo del proyecto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Estilo de documentación&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Puedes definir cómo se documenta el código, qué secciones deben aparecer, o cómo se escriben los READMEs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Convenciones de arquitectura&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Si tu proyecto sigue un patrón concreto, hexagonal, event driven, clean architecture, etc., tener eso definido en un steering ayuda bastante a mantener consistencia.&lt;/p&gt;

&lt;p&gt;Cuanto más claro le dejes a Kiro cómo funciona tu proyecto, mejores resultados vas a obtener.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hooks
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fquoqo18s8ognijcf5tuz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fquoqo18s8ognijcf5tuz.png" alt="Kiro Hooks" width="628" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Los &lt;a href="https://kiro.dev/docs/hooks/" rel="noopener noreferrer"&gt;Hooks&lt;/a&gt; son otra pieza bastante potente dentro de Kiro. Básicamente son prompts que se ejecutan automáticamente cuando ocurre un evento.&lt;/p&gt;

&lt;p&gt;Unos ejemplos de esos eventos son:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cuando se crea, modifica o elimina un fichero&lt;/li&gt;
&lt;li&gt;Al empezar o terminar una tarea&lt;/li&gt;
&lt;li&gt;Manualmente&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un ejemplo bastante simple:&lt;br&gt;
Si estás modificando archivos Markdown, puedes tener un hook que:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ejecute un lint&lt;/li&gt;
&lt;li&gt;Formatee el Markdown&lt;/li&gt;
&lt;li&gt;Revise enlaces rotos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Otro ejemplo:&lt;br&gt;
Si estás modificando código, podrías tener un hook que genere automáticamente documentación sobre los cambios que se han hecho.&lt;/p&gt;

&lt;p&gt;Esto abre la puerta a automatizar bastantes cosas dentro del flujo de desarrollo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cómo empezar con hooks
&lt;/h3&gt;

&lt;p&gt;Los hooks tienen distinta maneras de dispararse: &lt;a href="https://kiro.dev/docs/hooks/types/" rel="noopener noreferrer"&gt;hook triggers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mi recomendación es empezar siempre con hooks manuales.&lt;/p&gt;

&lt;p&gt;Primero pruebas qué hacen, verificas que el resultado es el esperado y te aseguras de que no están haciendo nada raro.&lt;br&gt;
Cuando ya estás contento con el resultado entonces sí puedes empezar a automatizarlos.&lt;br&gt;
Recuerda que los hooks lanzan una tarea en Kiro, si tienes muchos hooks automatizados eso puede acarrear un coste elevado de creditos. Esa fue una de las primeras lecciones que aprendi con los hooks. &lt;/p&gt;

&lt;h2&gt;
  
  
  MCPs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwimtp0frka1y1xbb400.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwimtp0frka1y1xbb400.png" alt="Kiro MCPs" width="612" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Los &lt;a href="https://kiro.dev/docs/mcp/" rel="noopener noreferrer"&gt;MCPs&lt;/a&gt; son otra de las piezas importantes dentro de Kiro y de la IA en general.&lt;/p&gt;

&lt;p&gt;Para explicarlo de una manera muy sencilla, un MCP es básicamente como una API para que la IA lo use. Los MCPs permiten conectar la IA con servicios externos. Le da acceso a información o herramientas que normalmente no estarían dentro del contexto del proyecto.&lt;/p&gt;

&lt;p&gt;Algunos ejemplos bastante comunes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cocumentación de AWS&lt;/li&gt;
&lt;li&gt;Context7 para documentación técnica&lt;/li&gt;
&lt;li&gt;Integración con Atlassian, como Jira o Confluence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Puedes conectar Kiro con documentación, herramientas externas o sistemas internos del equipo y hacer que la IA pueda trabajar con todo eso.&lt;/p&gt;

&lt;h2&gt;
  
  
  Powers
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqjf5tzqurv178ca5b309.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqjf5tzqurv178ca5b309.png" alt="Kiro Powers" width="640" height="770"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La parte no tan buena de los MCPs es que añade contexto dentro de la sesión de IA. Y cuantos mas MCPs tengas activados mas contexto va a consumir, causando que te cueste mas las tareas.&lt;/p&gt;

&lt;p&gt;Muchas veces no necesitas tener todos los MCPs activos todo el tiempo. Y aquí es donde entran los Kiro &lt;a href="https://kiro.dev/docs/powers/" rel="noopener noreferrer"&gt;Powers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Los powers permiten encapsular tareas o dominios que se repiten mucho. Includas tareas que usen MCPs. &lt;br&gt;
Imaginate que tienes un MCP de la base de datos Supabase. Pero para esta tarea sabes que no vas a necesitar la base de datos. Si lo encapsulas con un Power, Kiro lo invocaria solo cuando necesites la base de datos, liberandote el contexto que usaria ese MCP cuando no lo uses.&lt;/p&gt;

&lt;p&gt;Hace tiempo escribir un articulo sobre la creacion de mi primer Power (esta en Ingles, sorry): &lt;a href="https://dev.to/kirodotdev/building-my-first-kiro-power-posthog-observability-fik"&gt;Construyendo mi primer Kiro Power - Posthog Observability&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agentes customizables
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0novq28mpwcm9ncaqnzn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0novq28mpwcm9ncaqnzn.png" alt="Custom Agents" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A principios de este año, Kiro anuncio los &lt;a href="https://kiro.dev/docs/chat/subagents/" rel="noopener noreferrer"&gt;agentes customizables&lt;/a&gt; o sub-agentes. Los agentes ya existian dentro de Kiro, esto lo habréis visto si ya habéis hecho el spec-driven development en el IDE o el &lt;a href="https://kiro.dev/docs/cli/chat/planning-agent/" rel="noopener noreferrer"&gt;modo plan&lt;/a&gt; con el CLI. Ambos usan agentes que ya están definidos dentro de Kiro, para ejecutar una tipo especifico de tarea. &lt;/p&gt;

&lt;p&gt;Los agents tienen una structura y un prompt propio que lo hace comportarse de la manera especificada. &lt;/p&gt;

&lt;p&gt;Lo que hacen es que tienen una estructura y un prompt interno en el cual solamente aparece el agente. Tiene ciertas herramientas en las cuales están habilitadas o no. Y pueden tener selecionado un modelo. &lt;br&gt;
Por ejemplo, el agente del plan se comporta como un guia para planificar una tarea dada, te hace preguntas acerca de la tarea y te hace un plan detallado. Este agente tiene la herramienta de escribir ficheros deshabilitada, ya que solamente es un plan el que vas a hacer, no vas a hacer la implementación.&lt;/p&gt;

&lt;p&gt;El plan es un agente que ya estaba pre-definido por Kiro. Ahora tú puedes hacer los tuyos propios, lo que significa que puedes llevar esto al siguiente nivel. O cuatro niveles mas alla. Y por que cuatro? porque con los sub-agentes puedes tener cuatro agentes corriendo en paralelo. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1hf40qmfdjy91rpybbx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1hf40qmfdjy91rpybbx.png" alt="Agentes en paralelo" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cómo uso yo los agentes customizables
&lt;/h2&gt;

&lt;p&gt;Los agentes que siempre uso son agentes que estén relacionados con lo que estás haciendo en el proyecto como tal.&lt;/p&gt;

&lt;p&gt;Por ejemplo, tengo un proyecto que es de TypeScript, pues tengo un agente que es &lt;a href="https://kirohub.dev/resource/llamojha/typescript-expert" rel="noopener noreferrer"&gt;experto en TypeScript&lt;/a&gt;. Tiene un prompt especifico de como trabajar como un experto de TypeScript. Y le doy a habilitar tools de write y read.&lt;/p&gt;

&lt;h2&gt;
  
  
  Consejo de LLMs para planificación y arquitectura
&lt;/h2&gt;

&lt;p&gt;Otro ejemplo que tengo es para tareas de planificación, arquitectura y toma de decisiones.&lt;/p&gt;

&lt;p&gt;Normalmente, si le preguntas al mejor modelo que tengas, te puede dar una opción que sea bastante buena, pero lo ideal es que tengas varias opciones, ya que la IA es no-deterministica y puede alucinar. &lt;/p&gt;

&lt;p&gt;A la hora de hacer planificación, arquitectura, toma de decisiones, asuntos en los cuales sea más crear un plan o un diseño, y no una implementación, en la vida real te juntas con un equipo, haces una lluvia de ideas y tienes diferentes opiniones por parte del equipo. &lt;/p&gt;

&lt;p&gt;¿Cómo llevariamos esto dentro de Kiro? Tienes agentes customizables que tienen un prompt específico, por ejemplo en planificar. Como en los agentes customizables tú puedes decir qué modelo está usando, le puedes dar un modelo distinto para el mismo tipo de agente. Por ejemplo: Opus, Sonnet, Haiku y Auto, cuatro modelos.&lt;/p&gt;

&lt;p&gt;A la hora de hacer un plan, le pido a Kiro que use mi &lt;em&gt;Consejo de Agentes&lt;/em&gt; en paralelo. Kiro lanza estos cuatro modelos corriendo en paralelo haciéndome un plan independiente cada uno. Una vez terminan, el agente por defecto me compila esos cuatro planes, cogiendo lo mejor de cada uno. &lt;/p&gt;

&lt;p&gt;Esto es algo que cambia el modelo de hacer una planificación completamente. Haces un brainstorming de varios modelos y te aseguras de tener siempre lo mejor de lo mejor. A lo mejor un modelo puede alucinar, pero que cuatro alucinen a la vez es más difícil. &lt;/p&gt;

&lt;h2&gt;
  
  
  Spec-driven development
&lt;/h2&gt;

&lt;p&gt;La parte que me llamó más la atención de Kiro es el &lt;a href="https://kiro.dev/docs/specs/" rel="noopener noreferrer"&gt;spec-driven development&lt;/a&gt; que ya estaba incluido dentro del IDE.&lt;/p&gt;

&lt;p&gt;Para los desarolladores este no es un concepto del todo nuevo, es parecido a definir un ticket, darle unos requerimientos, sacar el diseño y luego implementar el ticket basado en distintas sub-tareas.&lt;/p&gt;

&lt;p&gt;El spec-mode de Kiro te crea unos requerimientos, un diseño y genera una lista de tareas, todo en ficheros markdown, en los cuales tú los puedes revisar y tener contexto de tu aplicación o tu repositorio.&lt;/p&gt;

&lt;p&gt;Si os interesa que escriba un articulo mas centrado en Spec-Driven Development, dejadme un comentario con vuestro interes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;En este artículo hemos visto lo que son los Steerings, Hooks, MCPs, Powers y los agentes customizables, y hemos visto por encima el spec-driven development.&lt;/p&gt;

&lt;p&gt;Todas estas funcionalidades dentro de Kiro se define como el contexto de la IA. Si habeis escuchado hablar del Context-Driven Development, es este contexto al que se refieren. &lt;/p&gt;

&lt;p&gt;Este articulo es el resultado de un aprendizaje que he hecho a lo largo de los meses. Y el aprendizaje es continuo, me sigo encontrando nuevas funcionalidades, como por ejemplo los &lt;a href="https://kiro.dev/docs/skills/" rel="noopener noreferrer"&gt;skills&lt;/a&gt;, que no los he mencionado, pero es algo que también está incluido dentro de Kiro y es se han hecho muy famosos recientemente.&lt;/p&gt;

&lt;p&gt;Si no estás usando Kiro, te recomendaría que lo pruebes, tanto el IDE como por la línea de comandos, el CLI, y que pruebes el spec-driven development.&lt;/p&gt;

&lt;p&gt;Y si te interesa saber mas sobre Kiro, el Context-Driven Development y de Spec-Driven Development, o quieres comentar tu experiencia con Kiro, no dudes en contáctarme o escríbelo en los comentarios. &lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
      <category>ai</category>
    </item>
    <item>
      <title>Running Kiro CLI from a Raspberry Pi 400</title>
      <dc:creator>Alvaro Llamojha</dc:creator>
      <pubDate>Thu, 15 Jan 2026 14:32:35 +0000</pubDate>
      <link>https://dev.to/kirodotdev/running-kiro-cli-from-a-raspberry-pi-400-4d2h</link>
      <guid>https://dev.to/kirodotdev/running-kiro-cli-from-a-raspberry-pi-400-4d2h</guid>
      <description>&lt;p&gt;A few years ago, I got a Raspberry Pi 400 as a birthday present. I looked up projects, ideas, cool builds, but nothing really grabbed me. So it went back in the box.&lt;/p&gt;

&lt;p&gt;Recently, I’ve been building with Kiro for a couple of months now, and one day I found the Raspberry Pi and the idea came to me. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if I could run Kiro CLI from the Raspberry Pi?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Raspberry Pi setup
&lt;/h2&gt;

&lt;p&gt;I had to buy a microSD and a power cord first before I could get hands on. For the OS on the Micro SD, I used &lt;a href="https://www.raspberrypi.com/software/" rel="noopener noreferrer"&gt;Raspberry Pi Imager&lt;/a&gt; selected the default Raspberry Pi OS (Debian-based), went through the configuration, plugged in the Micro SD and connected the Pi. After a couple of minutes, I was able to SSH in. &lt;/p&gt;

&lt;p&gt;SSH in (if it's in your local network):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh user@&amp;lt;your-pi-hostname-or-ip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then the usual housekeeping + tools I knew I’d need for the Kiro install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# update the Pi&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;

&lt;span class="c"&gt;# dev box basics (I wanted git, and I installed Node because I plan to build a small wrapper later)&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://deb.nodesource.com/setup_20.x | &lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; bash -
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; nodejs
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One thing that becomes important later is that this machine is ARM64:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;uname&lt;/span&gt; &lt;span class="nt"&gt;-m&lt;/span&gt;
&lt;span class="c"&gt;# aarch64 - you can also see this when doing SSH &lt;/span&gt;
ldd &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;span class="c"&gt;# ldd (Debian GLIBC 2.41-12+rpt1) 2.41&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Installing Kiro CLI and hitting SIGILL
&lt;/h2&gt;

&lt;p&gt;Once everything was ready, I went straight to the official Kiro CLI install docs and followed the Linux ARM (aarch64) instructions:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kiro.dev/docs/cli/installation/#linux-arm-aarch64" rel="noopener noreferrer"&gt;Kiro CLI — Linux ARM (aarch64)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I downloaded it and ran the installer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--proto&lt;/span&gt; &lt;span class="s1"&gt;'=https'&lt;/span&gt; &lt;span class="nt"&gt;--tlsv1&lt;/span&gt;.2 &lt;span class="nt"&gt;-sSf&lt;/span&gt; &lt;span class="s1"&gt;'https://desktop-release.q.us-east-1.amazonaws.com/latest/kirocli-aarch64-linux.zip'&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="s1"&gt;'kirocli.zip'&lt;/span&gt;
unzip kirocli.zip
bash ./kirocli/install.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The install itself looked fine. The binary was in place. Edit the Path in the .bashrc to include the path for the kiro-cli bin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'export PATH="$HOME/.local/bin:$PATH"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.bashrc
&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then I ran:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;kiro-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;…and got:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Illegal instruction &lt;span class="o"&gt;(&lt;/span&gt;SIGILL&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I knew then that this may not be straightforward, and I may had to refresh my processor architecture knowledge. Just in case, I've tried re-installing, rebooting, trying multiple times but still was the same issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix: use the ARM64 musl build
&lt;/h2&gt;

&lt;p&gt;After going back to the docs (again), I noticed the musl option:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kiro.dev/docs/cli/installation/#linux-arm-aarch64-with-musl" rel="noopener noreferrer"&gt;Kiro CLI — Linux ARM (aarch64) with musl&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The docs frame it mostly around &lt;code&gt;glibc&lt;/code&gt; version. My &lt;code&gt;glibc&lt;/code&gt; was new enough (2.41), so I assumed the standard build was the right one.&lt;/p&gt;

&lt;p&gt;But at that point, I’d already tried the standard route and it was consistently crashing with SIGILL, so I figured: let’s just try the musl build.&lt;/p&gt;

&lt;p&gt;I installed the aarch64 musl version… and that was it. &lt;code&gt;kiro-cli&lt;/code&gt; ran successfully.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--proto&lt;/span&gt; &lt;span class="s1"&gt;'=https'&lt;/span&gt; &lt;span class="nt"&gt;--tlsv1&lt;/span&gt;.2 &lt;span class="nt"&gt;-sSf&lt;/span&gt; &lt;span class="s1"&gt;'https://desktop-release.q.us-east-1.amazonaws.com/latest/kirocli-aarch64-linux-musl.zip'&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="s1"&gt;'kirocli.zip'&lt;/span&gt;
unzip kirocli.zip 
./kirocli/install.sh
kiro-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu55f445ae92ji2xf6f20.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu55f445ae92ji2xf6f20.png" alt="Kiro CLI" width="800" height="297"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Login (headless, over SSH)
&lt;/h2&gt;

&lt;p&gt;Once the CLI actually ran, the login flow was straightforward.&lt;br&gt;
It printed a login URL in the terminal. I copied it, pasted it into my laptop browser, logged in (I used GitHub), went back to the SSH session, and Kiro CLI was authenticated on the Pi.&lt;/p&gt;




&lt;h2&gt;
  
  
  Wrap-up
&lt;/h2&gt;

&lt;p&gt;So yes: you can run Kiro CLI on a Raspberry Pi 400. I've tried running simple and complex tasks, and both worked fine. &lt;/p&gt;

&lt;p&gt;It took me about an hour end-to-end, including the time lost to the SIGILL crash. The key detail was simply using the &lt;strong&gt;ARM64 musl&lt;/strong&gt; build from the docs instead of the standard one.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I’m doing next
&lt;/h2&gt;

&lt;p&gt;Now that it’s running, I want to push this a bit further.&lt;/p&gt;

&lt;p&gt;I want that PM approach for working with Kiro. A workflows that looks like: I create and curate tickets like a PM, and Kiro acts as the dev taking care of the code implementation (running from the Raspberry Pi). &lt;/p&gt;




&lt;p&gt;Do you have a Raspberry Pi and want to try this? What has been your experience with Kiro-CLI? Share it with us in the comments. &lt;/p&gt;

</description>
      <category>raspberrypi</category>
      <category>kiro</category>
    </item>
    <item>
      <title>Stop Vibecoding AI Monoliths</title>
      <dc:creator>Alvaro Llamojha</dc:creator>
      <pubDate>Mon, 05 Jan 2026 21:59:52 +0000</pubDate>
      <link>https://dev.to/llamojha/stop-vibecoding-ai-monoliths-295g</link>
      <guid>https://dev.to/llamojha/stop-vibecoding-ai-monoliths-295g</guid>
      <description>&lt;h2&gt;
  
  
  Vibing a Monolith
&lt;/h2&gt;

&lt;p&gt;I’ve been doing a bit of &lt;strong&gt;vibe coding&lt;/strong&gt; over the last few months. I’ve been jumping into forums, watching what other people are building, and I keep seeing the same pattern.&lt;/p&gt;

&lt;p&gt;People are building &lt;strong&gt;big monoliths with AI&lt;/strong&gt;. At the start it feels amazing. You move fast, you ship features, the AI is “in the zone”. But then the context keeps growing and growing, and eventually you hit a point where you &lt;strong&gt;can’t keep working with the AI anymore&lt;/strong&gt;. The repo turns into spaghetti, the AI starts missing important details, and you end up needing to ask someone else for help because the project has become a monster.&lt;/p&gt;

&lt;p&gt;And I see the exact same thing in my own projects. There’s always a moment where I realize I need a refactor. I need to structure things properly, index things properly, define architecture boundaries, because otherwise the AI is going to miss so much of the context of my application that it becomes actively unhelpful.&lt;/p&gt;




&lt;h2&gt;
  
  
  Microservices &amp;amp; Monorepo
&lt;/h2&gt;

&lt;p&gt;In my time as a DevOps engineer, working with big companies and startups, I kept coming across something that changed how I thought about scaling codebases: the &lt;strong&gt;monorepo&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A monorepo is a &lt;strong&gt;single repository where all your applications live&lt;/strong&gt;. You split it into microservices or micro-frontends, but everything still lives in one place. It’s basically a way to move away from a monolith while keeping a &lt;strong&gt;single source of truth&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcgfzzzikb1nx0xhqh2d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcgfzzzikb1nx0xhqh2d.png" alt="Mono=One, Repo=Repo" width="800" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I don’t want to go deep into what a monorepo is here. You can google it or ask your favorite AI. The important part for this post is &lt;strong&gt;how you split your application&lt;/strong&gt; into microservices and micro-frontends in a way that can actually be managed effectively.&lt;/p&gt;

&lt;p&gt;Because the real goal isn’t monorepo as a buzzword. The goal is to stop feeding your AI one massive, tangled blob of context.&lt;/p&gt;

&lt;p&gt;Instead of one monolith where the AI has to understand everything at once, you split the system into smaller chunks. Now your AI can work with &lt;strong&gt;small, focused context&lt;/strong&gt;, and each part stays more independent from the rest.&lt;/p&gt;

&lt;p&gt;In theory, this should reduce the AI losing focus problem. Fewer wild hallucinations, fewer “it forgot how the auth works”, fewer changes that accidentally break unrelated stuff.&lt;/p&gt;

&lt;p&gt;It also enables parallel work. Instead of one monolith that you just keep vibe coding into, you can have multiple sub-agents working on different parts of the application at the same time without constantly conflicting. Frontend, backend, UX flows, infra, whatever.&lt;/p&gt;




&lt;h2&gt;
  
  
  Monorepo reality check
&lt;/h2&gt;

&lt;p&gt;It sounds simple, right?&lt;/p&gt;

&lt;p&gt;Just switch to microservices or micro-frontends, put everything into a single repository, and that’s it.&lt;/p&gt;

&lt;p&gt;But no, it’s not that easy.&lt;/p&gt;

&lt;p&gt;Monorepos can be a &lt;strong&gt;real challenge&lt;/strong&gt; to handle. There are ways to make it easier, but the &lt;strong&gt;tooling complexity&lt;/strong&gt; is what makes it effort. This is exactly why I probably wouldn’t recommend this approach for a quick MVP.&lt;/p&gt;

&lt;p&gt;If you’re trying to launch something fast and you genuinely don’t know if it’s going to live beyond a few weeks, don’t over-engineer it.&lt;/p&gt;

&lt;p&gt;But once you have a product you actually want to grow, you know you’re going to add multiple features, you know it’s going to expand, then yes, I’d fully recommend moving to a monorepo approach.&lt;/p&gt;




&lt;h2&gt;
  
  
  From a Monolith to a Monorepo
&lt;/h2&gt;

&lt;p&gt;I think the best way to approach a monorepo when you already have a monolith is to start splitting your application into different microservices or micro-frontends. That is the first approach.&lt;/p&gt;

&lt;p&gt;You need to keep two things in consideration.&lt;/p&gt;

&lt;p&gt;First, each of them should be independent from each other. You shouldn’t have any dependencies if possible. That will enable you to keep working on one feature without breaking the others.&lt;/p&gt;

&lt;p&gt;Second, backwards compatibility. You can’t just rip the monolith apart and pray. You need a plan so new services can coexist while old functionality still works.&lt;/p&gt;

&lt;p&gt;Then there’s deployments. Splitting a system means you now have multiple deployable units, which is great, but you can easily create a CI/CD nightmare if you don’t manage it properly.&lt;/p&gt;

&lt;p&gt;There are tools to do this. I would recommend &lt;a href="https://turborepo.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Turborepo&lt;/strong&gt; &lt;/a&gt; for orchestrating tasks and caching across the repo so you are not rebuilding and retesting the world every time you touch one service.&lt;/p&gt;




&lt;h2&gt;
  
  
  So...Is It Worth It?
&lt;/h2&gt;

&lt;p&gt;Having said all this, is this worth your time?&lt;/p&gt;

&lt;p&gt;I would say 100% yes, if your project is going to live long enough to justify the setup cost.&lt;/p&gt;

&lt;p&gt;I think in 2026 we’re going to see a move from vibe coding into a more structured AI coding workflow. Spec-driven development, planning, tickets, sprints, basically the stuff we already did as software engineers, because it works.&lt;/p&gt;

&lt;p&gt;Instead of evolving one giant monolith forever, we’re going to start evolving into microservices, micro-frontends, and monorepos.&lt;/p&gt;

&lt;p&gt;I’m 100% sure there are people working on tools to handle this. I think 2026 is going to be the year where this path becomes much more normal.&lt;/p&gt;

&lt;p&gt;First we build big monoliths and ship by vibing with no structure. Then we introduce tickets and sprint planning, which is basically spec-driven development. Now we are hitting the AI version of that same evolution. We need boundaries and context control, and a practical way to do that is to split the system and treat each part as its own focused unit.&lt;/p&gt;




&lt;p&gt;If you’re building with AI and you’re building monoliths, have you run into any of these issues? Have you considered moving to a monorepo structure? And if you’re already doing monorepos with AI, what’s been your experience?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>vibecoding</category>
      <category>monorepo</category>
    </item>
    <item>
      <title>Building my first Kiro Power: PostHog Observability</title>
      <dc:creator>Alvaro Llamojha</dc:creator>
      <pubDate>Thu, 18 Dec 2025 01:14:24 +0000</pubDate>
      <link>https://dev.to/kirodotdev/building-my-first-kiro-power-posthog-observability-fik</link>
      <guid>https://dev.to/kirodotdev/building-my-first-kiro-power-posthog-observability-fik</guid>
      <description>&lt;p&gt;When I first explored &lt;strong&gt;Kiro Powers&lt;/strong&gt;, the &lt;strong&gt;Datadog Power&lt;/strong&gt; immediately stood out. I'm a DevOps Engineer focused on Observability and Monitoring. I have experience with Datadog, New Relic and PostHog, so this piqued my attention. I was also participating in a hackathon that used Datadog, so I got to try that Power in a real workflow—not just as a demo. That experience triggered a simple thought: I also use &lt;strong&gt;PostHog&lt;/strong&gt; heavily in another project, and I couldn’t find a PostHog Power. Since PostHog already has an &lt;strong&gt;MCP server&lt;/strong&gt;, it felt like a perfect candidate for my first Power project.&lt;/p&gt;

&lt;p&gt;TLDR; You can try my first Kiro Power for Posthog: &lt;a href="https://github.com/llamojha/posthog-kiro-power" rel="noopener noreferrer"&gt;posthog-kiro-power&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Kiro Powers?
&lt;/h2&gt;

&lt;p&gt;Kiro Powers are &lt;strong&gt;on-demand capability bundles&lt;/strong&gt; for your AI agent. Instead of always loading every tool and every set of best practices into context, a Power is activated when it’s relevant—so the agent can load the right context and tools at the right time.&lt;/p&gt;

&lt;p&gt;A Power typically packages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP servers / tool connections&lt;/strong&gt; (so the agent can interact with real systems)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Steering / guidance files&lt;/strong&gt; (best practices and workflow patterns)&lt;/li&gt;
&lt;li&gt;Optional &lt;strong&gt;hooks&lt;/strong&gt; (validation or automation depending on the Power)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That “load on demand” part is the key idea for me. Powers are meant to keep the agent focused without overwhelming it with irrelevant context.&lt;/p&gt;

&lt;p&gt;If you want the official docs: &lt;a href="https://kiro.dev/docs/powers" rel="noopener noreferrer"&gt;Kiro Powers&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Building the Power with Kiro's Build a Power
&lt;/h2&gt;

&lt;p&gt;The first step for me was using the Power that helps you &lt;a href="https://github.com/kirodotdev/powers/tree/main/power-builder" rel="noopener noreferrer"&gt;Build a Power&lt;/a&gt;. This power guides you through the structure and basic setup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flgsrlahexb372ikzdssa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flgsrlahexb372ikzdssa.png" alt="Build a Power" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My approach was simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I told Kiro I wanted to create a Power for &lt;strong&gt;PostHog MCP&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;I provided the PostHog MCP URL/docs as context (link below)&lt;/li&gt;
&lt;li&gt;I also mentioned I already had the Datadog Observability Power installed, and asked if we could use it as a template since both are observability-oriented&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Normally, I use spec-driven development with Kiro. But in this case, I didn’t. This was small and specific, and I knew exactly what I wanted—so I treated it more like a guided conversation than a formal spec.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fea16mux531pk0zb7tir2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fea16mux531pk0zb7tir2.png" alt="Power Folder Structure" width="306" height="222"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  “An unexpected error occurred, please retry.”
&lt;/h2&gt;

&lt;p&gt;There’s a common Kiro error that people mention a lot:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“An unexpected error occurred, please retry.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’d seen it discussed in the Discord community, but I’d never hit it myself until I installed my own Power.&lt;/p&gt;

&lt;p&gt;Because this was my first Power, I initially assumed I’d made a mistake in the implementation or missed a required configuration step. I ended up going down a rabbit hole trying to figure out what was wrong.&lt;/p&gt;

&lt;p&gt;In the end, it was much simpler: it was a &lt;strong&gt;misconfiguration / bad state in the Power setup&lt;/strong&gt;. What fixed it was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uninstalling a couple of Powers I wasn’t using&lt;/li&gt;
&lt;li&gt;Reinstalling cleanly&lt;/li&gt;
&lt;li&gt;Re-trying the install&lt;/li&gt;
&lt;li&gt;Click on 'Try this Power'&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pu682hvzgon2ameso4b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pu682hvzgon2ameso4b.png" alt="Try This Power" width="490" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fosnvwaos82eka4tjv6ms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fosnvwaos82eka4tjv6ms.png" alt="Try this power chat" width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Installing it, testing it, and open sourcing it
&lt;/h2&gt;

&lt;p&gt;For a testing installation, I decided to import power from a folder and it worked fine. I just have to add my &lt;strong&gt;PostHog API key&lt;/strong&gt; and it was ready to go.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9brywl6cbas52anmhrxx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9brywl6cbas52anmhrxx.png" alt="Add Power" width="542" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Testing was straightforward because my application was already wired up with PostHog. Once the Power was installed, I could ask Kiro to inspect what I already had in PostHog dashboards, existing insights, and the general shape of my data. It actually came back and propose to use Feature Flags with PostHog, which is a really good suggestion, as I am using feature flags in a very basic way.&lt;/p&gt;

&lt;p&gt;I also asked Kiro to look at my PostHog setup and propose a plan for adding &lt;strong&gt;LLM monitoring&lt;/strong&gt;, because I’m currently missing that. It gave me a concrete direction, and implementing that is the next feature I want to add after writing this blog post.&lt;/p&gt;

&lt;p&gt;This Kiro Power is key as I can focus my development to be more &lt;strong&gt;data-driven&lt;/strong&gt; by just asking Kiro to look into my data on PostHog and use it as context or new features.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to try it?
&lt;/h2&gt;

&lt;p&gt;In order to install it, you just need the GitHub URL &lt;code&gt;https://github.com/llamojha/posthog-kiro-power/tree/main/powers/posthog&lt;/code&gt;, plus your PostHog API key in the MCP config.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcf06vuu88l1fkm4t07du.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcf06vuu88l1fkm4t07du.png" alt="Add power via Github URL" width="800" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F25szorr9yq2oi8rtzwq7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F25szorr9yq2oi8rtzwq7.png" alt="My Power URL" width="800" height="97"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Lessons learned and what’s next
&lt;/h2&gt;

&lt;p&gt;Initially, it felt a bit intimidating having to 'build a power'. This all changed once I tried. Having the 'Build a Power' power to help me and guide me building helped a lot. It felt like a conversation with Kiro and it was very straightforward. I fully recommend you try to build a Power even if it's just to find out how it works. &lt;/p&gt;

&lt;p&gt;If you already know the tool you want to wrap—an MCP server, a CLI, or a workflow you use often—then creating a Power is mostly about packaging it cleanly and making it easy for the agent to load when relevant.&lt;/p&gt;

&lt;h3&gt;
  
  
  Next steps
&lt;/h3&gt;

&lt;p&gt;This was a fun and smooth experience so I'm eager to keep building. I have a couple of ideas on what to do next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I’ve used &lt;strong&gt;New Relic&lt;/strong&gt; as well, so I’m looking into the New Relic MCP side and creating a &lt;strong&gt;New Relic Power&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;I also want to build a more complex Power. Bundle up Hooks and Steerings and test how far the Power concept can go in a larger workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If someone from PostHog is reading this, please feel free to copy my work and make an official PostHog Kiro Power &amp;lt;3. &lt;/p&gt;

&lt;p&gt;What was your experience with Kiro Powers? Have you built your own? Share your experience in the comments or join the &lt;a href="https://discord.gg/kirodotdev" rel="noopener noreferrer"&gt;Kiro Discord&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;My first Kiro Power for PostHog repository: &lt;a href="https://github.com/llamojha/posthog-kiro-power" rel="noopener noreferrer"&gt;Link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Kiro Powers docs: &lt;a href="https://kiro.dev/docs/powers" rel="noopener noreferrer"&gt;Link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;PostHog MCP docs: &lt;a href="https://posthog.com/docs/model-context-protocol" rel="noopener noreferrer"&gt;Link&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kiro</category>
      <category>posthog</category>
    </item>
    <item>
      <title>No Vibe No Code: Bootstrapping Ideas</title>
      <dc:creator>Alvaro Llamojha</dc:creator>
      <pubDate>Wed, 03 Dec 2025 18:34:20 +0000</pubDate>
      <link>https://dev.to/kirodotdev/no-vibe-no-code-bootstrapping-ideas-o88</link>
      <guid>https://dev.to/kirodotdev/no-vibe-no-code-bootstrapping-ideas-o88</guid>
      <description>&lt;h2&gt;
  
  
  1. The Core Problem: Too Many Ideas, Not Enough Finished Things
&lt;/h2&gt;

&lt;p&gt;I always have loads of ideas for projects. Often I start them, and most of the time I don't even finish them. My problem isn’t creativity. The problem is that most of those ideas never make it past the “oh, that would be cool” stage.&lt;/p&gt;

&lt;p&gt;So I end up with this growing backlog of “things I could build someday” and no clear way to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;store them&lt;/li&gt;
&lt;li&gt;compare them&lt;/li&gt;
&lt;li&gt;or decide which one actually deserves my time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I saw an opportunity in this Kiroween Hackathon to build an app where I could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dump all my ideas&lt;/li&gt;
&lt;li&gt;validate them against the hackathon (or any) criteria&lt;/li&gt;
&lt;li&gt;and then actually move them towards something shippable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And so &lt;strong&gt;No Vibe No Code&lt;/strong&gt; was created.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. What is No Vibe No Code?
&lt;/h2&gt;

&lt;p&gt;The core concept is &lt;strong&gt;from idea to vibecoding&lt;/strong&gt; (or spec-coding in Kiro's case) &lt;/p&gt;

&lt;p&gt;At a high level, &lt;strong&gt;No Vibe No Code&lt;/strong&gt; is &lt;em&gt;A place to bootstrap your ideas and get them into a Kiro-ready, development-ready shape as quickly as possible&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Here is an example of the user flow: &lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Get an idea (or generate one)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Write your own idea&lt;/strong&gt; – maybe something that’s been sitting in your notes app for months
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Or&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;Dr. Frankenstein&lt;/strong&gt;, this is basically a chaotic idea generator (inspired by the Kiroween category)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I personally love Dr. Frankenstein feature on No Vibe No Code because it randomly picks a few popular &lt;strong&gt;tech companies&lt;/strong&gt; or a few &lt;strong&gt;AWS services&lt;/strong&gt; -&amp;gt; Smashes them together -&amp;gt; And creates some weird hybrid idea that actually fits nicely for hackathon-style creativity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljr68qns7uvj7c9blvjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljr68qns7uvj7c9blvjc.png" alt="Dr Frankenstein selecting Tech Companies to mix up"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwng55aqgcrax2r2wjrc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwng55aqgcrax2r2wjrc.png" alt="Dr Frankenstein selecting AWS Services to mix up"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Validate your idea
&lt;/h3&gt;

&lt;p&gt;Ok, so I have 100s of ideas, but how do I know if they are good ideas? How do I know if they are feasible? Are they even good ideas for this hackathon? &lt;/p&gt;

&lt;p&gt;For that, we've added a 'Kiroween Analyser'. This feature will generate a report against the hackathon criteria and score it accordingly. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx98itfvocp5scnkd3r40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx98itfvocp5scnkd3r40.png" alt="Our own score in the Kiroween Analyser"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This validator opens a possibility to add multiple validators that can serve to analyse ideas against specific criteria like hackathons, games, small side-projects, the possibilities are endless. In this case, we were focused on Kiroween. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsazn4glsbnzxzr5yilp8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsazn4glsbnzxzr5yilp8.png" alt="Kiroween Category match"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Generate some core documents
&lt;/h3&gt;

&lt;p&gt;Once you have an idea (manual or Frankenstein’ed), No Vibe No Code helps you generate the &lt;strong&gt;core docs&lt;/strong&gt; you need to support your building:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;PRD&lt;/strong&gt; – to clarify the problem and the user&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;technical design doc&lt;/strong&gt; - to describe how the solution will work at a feature level&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;architecture design&lt;/strong&gt; - to map the high-level components, services, and boundaries (more tech-oriented)&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;roadmap for an MVP&lt;/strong&gt; – to define the smallest version worth shipping and how to get there&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hg0q2jrkxh4ws9tsta1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hg0q2jrkxh4ws9tsta1.png" alt="Documents generation flow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal is: your idea stops being just a sentence and starts becoming a &lt;strong&gt;structured concept&lt;/strong&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Power up Kiro
&lt;/h3&gt;

&lt;p&gt;Once those docs exist, you can &lt;code&gt;export to kiro&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;No Vibe No Code will then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate &lt;strong&gt;steering rules&lt;/strong&gt; for Kiro
&lt;/li&gt;
&lt;li&gt;Generate &lt;strong&gt;spec templates&lt;/strong&gt; aligned with your roadmap
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe6zuupfkfoq2kj41v2kj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe6zuupfkfoq2kj41v2kj.png" alt="Export to Kiro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So instead of opening Kiro with a blank chat and writing “Help me build X,” you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Walk in with a defined idea
&lt;/li&gt;
&lt;li&gt;Have a PRD, design, architecture, and MVP roadmap
&lt;/li&gt;
&lt;li&gt;Already have steering rules and spec scaffolding ready to go&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From there, you can just start kicking off specs and building.&lt;/p&gt;

&lt;p&gt;That’s the main idea of No Vibe No Code:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;from raw idea → structured docs → Kiro-ready boilerplate, with as little friction as possible.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Demo
&lt;/h3&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/aL1Jmpw0g-w"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Building &lt;em&gt;Before&lt;/em&gt; Kiro
&lt;/h2&gt;

&lt;p&gt;Because of my background as a platform / DevOps engineer, I naturally thought in terms of structure: roadmaps, milestones, and tasks.&lt;/p&gt;

&lt;p&gt;So my workflow looked roughly like this:&lt;/p&gt;

&lt;p&gt;Create a PRD or Readme with context for the project -&amp;gt; Create a roadmap with milestones to achieve and divided by tasks -&amp;gt; Ask the AI to implement each task based on those documents.  &lt;/p&gt;

&lt;p&gt;At the time, I didn’t even realise there was a name for what I was doing!!&lt;/p&gt;

&lt;p&gt;So when I eventually discovered Kiro and saw its spec-driven development focus, I had this moment of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Hold on your horses… they’re doing exactly what I’ve been trying to do, just… better.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s when I decided to go all in on Kiro.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. My Journey with Kiro
&lt;/h2&gt;

&lt;p&gt;When I first set up Kiro for this project, I went with the &lt;strong&gt;default, raw setup&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No custom &lt;strong&gt;steering rules&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;No &lt;strong&gt;MCPs&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;No &lt;strong&gt;hooks&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Obviously, this wasn't ideal as I was missing a lot of features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Discovering Kiro’s Best Practices
&lt;/h3&gt;

&lt;p&gt;In my first week, I joined the &lt;a href="https://discord.gg/kirodotdev" rel="noopener noreferrer"&gt;Kiro Discord&lt;/a&gt; and started reading through posts and getting to know &lt;strong&gt;best practices&lt;/strong&gt; and how other people were building with Kiro.&lt;/p&gt;

&lt;p&gt;Around that time, Kiro also released the &lt;a href="https://kiro.dev/docs/mcp/servers" rel="noopener noreferrer"&gt;&lt;strong&gt;MCP Server directory&lt;/strong&gt;&lt;/a&gt;, which made it much easier to install MCPs.&lt;/p&gt;

&lt;p&gt;I also discovered that Kiro could &lt;strong&gt;auto-generate&lt;/strong&gt; some basic &lt;a href="https://kiro.dev/docs/steering/" rel="noopener noreferrer"&gt;steering&lt;/a&gt; files for things like: tech, structure and product.&lt;/p&gt;

&lt;h3&gt;
  
  
  Taking it to the next Level
&lt;/h3&gt;

&lt;p&gt;From there, my Kiro setup evolved gradually:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Started adding steering rules and adapting them to my setup.
&lt;/li&gt;
&lt;li&gt;Wired in some useful MCPs (context7, github, supabase).
&lt;/li&gt;
&lt;li&gt;Using rules for &lt;a href="https://kiro.dev/docs/steering/#inclusion-modes" rel="noopener noreferrer"&gt;inclusion&lt;/a&gt; on steering and &lt;a href="https://kiro.dev/docs/hooks/types/" rel="noopener noreferrer"&gt;triggers&lt;/a&gt; on hooks
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Over days and weeks, this went from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Just raw Kiro, let’s see what happens.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I have a small ecosystem here that actually understands how I like to work.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Models - From autopilot to Opus 4.5
&lt;/h3&gt;

&lt;p&gt;When I started this project, I kicked things off using &lt;strong&gt;Kiro Auto model&lt;/strong&gt;. I wasn't sure if I was going to burn all my credits with the other models, and I didn't know the actual difference between those models. Default seems like a good plan. &lt;/p&gt;

&lt;p&gt;For a big chunk of the journey, Auto was genuinely fine. Sometimes it produced bugs or weird decisions but nothing too critical.&lt;/p&gt;

&lt;p&gt;Later on, when I saw I still had credits left, I decided to experiment a bit.&lt;/p&gt;

&lt;h4&gt;
  
  
  Sonnet 4.5
&lt;/h4&gt;

&lt;p&gt;I tried &lt;strong&gt;Sonnet 4.5&lt;/strong&gt; for a few specs. Overall, it felt the same as Auto model bit more expensive. I still had to babysit some results and debug like crazy. &lt;/p&gt;

&lt;p&gt;But then... There was an announcement!&lt;/p&gt;

&lt;h4&gt;
  
  
  Opus 4.5
&lt;/h4&gt;

&lt;p&gt;Opus 4.5 landed, at x2.2 cost and with 500 credits left for the month, I decided to go all in with Opus for the last few specs.&lt;/p&gt;

&lt;p&gt;That’s where I actually felt the difference. The code quality was noticeably higher, and there were fewer bugs (still some, but manageable).&lt;/p&gt;

&lt;p&gt;Yes, it’s more expensive, but for the final specs, where I really cared about quality and didn’t want to waste time chasing edge cases, it felt absolutely worth it (I ended the month with 50 credits left)&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding Property-Based Testing to the mix
&lt;/h3&gt;

&lt;p&gt;Kiro announced &lt;a href="https://kiro.dev/docs/specs/correctness/" rel="noopener noreferrer"&gt;Property-based testing&lt;/a&gt; halfway through Kiroween. It was such a good concept that I couldn't resist spending a spec on this. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkt33avup4d22sc5c1yg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkt33avup4d22sc5c1yg.png" alt="Asking on discord about Property-based testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After implementing it, I felt more comfortable trusting AI-generated code. It aligned well with the whole “let’s automate the boring but important parts” mindset. It creates a pretty solid safety net.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. What I’d Do Differently (And how No Vibe No Code can help)
&lt;/h2&gt;

&lt;p&gt;Let's recap on my journey:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Started with a raw Kiro setup (no steering, no MCPs, no hooks).
&lt;/li&gt;
&lt;li&gt;Added things gradually, as I discovered them.
&lt;/li&gt;
&lt;li&gt;Let my IDE configuration drift and change over time.
&lt;/li&gt;
&lt;li&gt;Tweaked the ecosystem spec by spec.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That worked, but it could have been a smoother experience. What I’d prefer instead is a solid &lt;strong&gt;boilerplate&lt;/strong&gt; from day one: sensible project structure, steering rules setup, and documentation to get ready to spec. &lt;/p&gt;

&lt;p&gt;And that’s exactly the point of &lt;strong&gt;No Vibe No Code&lt;/strong&gt;. I want a place where I can show up with an idea, press a few buttons, and end up with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;project docs generated.&lt;/li&gt;
&lt;li&gt;clear path from idea → MVP.&lt;/li&gt;
&lt;li&gt;boilerplate Kiro ready.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If there’s &lt;strong&gt;no vibe&lt;/strong&gt; with the idea and documents, there’s &lt;strong&gt;no code&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Share your Work and Ideas
&lt;/h2&gt;

&lt;p&gt;You can try it out now!! Go to &lt;a href="https://www.novibenocode.com" rel="noopener noreferrer"&gt;No Vibe No Code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can spin up your own No Vibe No Code too!! Open Source GitHub repo: (&lt;a href="https://github.com/llamojha/no-vibe-no-code-kiroween" rel="noopener noreferrer"&gt;https://github.com/llamojha/no-vibe-no-code-kiroween&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;If you end up playing with this No Vibe No Code workflow, I’d genuinely love to see what you come up with.&lt;/p&gt;

&lt;p&gt;In particular:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What &lt;strong&gt;Dr. Frankenstein&lt;/strong&gt; ideas did you generate?
&lt;/li&gt;
&lt;li&gt;Which ones actually made it past the “haha that’s funny” stage and into a real &lt;strong&gt;PRD / design / roadmap&lt;/strong&gt;?
&lt;/li&gt;
&lt;li&gt;How was your experience going from &lt;strong&gt;raw idea → Kiro → working thing&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;If you think I should rebrand to &lt;strong&gt;No Vibe No Spec&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Let’s get building!!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>kiroween</category>
      <category>hackathon</category>
      <category>kirodotdev</category>
    </item>
  </channel>
</rss>
