<?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: Girish Bhatia</title>
    <description>The latest articles on DEV Community by Girish Bhatia (@bhatiagirish).</description>
    <link>https://dev.to/bhatiagirish</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%2F1139817%2F2522ebfb-4043-4871-b5ab-f3a761acdb22.jpeg</url>
      <title>DEV Community: Girish Bhatia</title>
      <link>https://dev.to/bhatiagirish</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bhatiagirish"/>
    <language>en</language>
    <item>
      <title>Deploying Kiro IDE Securely in the Enterprise: Identity, Feature Controls, and AI Governance!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Sat, 14 Mar 2026 02:50:02 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/deploying-kiro-ide-securely-in-the-enterprise-identity-feature-controls-and-ai-governance-ehp</link>
      <guid>https://dev.to/bhatiagirish/deploying-kiro-ide-securely-in-the-enterprise-identity-feature-controls-and-ai-governance-ehp</guid>
      <description>&lt;p&gt;Hi! I’m Girish, an AWS Community Builder and Cloud Tech Enthusiast with expertise in delivering customer-focused, business-impacting cloud transformation programs of high complexity.&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%2F09sz6r2r5ij70iowk385.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%2F09sz6r2r5ij70iowk385.png" alt="Image gbkiro" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my previous articles, I’ve shared many features of Kiro IDE, such as vibe coding, spec-driven development, hooks, steering documents, and building CRUD APIs like a Customer Lookup API powered by Amazon API Gateway, AWS Lambda, Amazon DynamoDB, and AWS SAM. I’ve also shown how you can build solutions by simply providing prompts and letting Kiro’s code generation capabilities generate the code while you control the reviews and deployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On March 12, 2026,&lt;/strong&gt; AWS Kiro announced additional enterprise capabilities that further secure Kiro rollouts. These new features allow administrators to control which AI models are available to developers and manage which MCP integrations are allowed in enterprise environments.&lt;/p&gt;

&lt;p&gt;While I was already using AWS Kiro through AWS IAM Identity Center and was familiar with many existing controls such as disabling web search, disabling MCP entirely, and enabling user activity reports, these new features encouraged me to write this article about secure enterprise deployment of Kiro.&lt;/p&gt;

&lt;p&gt;A key question I often hear is: &lt;strong&gt;How do we securely deploy Kiro at scale?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The answer lies in combining identity governance, feature hardening, monitoring, and human oversight.&lt;/p&gt;

&lt;p&gt;In this article, I will walk through key security controls available in the Kiro administrative dashboard and the AWS ecosystem that help organizations deploy Kiro safely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Identity First: Secure Kiro Access with IAM Provisioning
&lt;/h2&gt;

&lt;p&gt;The foundation of any enterprise deployment is controlled access.&lt;br&gt;
Organizations should provision Kiro access through AWS IAM Identity Center or an enterprise identity provider such as Okta.&lt;/p&gt;

&lt;p&gt;Provisioning Kiro via AWS IAM Identity Center or Okta ensures that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single Sign-On (SSO) is enforced&lt;/li&gt;
&lt;li&gt;Multi-Factor Authentication (MFA) is enabled&lt;/li&gt;
&lt;li&gt;Least-privilege permission sets are applied&lt;/li&gt;
&lt;li&gt;Only approved AWS roles and accounts have access to Kiro&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This approach provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Centralized user subscription management&lt;/li&gt;
&lt;li&gt;Controlled onboarding and offboarding&lt;/li&gt;
&lt;li&gt;Consistent enforcement of enterprise access policies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, identity-based access ensures that AI development tools remain secure and governed across the organization.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disable Code Reference Suggestions
&lt;/h2&gt;

&lt;p&gt;By default, AI suggestions may reference external code patterns.&lt;br&gt;
Enterprises often choose to disable this feature to avoid:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open-source licensing concerns&lt;/li&gt;
&lt;li&gt;External code ingestion risks&lt;/li&gt;
&lt;li&gt;Potential intellectual property exposure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kiro’s enterprise settings allow administrators to disable code reference suggestions, ensuring that generated code is produced internally rather than referencing external codebases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disable Model Context Protocol (MCP)
&lt;/h2&gt;

&lt;p&gt;The Model Context Protocol (MCP) allows AI agents to connect with external tools and contextual data sources.&lt;br&gt;
While powerful, it may introduce risks such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unapproved integrations&lt;/li&gt;
&lt;li&gt;Data leakage to external systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kiro enterprise settings allow administrators to disable MCP completely.&lt;/p&gt;

&lt;p&gt;However, with the March 12, 2026 update, enterprises now have more flexibility. Instead of fully disabling MCP, administrators can control which MCP integrations are allowed through Kiro admin settings.&lt;/p&gt;

&lt;p&gt;This provides fine-grained governance over external tool integrations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disable Web Search and Web Fetch Tools
&lt;/h2&gt;

&lt;p&gt;Kiro agents can optionally access real-time internet tools.&lt;br&gt;
For enterprises operating under strict compliance frameworks, this may be undesirable.&lt;/p&gt;

&lt;p&gt;Kiro admin settings allow organizations to disable web search and web fetch tools.&lt;/p&gt;

&lt;p&gt;By disabling these features, enterprises can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prevent external data access&lt;/li&gt;
&lt;li&gt;Reduce potential data leakage&lt;/li&gt;
&lt;li&gt;Maintain regulatory compliance boundaries&lt;/li&gt;
&lt;li&gt;Model Availability Governance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kiro administrators can control which AI models are available to developers.&lt;/p&gt;

&lt;p&gt;This capability announced on March 12, 2026 is an important governance feature that allows organizations to restrict model usage to an approved list of models.&lt;/p&gt;

&lt;p&gt;This helps ensure that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers only use approved enterprise models&lt;/li&gt;
&lt;li&gt;Experimental or unapproved models are not used in production environments&lt;/li&gt;
&lt;li&gt;AI usage aligns with internal governance policies&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Disable Overage Usage
&lt;/h2&gt;

&lt;p&gt;If not properly controlled, AI usage can scale rapidly across teams.&lt;br&gt;
Kiro includes a safeguard that prevents usage from exceeding defined limits.&lt;/p&gt;

&lt;p&gt;Organizations can protect their AI budget by disabling overage usage, ensuring that developers cannot continue using Kiro after reaching the configured monthly limits.&lt;/p&gt;

&lt;p&gt;This provides predictable cost management and financial governance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitor with CloudTrail and CloudWatch
&lt;/h2&gt;

&lt;p&gt;In addition to Kiro dashboard controls, AWS-native monitoring should also be enabled.&lt;/p&gt;

&lt;p&gt;Services such as AWS CloudTrail and Amazon CloudWatch provide tracking and operational monitoring for Kiro usage.&lt;/p&gt;

&lt;p&gt;These services can help track:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Administrative configuration changes&lt;/li&gt;
&lt;li&gt;Access activity&lt;/li&gt;
&lt;li&gt;Usage patterns&lt;/li&gt;
&lt;li&gt;Operational events&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, they create a complete visibility layer for Kiro operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Governance Features
&lt;/h2&gt;

&lt;p&gt;There are several additional features that organizations can configure to strengthen governance, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User activity reports&lt;/li&gt;
&lt;li&gt;Exporting activity reports to an Amazon S3 bucket&lt;/li&gt;
&lt;li&gt;Prompt logging for auditing and security analysis&lt;/li&gt;
&lt;li&gt;Establishing internal policies for Supervised Mode usage within Kiro IDE&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These capabilities help organizations maintain auditability, compliance, and responsible AI usage.&lt;/p&gt;

&lt;h2&gt;
  
  
  See It in Action
&lt;/h2&gt;

&lt;p&gt;From my own Kiro account provisioned through AWS IAM Identity Center, here is a view of how some of these administrative settings appear.&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%2Fbz4ib2btyw566rfgpv2y.jpg" 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%2Fbz4ib2btyw566rfgpv2y.jpg" alt="Image kirosettings" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, many of these controls are simple to configure using on/off toggles within the Kiro administrative dashboard.&lt;/p&gt;

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

&lt;p&gt;In this article, I explored how enterprises can deploy Kiro IDE securely at scale by combining identity governance, feature controls, monitoring, and operational guardrails.&lt;/p&gt;

&lt;p&gt;Using AWS IAM Identity Center with Kiro enables secure, centralized team subscriptions and scalable access management across your organization. This approach removes the burden of individual account management from developers and IT teams, allowing them to focus on building, collaborating, and delivering high-value solutions.&lt;/p&gt;

&lt;p&gt;Whether you’re provisioning users, organizing groups, assigning subscriptions, or enforcing MFA, IAM Identity Center acts as an enterprise-grade access manager, ensuring that every team member has the right permissions without manual overhead.&lt;/p&gt;

&lt;p&gt;Thanks for reading, and I hope you found this article insightful.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘊𝘭𝘰𝘶𝘥 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘭𝘰𝘶𝘥 𝘛𝘦𝘤𝘩𝘯𝘰𝘭𝘰𝘨𝘺 𝘌𝘯𝘵𝘩𝘶𝘴𝘪𝘢𝘴𝘵&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
    </item>
    <item>
      <title>How to Set Up a Kiro Team Subscription Using AWS IAM Identity Center!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Wed, 18 Feb 2026 02:20:41 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/how-to-set-up-a-kiro-team-subscription-using-aws-iam-identity-center-22hk</link>
      <guid>https://dev.to/bhatiagirish/how-to-set-up-a-kiro-team-subscription-using-aws-iam-identity-center-22hk</guid>
      <description>&lt;p&gt;&lt;strong&gt;Quick Update:&lt;/strong&gt; &lt;em&gt;Since publishing this article, AWS has expanded Kiro SSO capabilities. Beginning with Kiro IDE version 0.9.40 (released February 12, 2026), organizations can now integrate external identity providers such as Okta and Microsoft Entra ID, in addition to AWS IAM Identity Center. This allows developers to sign in using their existing corporate credentials while giving enterprises more flexibility in identity management. The walkthrough below continues to focus on IAM Identity Center, but organizations now have additional SSO options depending on their enterprise identity platform.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Hi! I’m Girish, an AWS Community Builder and Cloud Tech Enthusiast with expertise in delivering customer-focused, business-impacting cloud transformation programs of high complexity.&lt;/p&gt;

&lt;p&gt;In my previous article, I shared how I used AWS Kiro’s vibe coding feature to build a Customer Lookup API powered by Amazon API Gateway, AWS Lambda, Amazon DynamoDB, and AWS SAM.&lt;/p&gt;

&lt;p&gt;In another article, I explored Kiro hooks using a simple HelloWorld Python program. I demonstrated how hooks can automatically update a README.md file whenever the Python code is modified.&lt;/p&gt;

&lt;p&gt;There is so much more you can do with Kiro. However, first things first, you need to log in to Kiro to start building creative, GenAI-assisted solutions.&lt;/p&gt;

&lt;p&gt;Kiro provides multiple ways to log in and set up a subscription:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Log in / subscribe using Google&lt;/li&gt;
&lt;li&gt;Log in / subscribe using GitHub&lt;/li&gt;
&lt;li&gt;Log in / subscribe using AWS Builder ID&lt;/li&gt;
&lt;li&gt;Log in / subscribe using your organization’s Single Sign-On (SSO)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first three options are individual subscription models. This means you sign up independently and pay monthly based on the plan you select.&lt;/p&gt;

&lt;p&gt;The Organization Single Sign-On option is designed for team-based access. In this model, your account is provisioned by your cloud administrator, and you are provided with a dedicated login URL. This enables centralized access management and consolidated billing.&lt;/p&gt;

&lt;p&gt;In this article, I will walk you through the step-by-step process of configuring Kiro using a Team subscription, enabled through AWS IAM Identity Center.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is an Organization (Team / Enterprise) Subscription?
&lt;/h2&gt;

&lt;p&gt;This option is used when your company centrally manages access using AWS IAM Identity Center. In this model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiro subscriptions are managed at the organizational level&lt;/li&gt;
&lt;li&gt;Users and groups are provisioned in advance&lt;/li&gt;
&lt;li&gt;You must sign in using a company-specific URL&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Is AWS IAM Identity Center?
&lt;/h2&gt;

&lt;p&gt;AWS IAM Identity Center is a centralized identity management service that enables organizations to manage workforce access to AWS accounts and cloud applications.&lt;/p&gt;

&lt;p&gt;It allows administrators to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create or connect user identities&lt;/li&gt;
&lt;li&gt;Organize users into groups&lt;/li&gt;
&lt;li&gt;Assign permissions across multiple AWS accounts&lt;/li&gt;
&lt;li&gt;Enable Single Sign-On (SSO) for supported applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the context of Kiro, AWS IAM Identity Center enables secure, centralized access management and subscription control for teams and enterprises.&lt;/p&gt;

&lt;h2&gt;
  
  
  Individual vs Team / Organization Subscription
&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%2F9io2oyqe6ksopeosy20v.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%2F9io2oyqe6ksopeosy20v.png" alt="Image individualteam"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture/Design
&lt;/h2&gt;

&lt;p&gt;At a high level, the architecture/Flow diagram as below:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AWS IAM Identity Center --&amp;gt; Kiro Team Subscription --&amp;gt; Kiro Login using org SSO&lt;/em&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%2Fh1puth5ximqs69yw3z8g.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%2Fh1puth5ximqs69yw3z8g.png" alt="Image archdesign"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-Step: Configuring Kiro Team Subscription
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Enable IAM Identity Center&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Search for IAM Identity Center&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the AWS Management Console, type IAM Identity Center and open the service.&lt;/p&gt;&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%2Faol9xiag28aa6do2v9de.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%2Faol9xiag28aa6do2v9de.png" alt="Image iamservice"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Enable Identity Center&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click Enable to activate IAM Identity Center.&lt;/p&gt;&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%2Fvjr5nmxza3i73fmrxr06.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%2Fvjr5nmxza3i73fmrxr06.png" alt="Image enableiam"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose a Region&lt;/li&gt;
&lt;li&gt;Select the AWS region where Identity Center will be managed.&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%2F4wepgvvadrkoce37o495.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%2F4wepgvvadrkoce37o495.png" alt="Image iamregion"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Create a Group for Kiro Users&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to Groups&lt;/li&gt;
&lt;li&gt;Click Create group&lt;/li&gt;
&lt;li&gt;Enter group name:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I will name it as kiro_dev_group&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%2Fk5erbqmg1hcjk27isc6y.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%2Fk5erbqmg1hcjk27isc6y.png" alt="Image creategroup"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Create a User and Assign to the Group&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create the User&lt;/p&gt;

&lt;p&gt;Go to Users → Add user&lt;/p&gt;

&lt;p&gt;Enter Username, Email, First &amp;amp; Last Name&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assign User to Group&lt;/li&gt;
&lt;li&gt;Assign to kiro_dev_group&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%2Frhh5j3sk9bbvc8c1p7m5.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%2Frhh5j3sk9bbvc8c1p7m5.png" alt="Image adduser"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review and Create&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm details and create the user&lt;/li&gt;
&lt;li&gt;Review confirmation message&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%2F002sciymeg4jk853xb6p.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%2F002sciymeg4jk853xb6p.png" alt="Image msg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Review Email and Complete User Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check Invitation Email&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%2F64s89k08ljlgiq6bwltm.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%2F64s89k08ljlgiq6bwltm.png" alt="Image reademail"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Set Password and Configure MFA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Click the email link, set password, and configure MFA&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%2Fslxkt0vqe9mfx53gv4ug.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%2Fslxkt0vqe9mfx53gv4ug.png" alt="Image mfa"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ User and group setup complete&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Enable Kiro Subscription&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Navigate to the Kiro Subscription Page&lt;br&gt;
Open the Kiro admin or subscription page.&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%2F2430kvgzr14537a8m2n6.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%2F2430kvgzr14537a8m2n6.png" alt="Image kiropage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review Pricing and Select Plan&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For this walkthrough:&lt;br&gt;
Select Pro (or Enterprise based on your org)&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%2Fkrguzn0lrnyg2fhxo7ym.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%2Fkrguzn0lrnyg2fhxo7ym.png" alt="Image kiropricing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enable Kiro&lt;/p&gt;

&lt;p&gt;Activate Kiro for your organization.&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%2F6w362dj8la71f3uzstbl.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%2F6w362dj8la71f3uzstbl.png" alt="Image welcomekiro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Assign Users or Groups to Kiro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of individual users, assign the group.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click Add users or groups&lt;/li&gt;
&lt;li&gt;Select the subscription plan&lt;/li&gt;
&lt;li&gt;Choose: kiro_dev_group&lt;/li&gt;
&lt;li&gt;Assign the group&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%2F7ee4dso0w0j9s7be1r2u.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%2F7ee4dso0w0j9s7be1r2u.png" alt="Image assigntokiro"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7: Review Organization Sign-In URL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After configuration, note the IAM Identity Center sign-in URL:&lt;br&gt;
&lt;a href="https://xxxxxxxxxx.awsapps.com/start" rel="noopener noreferrer"&gt;https://xxxxxxxxxx.awsapps.com/start&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%2F7a7ulpw9nwmctpi784gp.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%2F7a7ulpw9nwmctpi784gp.png" alt="Image signinurl"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8: Sign In to Kiro Using Organization Login&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Kiro IDE&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On the login screen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select Sign in with your organization&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%2Fqfgmdi2yzv888b08x9qx.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%2Fqfgmdi2yzv888b08x9qx.png" alt="Image kirologin"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enter Organization URL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Paste your Identity Center URL and continue.&lt;br&gt;
Confirm Access&lt;br&gt;
Authenticate using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IAM Identity Center credentials&lt;/li&gt;
&lt;li&gt;MFA (if prompted)&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%2Fnnm0347n4hzgpjr7dpv2.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%2Fnnm0347n4hzgpjr7dpv2.png" alt="Image kiroaccess"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are logged in and now part of the Kiro Enterprise Plan&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%2Fgd4cpwxccid0dfl3iwa4.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%2Fgd4cpwxccid0dfl3iwa4.png" alt="Image inkiro"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this article, I demonstrated how using AWS IAM Identity Center with Kiro enables secure, centralized team subscriptions, providing scalable access management for your organization. This setup shifts the burden of individual account management away from developers and IT, allowing teams to focus on building, collaborating, and delivering high-value solutions.&lt;/p&gt;

&lt;p&gt;Whether you’re provisioning users, organizing groups, assigning subscriptions, or configuring MFA, IAM Identity Center acts as your enterprise-grade access manager, ensuring every team member has the right permissions without manual overhead.&lt;/p&gt;

&lt;p&gt;By starting with a single group and gradually scaling to include multiple teams and subscription plans, you can establish a streamlined environment where onboarding, access control, and billing are automated and consistent across your organization.&lt;br&gt;
Experiment with these steps and see how Kiro, combined with IAM Identity Center, transforms team development workflows and simplifies GenAI-assisted coding at scale.&lt;/p&gt;

&lt;p&gt;Generative AI is transforming the way development happens, and tools like Kiro make this process faster and more collaborative. While managing multiple users and subscriptions may seem complex, IAM Identity Center provides the governance and security your organization needs.&lt;/p&gt;

&lt;p&gt;I believe this is just the beginning, and these tools will continue to evolve rapidly!&lt;/p&gt;

&lt;p&gt;Thanks for reading, and I hope you found this walkthrough insightful.&lt;/p&gt;

&lt;p&gt;Watch the video here:&lt;/p&gt;

&lt;p&gt;

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


&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘭𝘰𝘶𝘥 𝘛𝘦𝘤𝘩𝘯𝘰𝘭𝘰𝘨𝘺 𝘌𝘯𝘵𝘩𝘶𝘴𝘪𝘢𝘴𝘵&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
    </item>
    <item>
      <title>Kiro did it: Building a Credit Card Account Status Check Lambda Using the Kiro IDE!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Sun, 25 Jan 2026 15:46:33 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/kiro-did-it-building-a-credit-card-account-status-check-lambda-using-the-kiro-ide-1cjg</link>
      <guid>https://dev.to/bhatiagirish/kiro-did-it-building-a-credit-card-account-status-check-lambda-using-the-kiro-ide-1cjg</guid>
      <description>&lt;p&gt;Hi! I’m Girish, an AWS Community Builder and Cloud Tech Enthusiast, with expertise in delivering customer-focused and business-impacting cloud transformation programs of high complexity.&lt;/p&gt;

&lt;p&gt;In my previous articles, I shared various Kiro features like vibe coding, specs driven development, steering docs and hooks.&lt;/p&gt;

&lt;p&gt;I also demonstrated various examples of Kiro use cases like creating a CRUD API, using Kiro to modernize my portfolio web site and using Kiro Powers to create postman collection.&lt;/p&gt;

&lt;p&gt;In this article, I’ll demonstrate how I used the Kiro IDE to build a real-world banking Lambda function - a Credit Card Account Status Check Lambda - and how Kiro’s context-aware, agentic approach helped me go from idea to a clean, test ready implementation for enterprise workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did I Build and Why?
&lt;/h2&gt;

&lt;p&gt;In my prior posts, I demonstrated various other uses cases of Kiro like creating APIs, UI, Modernize my portfolio website and using Kiro Powers. This time I wanted to build a serverless function that contains business logic and does not integrate with any database. The intent of this function is to have a business function that can be triggered by other events and services as needed by the workflow.&lt;/p&gt;

&lt;p&gt;With this use case in consideration, I build a credit card account status check Lambda function as account status check is a common patter in banking and credit card platforms.&lt;/p&gt;

&lt;p&gt;This Lambda is responsible for determining whether a card account is eligible to process transactions based on signals such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Account status (active vs closed)&lt;/li&gt;
&lt;li&gt;Temporary freezes&lt;/li&gt;
&lt;li&gt;Fraud blocks&lt;/li&gt;
&lt;li&gt;Delinquency thresholds&lt;/li&gt;
&lt;li&gt;Card expiration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This type of logic is typically part of authorization or decisioning workflows, and it’s a great example of pure business logic that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does not require DynamoDB&lt;/li&gt;
&lt;li&gt;Does not require API Gateway&lt;/li&gt;
&lt;li&gt;Can be triggered via events or scheduled checks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I chose this use case intentionally because it allows us to focus on decision logic and architecture, not infrastructure plumbing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use Kiro for This?
&lt;/h2&gt;

&lt;p&gt;What makes this exercise interesting is not just &lt;em&gt;&lt;strong&gt;what we’re building&lt;/strong&gt;&lt;/em&gt;, but &lt;em&gt;&lt;strong&gt;how we’re building it&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Instead of starting with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boilerplate SAM templates&lt;/li&gt;
&lt;li&gt;Manual handler code writing&lt;/li&gt;
&lt;li&gt;Trial-and-error refactoring&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I let Kiro act as my peer engineer, guiding the implementation through prompts, reasoning about the workspace, and generating code that aligned with real-world banking patterns. Kiro not only generated a fully functional code but also create an Infra as Code template to build and deploy the Lambda function using AWS SAM. In addition, it created specs and design for the function as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;At a high level, the architecture is intentionally simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Lambda (Python) for business logic&lt;/li&gt;
&lt;li&gt;AWS SAM for infrastructure as code&lt;/li&gt;
&lt;li&gt;Event-driven invocation (local testing or scheduled execution)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reference Architecture Diagram&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%2Fn2yxbfccpkfyudxf1d3e.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%2Fn2yxbfccpkfyudxf1d3e.png" alt="Image arc"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Kiro and I Built the Lambda
&lt;/h2&gt;

&lt;p&gt;I started by providing Kiro a prompt.&lt;/p&gt;

&lt;p&gt;I explained in detail to Kira the intent of what the Lambda should do and why!&lt;/p&gt;

&lt;p&gt;Here is the exact prompt I used:&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%2F1psz05bc4hltk8ubzpfw.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%2F1psz05bc4hltk8ubzpfw.png" alt="Image prompt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro responded by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Evaluating the existing workspace&lt;/li&gt;
&lt;li&gt;Suggesting a clean project structure&lt;/li&gt;
&lt;li&gt;Generating a Python-based Lambda handler&lt;/li&gt;
&lt;li&gt;Creating a SAM template aligned with best practices&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%2Fcsdchq94rw2f91x32pu1.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%2Fcsdchq94rw2f91x32pu1.png" alt="Image res1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What stood out immediately was that Kiro did not blindly generate code.&lt;/p&gt;

&lt;p&gt;It reasoned about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Business rules&lt;/li&gt;
&lt;li&gt;Decision paths&lt;/li&gt;
&lt;li&gt;Environment-based configuration&lt;/li&gt;
&lt;li&gt;Security and clarity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The entire experience felt like pair programming with a senior engineer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Business Logic in Action
&lt;/h2&gt;

&lt;p&gt;The Card Account Status Check Lambda evaluates multiple conditions and produces a clear decision outcome:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Approved&lt;/li&gt;
&lt;li&gt;Declined&lt;/li&gt;
&lt;li&gt;Review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kiro created a detailed specs in the form of requirements file. An example shown below:&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%2Fj6i3rypqi9mhmqz2ht7k.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%2Fj6i3rypqi9mhmqz2ht7k.png" alt="Image res"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These specs clearly outline the requirements used by Kiro to build the business function.&lt;/p&gt;

&lt;p&gt;Here is an example of AWS SAM template generated by Kiro:&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%2Fqefq1ur8zbevx1oy6ya0.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%2Fqefq1ur8zbevx1oy6ya0.png" alt="Image template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is the sample function code generated by Kiro:&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%2Fzwqipk7mm00woo4wzmsd.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%2Fzwqipk7mm00woo4wzmsd.png" alt="Image lambda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing the Lambda Locally
&lt;/h2&gt;

&lt;p&gt;Thanks to Kiro as it generated a SAM template. Using SAM, I can test this Lambda function locally by passing multiple test events and Yes, those test JSON was also created by Kiro!&lt;/p&gt;

&lt;p&gt;Multiple JSON test files created by Kiro allowed me to test below scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Active account&lt;/li&gt;
&lt;li&gt;Frozen account&lt;/li&gt;
&lt;li&gt;Fraud-blocked account&lt;/li&gt;
&lt;li&gt;Delinquent account&lt;/li&gt;
&lt;li&gt;Expired card&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example of test case run locally using AWS SAM.&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%2Fyic9sbxy2lfbnwb4llrd.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%2Fyic9sbxy2lfbnwb4llrd.png" alt="Image test"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once fully built, Kiro provided me final status message of the build process confirming and summarizing what all have been built.&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%2Fkyiqt0uk8p04o68trd64.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%2Fkyiqt0uk8p04o68trd64.png" alt="Image msg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The full function build, including test file generation, was completed in about 60 minutes through peer-style prompt refinement with Kiro.&lt;/p&gt;

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

&lt;p&gt;In this article, I demonstrated how the Kiro IDE can be used to build a real-world Credit Card Account Status Check Lambda—not as a proof of concept, but as a practical, enterprise-aligned implementation.&lt;/p&gt;

&lt;p&gt;What stood out most was the quality of collaboration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiro reasoned about business intent&lt;/li&gt;
&lt;li&gt;Generated clean, explainable code&lt;/li&gt;
&lt;li&gt;Adapted as requirements evolved&lt;/li&gt;
&lt;li&gt;Responded like a true peer programmer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Generative AI isn’t replacing good coding, design or testing practices; it’s enhancing them. And with tools like Kiro, building business functions can feel like working alongside an experienced software engineer who understands your workspace.&lt;/p&gt;

&lt;p&gt;As agentic AI tools continue to mature, capabilities like specs driven development, context-aware reasoning, and explainable outputs will become essential especially in regulated domains like banking.&lt;/p&gt;

&lt;p&gt;I believe this is just the beginning, and tools like Kiro will continue to redefine how we design &amp;amp; build cloud-native systems.&lt;/p&gt;

&lt;p&gt;Thanks for reading, and stay tuned for more hands-on AWS and Kiro content!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Watch the video here:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;

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


&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘭𝘰𝘶𝘥 𝘛𝘦𝘤𝘩𝘯𝘰𝘭𝘰𝘨𝘺 𝘌𝘯𝘵𝘩𝘶𝘴𝘪𝘢𝘴𝘵&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
    </item>
    <item>
      <title>Kiro Did It: Using Powers to Test Your APIs in Postman!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Wed, 17 Dec 2025 02:47:22 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/kiro-did-it-using-powers-to-test-your-apis-in-postman-2mef</link>
      <guid>https://dev.to/bhatiagirish/kiro-did-it-using-powers-to-test-your-apis-in-postman-2mef</guid>
      <description>&lt;p&gt;Hi! I’m Girish, an AWS Community Builder and Cloud Tech Enthusiast, with expertise in delivering customer-focused and business-impacting cloud transformation programs of high complexity.&lt;/p&gt;

&lt;p&gt;In my previous articles, I shared various Kiro features like vibe coding, specs driven development, steering docs and hooks. All these features were available prior to reinvent 2025.&lt;/p&gt;

&lt;p&gt;This time, I am writing about a feature of Kiro that was announced during reinvent 2025. This feature is Kiro Powers!&lt;/p&gt;

&lt;p&gt;I will use Postman Power in Kiro to demonstrate how you can use agentic AI to create API test collection and then use it in Postman to validate your API endpoints.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did I Build and Why?
&lt;/h2&gt;

&lt;p&gt;A few weeks back, I built a CRUD API for customer look up using AWS Kiro. Based on my prompt, Kiro created multiple API endpoints to lookup, create, update and delete customer information. It created a tech stack including API Gateway, Lambda and Dynamo DB. An IaC code using AWS SAM was created as well to build and deploy this solution to AWS Cloud. At that time, I used Postman to validate the API endpoints and created the needed postman collection manually.&lt;/p&gt;

&lt;p&gt;Fast Forward to December, post reinvent 2025, now Kiro supports Powers and one of the powers is Postman Power for which Postman, the creator of the tool, is the creator of this power.&lt;/p&gt;

&lt;p&gt;I decided to try out this Postman power and used the same API endpoints to validate this. With this Postman power in action, Kiro created the entire collection in minutes.&lt;/p&gt;

&lt;p&gt;This wasn’t just a prototype or proof of concept, it was an opportunity to see how Kiro’s AI-driven coding capabilities could help me automate the repetitive tasks of API validation collection creation, thus saving the time and allowing me to focus on ensuring that APIs are built correctly and to the specs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&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%2Fp85uijbjxslh0jmf278o.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%2Fp85uijbjxslh0jmf278o.png" alt="Image arch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Kiro Powers
&lt;/h2&gt;

&lt;p&gt;Kiro Powers are modules created in partnership with developer tool providers to supply tool-specific context and expertise to agentic AI–based development workflows. In simple terms, Powers combine tool-specific MCPs and steering documentation into a single unit that guides the agentic AI with the right context resulting in more accurate responses and higher-quality code or artifact generation.&lt;br&gt;
There are many different Powers available today, including Postman, Figma, Terraform, Stripe, and more.&lt;/p&gt;

&lt;p&gt;In this article, I’ll be using the Postman Power with Kiro to demonstrate how it can generate a complete API collection.&lt;/p&gt;
&lt;h2&gt;
  
  
  How Kiro and I Did It!
&lt;/h2&gt;

&lt;p&gt;I started by providing Kiro a prompt.&lt;/p&gt;

&lt;p&gt;Here’s the exact prompt I used:&lt;/p&gt;

&lt;p&gt;“I have a customer lookup API. Using Postman Powers, create a collection for getCustomer API.”&lt;/p&gt;

&lt;p&gt;That’s it. No schema definitions. No OpenAPI spec. No manual instructions.&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%2Fd4wa0c0qr9lbvfk93t80.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%2Fd4wa0c0qr9lbvfk93t80.png" alt="Image firstresponse"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What I found interesting that instead of blindly creating something new, Kiro responded by evaluating my existing workspace. As part of this assessment, it found the Customer Lookup API and confirmed that it will be building the API collection for this Customer Lookup API.&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%2Fax8cm7eow29um779e8sh.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%2Fax8cm7eow29um779e8sh.png" alt="Image secondresponse"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Full CRUD Collection in Minutes
&lt;/h2&gt;

&lt;p&gt;Kiro recognized that my Customer Lookup API includes multiple endpoints such as Get Customer, List Customers, Create Customer, Update Customer, and Delete Customer. It automatically created a Postman API collection for these endpoints, ensuring that each request includes the appropriate parameters and is ready to run.&lt;br&gt;
Here are the API endpoints Kiro created the collection for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get Customer – Retrieve a customer by ID&lt;/li&gt;
&lt;li&gt;List All Customers – Retrieve all customers&lt;/li&gt;
&lt;li&gt;Create Customer – Add a new customer&lt;/li&gt;
&lt;li&gt;Update Customer – Modify an existing customer&lt;/li&gt;
&lt;li&gt;Delete Customer – Remove a customer&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%2Fna02po0jvb344y01icsf.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%2Fna02po0jvb344y01icsf.png" alt="Image collection"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro, not only created the collection but also included Environment variables for endpoint portability, it also added API key–based authentication headers.&lt;/p&gt;
&lt;h2&gt;
  
  
  Testing the Collection with Postman
&lt;/h2&gt;

&lt;p&gt;Once Kiro confirmed that the collection had been created, I wanted to test it using Postman.&lt;/p&gt;

&lt;p&gt;However, I couldn’t initially find the collection in my local workspace. Since Kiro was acting as my peer programmer, I decided to ask where the collection had been saved.&lt;/p&gt;

&lt;p&gt;As shown in the screenshot below, Kiro responded just like a true peer programmer, explaining that the collection was saved directly in my Postman environment. This eliminated the extra step of manually importing the collection into Postman and allowed me to start testing immediately.&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%2F7v50wq35ipj1q255i6vw.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%2F7v50wq35ipj1q255i6vw.png" alt="Image collectionlocation "&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  View from the Postman
&lt;/h2&gt;

&lt;p&gt;Here is the view in my Postman environment. I can see this collection in there, it was added by Kiro.&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%2Fk0ymt0a51c8z8nke5jxs.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%2Fk0ymt0a51c8z8nke5jxs.png" alt="Image postmancoll"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get Customer Validation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the result from Get Customer API invoked using the collection.&lt;/p&gt;

&lt;p&gt;![Image getcust(&lt;a href="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wpqq3inzh4mabhcb7il.png" rel="noopener noreferrer"&gt;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wpqq3inzh4mabhcb7il.png&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create Customer Validation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the result from Create Customer API invoked using the collection.&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%2Fkwjhhspot021h5c8fc83.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%2Fkwjhhspot021h5c8fc83.png" alt="Image createcust"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I run the Get Customer again, I get the updated list including the one customer, I just created.&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%2F678e6v7bfwxvx04r73lt.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%2F678e6v7bfwxvx04r73lt.png" alt="Image allcust"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this article, I demonstrated how Kiro Powers, combined with Postman Powers, can accelerate API development and testing by eliminating repetitive setup work. Instead of spending hours manually creating requests and configuring environments, Kiro evaluated my existing workspace and generated a complete Customer API collection with all required endpoints ready to use.&lt;/p&gt;

&lt;p&gt;The real magic was in the feedback loop. Kiro didn’t just create requests—it understood the context of the existing API, generated a well-structured Postman collection, and clearly explained what was created and why. It felt less like a tool and more like a technical partner supporting the API testing workflow.&lt;/p&gt;

&lt;p&gt;What started as a simple request to generate a Postman collection quickly became a practical demonstration of how agentic AI can improve everyday developer workflows. With automated tests, environment variables, authentication headers, and validation already in place, the result was a fully usable Postman collection that could be tested immediately.&lt;/p&gt;

&lt;p&gt;Whether you’re building a new API, refining an existing one, or standardizing collections across teams, Kiro’s blend of AI-assisted automation and contextual understanding makes it easier than ever to move from idea to tested implementation—fast, accurate, and reliable.&lt;/p&gt;

&lt;p&gt;Generative AI isn’t replacing good API design or testing practices; it’s enhancing them. And with tools like Kiro, even routine tasks like creating Postman collections can feel like working alongside an experienced API engineer who understands your workspace.&lt;/p&gt;

&lt;p&gt;Generative AI is transforming how APIs are built and tested, and tools like Kiro are making that transformation practical. While increased AI-generated artifacts can introduce new challenges, features like context awareness, spec-driven workflows, and automated validation help maintain quality and consistency.&lt;/p&gt;

&lt;p&gt;I believe this is just the beginning, and these tools will continue to evolve rapidly.&lt;/p&gt;

&lt;p&gt;Thanks for reading, and I hope you found this insightful.&lt;/p&gt;

&lt;p&gt;Watch the video here:&lt;/p&gt;

&lt;p&gt;

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


&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br&gt;
𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘭𝘰𝘶𝘥 𝘛𝘦𝘤𝘩𝘯𝘰𝘭𝘰𝘨𝘺 𝘌𝘯𝘵𝘩𝘶𝘴𝘪𝘢𝘴𝘵&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
    </item>
    <item>
      <title>Kiro Did It! : How Kiro Helped Me Modernize My Portfolio Website!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Thu, 11 Dec 2025 03:58:27 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/kiro-did-it-how-kiro-helped-me-modernize-my-portfolio-website-1oj9</link>
      <guid>https://dev.to/bhatiagirish/kiro-did-it-how-kiro-helped-me-modernize-my-portfolio-website-1oj9</guid>
      <description>&lt;p&gt;Hi! I’m Girish, an AWS Community Builder and Cloud Tech Enthusiast, with expertise in delivering customer-focused and business-impacting cloud transformation programs of high complexity.&lt;/p&gt;

&lt;p&gt;In my previous article, I shared how I used AWS Kiro’s vibe coding feature to build a Customer Lookup API powered by API Gateway, Lambda, DynamoDB, and AWS SAM.&lt;/p&gt;

&lt;p&gt;This time, I wanted to take on something more personal, updating my portfolio website. And once again, Kiro became my co-developer for the job.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did I Build and Why?
&lt;/h2&gt;

&lt;p&gt;A few years ago, I built my personal portfolio website using AWS services such as S3, CloudFront, ACM, and Route 53. It worked great for hosting and showcasing my work, but the navigation always felt like an area that could be improved, more animated, more responsive, and more user-friendly.&lt;/p&gt;

&lt;p&gt;Between managing large-scale cloud initiatives and exploring new AWS features, I never got the time to redesign it. But with Kiro and Generative AI in my toolkit this year, I finally decided to revisit the site and bring it up to modern design standards.&lt;/p&gt;

&lt;p&gt;My goal was simple, make the navigation intuitive, engaging, and mobile-friendly, while experimenting with how far AI-assisted coding could go in enhancing a static site’s front-end.&lt;/p&gt;

&lt;p&gt;This wasn’t just a design refresh, it was an opportunity to see how Kiro’s AI-driven coding capabilities could help me test, modify, and visualize design ideas in real time.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Kiro and I Did It!
&lt;/h2&gt;

&lt;p&gt;I started by asking Kiro a few questions, such as:&lt;/p&gt;

&lt;p&gt;“Can I run my portfolio site in Kiro before hosting it on AWS, so I can make and preview changes locally?”&lt;/p&gt;

&lt;p&gt;Once Kiro helped me run the static site locally, I moved on to the main goal: upgrading the navigation. I asked Kiro to provide multiple design options and then review the site’s mobile responsiveness, ensuring it looked great across iPhone, iPad, and other devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before &amp;amp; After: Website Upgrade
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Old Navigation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s how the navigation on my portfolio website looked before the update. It was functional but static and plain, with minimal visual cues and limited interactivity. Scrolling and mobile responsiveness were also basic, leaving room for improvement.&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%2Fc2cv4vc6q80477mhm3qk.jpg" 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%2Fc2cv4vc6q80477mhm3qk.jpg" alt="Image oldnavigation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New Navigation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After Kiro helped me transform the website, the navigation is now modern, interactive, and visually engaging. It features smooth animations, clear section highlighting, and improved mobile responsiveness, making it easier and more enjoyable to navigate. The overall look feels fresh, professional, and aligned with a contemporary portfolio design.&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%2F085vs6aixcvn636w0v09.jpg" 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%2F085vs6aixcvn636w0v09.jpg" alt="Image newnavigation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kiro in Action
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Prompt 1 – Preview the Site Locally&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“How can I run this static website in Kiro to preview?”&lt;/p&gt;

&lt;p&gt;Kiro response:&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%2F1p1yqpudjw673l1992js.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%2F1p1yqpudjw673l1992js.png" alt="Image res1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt 2 – Update the Navigation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“I would like to update the profile.html to include navigation for Home, About Me, etc.”&lt;/p&gt;

&lt;p&gt;Kiro response:&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%2F1hmqon0iaowdq0gk4214.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%2F1hmqon0iaowdq0gk4214.png" alt="Image res3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt 3 – Color and Icon Enhancements&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“Can you keep the orange color for the icons but change the blue to better match the page background?”&lt;/p&gt;

&lt;p&gt;Kiro response:&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%2Fwd9n2hvsvh79l21v99oa.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%2Fwd9n2hvsvh79l21v99oa.png" alt="Image res4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt 4 – Add My AWS Community Builder Badge&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Finally, I asked Kiro to add my AWS Community Builder image, and it placed it perfectly!&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%2Fua7r2dm6050kxrnilyl6.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%2Fua7r2dm6050kxrnilyl6.png" alt="Image cwg_banner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kiro’s Feedback Loop
&lt;/h2&gt;

&lt;p&gt;One of the powerful features of Kiro is its feedback loop, which keeps you informed about every change it makes. After implementing the updates, Kiro summarized the enhancements in detail, explaining what was modified and why. This helped me understand how each visual tweak, animation, or layout adjustment contributed to a better user experience. It felt almost like having a co-developer reviewing and guiding the improvements in real time.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Navigation Enhancements Made
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Visual Improvements&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed header bar with gradient background and blur effect&lt;/li&gt;
&lt;li&gt;Icons for each section (Home, About, Projects, etc.)&lt;/li&gt;
&lt;li&gt;Hover animations&lt;/li&gt;
&lt;li&gt;Active section highlighting with animation&lt;/li&gt;
&lt;li&gt;Clear separation between main navigation and external links&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;User Experience&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smooth scrolling between sections&lt;/li&gt;
&lt;li&gt;Active section tracking while scrolling&lt;/li&gt;
&lt;li&gt;Better mobile responsiveness with vertical stacking&lt;/li&gt;
&lt;li&gt;Improved accessibility with focus and hover states&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Technical Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Glass-morphism style with backdrop blur&lt;/li&gt;
&lt;li&gt;Dynamic background opacity on scroll&lt;/li&gt;
&lt;li&gt;Proper scroll offset handling for fixed navigation&lt;/li&gt;
&lt;li&gt;Enhanced CSS transitions and transforms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result? A modern, professional, and responsive navigation that feels alive, stays visible as you scroll, and clearly indicates your current section.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;p&gt;This upgrade experience with Kiro taught me several important lessons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiro accelerates development — it makes quick design and UI improvements easier without heavy manual coding.&lt;/li&gt;
&lt;li&gt;Local previewing through Kiro allows safe experimentation before deployment to AWS.&lt;/li&gt;
&lt;li&gt;Generative AI guidance helps refine color schemes, layout, and responsiveness interactively, making design iterations faster and more precise.&lt;/li&gt;
&lt;li&gt;Kiro’s feedback loop keeps you in control, summarizing updates clearly and ensuring transparency throughout the process.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beyond these points, I realized how AI-assisted development can enhance creativity rather than replace it. By handling repetitive or technical tasks, Kiro lets you focus on design, user experience, and experimentation, bridging the best of automation and human creativity. I combined it with AWS Services to create a finished product!&lt;/p&gt;

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

&lt;p&gt;In this article, I demonstrated how Kiro can accelerate development, save time and allow you to focus on end goal as oppose to spending hours adjusting layouts, colors, and animations manually, Kiro helped me prototype, iterate, and visualize changes instantly.&lt;/p&gt;

&lt;p&gt;The real magic was in the feedback loop. Kiro not only implemented updates but also explained what was changed and why, almost like a coding partner guiding each improvement.&lt;/p&gt;

&lt;p&gt;Upgrading my portfolio website turned out to be more than just a design refresh. It became a practical demonstration of how Kiro and Generative AI can accelerate front-end development while keeping creativity at the center.&lt;/p&gt;

&lt;p&gt;Whether you’re upgrading a static site, fine-tuning navigation, or experimenting with interactive elements, Kiro’s blend of AI-assisted coding and automation makes it easier than ever to transform ideas into working result fast, accurate, and visually stunning.&lt;/p&gt;

&lt;p&gt;Generative AI isn’t replacing creativity, it’s enhancing it And with Kiro, even small weekend projects like a portfolio update can feel like working with a full design and development team by your side.&lt;/p&gt;

&lt;p&gt;Generative AI is transforming the way code is built, and tools like Kiro make the process even easier. While debugging can become more challenging as more code is generated with GenAI, Kiro’s features such as spec-driven development and design documentation generation can help address these challenges.&lt;/p&gt;

&lt;p&gt;I believe this is just the beginning, and these tools will continue to evolve rapidly!&lt;/p&gt;

&lt;p&gt;Thanks for reading, and I hope you found this insightful.&lt;/p&gt;

&lt;p&gt;Watch the video here:&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/3G9tZhI1dx8"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
    </item>
    <item>
      <title>Kiro Did It: Kiro Goes GA - And Replaces My Favorite CLI!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Wed, 19 Nov 2025 04:25:24 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/kiro-did-it-kiro-goes-ga-and-replaces-my-favorite-cli-5ec9</link>
      <guid>https://dev.to/bhatiagirish/kiro-did-it-kiro-goes-ga-and-replaces-my-favorite-cli-5ec9</guid>
      <description>&lt;p&gt;&lt;strong&gt;Kiro Goes GA - And It Just Replaced My Favorite CLI!&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%2F5oze77km51jaj96xd417.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%2F5oze77km51jaj96xd417.png" alt="Image kiro" width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AWS announced the General Availability of Kiro on 11/17/25, and the update included several new features that immediately caught my attention. I have already appreciated Kiro for its vibe coding, specs-driven development approach, MCP integrations, and hooks. However, the most notable change for me was the introduction of the Kiro CLI and its seamless integration with the Kiro IDE.&lt;/p&gt;

&lt;p&gt;I had originally planned to explore the Kiro CLI over the upcoming weekend… but little did I know my exploration would take a surprising turn.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Goodbye Q CLI, Hello Kiro CLI!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While checking the documentation, I discovered something unexpected:&lt;/p&gt;

&lt;p&gt;Kiro CLI has officially replaced the Amazon Q Developer CLI&lt;/p&gt;

&lt;p&gt;In other words :&lt;/p&gt;

&lt;p&gt;one of my favorite dev tool CLIs got replaced by… another one of my favorite dev tool CLIs! 😄&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%2Fw5fye3d5l6u3ebkva0lv.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%2Fw5fye3d5l6u3ebkva0lv.png" alt="Image kiro2" width="800" height="158"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upgrading to Kiro CLI Took One Command&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're already logged into the Q CLI, the upgrade path is literally a single command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;q update&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Running this instantly upgraded my environment from Q CLI → Kiro CLI.&lt;/p&gt;

&lt;p&gt;Here’s the message I received after the upgrade:&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%2Fj2xlu2p6iwypfjd1gjyv.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%2Fj2xlu2p6iwypfjd1gjyv.png" alt="Image kiro3" width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The transition was seamless, and all my existing workflows including MCP configurations immediately recognized the new CLI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Session With Kiro CLI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I couldn’t resist trying it out immediately.&lt;/p&gt;

&lt;p&gt;To keep things simple, &lt;strong&gt;&lt;em&gt;I asked Kiro CLI to do a quick cost projection for a hypothetical single-page website hosted on an EC2 instance, expecting around 10,000 hits per month.&lt;/em&gt;&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%2Fwsxyveczi195xxsb143x.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%2Fwsxyveczi195xxsb143x.png" alt="Image kiro4" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Asked&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%2Fytizexh4j83mg1kq3n6h.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%2Fytizexh4j83mg1kq3n6h.png" alt="Image kiropic" width="800" height="86"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Response I Received&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%2Fijh143wphmcplad1jhap.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%2Fijh143wphmcplad1jhap.png" alt="Image kiro5" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even for a lightweight scenario like this, the response Kiro generated was clean, structured, and extremely quick showcasing just how interactive and developer-friendly this CLI experience is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s exciting to see how these GenAI-driven tools continue to evolve. With the launch of Kiro GA and the introduction of the Kiro CLI, AWS is clearly doubling down on making the entire development workflow conversational, intelligent, and frictionless.&lt;/p&gt;

&lt;p&gt;Tools like Kiro aren’t just enhancing productivity, they’re transforming how we think about software development.&lt;/p&gt;

&lt;p&gt;I can’t wait to see what additional surprises AWS brings to re:Invent 2025, especially in the Kiro ecosystem.&lt;/p&gt;

&lt;p&gt;Stay tuned, I’ll be exploring more of the Kiro CLI capabilities in my upcoming articles!&lt;/p&gt;

&lt;p&gt;Thanks for reading, and I hope you found this insightful.&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>cloud</category>
      <category>aws</category>
      <category>ai</category>
    </item>
    <item>
      <title>Kiro Did It: Streamlining Comments, Structure, and Logging Using Steering Docs!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Sat, 15 Nov 2025 22:18:10 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/kiro-did-it-streamlining-comments-structure-and-logging-using-steering-docs-3hcm</link>
      <guid>https://dev.to/bhatiagirish/kiro-did-it-streamlining-comments-structure-and-logging-using-steering-docs-3hcm</guid>
      <description>&lt;p&gt;Hi! I’m Girish, an AWS Community Builder and Cloud Tech Enthusiast, with expertise in delivering customer-focused and business-impacting cloud transformation programs of high complexity.&lt;/p&gt;

&lt;p&gt;In my previous article, I shared how I used AWS Kiro’s vibe coding feature to build a Customer Lookup API powered by API Gateway, Lambda, DynamoDB, and AWS SAM.&lt;/p&gt;

&lt;p&gt;In another article, I also talked about Kiro's hooks using a simple HelloWorld Python program. I explained how hooks can automatically update a README.md file whenever the Python code is modified.&lt;/p&gt;

&lt;p&gt;Unlike traditional IDEs, Kiro is a GenAI-enabled IDE that supports both specs-driven development and vibe coding.&lt;/p&gt;

&lt;p&gt;In addition to specs, vibe coding and Hooks, Steering Docs is another powerful feature that helps developers by streamlining Comments, Structure, and Logging in your code.&lt;/p&gt;

&lt;p&gt;In this article, I will explore how Kiro's steering doc feature works using a simple HelloWorld Python program. I’ll show how steering docs can help guide the code generation using the product definition, structure and tech stack defined in the steering docs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did I Build and Why?
&lt;/h2&gt;

&lt;p&gt;I wanted to demonstrate how Kiro Steering docs are another value-added feature of this GenAI-enabled IDE. Steering docs can provide guidance when generating code by defining product, code structure and tech stack upfront.&lt;/p&gt;

&lt;p&gt;When you add steering docs, Kiro adds three docs product.md, structure.md and tech.md. These files contain the guidelines that Kiro uses when generating the code.&lt;/p&gt;

&lt;p&gt;I created a hello world document and added steering docs.&lt;/p&gt;

&lt;p&gt;The goal wasn’t to build production-ready code right away, but to use a simple function to demonstrate how Kiro Steering Docs is another feature that can help developer increase the productivity and accelerate software development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture/Design
&lt;/h2&gt;

&lt;p&gt;Before diving in, let’s review the diagram to understand how these components interact.&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%2Fm7w1qcamwvd0jmv423fp.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%2Fm7w1qcamwvd0jmv423fp.png" alt="Image arch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Steering Docs in Kiro IDE?
&lt;/h2&gt;

&lt;p&gt;The Kiro Steering Docs are a key feature that helps Kiro understand what guidance to follow when generating code. By specifying the desired product goals, tech stack, and code structure, these guidelines allow Kiro to automatically implement best practices upfront. This ensures the resulting code consistently follows standards for comments, logging, and structure, yielding clean, safe, and maintainable code without manual intervention.&lt;/p&gt;

&lt;p&gt;To generate the steering docs, you click on Kiro icon and then generate Steering Docs.&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%2F1wp053l808ytjfzrwn3e.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%2F1wp053l808ytjfzrwn3e.png" alt="Image steer1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro will scan your project file and will generate the Steering Docs.&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%2Fjdb1bd1s186eixvk5dtg.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%2Fjdb1bd1s186eixvk5dtg.png" alt="Image steer2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro will generate 3 files as Steering Docs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product.md&lt;/li&gt;
&lt;li&gt;Structure.md&lt;/li&gt;
&lt;li&gt;Tech.md&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's see what each of these file contains:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;product.md&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Provides a high-level overview of what the HelloWorld service does, why it exists, and the core behavior users should expect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;tech.md&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lists the technology stack, tools, and essential commands required to run, test, and deploy the HelloWorld service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;structure.md&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Describes the project’s folder layout and explains the organizational principles applied to keep the code clean and maintainable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Review the Steering Docs
&lt;/h2&gt;

&lt;p&gt;Once the Steering Docs have been generated, you would see these 3 files in your project view.&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%2Fkiaq6cayquvh143d6xjr.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%2Fkiaq6cayquvh143d6xjr.png" alt="Image steerdocs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Review product.md
&lt;/h2&gt;

&lt;p&gt;You’ll see that:&lt;/p&gt;

&lt;p&gt;The product.md contains section to describe the product purpose, key features and target users.&lt;/p&gt;

&lt;p&gt;I will update product.md to add detail about HelloWorld project. Updated file will look similar to below:&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%2F2dydlqe2osf838evpitb.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%2F2dydlqe2osf838evpitb.png" alt="Image reviewupdateprod"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Review tech.md
&lt;/h2&gt;

&lt;p&gt;You’ll see that:&lt;/p&gt;

&lt;p&gt;The tech.md contains section to describe the tech stack like what language to use, logging, run time, testing and more.&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%2F6rdq0vfrqk8sjx0merp0.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%2F6rdq0vfrqk8sjx0merp0.png" alt="Image techdoc"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Review structure.md
&lt;/h2&gt;

&lt;p&gt;You’ll see that:&lt;/p&gt;

&lt;p&gt;The structure.md contains section to describe the structure and organization of the code directory.&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%2Fcgqyuus4wo3144k5k7o7.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%2Fcgqyuus4wo3144k5k7o7.png" alt="Image struc"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With Kiro, you can further refine your steering docs as well. Once you click on 'Refine', Kiro will refine the steering docs.&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%2F30coeorc72012o0i2buj.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%2F30coeorc72012o0i2buj.png" alt="Image reviewandrefine"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kiro Code Generation
&lt;/h2&gt;

&lt;p&gt;Now that I have steering docs in place, I will ask Kiro to generate the hello world function. Below is the prompt, I provided:&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%2F6zbmjaeypxqpyxnaf2l8.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%2F6zbmjaeypxqpyxnaf2l8.png" alt="Image codeprompt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro responded by confirming that it will generate the asked code.&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%2Fpfci32ln8j2n5kk8bm2x.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%2Fpfci32ln8j2n5kk8bm2x.png" alt="Image codegen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Review Generated Code
&lt;/h2&gt;

&lt;p&gt;Generated code for python function.&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%2Ffnztaq10zxexrx6kvd1e.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%2Ffnztaq10zxexrx6kvd1e.png" alt="Image codefunc"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Generated code for lambda handler.&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%2Fwmoziwt3n7dhj9u7ax8z.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%2Fwmoziwt3n7dhj9u7ax8z.png" alt="Image codelambda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Test the function
&lt;/h2&gt;

&lt;p&gt;I can validate the generated function using the Python command as below:&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%2F9e3dxsps2pasrcpcmzel.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%2F9e3dxsps2pasrcpcmzel.png" alt="Image testfunc"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since Steering docs in place, if I add a new function, Kiro will follow the guidance from these steering docs to follow the same pattern.&lt;/p&gt;

&lt;p&gt;I added another function as below and as you can see, this one uses comments and logging based on the guidance noted in the steering docs.&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%2Fe5gnmw1v7a2rkae7y5pg.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%2Fe5gnmw1v7a2rkae7y5pg.png" alt="Image addfunc"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;In this article, I demonstrated how Kiro can accelerate development by applying Steering Docs directly into the workflow, guiding code generation toward consistent structure, clear documentation, proper logging, and reliable exception handling. This shifts effort away from repetitive cleanup and review, allowing developers to focus on higher-value logic and design.&lt;/p&gt;

&lt;p&gt;Whether you’re defining code comments, enforcing Python structure, standardizing logging practices, or ensuring proper error handling, Steering Docs act as your silent co-developer by shaping every output to match your standards.&lt;/p&gt;

&lt;p&gt;By starting with small, practical examples and gradually expanding your Steering Docs, you can establish a development environment where every code change automatically aligns with best practices and maintains consistent quality.&lt;/p&gt;

&lt;p&gt;Experiment with these Steering Docs and see how Kiro transforms your everyday coding experience.&lt;/p&gt;

&lt;p&gt;Generative AI is transforming the way code is built, and tools like Kiro make the process even easier. While debugging can become more challenging as more code is generated with GenAI, Kiro’s features such as spec-driven development and design documentation generation can help address these challenges.&lt;/p&gt;

&lt;p&gt;I believe this is just the beginning, and these tools will continue to evolve rapidly!&lt;/p&gt;

&lt;p&gt;Thanks for reading, and I hope you found this insightful.&lt;/p&gt;

&lt;p&gt;Watch the video here:&lt;/p&gt;

&lt;p&gt;

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


&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘭𝘰𝘶𝘥 𝘛𝘦𝘤𝘩𝘯𝘰𝘭𝘰𝘨𝘺 𝘌𝘯𝘵𝘩𝘶𝘴𝘪𝘢𝘴𝘵&lt;/p&gt;

</description>
      <category>aws</category>
      <category>kiro</category>
      <category>cloudcomputing</category>
      <category>ai</category>
    </item>
    <item>
      <title>Let Kiro Do the Work: Automate Your Code and Documentation with Hooks!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Sun, 02 Nov 2025 19:37:23 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/let-kiro-do-the-work-automate-your-code-and-documentation-with-hooks-3h6g</link>
      <guid>https://dev.to/bhatiagirish/let-kiro-do-the-work-automate-your-code-and-documentation-with-hooks-3h6g</guid>
      <description>&lt;p&gt;Hi! I’m Girish, an AWS Community Builder and Cloud Tech Enthusiast, with expertise in delivering customer-focused and business-impacting cloud transformation programs of high complexity.&lt;/p&gt;

&lt;p&gt;In my previous article, I shared how I used AWS Kiro’s vibe coding feature to build a Customer Lookup API powered by API Gateway, Lambda, DynamoDB, and AWS SAM.&lt;/p&gt;

&lt;p&gt;Unlike traditional IDEs, Kiro is a GenAI-enabled IDE that supports both specs-driven development and vibe coding.&lt;/p&gt;

&lt;p&gt;In addition to specs and vibe coding, Hooks are another powerful feature that automate repetitive tasks. This feature saves developers valuable time and allows them to focus more on the functional aspects of software development.&lt;/p&gt;

&lt;p&gt;When working on rapid application development, automating repetitive tasks can save significant time and reduce errors. Kiro IDE, known for accelerating full-stack app development with AI-powered code generation, also supports the Hook feature, a powerful way to trigger automatic actions whenever your code changes.&lt;/p&gt;

&lt;p&gt;In this article, we’ll explore how Kiro’s Hook feature works using a simple HelloWorld Python program. We’ll show how hooks can automatically update a README.md file whenever the Python code is modified.&lt;/p&gt;

&lt;p&gt;I’ll then add another hook that not only creates or updates the README.md file but also runs Bandit, an open-source tool that scans Python code for common security vulnerabilities such as hardcoded passwords.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did I Build and Why?
&lt;/h2&gt;

&lt;p&gt;I wanted to demonstrate how Kiro hooks are another value-added feature of this GenAI-enabled IDE. Hooks can automate repetitive tasks such as updating documentation or scanning code for security vulnerabilities.&lt;/p&gt;

&lt;p&gt;Here are the two hooks I created:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hook#1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Documentation update&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instructions for Kiro agent&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Python source files have been modified. Please review the changes and update the documentation accordingly. If there is a README.md file, update it to reflect any new functionality, API changes, or usage examples. If there is a /docs folder, update the relevant documentation files there. Focus on keeping the documentation accurate and up-to-date with the current codebase.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Hook#2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Documentation update and python code security scan using bandit&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instructions for Kiro agent&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A Python file has been modified. Please: 1) Run bandit security scanning on all *.py files in the current directory and output the results in JSON format. bandit is installed in the virtual environment, and 2) Update the README.md file to reflect any changes or new information about the Python files in the project.&lt;br&gt;
The goal wasn’t to build production-ready code right away, but to use a simple function to demonstrate how Kiro hooks can automate repetitive tasks allowing developers to invest their time in building business logic instead of routine maintenance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Architecture/Design
&lt;/h2&gt;

&lt;p&gt;Before diving in, let’s review the diagram to understand how these components interact.&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%2Fx4si67t44r7etrka3m6f.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%2Fx4si67t44r7etrka3m6f.png" alt="Image arch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Hooks in Kiro IDE?
&lt;/h2&gt;

&lt;p&gt;Hooks in Kiro IDE are automated triggers that run specific actions when defined events occur such as when a file is created, saved, or deleted. Hooks can also be invoked manually.&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%2F9hwcm7lo6inf7whvmydx.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%2F9hwcm7lo6inf7whvmydx.png" alt="Image hooksevent"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use hooks to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update documentation automatically&lt;/li&gt;
&lt;li&gt;Regenerate API specs when endpoints change&lt;/li&gt;
&lt;li&gt;Generate commit messages or summaries based on updated code&lt;/li&gt;
&lt;li&gt;Run code scans when code is added or updated&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hooks bring automation directly into your development environment, making workflows smarter and faster without relying on external scripts. They save time by letting the AI agent handle repetitive tasks while developers focus on innovation and quality.&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%2F0tg0kwk2ifj0x6da607h.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%2F0tg0kwk2ifj0x6da607h.png" alt="Image hooksconfig"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review the Steps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hook#1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a HelloWorld Function&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%2Fonmb4zu9fg831e0yufgd.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%2Fonmb4zu9fg831e0yufgd.png" alt="Image hellofn"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Save the file&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Saving the file will trigger the manual and you should see that a readme file has been created.&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%2F5bp5aesuyxrr0tgllrku.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%2F5bp5aesuyxrr0tgllrku.png" alt="Image readme"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a simple example of how Kiro Hook took care of creating the readme file based on the function code. If you update the code further, then Kiro will update the readme document to align with the code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hook#2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Update the function code to add a parameter so that it takes the name and then print the message.&lt;/p&gt;

&lt;p&gt;Also add a variable to store a hardcoded password. This update is required so that when hook is triggered, it finds a security vulnerability like hardcoded password.&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%2F8w5euvzmv8pq10vgmkgu.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%2F8w5euvzmv8pq10vgmkgu.png" alt="Image updatefn"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Saving the file will trigger the manual and you should see that a readme file has been updated. Also, you will see a code scanning results informing you of a security vulnerability in the code due to hardcoded password.&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%2Fcumdi4iidy74f9naljc1.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%2Fcumdi4iidy74f9naljc1.png" alt="Image fnscan"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review readme file&lt;/strong&gt;&lt;br&gt;
You’ll see that:&lt;/p&gt;

&lt;p&gt;The README.md file now reflects the updated function definition with the new name parameter.&lt;/p&gt;

&lt;p&gt;The file also includes the security scan results generated by Bandit.&lt;br&gt;
Not only has the README file been updated, but the security scan has also been executed , showcasing Kiro’s ability to perform multiple automated tasks.&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%2Fs4fchm0rilf3zipw8e5i.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%2Fs4fchm0rilf3zipw8e5i.png" alt="Image fnupdate2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not only readme file has been updated, security scan has also been completed.&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%2Fcq5nqdbjwfmcivfhta79.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%2Fcq5nqdbjwfmcivfhta79.png" alt="Image scan"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this article, I demonstrated how Kiro can accelerate development by bringing automation directly into the development workflow, allowing developers to focus more on creativity and logic rather than repetitive maintenance tasks.&lt;/p&gt;

&lt;p&gt;Whether you’re updating documentation, generating commit messages, formatting code, or scanning code, hooks act as your silent co-developer, working in partnership.&lt;/p&gt;

&lt;p&gt;By starting with small, practical examples and gradually combining them, you can create a fully automated environment where every code change triggers meaningful actions.&lt;/p&gt;

&lt;p&gt;Experiment with these hook ideas and see how Kiro transforms your everyday coding experience.&lt;/p&gt;

&lt;p&gt;Generative AI is transforming the way code is built, and tools like Kiro make the process even easier. While debugging can become more challenging as more code is generated with GenAI, Kiro’s features such as spec-driven development and design documentation generation can help address these challenges.&lt;/p&gt;

&lt;p&gt;I believe this is just the beginning, and these tools will continue to evolve rapidly!&lt;/p&gt;

&lt;p&gt;Thanks for reading, and I hope you found this insightful.&lt;/p&gt;

&lt;p&gt;Watch the video here:&lt;/p&gt;

&lt;p&gt;

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


&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘭𝘰𝘶𝘥 𝘛𝘦𝘤𝘩𝘯𝘰𝘭𝘰𝘨𝘺 𝘌𝘯𝘵𝘩𝘶𝘴𝘪𝘢𝘴𝘵&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
      <category>cloudcomputing</category>
      <category>agents</category>
    </item>
    <item>
      <title>Kiro Did It! – From Prompt to Customer API &amp; UI Using Vibe Coding!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Fri, 17 Oct 2025 19:39:29 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/kiro-did-it-from-prompt-to-customer-api-ui-using-vibe-coding-og0</link>
      <guid>https://dev.to/bhatiagirish/kiro-did-it-from-prompt-to-customer-api-ui-using-vibe-coding-og0</guid>
      <description>&lt;p&gt;Hi! I’m Girish, an AWS Community Builder, Cloud Tech Enthusiast, with expertise in delivering customer-focused and business-impacting cloud transformation programs of high complexity.&lt;/p&gt;

&lt;p&gt;In this article, I’ll share how I used AWS Kiro’s vibe coding feature to build a Customer Lookup API powered by API Gateway, Lambda, DynamoDB, and AWS SAM.&lt;/p&gt;

&lt;p&gt;Unlike traditional IDEs, vibe coding in Kiro lets you code in flow with lightweight prompts—no need to over-specify requirements up front. It’s perfect for experimenting, prototyping, and just “vibing” with code.&lt;/p&gt;

&lt;p&gt;Instead of manually wiring services together, I simply gave Kiro a natural-language prompt, and within minutes I had a working, deployable prototype. That’s the magic of vibe coding!&lt;/p&gt;

&lt;h2&gt;
  
  
  What did I build and why?
&lt;/h2&gt;

&lt;p&gt;I wanted to create a quick Customer Lookup full-stack application to demonstrate how fast you can go from an idea to a working solution using Kiro’s vibe coding feature. Instead of manually setting up AWS resources, I described my requirements in plain English, and Kiro generated the entire project for me including the backend APIs and the UI.&lt;/p&gt;

&lt;p&gt;Here’s what I ended up with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A REST API hosted on API Gateway&lt;/li&gt;
&lt;li&gt;GET /customers – List all customers&lt;/li&gt;
&lt;li&gt;GET /customers/{custId} – Retrieve a specific customer&lt;/li&gt;
&lt;li&gt;POST /customers – Create a new customer&lt;/li&gt;
&lt;li&gt;PUT /customers/{custId} – Update an existing customer&lt;/li&gt;
&lt;li&gt;DELETE /customers/{custId} – Delete a customer&lt;/li&gt;
&lt;li&gt;A Lambda function for handling API requests&lt;/li&gt;
&lt;li&gt;A DynamoDB table to store customer data (custId, Name, State, Zipcode)&lt;/li&gt;
&lt;li&gt;A UI hosted on EC2, integrated with these API endpoints for CRUD operations&lt;/li&gt;
&lt;li&gt;An AWS SAM template for building and deploying the stack&lt;/li&gt;
&lt;li&gt;Sample JSON events for testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal wasn’t to build production-ready code right away, but to quickly get a working full-stack prototype that can later be extended with authentication, observability, monitoring, and performance tuning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture Overview
&lt;/h2&gt;

&lt;p&gt;Here’s a quick look at how the components work together:&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%2Fpndgsa2e8t9ehs753nrl.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%2Fpndgsa2e8t9ehs753nrl.png" alt="Image arch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Review Steps: From Prompt to Prototype
&lt;/h2&gt;

&lt;p&gt;Start a Vibe Coding Session&lt;/p&gt;

&lt;p&gt;Open Kiro, switch to vibe coding mode, and simply type a natural prompt like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Build a customer lookup api as rest api. api will be hosted using aws gateway, integrated with a lambda function, data will be stored in a DynamoDB table, create a simple table to store this data with four fields - custId, Name, state, zipcode. do not create test framework as need to get a quick working prototype first before adding testing and performance framework. I would like to use AWS SAM to build and deploy this solution."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kiro responded to me with below answer:&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%2F2vbufxnn8wxt55l7peq8.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%2F2vbufxnn8wxt55l7peq8.png" alt="Image kiroresponse"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro Generates the Project files&lt;/p&gt;

&lt;p&gt;In minutes, Kiro produced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A SAM template (template.yaml)&lt;/li&gt;
&lt;li&gt;A Lambda function (app.py)&lt;/li&gt;
&lt;li&gt;A DynamoDB table definition&lt;/li&gt;
&lt;li&gt;Sample JSON Events to test the API with&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example SAM template (simplified):&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%2F7hlbfecbzixpor44bveh.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%2F7hlbfecbzixpor44bveh.png" alt="Image template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review the Lambda Function&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro generated a Python handler with DynamoDB integration:&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%2Fybst3r16qa2vh5mcgjub.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%2Fybst3r16qa2vh5mcgjub.png" alt="Image lambda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Review Sample JSON Event&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%2F19kxhgjm1xpgr9pnifnl.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%2F19kxhgjm1xpgr9pnifnl.png" alt="Image jasonevent"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Build &amp;amp; Deploy with SAM
&lt;/h2&gt;

&lt;p&gt;Once I reviewed the files, it was just a matter of building and deploying.&lt;/p&gt;

&lt;p&gt;Use the following command to build the function:&lt;br&gt;
&lt;strong&gt;Command:&lt;/strong&gt; sam build&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%2Ftbni4suskd8zfrc599vb.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%2Ftbni4suskd8zfrc599vb.png" alt="Image sambuild"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can deploy it to the AWS Cloud using the sam deploy command:&lt;br&gt;
&lt;strong&gt;Command:&lt;/strong&gt; sam deploy&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%2Fdy24t7zl3wujfh1jj0v9.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%2Fdy24t7zl3wujfh1jj0v9.png" alt="Image samdeploy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SAM packaged and deployed the API Gateway, Lambda, and DynamoDB resources in my AWS account.&lt;/p&gt;
&lt;h2&gt;
  
  
  Review using AWS Console
&lt;/h2&gt;

&lt;p&gt;Since the resources have been deployed in my AWS account, I logged in to the AWS Management Console to verify them.Here’s what I checked:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API Gateway – Confirmed the REST API with all CRUD endpoints (GET, POST, PUT, DELETE).&lt;/li&gt;
&lt;li&gt;Lambda Function – Validated that the function was created and linked to API Gateway.&lt;/li&gt;
&lt;li&gt;DynamoDB Table – Verified the customers table with attributes (custId, Name, State, Zipcode).&lt;/li&gt;
&lt;li&gt;CloudFormation / SAM Stack – Ensured the stack deployed successfully with all resources.&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%2F26jkuuad4f4yrw1m3hkg.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%2F26jkuuad4f4yrw1m3hkg.png" alt="Image console"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Test the API
&lt;/h2&gt;

&lt;p&gt;Now that I have the API endpoint, I will use the Postman to invoke the API and will review the response returned.&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%2Fguh4sxkbdpj5ns8viw9r.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%2Fguh4sxkbdpj5ns8viw9r.png" alt="Image postman"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a CRUD API, so it supports other operations as well. For this demonstration, however, I focused on POST and GETrequests, to create a record and fetch a record through the API endpoint.&lt;/p&gt;
&lt;h2&gt;
  
  
  Adding a Functional UI with Kiro
&lt;/h2&gt;

&lt;p&gt;Since the CRUD API worked as expected, I asked Kiro to create a UI integrated with these API endpoints, and here is the functional UI it generated!&lt;/p&gt;

&lt;p&gt;I manually added API security features so that if a valid subscription key is not passed to API Gateway, an error is shown:&lt;/p&gt;

&lt;p&gt;🔒 Invalid key → access denied&lt;br&gt;
✅ Valid key → response returned successfully&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%2Ft3hnn1iqayt4mrjlh5qm.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%2Ft3hnn1iqayt4mrjlh5qm.png" alt="Image apierror"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And here is how the UI looks when a response is returned by the API endpoints!&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%2Fxdnkdms1cpdglrh97c0n.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%2Fxdnkdms1cpdglrh97c0n.png" alt="Image validapi"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After validating that all functions were working as expected, I asked Kiro to update the UI by replacing the CRUD function dropdown with radio buttons to make it more user-friendly. Screenshots below:&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%2F99dsvox2se6ybscwpanj.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%2F99dsvox2se6ybscwpanj.png" alt="Image UIScreens"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Multiple API endpoints + a working UI in under 30 minutes — all powered by GenAI and Kiro!&lt;/p&gt;

&lt;p&gt;But does that mean expertise isn’t required? Not at all.&lt;/p&gt;

&lt;p&gt;I still:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Validated the solution&lt;/li&gt;
&lt;li&gt;Deployed it using SAM&lt;/li&gt;
&lt;li&gt;Configured API security with subscription keys, quotas, and client application invocations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It felt like a team effort where Kiro acted as a peer—helping me generate, review, and collaborate to get the prototype built quickly.&lt;/p&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this article, I demonstrated how Kiro can accelerate development by enabling the creation of a fully functional CRUD Customer Lookup REST API with DynamoDB and extending it into a complete full-stack application with a working UI, all in a fraction of the usual time. While it may not be production-ready, it effectively serves the purpose of creating a quick, reviewable prototype for business and technical stakeholders.&lt;/p&gt;

&lt;p&gt;Kiro not only generated the backend API and application code but also produced an AWS SAM template and a front-end UI prototype, completing the full-stack build seamlessly.&lt;/p&gt;

&lt;p&gt;Generative AI is transforming the way code is built, and tools like Kiro make the process even easier. While debugging can become more challenging as more code is generated with GenAI, Kiro’s features such as spec-driven development and design documentation generation can help address these challenges.&lt;/p&gt;

&lt;p&gt;I believe this is just the beginning, and these tools will continue to evolve rapidly!&lt;/p&gt;

&lt;p&gt;Thanks for reading, and I hope you found this insightful.&lt;/p&gt;

&lt;p&gt;Watch the video here:&lt;/p&gt;

&lt;p&gt;

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


&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘭𝘰𝘶𝘥 𝘛𝘦𝘤𝘩𝘯𝘰𝘭𝘰𝘨𝘺 𝘌𝘯𝘵𝘩𝘶𝘴𝘪𝘢𝘴𝘵&lt;/p&gt;

</description>
      <category>aws</category>
      <category>kiro</category>
      <category>lambda</category>
      <category>apigateway</category>
    </item>
    <item>
      <title>AWS re:Invent 2025: 2000+ Sessions, 5 Days, One You!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Sun, 05 Oct 2025 00:10:43 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/aws-reinvent-2025-2000-sessions-5-days-one-you-168e</link>
      <guid>https://dev.to/bhatiagirish/aws-reinvent-2025-2000-sessions-5-days-one-you-168e</guid>
      <description>&lt;p&gt;Hi! I'm Girish, an AWS Community Builder and Cloud Tech Enthusiast with expertise in delivering customer-focused and business-impacting cloud transformation programs of high complexity.&lt;/p&gt;

&lt;p&gt;In this article, I'll share insights about re:Invent and the many different opportunities it offers for learning!&lt;/p&gt;

&lt;p&gt;If you’re headed to AWS re:Invent, you already know it’s not just a conference—it’s an experience.&lt;/p&gt;

&lt;p&gt;With 2,000+ sessions spread across 5 days, it can feel overwhelming to decide where to spend your time. Add in the fact that there isn’t just one type of session, but more than 11 different formats from breakout sessions to chalk talks, bootcamps, lightning talks, and more and the challenge becomes real.&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%2Fqvbaxri9gf10zykyuosy.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%2Fqvbaxri9gf10zykyuosy.png" alt="Image eventtype" width="440" height="790"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So how do you know which sessions to attend?&lt;/p&gt;

&lt;p&gt;Well… truthfully, you don’t get to attend everything 😊.&lt;/p&gt;

&lt;p&gt;But you can narrow things down by aligning sessions with your interests and objectives.&lt;/p&gt;

&lt;p&gt;Whether you’re into Serverless, Generative AI, Containers, Security, or Industry-focused tracks, a bit of planning goes a long way.&lt;br&gt;
Let’s take a look at a few of the key session types, what they mean, and how much time they usually take:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keynotes &amp;amp; Leadership Sessions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typically 4-5 keynote one scheduled for each day. Plan 60-120 mins.&lt;/li&gt;
&lt;li&gt;Keynotes feature AWS leaders unveiling new services and the vision for the future of cloud.&lt;/li&gt;
&lt;li&gt;Don't miss Dr. Werner Vogels' keynote!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Breakout Sessions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typically 45-60 mins duration.&lt;/li&gt;
&lt;li&gt;Traditional conference talks with slides and demos.&lt;/li&gt;
&lt;li&gt;Great for structured learning.&lt;/li&gt;
&lt;li&gt;Plan ahead for these!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Chalk Talks&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typically 60 mins duration.&lt;/li&gt;
&lt;li&gt;Interactive whiteboard-style discussions with AWS experts.&lt;/li&gt;
&lt;li&gt;Short presentation, then deep Q&amp;amp;A and design discussions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Workshops&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typically 120 mins duration.&lt;/li&gt;
&lt;li&gt;Hands-on sessions where you build with AWS services in real time.&lt;/li&gt;
&lt;li&gt;You need to pre-register for these.&lt;/li&gt;
&lt;li&gt;Need to bring your laptop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Builders’ Sessions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typically 60 mins duration.&lt;/li&gt;
&lt;li&gt;Small group, 5-6 people&lt;/li&gt;
&lt;li&gt;Hands on building.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bootcamps&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full day session, typically 6-8 hours&lt;/li&gt;
&lt;li&gt;These are paid sessions. Plan ahead&lt;/li&gt;
&lt;li&gt;Good if you want dedicated time to skill up in a specific area.&lt;/li&gt;
&lt;li&gt;Instructor Led.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to these, there are also lightning talk and self paced labs as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I’m Planning My re:Invent 2025 Sessions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My current role requires a deep understanding of AWS Cloud services as well as the compliance needs of highly regulated financial and banking environments. Since my work doesn’t involve hands-on coding, I plan to skip most Builders’ Sessions and Workshops and instead maximize my time exploring new services and upcoming enhancements. The goal is to bring back practical insights that I can apply to the cloud transformation initiatives I’m currently leading.&lt;/p&gt;

&lt;p&gt;This year, I’m focusing on four key themes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Serverless&lt;/li&gt;
&lt;li&gt;Generative AI&lt;/li&gt;
&lt;li&gt;Security &amp;amp; Compliance&lt;/li&gt;
&lt;li&gt;Observability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ve shortlisted around 60 sessions that align with these themes. Of course, I know it’s not realistic to attend them all. With time spent walking between venues, networking, making new friends, and connecting with fellow AWS Community Builders, I’m realistically targeting 20–25 sessions for the week. I’ll refine my list further once I have more details about session timings and venues.&lt;/p&gt;

&lt;p&gt;This short list should allow me switching to a different session If a reserved session is full or plans change. This approach helps me maximize learning while keeping the experience enjoyable and stress-free.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Planning Tips&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your theme and select desired sessions from the event catalog&lt;/li&gt;
&lt;li&gt;Shortlist more sessions than you can attend to plan the backup but don't select everything.&lt;/li&gt;
&lt;li&gt;Plan for walking, networking, and fun time.&lt;/li&gt;
&lt;li&gt;Don’t panic if you miss a session. Many are recorded and available on-demand after the event!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You won’t be able to experience everything at AWS re:Invent, and that’s perfectly okay. The key is to focus on your learning goals, build a thoughtful schedule, and leave room for spontaneous opportunities. Stay organized, keep an open mind, and make re:Invent a memorable and inspiring experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;See you at re:Invent 2025!!!&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%2F4voe449umiyzegxazl7b.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%2F4voe449umiyzegxazl7b.png" alt="Image reInvent" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘭𝘰𝘶𝘥 𝘛𝘦𝘤𝘩𝘯𝘰𝘭𝘰𝘨𝘺 𝘌𝘯𝘵𝘩𝘶𝘴𝘪𝘢𝘴𝘵&lt;/p&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>Kiro Did It! – From Prompt to Customer API Using Vibe Coding!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Sun, 21 Sep 2025 06:05:02 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/kiro-did-it-from-prompt-to-customer-api-using-vibe-coding-5hil</link>
      <guid>https://dev.to/bhatiagirish/kiro-did-it-from-prompt-to-customer-api-using-vibe-coding-5hil</guid>
      <description>&lt;p&gt;Hi! I’m Girish, an AWS Community Builder and Cloud Tech Enthusiast. In this article, I’ll share how I used AWS Kiro’s vibe coding feature to build a Customer Lookup API powered by API Gateway, Lambda, DynamoDB, and AWS SAM.&lt;/p&gt;

&lt;p&gt;Unlike traditional IDEs, vibe coding in Kiro lets you code in flow with lightweight prompts—no need to over-specify requirements up front. It’s perfect for experimenting, prototyping, and just “vibing” with code.&lt;/p&gt;

&lt;p&gt;Instead of manually wiring services together, I simply gave Kiro a natural-language prompt describing what I wanted, and within minutes I had a working, deployable prototype. That’s the magic of vibe coding!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What did I build and why?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I wanted to create a quick Customer Lookup API to demonstrate how fast you can go from an idea to a working solution using Kiro’s vibe coding feature. Instead of manually setting up AWS resources, I described my requirements in plain English, and Kiro generated the project for me.&lt;/p&gt;

&lt;p&gt;Here’s what I ended up with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A REST API hosted on API Gateway&lt;/li&gt;
&lt;li&gt;This API supports CRUD operations:&lt;/li&gt;
&lt;li&gt;GET /customers – List all customers&lt;/li&gt;
&lt;li&gt;GET /customers/{custId} – Retrieve a specific customer&lt;/li&gt;
&lt;li&gt;POST /customers – Create a new customer&lt;/li&gt;
&lt;li&gt;PUT /customers/{custId} – Update an existing customer&lt;/li&gt;
&lt;li&gt;DELETE /customers/{custId} – Delete a customer&lt;/li&gt;
&lt;li&gt;A Lambda function for handling requests&lt;/li&gt;
&lt;li&gt;A DynamoDB table to store customer data (custId, Name, State, Zipcode)&lt;/li&gt;
&lt;li&gt;An AWS SAM template for building and deploying the entire stack&lt;/li&gt;
&lt;li&gt;Sample JSON events can be used to test the API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal wasn’t to build a production-ready API right away, but to get a working prototype fast, something I can extend later with authentication, observability, monitoring, and performance tuning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architecture Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s a quick look at how the components work together:&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%2Ffq6u2lei8emrgl1u0wyg.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%2Ffq6u2lei8emrgl1u0wyg.png" alt="Image arch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review Steps: From Prompt to Prototype&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Start a Vibe Coding Session&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open Kiro, switch to vibe coding mode, and simply type a natural prompt like:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Build a customer lookup api as rest api. api will be hosted using aws gateway, integrated with a lambda function, data will be stored in a DynamoDB table, create a simple table to store this data with four fields - custId, Name, state, zipcode. do not create test framework as need to get a quick working prototype first before adding testing and performance framework. I would like to use AWS SAM to build and deploy this solution."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Kiro responded to me with below answer:&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%2Frl35d9yibdzcvuzfpx0a.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%2Frl35d9yibdzcvuzfpx0a.png" alt="Image response"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Kiro Generates the Project files&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In seconds, Kiro produced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A SAM template (template.yaml)&lt;/li&gt;
&lt;li&gt;A Lambda function (app.py)&lt;/li&gt;
&lt;li&gt;A DynamoDB table definition&lt;/li&gt;
&lt;li&gt;Sample JSON Events to test the API with&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example SAM template (simplified):&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%2Fu2km8p7m45lrmrvy81ee.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%2Fu2km8p7m45lrmrvy81ee.png" alt="Image template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Review the Lambda Function&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro generated a Python handler with DynamoDB integration:&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%2F4izhv9tpj9vs4wy36fcy.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%2F4izhv9tpj9vs4wy36fcy.png" alt="Image lambda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review Sample JSON Event&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%2Fpfethy49q7m1ov4tfyj9.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%2Fpfethy49q7m1ov4tfyj9.png" alt="Image jsonevent"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Build &amp;amp; Deploy with SAM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once I reviewed the files, it was just a matter of building and deploying.&lt;/p&gt;

&lt;p&gt;Use the following command to build the function:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command:&lt;/strong&gt; sam build&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%2Fk5nuem9y51zioybitwac.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%2Fk5nuem9y51zioybitwac.png" alt="Image sambuild"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can deploy it to the AWS Cloud using the sam deploy command:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command:&lt;/strong&gt; sam deploy&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%2Fk4trvto8sebduxku6fc3.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%2Fk4trvto8sebduxku6fc3.png" alt="Image samdeploy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Change Set&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%2Fam2mt4p51e0vc0v6hy5n.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%2Fam2mt4p51e0vc0v6hy5n.png" alt="Image changeset"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SAM packaged and deployed the API Gateway, Lambda, and DynamoDB resources in my AWS account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review using AWS Console&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since the resources have been deployed in my AWS account, I logged in to the AWS Management Console to verify them.&lt;/p&gt;

&lt;p&gt;Here’s what I checked:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API Gateway – Confirmed the REST API with all CRUD endpoints (GET, POST, PUT, DELETE).&lt;/li&gt;
&lt;li&gt;Lambda Function – Validated that the function was created and linked to API Gateway.&lt;/li&gt;
&lt;li&gt;DynamoDB Table – Verified the customers table with attributes (custId, Name, State, Zipcode).&lt;/li&gt;
&lt;li&gt;CloudFormation / SAM Stack – Ensured the stack deployed successfully with all resources.&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%2Fpuc7tmpgnvtss2q7bitr.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%2Fpuc7tmpgnvtss2q7bitr.png" alt="Image console"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Test the API&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that I have the API endpoint, I will use the Postman to invoke the API and will review the response returned.&lt;/p&gt;

&lt;p&gt;However before I invoke a GET request, I will use the command line to POST a record via API that will be stored in the DynamoDB CustomerTable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command:&lt;/strong&gt; curl -X POST &lt;a href="https://21374mswxh.execute-api.us-east-2.amazonaws.com/prod/customers" rel="noopener noreferrer"&gt;https://21374mswxh.execute-api.us-east-2.amazonaws.com/prod/customers&lt;/a&gt; \&lt;br&gt;
-H "Content-Type: application/json" \&lt;br&gt;
-d '{"custId":"CUST001", "name":"Girish", "state":"NY", "zipcode":"10001"}'&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%2F05y5rs2o4decfdnq77m4.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%2F05y5rs2o4decfdnq77m4.png" alt="Image curl"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I will now invoke GET on this API endpoint using Postman. This should return the record that I added to the database.&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%2F69g78p9f2trzhrqqnssk.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%2F69g78p9f2trzhrqqnssk.png" alt="Image postman"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a CRUD API, so it supports other operations as well. For this demonstration, however, I focused on POST and GETrequests, to create a record and fetch a record through the API endpoint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cleaning Up Resources&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To avoid charges, don’t forget to clean up:&lt;/p&gt;

&lt;p&gt;Since these resources were build and deployed using AWS SAM, these can be deleted using AWS SAM command.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command:&lt;/strong&gt; sam delete&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%2F7fjtniy0tam4bnw7xcku.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%2F7fjtniy0tam4bnw7xcku.png" alt="Image samdelete"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this article, I demonstrated how Kiro made it effortless to create a fully functional CRUD Customer Lookup REST APIintegrated with a database, using vibe coding to quickly build a working prototype.&lt;/p&gt;

&lt;p&gt;Not only was the API generated, but an AWS SAM template was also created to support create, update, destroy, and recreate scenarios with Infrastructure as Code.&lt;/p&gt;

&lt;p&gt;Generative AI is transforming the way code is built, and tools like Kiro make the process even easier. While debugging can become more challenging as more code is generated with GenAI, Kiro’s features such as spec-driven development and design documentation generation can help address these challenges.&lt;/p&gt;

&lt;p&gt;I believe this is just the beginning, and these tools will continue to evolve rapidly!&lt;/p&gt;

&lt;p&gt;I hope you found this helpful and informative.&lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

&lt;p&gt;Watch the video here:&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/6HJvBUZSWps"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘭𝘰𝘶𝘥 𝘛𝘦𝘤𝘩𝘯𝘰𝘭𝘰𝘨𝘺 𝘌𝘯𝘵𝘩𝘶𝘴𝘪𝘢𝘴𝘵&lt;/p&gt;

</description>
      <category>aws</category>
      <category>kiro</category>
      <category>ai</category>
      <category>amazonwebservices</category>
    </item>
    <item>
      <title>Part 2: Automating News Alerts with AWS Lambda, SNS, and Event Bridge!</title>
      <dc:creator>Girish Bhatia</dc:creator>
      <pubDate>Sat, 13 Sep 2025 19:50:09 +0000</pubDate>
      <link>https://dev.to/bhatiagirish/part-2-automating-news-alerts-with-aws-lambda-sns-and-event-bridge-5f94</link>
      <guid>https://dev.to/bhatiagirish/part-2-automating-news-alerts-with-aws-lambda-sns-and-event-bridge-5f94</guid>
      <description>&lt;p&gt;In my previous article, I explained how to build a simple news summarizer using AWS Lambda and API Gateway. I used AWS SAM to build, invoke locally and then deploy using IaC (infrastructure as code) approach.&lt;/p&gt;

&lt;p&gt;This is &lt;strong&gt;Part 2&lt;/strong&gt; of the series.&lt;/p&gt;

&lt;p&gt;In this article, I’ll show you how to further enhance the news summarizer by automating news alerts with AWS Lambda, SNS and Event Bridge.&lt;/p&gt;

&lt;p&gt;Lambda function will fetch the desired news content using a public news API and will be integrated via Event Bridge scheduler and SNS to send daily news summary to the subscribed email.&lt;/p&gt;

&lt;p&gt;I will use Event Bridge service to create a scheduler that invoke this Lambda function once a day and send the news summary via email using AWS SNS.&lt;/p&gt;

&lt;p&gt;As I have stated in the prior part, I am building this solution in multiple part where I will incrementally add features to this solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 1:&lt;/strong&gt; &lt;a href="https://dev.to/bhatiagirish/part-1-building-a-simple-news-summarizer-with-aws-lambda-and-api-gateway-5co7"&gt;Building a Simple News Summarizer with AWS Lambda and API Gateway&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Part 2:&lt;/strong&gt; Automating News Alerts with AWS Lambda, SNS, and EventBridge&lt;br&gt;
&lt;strong&gt;Part 3:&lt;/strong&gt; Adding Generative AI Summarization with Amazon Bedrock to Your News&lt;br&gt;
&lt;strong&gt;Part 4:&lt;/strong&gt; Build a Serverless Generative AI News Summarizer API with AWS Lambda and Bedrock&lt;br&gt;
&lt;strong&gt;Part 5:&lt;/strong&gt; Serverless HTML News Delivery Using Bedrock, EventBridge, Lambda, and SNS&lt;/p&gt;

&lt;p&gt;Before diving in, let’s review the architecture diagram to understand how these components interact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architecture&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%2Fg3uqc6sqji2xurbnxmh7.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%2Fg3uqc6sqji2xurbnxmh7.png" alt="Image arch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Familiarity with the AWS Management Console.&lt;/li&gt;
&lt;li&gt;Knowledge of Python/Boto3&lt;/li&gt;
&lt;li&gt;Basic understanding of AWS SAM&lt;/li&gt;
&lt;li&gt;Basic understanding of Lambda, Event Bridge and SNS&lt;/li&gt;
&lt;li&gt;Basic familiarity with event driven design and architecture&lt;/li&gt;
&lt;li&gt;Sign up at &lt;a href="https://newsapi.org" rel="noopener noreferrer"&gt;https://newsapi.org&lt;/a&gt;  and get the API Key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What Are We Building and Why?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We are building a serverless news summarizer that fetches the latest technology news from a public news API and delivers it through an AWS Lambda function. This function is integrated with Amazon EventBridge Scheduler and Amazon SNS to send daily news alerts directly to subscribed email addresses.&lt;/p&gt;

&lt;p&gt;The EventBridge scheduler uses cron expressions, allowing you to define the exact time you want to receive your daily email summary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why build this solution?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because staying up to date with the latest tech news is exciting—but manually checking blogs, RSS feeds, and recap sites can be time-consuming. What if you could automate that process using AWS Serverless and AI tools?&lt;/p&gt;

&lt;p&gt;With this automated workflow, you’ll receive daily tech news highlights straight to your inbox—simple, fast, and serverless.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction to Public News API&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NewsAPI.org is a news aggregation service that provides programmatic access to headlines and articles from major publications including CNN, BBC, TechCrunch and many more.&lt;/p&gt;

&lt;p&gt;According to their website, NewsAPI returns JSON search results from over 150,000 sources!&lt;/p&gt;

&lt;p&gt;The API allows developers to retrieve top headlines filtered by country or category (such as technology or business) and search across thousands of articles from various sources.&lt;/p&gt;

&lt;p&gt;The service offers a free tier with up to 100 requests per day, though this free access is restricted to non-commercial use. For developers building news applications or integrating current events into their projects, NewsAPI provides a straightforward way to access real-time news content from reputable sources worldwide.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review AWS SAM template&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's review the template.yaml for the AWS SAM:&lt;/p&gt;

&lt;p&gt;Key resources defined in this template:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lambda function&lt;/li&gt;
&lt;li&gt;Event Bridge Scheduler&lt;/li&gt;
&lt;li&gt;Amazon SNS Topic&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%2Fbiq621j5y6859g8hib2u.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%2Fbiq621j5y6859g8hib2u.png" alt="Image samtemplate"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This SAM template creates a serverless news summarizer that automatically fetches technology news articles and emails them daily. It deploys a Python Lambda function that calls the NewsAPI, schedules it to run daily using EventBridge Scheduler, and sets up an SNS topic with email subscription to send the news summaries. The template includes necessary IAM permissions for the Lambda to publish to SNS and requires an email parameter for the recipient address.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review AWS Lambda function (Python/Boto3 Library)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This Lambda function fetches the top 5 US technology news articles from NewsAPI and automatically emails them as a formatted summary. It calls the NewsAPI with predefined parameters (US country, technology category, latest articles), formats the results into a readable email with titles, sources, URLs and descriptions, then publishes the summary to an SNS topic for email delivery. The function handles errors gracefully and returns status information about both the news fetching and email sending operations.&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%2F29ykh2ithklcq5az5uu9.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%2F29ykh2ithklcq5az5uu9.png" alt="Image lambda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build function locally using AWS SAM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since I am using AWS SAM for this function, let’s begin by building the function. Use the following command to build the function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Command: sam build
&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%2F2ugo6zs92h4fwdv74slu.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%2F2ugo6zs92h4fwdv74slu.png" alt="Image sambuild"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Invoke function locally using AWS SAM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the build is successful, you can invoke the function locally using the sam local invoke command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Command: sam local invoke &amp;lt;function name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;sam local invoke GbNewsSummarizerFn&lt;/p&gt;

&lt;p&gt;When this function is executed, you should expect the following output:&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%2Fv536h2dlmi6465fqd91m.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%2Fv536h2dlmi6465fqd91m.png" alt="Image output"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deploy function using AWS SAM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After validating the function locally, you can deploy it to the AWS Cloud using the sam deploy command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Command: sam deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This concise workflow demonstrates how to create, validate, and deploy Lambda functions using AWS SAM. By leveraging AWS SAM, you can streamline the development process and ensure your functions are tested thoroughly before deployment.&lt;/p&gt;

&lt;p&gt;SAM deploy process will create the change set and you can review and confirm the change set before it gets deployed in your AWS Cloud environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confirm the change set&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%2F9b9kkaqkbbfc0alxbhks.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%2F9b9kkaqkbbfc0alxbhks.png" alt="Image changeset"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Review the cloud formation change set creation!&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%2Fx9gu81lnremk23ratap2.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%2Fx9gu81lnremk23ratap2.png" alt="Image changeset2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review created resources (Event Bridge Scheduler, SNS, Lambda Function)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you login to AWS Console and navigate to Event Bridge, you should see that event bridge schedule has been created:&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%2Fk7pidaqta7ayizj7xxdy.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%2Fk7pidaqta7ayizj7xxdy.png" alt="Image eventbridge"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also navigate to Lambda and SNS service view and should see the resources created.&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%2F9lmgjtw8mu8cbyqc0lvy.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%2F9lmgjtw8mu8cbyqc0lvy.png" alt=" "&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%2F5vlyea2m09888rtptsr1.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%2F5vlyea2m09888rtptsr1.png" alt="Image lambda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confirm the subscription!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, you need to verify the email address. When you deploy the CloudFormation stack, SNS will automatically send a subscription confirmation email to the email provided in your template.&lt;/p&gt;

&lt;p&gt;The verification is a security feature to prevent spam and ensure only authorized recipients receive notifications.&lt;/p&gt;

&lt;p&gt;Without confirmation, the function will publish to SNS but no emails will be delivered to unconfirmed addresses.&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%2F81j36ao86hg8pdexazdn.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%2F81j36ao86hg8pdexazdn.png" alt="Image confirmemail"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wait for Event Bridge to invoke Lambda and Monitor the Cloud Watch Logs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that the Lambda function, SNS topic, and EventBridge scheduler are all configured, I’ll wait for the scheduler to invoke the Lambda function.&lt;/p&gt;

&lt;p&gt;To monitor the invocation and logs in real time, I’ll use the CloudWatch Live Tail feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Tail Log&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%2F9zr9hlbsw4pmorfimgom.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%2F9zr9hlbsw4pmorfimgom.png" alt="Image livetail"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check your email!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From the logs, you can see that the function was invoked and the email was sent. Now, let’s check your inbox, you should see a news summary email similar to the one below:&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%2Fxuhzypbduho2tdtwt83j.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%2Fxuhzypbduho2tdtwt83j.png" alt="Image email"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cleaning Up Resources&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you have completed the setup, ensure you delete the Lambda function to avoid unnecessary resource usage.&lt;/p&gt;

&lt;p&gt;You can delete the resources via AWS Console.&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%2Fo5rlqjxtfeto1ba8sext.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%2Fo5rlqjxtfeto1ba8sext.png" alt="Image console_delete"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Delete entire stack&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delete the Lambda function&lt;/li&gt;
&lt;li&gt;Delete the Event Bridge Scheduler&lt;/li&gt;
&lt;li&gt;Delete SNS Topic&lt;/li&gt;
&lt;li&gt;Delete the Log Group&lt;/li&gt;
&lt;li&gt;Delete the IAM Role&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since these resources were build and deployed using AWS SAM, these can be deleted using AWS SAM command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Command: sam delete
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this article, I demonstrated how to build a news summarizer using an AWS Lambda function and automate it with Amazon EventBridge Scheduler and Amazon SNS email notifications. The Lambda function uses the NewsAPI.org aggregator, which returns news results in JSON format.&lt;/p&gt;

&lt;p&gt;With this solution, you can receive your own daily news summary delivered straight to your inbox via SNS email!&lt;/p&gt;

&lt;p&gt;I hope you found this tutorial both helpful and informative!&lt;/p&gt;

&lt;p&gt;If you're interested in extending this project further, stay tuned for my upcoming 5-part deep dive series, where I’ll walk through building a full-featured, AI-powered news delivery system using AWS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Part 1:&lt;/strong&gt; &lt;a href="https://dev.to/bhatiagirish/part-1-building-a-simple-news-summarizer-with-aws-lambda-and-api-gateway-5co7"&gt;Building a Simple News Summarizer with AWS Lambda and API Gateway&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 2:&lt;/strong&gt; Automating News Alerts with AWS Lambda, SNS, and EventBridge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 3:&lt;/strong&gt; Adding Generative AI Summarization with Amazon Bedrock to Your News&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 4:&lt;/strong&gt; Build a Serverless Generative AI News Summarizer API with AWS Lambda and Bedrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 5:&lt;/strong&gt; Serverless HTML News Delivery Using Bedrock, EventBridge, Lambda, and SNS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

&lt;p&gt;Watch the video here:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/1qrV14UzyHc"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;𝒢𝒾𝓇𝒾𝓈𝒽 ℬ𝒽𝒶𝓉𝒾𝒶&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘚𝘰𝘭𝘶𝘵𝘪𝘰𝘯 𝘈𝘳𝘤𝘩𝘪𝘵𝘦𝘤𝘵&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘋𝘦𝘷𝘦𝘭𝘰𝘱𝘦𝘳 𝘈𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘦𝘳𝘵𝘪𝘧𝘪𝘦𝘥 𝘎𝘦𝘯𝘈𝘐 𝘗𝘳𝘢𝘤𝘵𝘪𝘵𝘪𝘰𝘯𝘦𝘳&lt;br&gt;
𝘈𝘞𝘚 𝘊𝘭𝘰𝘶𝘥 𝘛𝘦𝘤𝘩𝘯𝘰𝘭𝘰𝘨𝘺 𝘌𝘯𝘵𝘩𝘶𝘴𝘪𝘢𝘴𝘵&lt;/p&gt;

</description>
      <category>lambda</category>
      <category>evenbridge</category>
      <category>aws</category>
      <category>awssam</category>
    </item>
  </channel>
</rss>
