<?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: abdullah haroon</title>
    <description>The latest articles on DEV Community by abdullah haroon (@abdullah_haroon_092cf10d3).</description>
    <link>https://dev.to/abdullah_haroon_092cf10d3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3372552%2Fe3ec4f00-626f-4460-925c-de5f8970650a.jpg</url>
      <title>DEV Community: abdullah haroon</title>
      <link>https://dev.to/abdullah_haroon_092cf10d3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdullah_haroon_092cf10d3"/>
    <language>en</language>
    <item>
      <title>Building Meeting2Tasks: Turning Meeting Conversations into Actionable Tasks with AI and AWS | 10 Days of Building AI Agents on AWS | Day 5</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Mon, 24 Aug 2026 01:40:00 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/building-meeting2tasks-turning-meeting-conversations-into-actionable-tasks-with-ai-and-aws-10-2m08</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/building-meeting2tasks-turning-meeting-conversations-into-actionable-tasks-with-ai-and-aws-10-2m08</guid>
      <description>&lt;h3&gt;
  
  
  10 Days of Building AI Agents on AWS | Day 5
&lt;/h3&gt;

&lt;p&gt;Meetings are essential for collaboration, but they often create another problem: someone has to spend time reviewing notes, writing summaries, extracting action items, and documenting key decisions.&lt;/p&gt;

&lt;p&gt;Whether it is a team stand-up, client discussion, or project planning session, this repetitive work can sometimes take almost as long as the meeting itself.&lt;/p&gt;

&lt;p&gt;To solve this problem, I built &lt;strong&gt;Meeting2Tasks&lt;/strong&gt;, an AI-powered web application that automatically transforms meeting transcripts into structured summaries, actionable tasks, key decisions, risks, and unanswered questions.&lt;/p&gt;

&lt;p&gt;Instead of manually organizing notes after every meeting, users simply paste their meeting transcript, and the application does the rest in seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;One of the most repetitive tasks in project management is documenting meetings.&lt;/p&gt;

&lt;p&gt;After almost every meeting, someone needs to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read through lengthy meeting notes or transcripts&lt;/li&gt;
&lt;li&gt;Summarize the discussion&lt;/li&gt;
&lt;li&gt;Identify action items&lt;/li&gt;
&lt;li&gt;Record important decisions&lt;/li&gt;
&lt;li&gt;Highlight project risks&lt;/li&gt;
&lt;li&gt;Capture unanswered questions&lt;/li&gt;
&lt;li&gt;Save everything so it can be reviewed later&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This process is repetitive, time-consuming, and can result in inconsistent documentation.&lt;/p&gt;

&lt;p&gt;I wanted to build a tool that could eliminate much of this manual work while producing structured and consistent results.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Meeting2Tasks Does
&lt;/h2&gt;

&lt;p&gt;Meeting2Tasks is a web application designed to automate meeting documentation.&lt;/p&gt;

&lt;p&gt;Users simply:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Paste a meeting transcript&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Analyze&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Let AI process the conversation&lt;/li&gt;
&lt;li&gt;Receive structured insights&lt;/li&gt;
&lt;/ol&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fygpz3d5s7g3hlcfra4nb.webp" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fygpz3d5s7g3hlcfra4nb.webp" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application generates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A concise meeting summary&lt;/li&gt;
&lt;li&gt;Actionable tasks&lt;/li&gt;
&lt;li&gt;Important decisions&lt;/li&gt;
&lt;li&gt;Identified risks&lt;/li&gt;
&lt;li&gt;Open questions&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzrr42d4etdvvfefh7k5i.webp" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzrr42d4etdvvfefh7k5i.webp" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;br&gt;
Once the analysis is complete, the application stores the meeting and its generated insights in &lt;strong&gt;Amazon DynamoDB&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Users can revisit previous meetings whenever needed, while the dashboard provides statistics and access to meeting history.&lt;/p&gt;

&lt;p&gt;The result is a faster and more organized workflow for teams that regularly conduct meetings.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdjwzsj0llf7efzwgxtrm.webp" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdjwzsj0llf7efzwgxtrm.webp" alt=" " width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;The workflow is straightforward:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Meeting Transcript → AI Analysis → Structured Insights → Stored Meeting History&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When a user submits a transcript, the application sends it through the backend for AI analysis.&lt;/p&gt;

&lt;p&gt;The Groq API processes the meeting content and returns structured results.&lt;/p&gt;

&lt;p&gt;These results are then stored in DynamoDB for future access.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User submits transcript
        │
        ▼
React + Vite Frontend
        │
        ▼
Amazon API Gateway
        │
        ▼
AWS Lambda
        │
   ┌────┴─────┐
   ▼          ▼
Groq API   DynamoDB
   │          │
   └────┬─────┘
        ▼
Structured Meeting Insights
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3qh6xv0kxviw14kdwvfq.webp" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3qh6xv0kxviw14kdwvfq.webp" alt=" " width="718" height="720"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The application consists of a React frontend and a serverless backend running on AWS.&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;p&gt;The frontend was developed using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This provides a fast and responsive interface for submitting transcripts, viewing results, and accessing previous meetings.&lt;/p&gt;

&lt;p&gt;The frontend communicates with a REST API exposed through Amazon API Gateway.&lt;/p&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;p&gt;The backend uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Express.js&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;AWS Lambda&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Express.js application runs inside AWS Lambda, allowing the backend to scale automatically without managing traditional servers.&lt;/p&gt;

&lt;p&gt;When a user submits a transcript, the backend processes the request and sends the transcript to the Groq API.&lt;/p&gt;

&lt;p&gt;The AI then generates structured insights including summaries, tasks, decisions, risks, and open questions.&lt;/p&gt;

&lt;p&gt;The processed results are stored in Amazon DynamoDB.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deployment
&lt;/h3&gt;

&lt;p&gt;The frontend is deployed using &lt;strong&gt;AWS Amplify&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The backend infrastructure is built and deployed using &lt;strong&gt;AWS SAM&lt;/strong&gt;, which helps define and manage the serverless application.&lt;/p&gt;

&lt;p&gt;Using this architecture allowed me to focus more on building the application instead of managing servers and infrastructure manually.&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS Services Used
&lt;/h1&gt;

&lt;h2&gt;
  
  
  AWS Amplify
&lt;/h2&gt;

&lt;p&gt;Used to host and deploy the React frontend.&lt;/p&gt;

&lt;p&gt;This makes the application publicly accessible and simplifies frontend deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Amazon API Gateway
&lt;/h2&gt;

&lt;p&gt;Provides REST API endpoints connecting the frontend with the backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS Lambda
&lt;/h2&gt;

&lt;p&gt;Runs the Express.js backend in a serverless environment.&lt;/p&gt;

&lt;p&gt;The backend executes when requests arrive without requiring an always-running server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Amazon DynamoDB
&lt;/h2&gt;

&lt;p&gt;Stores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Meeting records&lt;/li&gt;
&lt;li&gt;AI-generated summaries&lt;/li&gt;
&lt;li&gt;Action items&lt;/li&gt;
&lt;li&gt;Decisions&lt;/li&gt;
&lt;li&gt;Risks&lt;/li&gt;
&lt;li&gt;Open questions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows users to revisit and manage previous meeting results.&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS SAM
&lt;/h2&gt;

&lt;p&gt;AWS Serverless Application Model was used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define the backend infrastructure&lt;/li&gt;
&lt;li&gt;Build the serverless application&lt;/li&gt;
&lt;li&gt;Test deployments&lt;/li&gt;
&lt;li&gt;Deploy Lambda and API resources&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Groq API
&lt;/h2&gt;

&lt;p&gt;Groq handles the AI analysis.&lt;/p&gt;

&lt;p&gt;It transforms raw meeting transcripts into structured and actionable insights.&lt;/p&gt;

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

&lt;p&gt;The complete architecture looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         User
                           │
                           ▼
                 React + Vite Frontend
                           │
                           ▼
                     AWS Amplify
                           │
                           ▼
                  Amazon API Gateway
                           │
                           ▼
               AWS Lambda (Express.js)
                           │
                 ┌─────────┴─────────┐
                 ▼                   ▼
              Groq API         Amazon DynamoDB
                 │                   │
                 └─────────┬─────────┘
                           ▼
            AI Analysis and Stored Meetings
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The workflow starts whenever a user submits a meeting transcript through the web application.&lt;/p&gt;

&lt;p&gt;The backend handles the AI request, processes the response, stores the relevant data, and returns structured results to the user.&lt;/p&gt;

&lt;h1&gt;
  
  
  Challenges I Faced
&lt;/h1&gt;

&lt;p&gt;Like most real-world projects, building Meeting2Tasks involved several technical challenges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running Express.js with AWS Lambda
&lt;/h2&gt;

&lt;p&gt;One of the biggest challenges was integrating an Express.js application with AWS Lambda while ensuring API Gateway correctly routed requests.&lt;/p&gt;

&lt;p&gt;This required understanding how a traditional web framework could work inside a serverless execution environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  DynamoDB Reserved Attribute Names
&lt;/h2&gt;

&lt;p&gt;I also encountered issues with DynamoDB because some attribute names conflicted with reserved words.&lt;/p&gt;

&lt;p&gt;This required modifying database queries and expressions to avoid those conflicts.&lt;/p&gt;

&lt;p&gt;It was a useful reminder that database design and query syntax need careful attention, even in serverless applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deployment to the Wrong AWS SAM Stack
&lt;/h2&gt;

&lt;p&gt;Another significant challenge involved deployment.&lt;/p&gt;

&lt;p&gt;During debugging, I discovered that updates were being deployed to the wrong AWS SAM stack.&lt;/p&gt;

&lt;p&gt;This caused new API routes not to appear in production, even though everything worked correctly locally.&lt;/p&gt;

&lt;p&gt;After identifying the stack configuration issue and deploying to the correct stack, all endpoints functioned as expected.&lt;/p&gt;

&lt;p&gt;This experience helped me better understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Serverless deployments&lt;/li&gt;
&lt;li&gt;Stack configuration&lt;/li&gt;
&lt;li&gt;Production debugging&lt;/li&gt;
&lt;li&gt;The difference between local and deployed environments&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  What I Learned
&lt;/h1&gt;

&lt;p&gt;Building Meeting2Tasks gave me valuable hands-on experience with modern serverless application development.&lt;/p&gt;

&lt;p&gt;Some of the key things I learned include:&lt;/p&gt;

&lt;h3&gt;
  
  
  Building Serverless APIs
&lt;/h3&gt;

&lt;p&gt;How to build REST APIs using AWS Lambda and API Gateway without managing traditional servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  AWS SAM Deployments
&lt;/h3&gt;

&lt;p&gt;How AWS SAM can simplify building, testing, and deploying serverless applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hosting React Applications
&lt;/h3&gt;

&lt;p&gt;How AWS Amplify can be used to deploy and host a modern React frontend.&lt;/p&gt;

&lt;h3&gt;
  
  
  Serverless Architecture Design
&lt;/h3&gt;

&lt;p&gt;How services such as API Gateway, Lambda, and DynamoDB can work together as a complete backend architecture.&lt;/p&gt;

&lt;h3&gt;
  
  
  Integrating External AI
&lt;/h3&gt;

&lt;p&gt;How to connect an external AI service such as Groq with an AWS-based application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Debugging Deployments
&lt;/h3&gt;

&lt;p&gt;How configuration mistakes, stack selection, and deployment environments can cause production issues even when an application works locally.&lt;/p&gt;

&lt;h3&gt;
  
  
  Persistent Data with DynamoDB
&lt;/h3&gt;

&lt;p&gt;How DynamoDB can store application data and make AI-generated results available for future use.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why This Matters
&lt;/h1&gt;

&lt;p&gt;The main idea behind Meeting2Tasks is simple.&lt;/p&gt;

&lt;p&gt;Teams should spend more time making decisions and completing important work, not repeatedly documenting conversations.&lt;/p&gt;

&lt;p&gt;AI can help automate the repetitive part.&lt;/p&gt;

&lt;p&gt;Instead of manually reviewing a long transcript, users can receive structured information within seconds.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Transcript → Summary → Tasks → Decisions → Risks → Questions&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This does not replace the meeting itself. It reduces the administrative work that follows it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Meeting2Tasks started with one simple problem: manually documenting meetings is repetitive and time-consuming.&lt;/p&gt;

&lt;p&gt;By combining AI with serverless AWS technologies, I built an application that transforms lengthy meeting transcripts into structured, actionable insights within seconds.&lt;/p&gt;

&lt;p&gt;The project demonstrates how AI can help eliminate repetitive work while allowing teams to focus more on making decisions instead of documenting them.&lt;/p&gt;

&lt;p&gt;It also showed me how services such as AWS Lambda, API Gateway, DynamoDB, Amplify, and SAM can work together with an external AI provider to build a scalable application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source Code and Live Application
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/ABDULLAH408/Meeting2Tasks?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Meeting2Tasks on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Application:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://main.djzodsq2i1utx.amplifyapp.com/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Open Meeting2Tasks&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Building VerseCraft AI: Turning Ideas and Emotions Into Original Poems | 10 Days of Building AI Agents on AWS | Day 4</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Fri, 21 Aug 2026 19:00:00 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/building-versecraft-ai-turning-ideas-and-emotions-into-original-poems-10-days-of-building-ai-4ban</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/building-versecraft-ai-turning-ideas-and-emotions-into-original-poems-10-days-of-building-ai-4ban</guid>
      <description>&lt;h1&gt;
  
  
  Building VerseCraft AI: Turning Ideas and Emotions Into Original Poems
&lt;/h1&gt;

&lt;h3&gt;
  
  
  10 Days of Building AI Agents on AWS | Day 4
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tag:&lt;/strong&gt; &lt;code&gt;#creative-expression&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;VerseCraft AI transforms simple ideas, emotions, memories, and thoughts into original poems using generative AI.&lt;/p&gt;

&lt;p&gt;The project combines Groq with a serverless AWS architecture to explore how a focused creative experience can bring together AI, web development, and cloud services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vision and What the App Does
&lt;/h2&gt;

&lt;p&gt;What if you could turn a simple thought, feeling, memory, or idea into a poem in seconds?&lt;/p&gt;

&lt;p&gt;That was the idea behind &lt;strong&gt;VerseCraft AI&lt;/strong&gt;, a simple AI-powered creative writing application.&lt;/p&gt;

&lt;p&gt;Instead of asking users to write a complete poem themselves, VerseCraft lets them provide a simple idea and choose a mood. The application then transforms that input into an original poem.&lt;/p&gt;

&lt;p&gt;For example, a user can enter:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A lonely person watching the rain from a rooftop at midnight."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They can then select a mood such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Emotional&lt;/li&gt;
&lt;li&gt;Romantic&lt;/li&gt;
&lt;li&gt;Sad&lt;/li&gt;
&lt;li&gt;Inspirational&lt;/li&gt;
&lt;li&gt;Dark&lt;/li&gt;
&lt;li&gt;Peaceful&lt;/li&gt;
&lt;li&gt;Funny&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After clicking &lt;strong&gt;Generate Poem&lt;/strong&gt;, VerseCraft creates a title and an original poem inspired by the user's idea and selected mood.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0xpcw6z7jlv09rzo9q1t.webp" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0xpcw6z7jlv09rzo9q1t.webp" alt=" " width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal was not to build a complicated AI platform.&lt;/p&gt;

&lt;p&gt;I wanted to create one focused creative experience that is simple to understand, enjoyable to use, and produces something people can share.&lt;/p&gt;

&lt;p&gt;The generated poem is displayed in a clean, artistic interface with options to copy the poem and generate another one.&lt;/p&gt;

&lt;p&gt;The application is designed to make creative writing feel accessible, even when someone does not know where to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I decided early that I wanted to keep the application focused and avoid unnecessary complexity.&lt;/p&gt;

&lt;p&gt;There are no:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User accounts&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;Payment systems&lt;/li&gt;
&lt;li&gt;Complicated dashboards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The entire application revolves around one simple interaction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Idea → Mood → AI → Poem&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The frontend was built using &lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I wanted the interface to feel more like a small digital writing studio than a traditional AI dashboard, so I focused on a minimal design with a black, white, and yellow or gold visual theme.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Generation with Groq
&lt;/h2&gt;

&lt;p&gt;For AI generation, I used the &lt;strong&gt;Groq API&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The backend receives the user's idea and selected mood and sends them to the AI with a carefully designed prompt.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F97o6nivltj008f4j6h2r.webp" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F97o6nivltj008f4j6h2r.webp" alt=" " width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The prompt instructs the model to generate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A suitable title&lt;/li&gt;
&lt;li&gt;An original poem&lt;/li&gt;
&lt;li&gt;A structured response that the frontend can display cleanly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The generation flow is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;User Idea → Selected Mood → Backend → Groq AI → Generated Poem&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One important decision was to keep the Groq API key completely away from the frontend.&lt;/p&gt;

&lt;p&gt;The browser communicates with the backend API instead of communicating directly with Groq.&lt;/p&gt;

&lt;p&gt;This prevents the API key from being exposed in client-side JavaScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Serverless Backend
&lt;/h2&gt;

&lt;p&gt;The backend uses &lt;strong&gt;Node.js running on AWS Lambda&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When a user requests a poem:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The user enters an idea and selects a mood.&lt;/li&gt;
&lt;li&gt;The frontend sends the request to API Gateway.&lt;/li&gt;
&lt;li&gt;API Gateway invokes AWS Lambda.&lt;/li&gt;
&lt;li&gt;Lambda processes the input.&lt;/li&gt;
&lt;li&gt;Lambda securely calls the Groq API.&lt;/li&gt;
&lt;li&gt;Groq generates the poem.&lt;/li&gt;
&lt;li&gt;Lambda returns the structured result.&lt;/li&gt;
&lt;li&gt;The frontend displays the poem.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
  │
  ▼
Frontend
  │
  ▼
API Gateway
  │
  ▼
AWS Lambda
  │
  ▼
Groq API
  │
  ▼
Poem JSON
  │
  ▼
Frontend displays poem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  AWS Services Used and Architecture
&lt;/h2&gt;

&lt;p&gt;VerseCraft AI uses several AWS services:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon S3&lt;/strong&gt; for storing and hosting the static frontend files, including HTML, CSS, and JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon CloudFront&lt;/strong&gt; for delivering the frontend globally through a CDN and providing HTTPS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon API Gateway&lt;/strong&gt; for providing the public API endpoint used by the frontend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Lambda&lt;/strong&gt; for running the serverless Node.js backend that communicates with Groq.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS IAM&lt;/strong&gt; for providing permissions and execution roles required by AWS services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS CloudFormation&lt;/strong&gt; for defining and provisioning infrastructure using YAML.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The overall architecture is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         USER
                           │
                           ▼
                    ┌──────────────┐
                    │  CloudFront  │
                    │ HTTPS / CDN  │
                    └──────┬───────┘
                           │
                           ▼
                    ┌──────────────┐
                    │      S3      │
                    │ HTML/CSS/JS  │
                    └──────────────┘

       User clicks "Generate Poem"
                           │
                           ▼
                    ┌──────────────┐
                    │ API Gateway  │
                    │POST /generate│
                    └──────┬───────┘
                           │
                           ▼
                    ┌──────────────┐
                    │    Lambda    │
                    │   Node.js    │
                    └──────┬───────┘
                           │
                           ▼
                    ┌──────────────┐
                    │   Groq API   │
                    │ Generative AI│
                    └──────┬───────┘
                           │
                           ▼
                       POEM JSON
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CloudFormation ties the AWS infrastructure together and makes deployment reproducible.&lt;/p&gt;

&lt;p&gt;Instead of manually creating every AWS resource, the infrastructure can be provisioned from a YAML template.&lt;/p&gt;

&lt;p&gt;This serverless architecture also means there is no always-running application server to maintain.&lt;/p&gt;

&lt;p&gt;The backend runs when requests arrive, making the architecture a good fit for a focused creative application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Kept It Simple
&lt;/h2&gt;

&lt;p&gt;A key decision behind VerseCraft AI was to focus on one experience and do it well.&lt;/p&gt;

&lt;p&gt;It would have been easy to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User profiles&lt;/li&gt;
&lt;li&gt;Saved poem collections&lt;/li&gt;
&lt;li&gt;Social features&lt;/li&gt;
&lt;li&gt;Multiple dashboards&lt;/li&gt;
&lt;li&gt;Complex AI settings&lt;/li&gt;
&lt;li&gt;Payment systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But none of those were necessary for the core idea.&lt;/p&gt;

&lt;p&gt;The most important workflow is simply:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A person has an idea. AI helps turn that idea into something creative.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Keeping the application focused allowed me to concentrate on the experience and the underlying serverless architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Building VerseCraft AI gave me the opportunity to combine several areas I had been learning separately into one complete application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Connecting AI to a Frontend
&lt;/h3&gt;

&lt;p&gt;It is easy to call an AI API from a simple script.&lt;/p&gt;

&lt;p&gt;Building the complete flow is different.&lt;/p&gt;

&lt;p&gt;I had to think about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browser requests&lt;/li&gt;
&lt;li&gt;API design&lt;/li&gt;
&lt;li&gt;Request formats&lt;/li&gt;
&lt;li&gt;Error handling&lt;/li&gt;
&lt;li&gt;Structured AI responses&lt;/li&gt;
&lt;li&gt;Backend security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The complete flow became:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Browser → API Gateway → Lambda → Groq → Lambda → Browser&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Serverless Backend Development
&lt;/h3&gt;

&lt;p&gt;I learned more about how &lt;strong&gt;AWS Lambda and API Gateway&lt;/strong&gt; can create a backend without maintaining a traditional server.&lt;/p&gt;

&lt;p&gt;The application only runs backend code when a request arrives.&lt;/p&gt;

&lt;h3&gt;
  
  
  Infrastructure as Code
&lt;/h3&gt;

&lt;p&gt;Using CloudFormation made me think about AWS infrastructure as a complete system rather than a collection of resources manually created through the AWS Console.&lt;/p&gt;

&lt;p&gt;Defining resources, permissions, dependencies, and outputs in YAML makes deployments easier to reproduce.&lt;/p&gt;

&lt;h3&gt;
  
  
  Simple AI Experiences Can Still Be Useful
&lt;/h3&gt;

&lt;p&gt;One of my biggest takeaways was that a creative AI application does not need to be complicated to be useful.&lt;/p&gt;

&lt;p&gt;The most important part of VerseCraft AI is the experience:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Give someone a blank box, let them express an idea, and turn that idea into something creative.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;VerseCraft AI is a small experiment in combining creative expression, generative AI, and serverless AWS infrastructure.&lt;/p&gt;

&lt;p&gt;The core idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Idea → Mood → AI → Poem&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sometimes, a focused application can create a better experience than a feature-heavy platform.&lt;/p&gt;

&lt;p&gt;VerseCraft AI gives users a simple starting point. They bring an idea, feeling, memory, or even just one sentence, and the AI helps transform it into something creative.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try VerseCraft AI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live App:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://d3ahx0v89bhhzc.cloudfront.net/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Open VerseCraft AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have an idea, a feeling, a memory, or simply a sentence in your head, give it to VerseCraft AI and see where it takes you.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Building StoryForge: An Always-On AI Agent That Creates a New Story | 10 Days of Building AI Agents on AWS | Day 3</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Fri, 21 Aug 2026 01:26:05 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/weekend-creative-agent-challenge-storyforge-3pcd</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/weekend-creative-agent-challenge-storyforge-3pcd</guid>
      <description>&lt;h1&gt;
  
  
  Building StoryForge: An Always-On AI Agent That Creates a New Story Every Day
&lt;/h1&gt;

&lt;h3&gt;
  
  
  10 Days of Building AI Agents on AWS | Day 3
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Tag:&lt;/strong&gt; &lt;code&gt;#agents&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;What if your creative app didn't wait for you to open it?&lt;/p&gt;

&lt;p&gt;That was the idea behind &lt;strong&gt;StoryForge&lt;/strong&gt;, an always-on AI storytelling agent that creates a brand-new story every day before you even visit the application.&lt;/p&gt;

&lt;p&gt;Traditional AI writing tools are reactive. You open a website, enter a prompt, choose some options, and ask the AI to generate something.&lt;/p&gt;

&lt;p&gt;StoryForge takes a different approach.&lt;/p&gt;

&lt;p&gt;It works in the background as an autonomous creative agent.&lt;/p&gt;

&lt;p&gt;Every day, it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Wakes up automatically&lt;/li&gt;
&lt;li&gt;Remembers what it has created recently&lt;/li&gt;
&lt;li&gt;Chooses a new creative direction&lt;/li&gt;
&lt;li&gt;Generates a fresh story&lt;/li&gt;
&lt;li&gt;Validates the result&lt;/li&gt;
&lt;li&gt;Saves it for the user&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So when the user comes back, a brand-new story is already waiting.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The user leaves → the agent wakes up automatically → it remembers recent stories → it creates something new → the user returns to discover it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Vision
&lt;/h2&gt;

&lt;p&gt;I wanted to build something simple while demonstrating an important idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The best creative tool does not always need to wait for instructions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;StoryForge is built around the concept of passive creativity.&lt;/p&gt;

&lt;p&gt;Instead of opening an application and asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What should I write today?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The user can simply return and discover what the AI agent has already created.&lt;/p&gt;

&lt;p&gt;The goal wasn't to build a complicated multi-agent system or a massive AI platform.&lt;/p&gt;

&lt;p&gt;I wanted to demonstrate one clear always-on agent workflow.&lt;/p&gt;

&lt;p&gt;The agent should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Act without waiting for the user&lt;/li&gt;
&lt;li&gt;Run automatically&lt;/li&gt;
&lt;li&gt;Remember recent context&lt;/li&gt;
&lt;li&gt;Use that context to influence its next action&lt;/li&gt;
&lt;li&gt;Create something new&lt;/li&gt;
&lt;li&gt;Have its work ready before the user returns&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwbuq6qpcyg89rq81qvkf.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwbuq6qpcyg89rq81qvkf.PNG" alt=" " width="800" height="619"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Lightweight Agent Memory
&lt;/h2&gt;

&lt;p&gt;One challenge with generating stories automatically is repetition.&lt;/p&gt;

&lt;p&gt;If the AI receives the same instructions every day, it may repeatedly generate similar genres, themes, settings, or story structures.&lt;/p&gt;

&lt;p&gt;To reduce this, StoryForge has a lightweight form of memory.&lt;/p&gt;

&lt;p&gt;Before generating a new story, the agent retrieves recent stories from its database, including information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Genre&lt;/li&gt;
&lt;li&gt;Theme&lt;/li&gt;
&lt;li&gt;Setting&lt;/li&gt;
&lt;li&gt;Summary&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This recent creative history is provided to the AI as context.&lt;/p&gt;

&lt;p&gt;The generation instructions tell the agent to avoid repeating:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Similar premises&lt;/li&gt;
&lt;li&gt;Recent genres&lt;/li&gt;
&lt;li&gt;Themes&lt;/li&gt;
&lt;li&gt;Settings&lt;/li&gt;
&lt;li&gt;Story structures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This means StoryForge isn't simply running the exact same prompt every day.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It uses its recent creative history to influence what it creates next.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  How StoryForge Works
&lt;/h1&gt;

&lt;p&gt;The entire workflow begins automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: EventBridge Scheduler wakes up the agent
&lt;/h2&gt;

&lt;p&gt;Every day, &lt;strong&gt;Amazon EventBridge Scheduler&lt;/strong&gt; triggers the story-generation workflow.&lt;/p&gt;

&lt;p&gt;The user doesn't need to click a button.&lt;/p&gt;

&lt;p&gt;The agent wakes up automatically.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EventBridge Scheduler
        ↓
AWS Lambda
        ↓
Check today's story
        ↓
Retrieve recent memory
        ↓
Generate a new story with Groq
        ↓
Validate response
        ↓
Save to DynamoDB
        ↓
Story is ready for the user
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: Check for duplicate generations
&lt;/h2&gt;

&lt;p&gt;The Lambda function first checks whether a story has already been generated for the current day.&lt;/p&gt;

&lt;p&gt;This makes the workflow &lt;strong&gt;idempotent&lt;/strong&gt; and prevents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Duplicate stories&lt;/li&gt;
&lt;li&gt;Unnecessary AI API calls&lt;/li&gt;
&lt;li&gt;Extra costs&lt;/li&gt;
&lt;li&gt;Multiple executions creating conflicting data&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 3: Retrieve recent stories from DynamoDB
&lt;/h2&gt;

&lt;p&gt;The agent retrieves recently generated stories from &lt;strong&gt;Amazon DynamoDB&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;These stories act as the agent's lightweight memory.&lt;/p&gt;

&lt;p&gt;For StoryForge, I didn't need a vector database or complex memory architecture.&lt;/p&gt;

&lt;p&gt;The last few stories provide enough information for the AI to understand what it has recently created and move in a different creative direction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Generate a fresh story with Groq
&lt;/h2&gt;

&lt;p&gt;The Lambda function sends the generation request to the &lt;strong&gt;Groq API&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Groq acts as the creative AI engine, while AWS handles the infrastructure, automation, storage, and security surrounding the agent.&lt;/p&gt;

&lt;p&gt;The AI returns a structured story containing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Genre&lt;/li&gt;
&lt;li&gt;Theme&lt;/li&gt;
&lt;li&gt;Setting&lt;/li&gt;
&lt;li&gt;Summary&lt;/li&gt;
&lt;li&gt;Full story&lt;/li&gt;
&lt;li&gt;Moral&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Lambda validates the response before saving it.&lt;/p&gt;

&lt;p&gt;If the AI returns malformed or incomplete data, the system handles the failure safely instead of storing corrupted information.&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS Architecture
&lt;/h1&gt;

&lt;p&gt;The architecture is intentionally simple and serverless:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EventBridge Scheduler
        ↓
AWS Lambda
        ↓
Amazon DynamoDB
        ↓
Groq API
        ↓
Amazon DynamoDB
        ↓
API Gateway
        ↓
Static HTML, CSS and JavaScript
        ↓
Amazon S3
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3y4kz2p0m10g94yg05u9.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3y4kz2p0m10g94yg05u9.PNG" alt=" " width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS Services Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS Lambda&lt;/strong&gt;: Autonomous story-generation agent and backend API logic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon DynamoDB&lt;/strong&gt;: Story storage and lightweight memory&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon EventBridge Scheduler&lt;/strong&gt;: Automatically wakes the agent every day&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon API Gateway HTTP API&lt;/strong&gt;: Connects the frontend with the backend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Secrets Manager&lt;/strong&gt;: Securely stores the Groq API key&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon S3&lt;/strong&gt;: Hosts the static frontend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon CloudFormation&lt;/strong&gt;: Infrastructure as Code and automated deployment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon CloudWatch Logs&lt;/strong&gt;: Monitoring and debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Security
&lt;/h1&gt;

&lt;p&gt;The Groq API key is never exposed in the frontend or committed to source code.&lt;/p&gt;

&lt;p&gt;It is securely stored in &lt;strong&gt;AWS Secrets Manager&lt;/strong&gt;, and Lambda retrieves it using IAM permissions following the principle of least privilege.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend
    No API Key
        ↓
API Gateway
        ↓
Lambda
        ↓
AWS Secrets Manager
        ↓
Groq API
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Why HTML, CSS, and Vanilla JavaScript?
&lt;/h1&gt;

&lt;p&gt;I deliberately kept the frontend simple.&lt;/p&gt;

&lt;p&gt;The goal wasn't to demonstrate a complex frontend framework. The focus was on the autonomous AI agent architecture.&lt;/p&gt;

&lt;p&gt;The frontend only needs to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Display today's story&lt;/li&gt;
&lt;li&gt;Browse previous stories&lt;/li&gt;
&lt;li&gt;View individual stories&lt;/li&gt;
&lt;li&gt;Communicate with the backend API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HTML, CSS, and vanilla JavaScript were enough.&lt;/p&gt;

&lt;p&gt;This allowed me to focus on:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Automation, Memory, AI, and Serverless Architecture&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Challenges and Key Decisions
&lt;/h1&gt;

&lt;p&gt;The biggest challenge was balancing the idea of an &lt;strong&gt;AI agent&lt;/strong&gt; with the need to keep the project simple.&lt;/p&gt;

&lt;p&gt;It would have been easy to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vector databases&lt;/li&gt;
&lt;li&gt;Complex agent frameworks&lt;/li&gt;
&lt;li&gt;Multiple AI models&lt;/li&gt;
&lt;li&gt;Several interacting agents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But those additions weren't necessary for this use case.&lt;/p&gt;

&lt;p&gt;Instead, I focused on the essential characteristics of an always-on agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It acts without waiting for the user.&lt;/li&gt;
&lt;li&gt;It runs on a schedule.&lt;/li&gt;
&lt;li&gt;It remembers recent context.&lt;/li&gt;
&lt;li&gt;It uses that context to influence its next action.&lt;/li&gt;
&lt;li&gt;It creates something new.&lt;/li&gt;
&lt;li&gt;Its output is ready when the user returns.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Why DynamoDB Was Enough for Memory
&lt;/h1&gt;

&lt;p&gt;A major lesson from this project was that &lt;strong&gt;not every AI agent needs a complex memory system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For StoryForge, the agent only needs to know what it created recently.&lt;/p&gt;

&lt;p&gt;Retrieving recent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Titles&lt;/li&gt;
&lt;li&gt;Genres&lt;/li&gt;
&lt;li&gt;Themes&lt;/li&gt;
&lt;li&gt;Settings&lt;/li&gt;
&lt;li&gt;Summaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;provides enough context to encourage creative variety.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sometimes the simplest memory architecture is the one that best fits the problem.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  What I Learned
&lt;/h1&gt;

&lt;p&gt;Building StoryForge helped me better understand:&lt;/p&gt;

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

&lt;p&gt;How Lambda, API Gateway, DynamoDB, and S3 can work together to create a complete application without managing servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Event-Driven Automation
&lt;/h2&gt;

&lt;p&gt;How EventBridge Scheduler can transform a traditional reactive AI application into an always-on system.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;User → Request → AI → Result&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The workflow becomes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Schedule → Agent → Memory → AI → Storage → User discovers the result&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The user is no longer responsible for initiating every action.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lightweight Agent Memory
&lt;/h2&gt;

&lt;p&gt;Not every agent needs a vector database or complicated retrieval system.&lt;/p&gt;

&lt;p&gt;For StoryForge, DynamoDB provides enough recent context to influence future generations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure as Code
&lt;/h2&gt;

&lt;p&gt;CloudFormation makes infrastructure deployment more repeatable and consistent while reducing manual configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Secure AI Integration
&lt;/h2&gt;

&lt;p&gt;AWS Secrets Manager keeps the Groq API key away from the frontend and source code, while IAM controls access.&lt;/p&gt;

&lt;h1&gt;
  
  
  What's Next?
&lt;/h1&gt;

&lt;p&gt;StoryForge currently focuses on one simple promise:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A new story every day.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the future, I would like to explore allowing the agent to develop a stronger creative identity over time.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Analyze patterns in previous stories&lt;/li&gt;
&lt;li&gt;Experiment with different narrative styles&lt;/li&gt;
&lt;li&gt;Track genres it has used most&lt;/li&gt;
&lt;li&gt;Explore underused creative directions&lt;/li&gt;
&lt;li&gt;Adapt to genres users enjoy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But for now, I intentionally kept the project focused.&lt;/p&gt;

&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;StoryForge proves that an always-on AI agent doesn't need to be complicated.&lt;/p&gt;

&lt;p&gt;Sometimes, all it takes is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A scheduled event, a little memory, an AI model, storage, and the ability to act while the user is away.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That combination can transform a traditional reactive AI application into something proactive.&lt;/p&gt;

&lt;p&gt;The key idea behind StoryForge is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The user doesn't have to ask for creativity every day. The system can create while they're away.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  StoryForge in One Sentence
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;StoryForge is an always-on AI storytelling agent that automatically remembers its recent stories, creates a new one every day using Groq, and saves it with AWS before the user even opens the app.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try StoryForge
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live App:&lt;/strong&gt;&lt;br&gt;
&lt;a href="http://storyforge-websitebucket-laklmio97kkg.s3-website-us-east-1.amazonaws.com" rel="noopener noreferrer"&gt;Open StoryForge&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>agentaichallenge</category>
    </item>
    <item>
      <title>Building ByteMentor AI: An Always-On Learning Agent with AWS Serverless | 10 Days of Building AI Agents on AWS | Day 2</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Fri, 24 Jul 2026 05:00:00 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/building-bytementor-ai-an-always-on-learning-agent-with-aws-serverless-46d</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/building-bytementor-ai-an-always-on-learning-agent-with-aws-serverless-46d</guid>
      <description>&lt;p&gt;Self-learning has never been easier, yet staying consistent remains one of the biggest challenges. We have access to countless tutorials, courses, documentation, and videos, but deciding what to learn next often becomes a task of its own. Even after choosing a topic, preparing study material, finding practice exercises, and creating revision questions can consume valuable time before any actual learning begins.&lt;/p&gt;

&lt;p&gt;I wanted to solve this problem by building &lt;strong&gt;ByteMentor AI&lt;/strong&gt;, an autonomous learning companion that prepares personalized daily learning content before the learner even opens the application.&lt;/p&gt;

&lt;p&gt;Instead of functioning as another AI chatbot that waits for user input, ByteMentor proactively generates structured learning sessions on a schedule. Every day, it analyzes the learner's roadmap, determines the next topic, generates a complete lesson with practical examples, coding exercises, quizzes, and revision material, then stores everything so it is immediately available when the learner returns.&lt;/p&gt;

&lt;p&gt;The objective was straightforward:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Allow learners to focus on learning instead of planning what to learn.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F943iu35xu1yk6iqe6od9.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F943iu35xu1yk6iqe6od9.PNG" alt=" " width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Idea
&lt;/h1&gt;

&lt;p&gt;Learning roadmaps have become increasingly popular, but they usually stop after listing topics in order. The learner is still responsible for researching each concept, finding quality resources, and deciding what to study every day.&lt;/p&gt;

&lt;p&gt;I wanted to extend the roadmap into something more intelligent.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F87emjx6pg7p0tdkujkre.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F87emjx6pg7p0tdkujkre.PNG" alt=" " width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of simply displaying a list of topics, ByteMentor continuously transforms that roadmap into daily learning sessions. Once a roadmap has been created, the application knows exactly what should come next and prepares everything automatically.&lt;/p&gt;

&lt;p&gt;Each generated lesson includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detailed explanation of the topic&lt;/li&gt;
&lt;li&gt;Practical coding examples&lt;/li&gt;
&lt;li&gt;Hands-on programming exercises&lt;/li&gt;
&lt;li&gt;Multiple-choice quiz questions&lt;/li&gt;
&lt;li&gt;Learning summary&lt;/li&gt;
&lt;li&gt;Productivity tips&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the learner opens the application, today's lesson is already waiting.&lt;/p&gt;




&lt;h1&gt;
  
  
  System Architecture
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                GitHub
                   │
                   ▼
             AWS Amplify
                   │
                   ▼
          React + TypeScript
                   │
                   ▼
            Amazon API Gateway
                   │
                   ▼
              AWS Lambda
        (ByteMentor AI Agent)
           │             │
           ▼             ▼
        Groq API     DynamoDB
           ▲             │
           └──────┬──────┘
                  ▲
                  │
      Amazon EventBridge Scheduler
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each AWS service is responsible for a single part of the workflow, resulting in a scalable and event-driven architecture.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhwf5e7zyf5e0a1rnxukz.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhwf5e7zyf5e0a1rnxukz.PNG" alt=" " width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Frontend
&lt;/h1&gt;

&lt;p&gt;The frontend is built using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interface allows learners to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate personalized learning roadmaps&lt;/li&gt;
&lt;li&gt;View today's lesson&lt;/li&gt;
&lt;li&gt;Browse previous lessons&lt;/li&gt;
&lt;li&gt;Track learning history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application is deployed using &lt;strong&gt;AWS Amplify&lt;/strong&gt;, which automatically builds and deploys the frontend directly from GitHub.&lt;/p&gt;

&lt;h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fln06lpcj4cgd4m7oam4b.PNG" alt=" " width="800" height="368"&gt;
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Backend
&lt;/h1&gt;

&lt;p&gt;The backend is built using &lt;strong&gt;Node.js&lt;/strong&gt; and &lt;strong&gt;AWS Lambda&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Amazon API Gateway exposes REST endpoints that communicate with Lambda functions responsible for handling business logic.&lt;/p&gt;

&lt;p&gt;The backend is responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reading learning roadmaps&lt;/li&gt;
&lt;li&gt;Determining the next lesson&lt;/li&gt;
&lt;li&gt;Generating AI content&lt;/li&gt;
&lt;li&gt;Saving generated lessons&lt;/li&gt;
&lt;li&gt;Retrieving previous learning sessions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because everything runs inside Lambda, there are no servers to manage, making the application lightweight and cost-effective.&lt;/p&gt;




&lt;h1&gt;
  
  
  AI Content Generation
&lt;/h1&gt;

&lt;p&gt;ByteMentor integrates with a large language model to generate structured educational content.&lt;/p&gt;

&lt;p&gt;Rather than requesting plain text responses, the application prompts the model to return structured JSON, making it easy to render lessons consistently across the interface.&lt;/p&gt;

&lt;p&gt;Each lesson contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Topic overview&lt;/li&gt;
&lt;li&gt;Step-by-step explanation&lt;/li&gt;
&lt;li&gt;Code snippets&lt;/li&gt;
&lt;li&gt;Practical exercise&lt;/li&gt;
&lt;li&gt;Quiz questions&lt;/li&gt;
&lt;li&gt;Key takeaways&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach creates a much richer learning experience than simply displaying AI-generated paragraphs.&lt;/p&gt;

&lt;h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq145fvboaethgo85uua3.PNG" alt=" " width="800" height="721"&gt;
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Persistent Storage
&lt;/h1&gt;

&lt;p&gt;Amazon DynamoDB stores all generated learning content.&lt;/p&gt;

&lt;p&gt;This includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learning roadmaps&lt;/li&gt;
&lt;li&gt;Daily lessons&lt;/li&gt;
&lt;li&gt;Learning history&lt;/li&gt;
&lt;li&gt;Generated quizzes&lt;/li&gt;
&lt;li&gt;Coding exercises&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since lessons are stored after generation, learners can revisit previous sessions without requiring the AI model to generate them again.&lt;/p&gt;




&lt;h1&gt;
  
  
  Making the Agent Autonomous
&lt;/h1&gt;

&lt;p&gt;The defining feature of ByteMentor is that it operates proactively rather than reactively.&lt;/p&gt;

&lt;p&gt;Instead of waiting for a user to request a lesson, &lt;strong&gt;Amazon EventBridge Scheduler&lt;/strong&gt; automatically invokes the Lambda function every morning.&lt;/p&gt;

&lt;p&gt;The scheduled workflow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EventBridge Scheduler
        │
        ▼
AWS Lambda
        │
        ▼
Read learning roadmap
        │
        ▼
Determine today's topic
        │
        ▼
Generate lesson
        │
        ▼
Create coding challenge
        │
        ▼
Generate quiz
        │
        ▼
Store in DynamoDB
        │
        ▼
Lesson ready before user logs in
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means the learner is welcomed with fresh learning content every day without initiating any manual action.&lt;/p&gt;

&lt;h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvf8yzb02bbe9rjty9dh7.PNG" alt=" " width="800" height="397"&gt;
&lt;/h2&gt;

&lt;h1&gt;
  
  
  AWS Services Used
&lt;/h1&gt;

&lt;p&gt;The project combines several AWS services into a single serverless workflow.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Amplify&lt;/li&gt;
&lt;li&gt;Amazon API Gateway&lt;/li&gt;
&lt;li&gt;AWS Lambda&lt;/li&gt;
&lt;li&gt;Amazon EventBridge Scheduler&lt;/li&gt;
&lt;li&gt;Amazon DynamoDB&lt;/li&gt;
&lt;li&gt;Amazon CloudWatch&lt;/li&gt;
&lt;li&gt;AWS IAM&lt;/li&gt;
&lt;li&gt;AWS SAM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each service contributes a focused responsibility, making the system easy to maintain and extend.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foqebwbg2pofjfys74n9o.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foqebwbg2pofjfys74n9o.PNG" alt=" " width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Development Process
&lt;/h1&gt;

&lt;p&gt;The project began with designing a clean learning workflow rather than focusing solely on AI generation.&lt;/p&gt;

&lt;p&gt;The roadmap became the central source of truth for determining future lessons. Once that workflow was established, the backend was designed around AWS Lambda functions capable of generating and storing lessons independently.&lt;/p&gt;

&lt;p&gt;The frontend was then built to consume those generated lessons, allowing users to view content without worrying about how or when it was created.&lt;/p&gt;

&lt;p&gt;Finally, EventBridge Scheduler transformed the application from an on-demand AI tool into an autonomous learning agent by moving lesson generation to a scheduled background process.&lt;/p&gt;




&lt;h1&gt;
  
  
  What I Learned
&lt;/h1&gt;

&lt;p&gt;Building ByteMentor provided valuable experience across several AWS services and architectural patterns.&lt;/p&gt;

&lt;p&gt;Some of the key takeaways include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Designing event-driven serverless applications&lt;/li&gt;
&lt;li&gt;Building production deployments using AWS SAM&lt;/li&gt;
&lt;li&gt;Using Amazon EventBridge Scheduler for background automation&lt;/li&gt;
&lt;li&gt;Connecting API Gateway with AWS Lambda&lt;/li&gt;
&lt;li&gt;Designing DynamoDB data models&lt;/li&gt;
&lt;li&gt;Building structured AI prompts that consistently return machine-readable responses&lt;/li&gt;
&lt;li&gt;Separating frontend and backend responsibilities for easier maintenance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More importantly, the project reinforced the idea that AI becomes significantly more useful when it performs work proactively instead of waiting for user requests.&lt;/p&gt;




&lt;h1&gt;
  
  
  Future Improvements
&lt;/h1&gt;

&lt;p&gt;There are several features I plan to add in future iterations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon Cognito authentication&lt;/li&gt;
&lt;li&gt;Progress tracking and learning analytics&lt;/li&gt;
&lt;li&gt;Achievement badges and learning streaks&lt;/li&gt;
&lt;li&gt;PDF lesson exports&lt;/li&gt;
&lt;li&gt;Voice narration&lt;/li&gt;
&lt;li&gt;AI-generated diagrams&lt;/li&gt;
&lt;li&gt;Spaced repetition for long-term retention&lt;/li&gt;
&lt;li&gt;Multi-user support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These additions will further enhance the personalized learning experience while maintaining the autonomous nature of the platform.&lt;/p&gt;




&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;ByteMentor AI demonstrates how serverless AWS services can be combined to create an autonomous learning system that works continuously in the background.&lt;/p&gt;

&lt;p&gt;By leveraging AWS Lambda, EventBridge Scheduler, DynamoDB, API Gateway, and Amplify, the application generates personalized learning sessions without requiring user intervention. Instead of deciding what to study every day, learners can simply open the application and begin learning immediately.&lt;/p&gt;

&lt;p&gt;Building this project was an excellent opportunity to explore event-driven architectures, serverless development, and AI-powered automation while creating a practical solution to a real productivity problem.&lt;/p&gt;




&lt;h1&gt;
  
  
  Live Demo
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://main.d2qeklo0lut2is.amplifyapp.com/" rel="noopener noreferrer"&gt;https://main.d2qeklo0lut2is.amplifyapp.com/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  GitHub Repository
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/ABDULLAH408/ByteMentor_AI" rel="noopener noreferrer"&gt;https://github.com/ABDULLAH408/ByteMentor_AI&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>agents</category>
    </item>
    <item>
      <title>Building FocusAI: Simplifying Daily Task Planning: 10 Days of Building AI Agents on AWS | Day 1</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Thu, 16 Jul 2026 22:05:58 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/building-focusai-simplifying-daily-task-planning-with-aws-serverless-and-amazon-bedrock-1581</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/building-focusai-simplifying-daily-task-planning-with-aws-serverless-and-amazon-bedrock-1581</guid>
      <description>&lt;p&gt;Every morning begins the same way. I sit down, make a list of everything I need to accomplish, and then spend several minutes deciding where to start.&lt;/p&gt;

&lt;p&gt;The challenge is rarely creating the list. The real challenge is prioritizing it.&lt;/p&gt;

&lt;p&gt;Some tasks are urgent. Others are important but not time-sensitive. Some can wait until later in the day. Deciding what deserves immediate attention often becomes a task of its own, creating unnecessary friction before any real work has even started.&lt;/p&gt;

&lt;p&gt;That everyday problem inspired me to build &lt;strong&gt;FocusAI&lt;/strong&gt;, an AI-powered productivity assistant that helps transform a simple list of tasks into a structured action plan.&lt;/p&gt;

&lt;p&gt;Rather than replacing project management platforms or adding another complex productivity system, FocusAI focuses on solving one specific problem:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What should I work on first today?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The objective was straightforward. Build a practical application that removes the mental overhead of planning the day so users can spend more time doing meaningful work.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Idea Behind FocusAI
&lt;/h1&gt;

&lt;p&gt;There is no shortage of productivity applications available today. Most of them are packed with features such as project management, kanban boards, recurring tasks, collaboration tools, reminders, calendars, and detailed reporting.&lt;/p&gt;

&lt;p&gt;While these tools are incredibly powerful, they can also introduce additional complexity for someone who simply wants to organize today's workload.&lt;/p&gt;

&lt;p&gt;FocusAI takes a different approach.&lt;/p&gt;

&lt;p&gt;Instead of asking users to create projects, assign priorities, organize boards, or maintain workflows, it asks for only one thing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your list of tasks.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the tasks are submitted, FocusAI analyzes them using generative AI and produces an organized action plan within seconds.&lt;/p&gt;

&lt;p&gt;The experience is intentionally lightweight, allowing users to focus on execution rather than planning.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1lhro7h982jsdy5lt420.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1lhro7h982jsdy5lt420.PNG" alt=" " width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What FocusAI Does
&lt;/h1&gt;

&lt;p&gt;The workflow is designed to be as simple as possible.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enter or paste your list of daily tasks.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Prioritize My Day&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Receive an AI-generated plan almost instantly.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For every task, FocusAI generates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Priority level&lt;/li&gt;
&lt;li&gt;Estimated completion time&lt;/li&gt;
&lt;li&gt;Recommended first step&lt;/li&gt;
&lt;li&gt;Reasoning behind the recommendation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to task-level insights, the application also provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A summary of the day's workload&lt;/li&gt;
&lt;li&gt;A productivity tip based on the submitted tasks&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5zlt5aougwlvt3svpq8h.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5zlt5aougwlvt3svpq8h.PNG" alt=" " width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The interface intentionally avoids unnecessary features and distractions. Every design decision was made with one goal in mind: helping users start working as quickly as possible.&lt;/p&gt;




&lt;h1&gt;
  
  
  Architecture
&lt;/h1&gt;

&lt;p&gt;From the beginning, I wanted the application to be fully serverless.&lt;/p&gt;

&lt;p&gt;A serverless architecture removes the need to manage infrastructure while providing scalability, reliability, and a streamlined deployment process.&lt;/p&gt;

&lt;p&gt;The overall architecture looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;React + Vite
      │
      ▼
AWS Amplify
      │
      ▼
Amazon API Gateway
      │
      ▼
AWS Lambda
      │
      ▼
Amazon Bedrock
(Amazon Nova Lite)
      │
      ▼
AI Generated Productivity Plan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Technology Stack
&lt;/h1&gt;

&lt;p&gt;The frontend was built using &lt;strong&gt;React&lt;/strong&gt; and &lt;strong&gt;Vite&lt;/strong&gt;, providing a fast development experience and a responsive user interface.&lt;/p&gt;

&lt;p&gt;The application is hosted on &lt;strong&gt;AWS Amplify&lt;/strong&gt;, which automatically builds and deploys new versions whenever changes are pushed to GitHub.&lt;/p&gt;

&lt;p&gt;The backend consists of an &lt;strong&gt;AWS Lambda&lt;/strong&gt; function exposed through &lt;strong&gt;Amazon API Gateway&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When a user submits their tasks, the Lambda function constructs a structured prompt and sends it to &lt;strong&gt;Amazon Bedrock&lt;/strong&gt;, where &lt;strong&gt;Amazon Nova Lite&lt;/strong&gt; analyzes the task list and generates recommendations.&lt;/p&gt;

&lt;p&gt;The response is then returned to the frontend and presented as a clean, structured productivity plan.&lt;/p&gt;




&lt;h1&gt;
  
  
  AWS Services Used
&lt;/h1&gt;

&lt;p&gt;FocusAI is built using the following AWS services:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Amplify&lt;/li&gt;
&lt;li&gt;Amazon API Gateway&lt;/li&gt;
&lt;li&gt;AWS Lambda&lt;/li&gt;
&lt;li&gt;Amazon Bedrock&lt;/li&gt;
&lt;li&gt;Amazon Nova Lite&lt;/li&gt;
&lt;li&gt;Amazon CloudWatch&lt;/li&gt;
&lt;li&gt;AWS Identity and Access Management (IAM)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub is used for source control and continuous deployment.&lt;/p&gt;




&lt;h1&gt;
  
  
  Designing for Reliability
&lt;/h1&gt;

&lt;p&gt;One aspect I wanted to address early in development was reliability.&lt;/p&gt;

&lt;p&gt;AI-powered applications should continue to provide value even when AI services are temporarily unavailable because of quota limits, service interruptions, or network issues.&lt;/p&gt;

&lt;p&gt;To handle these scenarios, I implemented a fallback planner.&lt;/p&gt;

&lt;p&gt;Whenever Amazon Bedrock cannot process a request, the application automatically generates a structured productivity plan using predefined prioritization logic instead of returning an error.&lt;/p&gt;

&lt;p&gt;Although the fallback is not as sophisticated as the AI-generated response, it ensures the application remains functional and useful under all circumstances.&lt;/p&gt;

&lt;p&gt;This small addition significantly improved both the user experience and the resilience of the application.&lt;/p&gt;




&lt;h1&gt;
  
  
  Challenges Along the Way
&lt;/h1&gt;

&lt;p&gt;Like most cloud-native applications, the majority of the work involved connecting services together rather than building the interface itself.&lt;/p&gt;

&lt;p&gt;Some of the biggest challenges included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configuring Amazon API Gateway correctly&lt;/li&gt;
&lt;li&gt;Resolving CORS issues between the frontend and backend&lt;/li&gt;
&lt;li&gt;Setting up IAM permissions for Amazon Bedrock&lt;/li&gt;
&lt;li&gt;Debugging Lambda function execution&lt;/li&gt;
&lt;li&gt;Successfully invoking Amazon Nova Lite through Bedrock&lt;/li&gt;
&lt;li&gt;Monitoring requests using Amazon CloudWatch Logs&lt;/li&gt;
&lt;li&gt;Managing deployment through AWS Amplify&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Working through these challenges provided valuable hands-on experience with AWS services that is difficult to gain from documentation alone.&lt;/p&gt;




&lt;h1&gt;
  
  
  Key Takeaways
&lt;/h1&gt;

&lt;p&gt;Building FocusAI strengthened my understanding of modern serverless application development.&lt;/p&gt;

&lt;p&gt;Some of the most valuable lessons included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building scalable applications with AWS Lambda&lt;/li&gt;
&lt;li&gt;Deploying frontend applications using AWS Amplify&lt;/li&gt;
&lt;li&gt;Creating REST APIs with Amazon API Gateway&lt;/li&gt;
&lt;li&gt;Integrating foundation models through Amazon Bedrock&lt;/li&gt;
&lt;li&gt;Managing permissions securely with IAM&lt;/li&gt;
&lt;li&gt;Using CloudWatch for monitoring and debugging&lt;/li&gt;
&lt;li&gt;Designing graceful fallback mechanisms for AI-powered systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Perhaps the most important lesson was that AI should enhance an application rather than become a dependency that prevents it from functioning.&lt;/p&gt;

&lt;p&gt;Building software that continues to deliver value even when intelligent services are unavailable is an important aspect of creating reliable user experiences.&lt;/p&gt;




&lt;h1&gt;
  
  
  Future Improvements
&lt;/h1&gt;

&lt;p&gt;There are several features I would like to explore in future iterations of FocusAI.&lt;/p&gt;

&lt;p&gt;Some of the planned improvements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User authentication with Amazon Cognito&lt;/li&gt;
&lt;li&gt;Productivity history and analytics&lt;/li&gt;
&lt;li&gt;Weekly productivity reports&lt;/li&gt;
&lt;li&gt;Calendar integration&lt;/li&gt;
&lt;li&gt;Meeting summarization&lt;/li&gt;
&lt;li&gt;AI-generated daily schedules&lt;/li&gt;
&lt;li&gt;Smart reminders and notifications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These additions would allow FocusAI to evolve from a daily planning assistant into a more complete productivity companion while maintaining its simplicity.&lt;/p&gt;




&lt;h1&gt;
  
  
  Live Demo
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Try FocusAI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://main.d10s0skyfp0lmj.amplifyapp.com/" rel="noopener noreferrer"&gt;https://main.d10s0skyfp0lmj.amplifyapp.com/&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Source Code
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ABDULLAH408/FocusAI" rel="noopener noreferrer"&gt;https://github.com/ABDULLAH408/FocusAI&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Closing Thoughts
&lt;/h1&gt;

&lt;p&gt;Building FocusAI was an opportunity to explore how modern serverless technologies and generative AI can work together to solve an everyday problem.&lt;/p&gt;

&lt;p&gt;The project reinforced an idea that I find increasingly important in software development. Great applications do not always need dozens of features. Sometimes the best solution is the one that removes a small but recurring source of friction from a user's day.&lt;/p&gt;

&lt;p&gt;FocusAI was built with that philosophy in mind.&lt;/p&gt;

&lt;p&gt;It takes a simple list of tasks and turns it into a clear plan, allowing users to spend less time deciding what to do next and more time making meaningful progress.&lt;/p&gt;

&lt;p&gt;I hope you find it useful, and I would love to hear your feedback or suggestions for future improvements.&lt;/p&gt;

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

</description>
      <category>ai</category>
      <category>aws</category>
      <category>bedrock</category>
      <category>programming</category>
    </item>
    <item>
      <title>Day 6: Why Vibe Coding Fails in Production (And How Kiro Helps to Fix It)</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Mon, 18 May 2026 09:17:00 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/day-6-why-vibe-coding-fails-in-production-and-how-kiro-helps-to-fix-it-22i1</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/day-6-why-vibe-coding-fails-in-production-and-how-kiro-helps-to-fix-it-22i1</guid>
      <description>&lt;p&gt;After building a project using Kiro’s spec-driven development workflow and comparing it with tools like Cursor and GitHub Copilot, one thing became very clear: &lt;em&gt;AI coding itself is not the issue. The real problem is how we approach it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most developers today are unintentionally practicing what is now called &lt;strong&gt;&lt;em&gt;“vibe coding”&lt;/em&gt;&lt;/strong&gt;, a workflow where you rely heavily on AI prompts, quick iterations, and instant code generation without properly designing the system beforehand. It feels fast, flexible, and even powerful in the beginning. But when you try to take that same approach into production-level systems, the cracks start to show.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Vibe Coding Actually Looks Like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Vibe coding usually starts with a simple prompt. You ask the AI to build something like a game, a dashboard, or a backend system, and it immediately generates working code. From there, you keep improving it step by step using follow-up prompts such as “fix this bug,” “add this feature,” or “make it cleaner.”&lt;/p&gt;

&lt;p&gt;At first, this feels like rapid development. You are building fast, seeing instant results, and constantly moving forward. But the issue is that there is no real system design behind the code. Everything is being added reactively instead of being designed intentionally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Vibe Coding Breaks in Production&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The biggest problem with vibe coding is that it works only in the early stage. As the project grows, structure starts to break.&lt;/p&gt;

&lt;p&gt;First, architecture becomes unclear because features are added through separate prompts, leading to inconsistent code organization. Second, context starts to degrade, and AI may lose track of earlier decisions. Third, complexity increases uncontrollably because everything is patched together instead of being designed properly. This is the point where projects start becoming hard to maintain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My project Experience&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I noticed this clearly while building Flappy Bird in Node.js. At the start, everything was smooth and fast. But as more features were added, the logic started overlapping, debugging became harder, and small changes affected other parts of the game. It felt productive at first, but over time, the lack of structure started creating problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Kiro Changes the Workflow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro solves this by introducing spec-driven development. Instead of jumping straight into prompts like “build Flappy Bird,” you first define a structured specification describing how the system should work.&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%2Fu4ju0m7t5up8ixlwb1g8.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%2Fu4ju0m7t5up8ixlwb1g8.PNG" alt=" " width="800" height="44"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my case, I defined gameplay rules like gravity, pipes, scoring, and collision before any code was generated. Kiro then built the implementation based on that structure. This shifts development from reactive coding to intentional system design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From Reactive to Structured Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In vibe coding, you fix problems after they appear. In Kiro, you define the system first, and most issues never appear in the first place. This makes development more controlled, predictable, and structured.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Structure Matters More Than Speed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most AI tools focus on speed, but speed without structure does not scale. Vibe coding works well for prototypes and experiments, but breaks down in larger systems because complexity grows too quickly. Kiro solves this by introducing structure before code exists&lt;/p&gt;

&lt;p&gt;Final Thoughts:&lt;br&gt;
AI development is evolving from fast code generation to structured system design.Copilot helps you write faster, Cursor helps you work with code, but Kiro helps you define systems before they are built. And that’s the key difference.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Vibe coding fails in production not because AI is weak, but because structure is missing from the process.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>kiro</category>
    </item>
    <item>
      <title>Day 5: Kiro vs Cursor vs GitHub Copilot (Real Developer Comparison)</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Sun, 17 May 2026 08:00:00 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/day-5-kiro-vs-cursor-vs-github-copilot-real-developer-comparison-5879</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/day-5-kiro-vs-cursor-vs-github-copilot-real-developer-comparison-5879</guid>
      <description>&lt;p&gt;After building a project in Node.js using Kiro’s spec-driven workflow, We started to clearly understand where Kiro stands in the AI development ecosystem. Up until now, I had used multiple AI coding tools in real projects: Cursor, GitHub Copilot, and now Kiro, but this was the first time I compared them from a workflow perspective, not just feature lists. And honestly, the difference is not just in “code quality.” It’s in how each tool shapes the way you think while building software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding the Three Tools First&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before comparing them, it’s important to understand what each tool is actually optimizing for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt; is mainly focused on speed. It helps you write code faster inside your editor by suggesting completions as you type. It’s great for small improvements and boilerplate reduction, but it still depends heavily on your own structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; takes things a step further. It’s more like an AI-native IDE where you can chat with your codebase. It understands context better than Copilot and allows more interactive development, especially for debugging and refactoring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro&lt;/strong&gt; on the other hand, feels different. It is not just trying to help you write code faster, it is trying to enforce a development structure through spec-driven development.&lt;/p&gt;

&lt;p&gt;That distinction is where everything starts to change.&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%2Fl3i1zo04hfsavep8jz2y.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%2Fl3i1zo04hfsavep8jz2y.PNG" alt=" " width="800" height="134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflow Comparison (The Real Difference)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I built a project in Node.js using Kiro, the workflow started with a spec. That single change affects everything downstream.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Kiro&lt;/strong&gt;, I first defined behavior, system design, and features before writing any code. The AI then generated implementation based on that structure.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Cursor and Copilot&lt;/strong&gt;, the workflow is more direct. You start coding or prompting immediately, and structure evolves naturally through iteration.&lt;/p&gt;

&lt;p&gt;This difference might seem small, but it completely changes how your project grows over time.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Kiro forces intent-first development.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Cursor and Copilot encourage code-first development.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Structure and Architecture Handling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where the gap becomes very visible. With &lt;strong&gt;GitHub Copilot&lt;/strong&gt;, code structure depends entirely on the developer. It is excellent at completing functions and reducing repetitive work, but it does not guide architecture decisions. &lt;strong&gt;Cursor&lt;/strong&gt; improves this by understanding more of the project context. It can refactor files, explain logic, and assist in debugging across multiple files.&lt;/p&gt;

&lt;p&gt;But &lt;strong&gt;Kiro&lt;/strong&gt; goes one level higher, it tries to shape the architecture before the code even exists. Because everything starts from a spec, the structure is more intentional from the beginning. In my Node.js project, this was very noticeable. Kiro naturally separated game logic into clear modules instead of dumping everything into one file.&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%2Fj8yrj02iiyokbqnyhq4x.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%2Fj8yrj02iiyokbqnyhq4x.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Interaction Style&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The interaction style of each tool is also very different.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copilot&lt;/strong&gt; feels passive. It waits for you to write code and then predicts what comes next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; feels conversational. You actively discuss your codebase with the AI and iterate through changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro&lt;/strong&gt; feels directive in a different way. You are not just chatting or coding, you are defining system behavior through structured specifications, and the AI executes based on that. This makes Kiro feel less like an assistant and more like a system builder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debugging and Iteration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Debugging is where &lt;strong&gt;Cursor&lt;/strong&gt; really shines. When something breaks, Cursor can analyze your project, suggest fixes, and even refactor multiple files at once. It feels very practical for real-world development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copilot&lt;/strong&gt; is weaker here because it does not fully understand project-wide context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro&lt;/strong&gt; approaches debugging differently. Instead of directly patching code, you often go back and refine the spec. The system then regenerates or adjusts implementation based on updated requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed vs Structure vs Control&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each tool optimizes for something different.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Copilot&lt;/strong&gt; optimizes for speed of writing code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cursor&lt;/strong&gt; optimizes for interactive development and debugging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kiro&lt;/strong&gt; optimizes for structured system design through specs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When we used them in real projects, this difference became very clear.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you want quick code snippets, &lt;strong&gt;Copilot&lt;/strong&gt; is enough.&lt;/li&gt;
&lt;li&gt;If you want full project-level AI assistance, &lt;strong&gt;Cursor&lt;/strong&gt; is very strong.&lt;/li&gt;
&lt;li&gt;If you want structured AI-native development, &lt;strong&gt;Kiro&lt;/strong&gt; feels more forward-thinking.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;After using all three tools in real development scenarios, we realized they are not direct replacements for each other. They represent different stages in the evolution of AI-assisted development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copilot&lt;/strong&gt; represents the first phase: autocomplete intelligence.&lt;br&gt;
&lt;strong&gt;Cursor&lt;/strong&gt; represents the second phase: conversational coding.&lt;br&gt;
&lt;strong&gt;Kiro&lt;/strong&gt; represents a third phase: structured AI-native development.&lt;/p&gt;

&lt;p&gt;And that third phase is what makes Kiro interesting.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It is not trying to replace developers.It is trying to change how developers think before they even write code.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>kiro</category>
    </item>
    <item>
      <title>Day 4: Building Your First App with Kiro (Step-by-Step AI Development)</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Sat, 16 May 2026 07:33:00 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/day-4-building-your-first-app-with-kiro-step-by-step-ai-development-3e98</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/day-4-building-your-first-app-with-kiro-step-by-step-ai-development-3e98</guid>
      <description>&lt;p&gt;Over the last few days, I’ve been exploring Kiro and trying to understand what makes it different from the growing number of AI coding tools entering the market. At first, I thought it was simply another AI-powered IDE focused on faster development and better code generation.&lt;/p&gt;

&lt;p&gt;But after building a real project with it, I realized the bigger idea behind Kiro is not just speed, it’s structure.&lt;/p&gt;

&lt;p&gt;So for Day 4 of this series, I decided to build something more interactive and fun instead of another basic CRUD application. I chose to build a &lt;strong&gt;simple Flappy Bird&lt;/strong&gt; clone using Kiro to properly test how spec-driven development actually feels in a real workflow. The goal wasn’t just to “build a game with AI.”&lt;/p&gt;

&lt;p&gt;The real goal was to experience how &lt;strong&gt;&lt;em&gt;spec-driven development&lt;/em&gt;&lt;/strong&gt; in Kiro actually behaves in a real project. And this is where things started to feel different from traditional AI coding tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why I Chose Flappy Bird&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I intentionally picked Flappy Bird because it’s deceptively simple.On the surface, it looks like a small beginner game, but technically it includes several important development concepts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Game physics&lt;/li&gt;
&lt;li&gt;Collision detection&lt;/li&gt;
&lt;li&gt;Animations&lt;/li&gt;
&lt;li&gt;Rendering loops&lt;/li&gt;
&lt;li&gt;User input handling&lt;/li&gt;
&lt;li&gt;State management&lt;/li&gt;
&lt;li&gt;Score systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That makes it a perfect project for testing how well Kiro handles structured implementation and iterative development.&lt;/p&gt;

&lt;p&gt;Most AI tools perform well when generating static pages or small components. But interactive systems are where workflows usually become messy. Context gets lost, features break, and the generated architecture slowly turns chaotic. That’s exactly what I wanted to test with Kiro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Starting with Spec-Driven Development in Kiro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first step was not coding at all.I started inside Kiro using its spec-driven development workflow, where you define system behavior first and only then move toward implementation. This is very different from traditional AI coding where you directly ask:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Build Flappy Bird in Node.js”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instead, Kiro pushes you to first define what the system is supposed to do.That shift alone changes how you think about development.&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%2Fs0z8529hj0lr203a4bxi.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%2Fs0z8529hj0lr203a4bxi.PNG" alt=" " width="800" height="658"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Writing the Node.js Game Specification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Inside Kiro, I created a structured spec for the Flappy Bird game. Here’s what I defined:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Build&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;Flappy&lt;/span&gt; &lt;span class="nx"&gt;Bird&lt;/span&gt; &lt;span class="nx"&gt;game&lt;/span&gt; &lt;span class="nx"&gt;using&lt;/span&gt; &lt;span class="nx"&gt;Node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt; &lt;span class="kd"&gt;with&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;following&lt;/span&gt; &lt;span class="nx"&gt;behavior&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Bird&lt;/span&gt; &lt;span class="nx"&gt;affected&lt;/span&gt; &lt;span class="nx"&gt;by&lt;/span&gt; &lt;span class="nf"&gt;gravity &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;physics&lt;/span&gt; &lt;span class="nx"&gt;simulation&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Jump&lt;/span&gt; &lt;span class="nx"&gt;mechanic&lt;/span&gt; &lt;span class="nx"&gt;using&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt; &lt;span class="nx"&gt;press&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Pipe&lt;/span&gt; &lt;span class="nx"&gt;generation&lt;/span&gt; &lt;span class="kd"&gt;with&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt; &lt;span class="nx"&gt;gaps&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Continuous&lt;/span&gt; &lt;span class="nx"&gt;movement&lt;/span&gt; &lt;span class="nx"&gt;loop&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Collision&lt;/span&gt; &lt;span class="nx"&gt;detection&lt;/span&gt; &lt;span class="nx"&gt;system&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Score&lt;/span&gt; &lt;span class="nx"&gt;increases&lt;/span&gt; &lt;span class="nx"&gt;when&lt;/span&gt; &lt;span class="nx"&gt;passing&lt;/span&gt; &lt;span class="nx"&gt;pipes&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Game&lt;/span&gt; &lt;span class="nx"&gt;over&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="nx"&gt;when&lt;/span&gt; &lt;span class="nx"&gt;collision&lt;/span&gt; &lt;span class="nx"&gt;occurs&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Restart&lt;/span&gt; &lt;span class="nx"&gt;functionality&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Real&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;time&lt;/span&gt; &lt;span class="nx"&gt;game&lt;/span&gt; &lt;span class="nx"&gt;loop&lt;/span&gt; &lt;span class="nx"&gt;execution&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of thinking in terms of files or functions, I was thinking in terms of system behavior. That’s the key idea behind spec-driven development. You define what the system should do, and Kiro translates that into structure and implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Kiro Structured the Node.js Implementation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the spec was finalized, Kiro didn’t jump into dumping code. Instead, it broke the system into logical modules and components.The Node.js implementation was structured around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;game loop handling&lt;/li&gt;
&lt;li&gt;physics engine logic (gravity + movement)&lt;/li&gt;
&lt;li&gt;pipe generation system&lt;/li&gt;
&lt;li&gt;collision detection module&lt;/li&gt;
&lt;li&gt;score tracking system&lt;/li&gt;
&lt;li&gt;input handling (keyboard events)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This separation was very important because it prevented the usual problem of AI-generated “single-file chaos.” In traditional vibe coding, Node.js projects often become messy quickly because everything gets merged into one script. Here, the structure stayed clean and understandable.&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%2Fopak6y0njf643pj20mxt.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%2Fopak6y0njf643pj20mxt.PNG" alt=" " width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generating the First Working Version&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After processing the spec, Kiro generated the first working version of the game logic. Even though it was running in a Node.js environment, the core mechanics were already functional:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bird movement simulation&lt;/li&gt;
&lt;li&gt;gravity behavior&lt;/li&gt;
&lt;li&gt;pipe spawning logic&lt;/li&gt;
&lt;li&gt;collision detection&lt;/li&gt;
&lt;li&gt;score updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What impressed me most was not just that it worked, but that it worked in a structured way. The system wasn’t random, it followed the spec I had defined earlier. That connection between &lt;strong&gt;intent → spec → implementation&lt;/strong&gt; was very clear.&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%2Fizlbmg7nmqg621b5r1p3.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%2Fizlbmg7nmqg621b5r1p3.PNG" alt=" " width="800" height="473"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What Felt Different Compared to Vibe Coding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project made the difference very obvious. In traditional vibe coding workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you prompt repeatedly&lt;/li&gt;
&lt;li&gt;code structure breaks over time&lt;/li&gt;
&lt;li&gt;debugging becomes harder&lt;/li&gt;
&lt;li&gt;context is often lost&lt;/li&gt;
&lt;li&gt;Node.js files quickly turn messy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But with Kiro’s spec-driven approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structure stays stable&lt;/li&gt;
&lt;li&gt;changes are intentional&lt;/li&gt;
&lt;li&gt;system design remains consistent&lt;/li&gt;
&lt;li&gt;iteration is predictable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of constantly fixing broken outputs, you are refining a system definition. That is a completely different mindset.&lt;/p&gt;

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

&lt;p&gt;By the end of this project, I had a working Flappy Bird-style game logic built in Node.js using Kiro’s spec-driven workflow. It included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;gravity-based physics&lt;/li&gt;
&lt;li&gt;pipe generation system&lt;/li&gt;
&lt;li&gt;collision detection&lt;/li&gt;
&lt;li&gt;score tracking&lt;/li&gt;
&lt;li&gt;restart logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the real outcome was not just the game. It was understanding how structured AI development changes the entire workflow from coding to system 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%2Fpsa1yf80pfe8j431d5eo.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%2Fpsa1yf80pfe8j431d5eo.PNG" alt=" " width="642" height="846"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you combine Node.js with structured specs, AI stops being a generator and starts becoming a development partner.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>kiro</category>
    </item>
    <item>
      <title>Day 3: Understanding Spec-Driven Development (The Core Idea Behind Kiro)</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Thu, 14 May 2026 07:16:00 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/day-3-understanding-spec-driven-development-the-core-idea-behind-kiro-2fc4</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/day-3-understanding-spec-driven-development-the-core-idea-behind-kiro-2fc4</guid>
      <description>&lt;p&gt;Welcome back to the Kiro Blog Series: From Zero to AI-Native Development.&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;first two days&lt;/strong&gt;, &lt;em&gt;We installed Kiro, explored the environment, and built a simple first project. That part was mostly about getting comfortable with the tool.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But today is different. Today is about understanding the core idea behind Kiro spec-driven development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a Spec, Really?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A spec is a structured description of what you want to build. It is not just documentation, it is the starting point of development.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instead of jumping into code, you define your intent in natural language, and that becomes the foundation for everything else.&lt;/p&gt;

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

&lt;p&gt;A simple to-do application where users can add tasks, delete tasks, and mark them as completed, with data stored locally.&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%2Fipo8bk0upfzqrgubf33u.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%2Fipo8bk0upfzqrgubf33u.PNG" alt=" " width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This helps readers visually connect what a &lt;strong&gt;“spec”&lt;/strong&gt; looks like inside Kiro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traditional Development vs Spec-Driven Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In traditional development, the workflow usually starts with setup and structure.You choose frameworks, create folders, install dependencies, and only then start building features.&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%2Fki1zxufop5a396wek89m.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%2Fki1zxufop5a396wek89m.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This shows “old way” complexity visually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So the flow looks like:&lt;/strong&gt; idea → setup → architecture → coding → debugging&lt;/p&gt;




&lt;p&gt;In spec-driven development, the order changes. You start with intent instead of structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;idea → spec → structured generation → refinement&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%2Fjjng50dbtbzf1q6kdtpn.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%2Fjjng50dbtbzf1q6kdtpn.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
(&lt;em&gt;This image is AI generated highlighting how KIRO works&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;This is the “wow moment” image where Kiro turns spec into structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Specs Are More Important Than They Look&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At first, a spec looks like just a description. But it actually plays multiple roles at once. It communicates intent, forces clarity of thinking, and helps generate structure automatically. Below is a visual representation of vague vs detailed specs.&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%2Fwmmffj7u2q2y29uffoae.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%2Fwmmffj7u2q2y29uffoae.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Noticed While Using Kiro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One important thing became very clear while using Kiro.The quality of output depends heavily on how clear the spec is. Better spec → better structure → better result.&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%2Fpld29x4m31ez2j0h6waa.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%2Fpld29x4m31ez2j0h6waa.PNG" alt=" " width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is your proof that the system actually works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Mindset Shift&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Writing code is no longer the first step. Thinking clearly is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instead of asking:&lt;/strong&gt; &lt;em&gt;“How do I build this?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You start asking:&lt;/strong&gt; &lt;em&gt;“What exactly am I building?”&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Coming Next on &lt;strong&gt;Day 4&lt;/strong&gt;: Next, We will take this concept and build a real application using Kiro step by step.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>softwaredevelopment</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Day 2: Installing &amp; Getting Started with Kiro</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Wed, 13 May 2026 07:05:00 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/day-2-installing-getting-started-with-kiro-2jb1</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/day-2-installing-getting-started-with-kiro-2jb1</guid>
      <description>&lt;p&gt;Welcome back to the Kiro Blog Series: From Zero to AI-Native Development.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Day 1&lt;/strong&gt;, we explored what Kiro is and why it represents a shift toward spec-driven development. Today, we move from ideas into actual setup and hands-on experience.&lt;/p&gt;

&lt;p&gt;The goal is simple, install Kiro, understand how it feels, and build your first working project without getting stuck in setup confusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Setup Matters (But Shouldn’t Be Complicated)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most developers don’t fail because a tool is hard. They fail because the first 10 minutes are confusing.Too many steps, too many decisions, and too much boilerplate before anything actually works. Kiro tries to remove that friction. The idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you can describe what you want, you should be able to start building immediately.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Look at Kiro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you first install and open Kiro, the experience feels familiar if you’ve used modern IDEs like VS Code. But there’s a clear difference in focus.&lt;/p&gt;

&lt;p&gt;Instead of overwhelming you with files and configurations, Kiro opens into a clean, minimal workspace. The AI layer is already integrated into the environment, sitting quietly beside your development flow, not interrupting, just assisting when needed.&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%2Fycnd9eco6evw6q2rn2bt.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%2Fycnd9eco6evw6q2rn2bt.PNG" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating Your First Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you’re inside Kiro, the next step is creating your first project. This is where the experience starts to feel different from traditional development tools.&lt;/p&gt;

&lt;p&gt;Instead of manually setting everything up, you simply create a new project, give it a name, and choose a basic template or blank setup. Kiro takes care of the rest in the background.&lt;/p&gt;

&lt;p&gt;It automatically prepares the structure, configuration, and environment so you can focus on what actually matters is the idea.&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%2Fm6b3ihdvbv7bhr5zu4lt.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%2Fm6b3ihdvbv7bhr5zu4lt.PNG" alt=" " width="800" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Writing Your First Spec&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now comes the most important moment of today, writing your first spec.&lt;/p&gt;

&lt;p&gt;Instead of starting with code, you describe your application in natural language. For example, you might say:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A simple to-do app where users can add tasks, delete them, mark them as completed, and store data locally.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is where Kiro’s approach becomes different. You are no longer telling the system how to build something, you are telling it what you want.&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%2Fd8154ja2gstbqa7bp5g0.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%2Fd8154ja2gstbqa7bp5g0.PNG" alt=" " width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Happens After You Submit the Spec&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you submit the spec, Kiro starts working in the background. It breaks your idea into structured features, understands the requirements, and begins shaping a technical plan.&lt;/p&gt;

&lt;p&gt;Then it generates the base structure of your application — including files, logic, and initial implementation. Instead of you manually building everything step-by-step, Kiro builds the foundation for you.&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%2F8bfgulrfpxykswbfqw4j.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%2F8bfgulrfpxykswbfqw4j.PNG" alt=" " width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Running Your First App&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After everything is generated, you simply run the project and see it come to life. You now have a working application built directly from a simple idea written in plain language. It might be basic, but the important part is not complexity, it’s the workflow that got you there.&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%2Fxpvcv40oy389g5smy1xt.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%2Fxpvcv40oy389g5smy1xt.PNG" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The biggest shift Kiro introduces is not just faster development, it’s a completely different mindset. Instead of starting with syntax, you start with intent. Instead of building everything manually, you guide the system through structured thinking. That is the foundation of spec-driven development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s Next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Day 3&lt;/strong&gt;, we’ll go deeper into the core idea behind everything we did today:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What exactly is a “spec”, and why is it becoming the new foundation of software development?&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>What is Kiro? The Beginning of Spec-Driven Development</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Tue, 12 May 2026 10:27:53 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/what-is-kiro-the-beginning-of-spec-driven-development-4ohb</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/what-is-kiro-the-beginning-of-spec-driven-development-4ohb</guid>
      <description>&lt;p&gt;For many years, software development has followed a familiar pattern: think of an idea, start coding, fix bugs along the way, and refactor when things break.&lt;/p&gt;

&lt;p&gt;Then AI tools like Copilot and ChatGPT changed the game by making coding faster. But they also introduced a new problem, speed increased, but structure often decreased.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;Kiro&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Kiro?&lt;/strong&gt; &lt;br&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%2Fupx7726czj9areu5j90j.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%2Fupx7726czj9areu5j90j.png" alt=" " width="225" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro is an AI-native development environment built around a powerful idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Spec-Driven Development&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of jumping directly into code, Kiro encourages developers to start with clear specifications, structured planning, and AI-assisted breakdown of requirements before writing a single line of code.&lt;/p&gt;

&lt;p&gt;In simple terms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiro doesn’t just help you write code&lt;/li&gt;
&lt;li&gt;It helps you define what you are actually building&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Problem Kiro is Solving&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modern development has shifted into a new era but not without challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Vibe Coding Overload&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Developers often rely on intuition:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“just make it work”&lt;/li&gt;
&lt;li&gt;“fix this error quickly”&lt;/li&gt;
&lt;li&gt;“add this feature fast”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s fast but not always scalable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. AI Code Generation Without Structure&lt;/strong&gt;&lt;br&gt;
AI tools can generate working code instantly, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture becomes unclear&lt;/li&gt;
&lt;li&gt;requirements drift over time&lt;/li&gt;
&lt;li&gt;debugging becomes harder&lt;/li&gt;
&lt;li&gt;systems become inconsistent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result? Fast development, but fragile systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro’s Approach: Spec-Driven Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the game changerKiro introduces a structured workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instead of:&lt;/strong&gt; Code → Fix → Refactor&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You move to:&lt;/strong&gt; Spec → Design → Generate → Refine&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%2Fwqzexzi6p872q181at5f.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%2Fwqzexzi6p872q181at5f.png" alt=" " width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This means:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;_- You define requirements clearly first&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI breaks them into structured components&lt;/li&gt;
&lt;li&gt;Code becomes the output, not the starting point_&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 shift is important because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Software systems are getting more complex&lt;/li&gt;
&lt;li&gt;AI is generating more code than ever&lt;/li&gt;
&lt;li&gt;Developers need structure, not just speed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What This Series Will Cover&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is Day 1 of a 10-part journey into Kiro.&lt;/p&gt;

&lt;p&gt;In the upcoming posts, we will explore:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How to install and start using Kiro&lt;/li&gt;
&lt;li&gt;How spec-driven development actually works in practice&lt;/li&gt;
&lt;li&gt;Building real-world projects step by step&lt;/li&gt;
&lt;li&gt;Comparing Kiro with tools like Cursor and Copilot&lt;/li&gt;
&lt;li&gt;How it fits into the future of AI-driven engineering&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Kiro is not just another AI coding tool.&lt;/p&gt;

&lt;p&gt;It represents a shift in how we think about software development:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From “writing code faster”&lt;br&gt;
To “building software more intelligently”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And that shift is what this series is all about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next: Day 2 → Getting Started with Kiro (Installation + First Project)&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What is Kiro? The Beginning of Spec-Driven Development</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Tue, 12 May 2026 10:27:53 +0000</pubDate>
      <link>https://dev.to/abdullah_haroon_092cf10d3/what-is-kiro-the-beginning-of-spec-driven-development-3io9</link>
      <guid>https://dev.to/abdullah_haroon_092cf10d3/what-is-kiro-the-beginning-of-spec-driven-development-3io9</guid>
      <description>&lt;p&gt;For many years, software development has followed a familiar pattern: think of an idea, start coding, fix bugs along the way, and refactor when things break.&lt;/p&gt;

&lt;p&gt;Then AI tools like Copilot and ChatGPT changed the game by making coding faster. But they also introduced a new problem, speed increased, but structure often decreased.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;Kiro&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Kiro?&lt;/strong&gt; &lt;br&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%2Fupx7726czj9areu5j90j.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%2Fupx7726czj9areu5j90j.png" alt=" " width="225" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro is an AI-native development environment built around a powerful idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Spec-Driven Development&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of jumping directly into code, Kiro encourages developers to start with clear specifications, structured planning, and AI-assisted breakdown of requirements before writing a single line of code.&lt;/p&gt;

&lt;p&gt;In simple terms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiro doesn’t just help you write code&lt;/li&gt;
&lt;li&gt;It helps you define what you are actually building&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Problem Kiro is Solving&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modern development has shifted into a new era but not without challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Vibe Coding Overload&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Developers often rely on intuition:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“just make it work”&lt;/li&gt;
&lt;li&gt;“fix this error quickly”&lt;/li&gt;
&lt;li&gt;“add this feature fast”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s fast but not always scalable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. AI Code Generation Without Structure&lt;/strong&gt;&lt;br&gt;
AI tools can generate working code instantly, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture becomes unclear&lt;/li&gt;
&lt;li&gt;requirements drift over time&lt;/li&gt;
&lt;li&gt;debugging becomes harder&lt;/li&gt;
&lt;li&gt;systems become inconsistent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result? Fast development, but fragile systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro’s Approach: Spec-Driven Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the game changerKiro introduces a structured workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instead of:&lt;/strong&gt; Code → Fix → Refactor&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You move to:&lt;/strong&gt; Spec → Design → Generate → Refine&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%2Fwqzexzi6p872q181at5f.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%2Fwqzexzi6p872q181at5f.png" alt=" " width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This means:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;_- You define requirements clearly first&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI breaks them into structured components&lt;/li&gt;
&lt;li&gt;Code becomes the output, not the starting point_&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 shift is important because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Software systems are getting more complex&lt;/li&gt;
&lt;li&gt;AI is generating more code than ever&lt;/li&gt;
&lt;li&gt;Developers need structure, not just speed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What This Series Will Cover&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is Day 1 of a 10-part journey into Kiro.&lt;/p&gt;

&lt;p&gt;In the upcoming posts, we will explore:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How to install and start using Kiro&lt;/li&gt;
&lt;li&gt;How spec-driven development actually works in practice&lt;/li&gt;
&lt;li&gt;Building real-world projects step by step&lt;/li&gt;
&lt;li&gt;Comparing Kiro with tools like Cursor and Copilot&lt;/li&gt;
&lt;li&gt;How it fits into the future of AI-driven engineering&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Kiro is not just another AI coding tool.&lt;/p&gt;

&lt;p&gt;It represents a shift in how we think about software development:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From “writing code faster”&lt;br&gt;
To “building software more intelligently”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And that shift is what this series is all about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next: Day 2 → Getting Started with Kiro (Installation + First Project)&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
