<?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>Forem: dineshrajdhanapathyDD</title>
    <description>The latest articles on Forem by dineshrajdhanapathyDD (@dineshrajdhanapathydd).</description>
    <link>https://forem.com/dineshrajdhanapathydd</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F923872%2F4665e15f-f4b8-42ad-ad0e-8ebaaad0083a.JPG</url>
      <title>Forem: dineshrajdhanapathyDD</title>
      <link>https://forem.com/dineshrajdhanapathydd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dineshrajdhanapathydd"/>
    <language>en</language>
    <item>
      <title>Building an Agentic AI Weather Assistant Using Amazon Bedrock</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Mon, 02 Mar 2026 13:40:36 +0000</pubDate>
      <link>https://forem.com/aws-builders/building-an-agentic-ai-weather-assistant-using-amazon-bedrock-5a15</link>
      <guid>https://forem.com/aws-builders/building-an-agentic-ai-weather-assistant-using-amazon-bedrock-5a15</guid>
      <description>&lt;p&gt;Agentic AI weather assistant built with Amazon Bedrock that plans API calls, fetches real-time weather data, and delivers human-readable forecasts&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%2Fqa80ol285o7e78samjbi.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%2Fqa80ol285o7e78samjbi.png" alt="1" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the evolving landscape of artificial intelligence, the shift from traditional “smart encyclopedias” to &lt;strong&gt;Agentic AI&lt;/strong&gt; represents a significant leap in capability. While traditional AI systems provide static responses based on training data, agentic systems are designed to &lt;strong&gt;think, plan, and act&lt;/strong&gt; to solve complex problems. This article explores the core building blocks of Agentic AI, using a hands-on weather assistant project built with &lt;strong&gt;Amazon Bedrock&lt;/strong&gt; and Python as a primary example.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Agentic AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agentic AI moves beyond the “Question → Answer” model toward a &lt;strong&gt;“Problem → Plan → Action → Result”&lt;/strong&gt; workflow. According to the sources, true agentic systems are defined by three key characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Autonomy:&lt;/strong&gt; The ability to make independent decisions, such as choosing appropriate tools or interpreting location descriptions without constant human guidance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reactivity:&lt;/strong&gt; The capacity to respond to environmental changes, handle errors, and adjust strategies based on real-time results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proactivity:&lt;/strong&gt; Taking the initiative to achieve goals through multi-step planning and anticipating user needs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Architecture of an AI Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A functional AI agent requires a “brain” for reasoning and “hands” to interact with the world. The sources outline a four-step process for a weather-focused agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;User Input:&lt;/strong&gt; The user provides a location in any format (e.g., ZIP code, city name, or coordinates).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Planning:&lt;/strong&gt; Using a model like &lt;strong&gt;Claude 4.5 Sonnet&lt;/strong&gt; , the agent analyzes the input and determines the necessary coordinates and API endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Action (API Calls):&lt;/strong&gt; The agent executes the plan. For weather data, this involves a two-step process: first calling the &lt;strong&gt;NWS Points API&lt;/strong&gt; to find the correct forecast office, then calling the &lt;strong&gt;Forecast API&lt;/strong&gt; for the actual data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Summary:&lt;/strong&gt; The agent processes technical JSON data into a human-friendly, readable summary&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Why Amazon Bedrock?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Bedrock&lt;/strong&gt; serves as a foundation for these systems by providing access to high-performing models like Claude, which excels at complex reasoning and structured data processing. Bedrock offers &lt;strong&gt;managed infrastructure&lt;/strong&gt; and &lt;strong&gt;enterprise-grade security&lt;/strong&gt; , allowing developers to build agents that are both scalable and cost-effective.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-World Impact and Future Steps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The patterns used to build a weather assistant are highly transferable to other industries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Travel and Logistics:&lt;/strong&gt; Agents can check weather, monitor traffic, and automatically adjust itineraries or routes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agriculture:&lt;/strong&gt; Monitoring environmental conditions to recommend specific farming actions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Emergency Management:&lt;/strong&gt; Tracking severe weather to coordinate rapid responses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business Operations:&lt;/strong&gt; Automating market analysis, customer support, and risk assessment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Development and Implementation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building an agent can be approached through different interfaces depending on the end-user:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command-Line Interface (CLI):&lt;/strong&gt; Ideal for developers and automation, focusing on direct interaction and raw workflow steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web Application:&lt;/strong&gt; Using tools like Streamlit, developers can create interactive experiences that visualize the agent’s “thinking” phases, such as planning, execution, and analysis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The sources emphasize that building from scratch using pure Python and the AWS SDK (boto3) without complex framework abstractions allows developers to truly understand the “aha moment” of how an AI agent functions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Environment Setup
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🏠 Your Own AWS Account
&lt;/h3&gt;

&lt;p&gt;To set up the development environment for the weather agent in your &lt;strong&gt;own AWS account&lt;/strong&gt; , you will need to follow a series of steps to configure your local machine and AWS permissions. This process typically takes about &lt;strong&gt;12 minutes&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;Before starting, ensure you have the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.7+&lt;/strong&gt; installed locally.&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;AWS account&lt;/strong&gt; with appropriate administrative or developer permissions.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;AWS CLI&lt;/strong&gt; installed on your machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Development Environment and Python&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You should use a code editor that supports Python syntax, such as &lt;strong&gt;Visual Studio Code&lt;/strong&gt; or &lt;strong&gt;PyCharm&lt;/strong&gt;. Once your editor is ready, verify your Python installation in the terminal using python --version. On macOS, you may specifically need to use python3 and pip3.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: AWS Credential Configuration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You must provide your agent with access to AWS services using one of two methods&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS CLI (Recommended):&lt;/strong&gt; Run aws configure In your terminal, enter your &lt;strong&gt;Access Key ID, Secret Access Key&lt;/strong&gt; , and set the default region to us-west-2.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Environment Variables:&lt;/strong&gt; Manually export AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_DEFAULT_REGION in your terminal session.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Enable Claude 4.5 Sonnet in Amazon Bedrock&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a &lt;strong&gt;critical step&lt;/strong&gt; ; without it, your agent will not function.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log into the &lt;strong&gt;Amazon Bedrock console&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ensure you are in the &lt;strong&gt;us-west-2 (Oregon)&lt;/strong&gt; region.&lt;/li&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Model Access&lt;/strong&gt; and request access for &lt;strong&gt;Claude 4.5 Sonnet&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ensure your IAM user has the permissions bedrock:InvokeModel, bedrock:Converse, and bedrock:ListFoundationModels&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Project Setup and Dependencies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a dedicated workspace for your agent and set up a virtual environment to manage packages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create a directory:&lt;/strong&gt; mkdir agentic-ai-workshop &amp;amp;&amp;amp; cd agentic-ai-workshop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Initialize a Virtual Environment:&lt;/strong&gt; Run python -m venv .venv and activate it. You should see (.venv) it in your terminal prompt once active.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Install Packages:&lt;/strong&gt; Create a requirements.txt file (or install directly) containing the necessary libraries like &lt;strong&gt;boto3&lt;/strong&gt; , &lt;strong&gt;requests&lt;/strong&gt; , and &lt;strong&gt;streamlit&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Verification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To confirm everything is configured correctly, run aws sts get-caller-identity it in your terminal. This should return your AWS account details without errors. Once verified, you are ready to begin building the agent logic using &lt;strong&gt;boto3&lt;/strong&gt; to interface with the model python -c "import boto3, streamlit, requests; print('✅ All packages installed')"&lt;/p&gt;

&lt;h3&gt;
  
  
  Troubleshooting Common Issues
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;“AWS credentials not found”&lt;/strong&gt; : Run aws configure to enter your credentials or set the required environment variables manually.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;“Model access denied”&lt;/strong&gt; : You must specifically request access for &lt;strong&gt;Claude 4.5 Sonnet&lt;/strong&gt; in the Amazon Bedrock console and ensure you are working in the &lt;strong&gt;us-west-2 (Oregon)&lt;/strong&gt; region.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;“Permission denied” errors&lt;/strong&gt; : Verify that your IAM user has the minimum required permissions: bedrock:InvokeModel, bedrock:Converse, and bedrock:ListFoundationModels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;“Python command not found”&lt;/strong&gt; : Ensure Python is installed and added to your system PATH; on some systems, you may need to use python3 and pip3 instead of python and pip.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Virtual environment issues&lt;/strong&gt; : If you encounter execution errors, ensure your virtual environment is active (indicated by (.venv) in your terminal prompt).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Package installation fails&lt;/strong&gt; : Try re-running the installation command for your dependencies in the terminal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Invalid or international locations&lt;/strong&gt; : The National Weather Service API used by the agent &lt;strong&gt;only covers US locations&lt;/strong&gt; ; international cities or misspellings may result in failed data retrieval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network and connectivity issues&lt;/strong&gt; : The agent may encounter timeouts or connection problems, which require robust error handling or retry logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data processing errors&lt;/strong&gt; : The agent must be able to handle unexpected, incomplete, or inconsistent JSON data returned from the weather APIs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Understanding Our Agent Architecture
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How the National Weather Service APIs Work&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The National Weather Service (NWS) provides free weather data through a mandatory &lt;strong&gt;two-step API process&lt;/strong&gt; because the US is divided into a grid system where different forecast offices cover specific squares.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Points API&lt;/strong&gt; : This is the first step (&lt;a href="https://api.weather.gov/points/%7Blat%7D,%7Blon%7D" rel="noopener noreferrer"&gt;https://api.weather.gov/points/{lat},{lon}&lt;/a&gt;). It takes latitude and longitude coordinates as input and identifies which NWS forecast office covers that specific location, along with the necessary grid coordinates. For example, coordinates for Seattle map to the "SEW" office at grid 124,67.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forecast API&lt;/strong&gt; : This is the second step (&lt;a href="https://api.weather.gov/gridpoints/%7Boffice%7D/%7BgridX%7D,%7BgridY%7D/forecast" rel="noopener noreferrer"&gt;https://api.weather.gov/gridpoints/{office}/{gridX},{gridY}/forecast&lt;/a&gt;). It uses the specific office and grid data obtained from the Points API to retrieve the detailed weather forecast in a technical JSON format.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How Our Weather Agent Works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The weather assistant functions as a &lt;strong&gt;reasoning engine&lt;/strong&gt; that follows a linear path: &lt;strong&gt;User Input → AI Planning → API Calls → AI Summary → Response&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%2Fcdn-images-1.medium.com%2Fmax%2F827%2F0%2Axh30YKIsiKSbM0SW" 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%2Fcdn-images-1.medium.com%2Fmax%2F827%2F0%2Axh30YKIsiKSbM0SW" alt="2" width="827" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of hardcoding every possible location, the agent uses Claude 4.5 Sonnet to dynamically figure out what coordinates and API calls are needed based on what the user types.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding the Flow.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The flow of the agent is designed to bridge the gap between human language and technical data:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Analyze&lt;/strong&gt; : The AI (Claude) interprets the user’s location description.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Determine&lt;/strong&gt; : It identifies the required coordinates and API endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execute&lt;/strong&gt; : Two sequential API calls are made — first to get the office info, then the weather data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Translate&lt;/strong&gt; : The AI processes the resulting raw data into a friendly summary for the user.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The 4 Steps in Detail&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: User Input&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📝The agent is designed to be highly flexible, accepting various location formats without requiring a specific structure. Users can enter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;City names&lt;/strong&gt; (e.g., “Seattle” or “Seattle, WA”).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ZIP codes&lt;/strong&gt; (e.g., “90210”).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Informal descriptions&lt;/strong&gt; (e.g., “downtown Portland”).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coordinates&lt;/strong&gt; (e.g., “47.6062, -122.3321”).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 2: AI Planning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🧠In this phase, Claude 4.5 Sonnet acts as the “brain.” It analyzes the input to create a technical strategy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It &lt;strong&gt;determines the precise coordinates&lt;/strong&gt; for the user’s location.&lt;/li&gt;
&lt;li&gt;It &lt;strong&gt;identifies the correct NWS API endpoints&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;It &lt;strong&gt;plans the sequence of calls&lt;/strong&gt; (knowing it must hit the Points API before the Forecast API).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 3: API Calls&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🔗The agent executes the plan by making two distinct requests:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Points API Call&lt;/strong&gt; : It sends the coordinates to get the forecast office and grid info.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forecast API Call&lt;/strong&gt; : It uses the URL returned by the first call to fetch the actual, detailed weather data.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 4: AI Summary&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📊The final step involves converting the &lt;strong&gt;raw JSON data&lt;/strong&gt; (which is complex and technical) into a &lt;strong&gt;human-friendly format&lt;/strong&gt;. Claude filters through the technical details to provide a natural response, such as: &lt;em&gt;“Today: Partly cloudy with a high of 72°F. Wind: West at 5–10 mph”&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Building the Command-Line Agent
&lt;/h3&gt;

&lt;p&gt;Constructing a command-line interface (CLI) agent allows you to experience the “aha moment” of agentic AI by building every component from scratch. This approach is ideal for developers because it provides a &lt;strong&gt;direct, focused interaction&lt;/strong&gt; and clearly displays the raw workflow steps&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Establishing the Amazon Bedrock Connection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The foundation of the agent is its connection to the “brain” &lt;strong&gt;Claude 4.5 Sonnet&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Implementation:&lt;/strong&gt; Create a file named weather_agent_cli.py within your agentic-ai-workshop directory
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Import necessary libraries
import boto3 # AWS SDK for Python - allows us to interact with AWS services
import json # For handling JSON data
import subprocess # For running system commands like curl
import time # For adding delays and timing operations
from datetime import datetime # For timestamps and date operations

def call_claude_sonnet(prompt):
    """
    This function sends a prompt to Claude 4.5 Sonnet and gets a response.
    This is the "brain" of our agent - where the AI thinking happens.

    Args:
        prompt (str): The question or instruction we want to send to Claude

    Returns:
        tuple: (success: bool, response: str) - success status and Claude's response or error message
    """
    # Create a connection to Amazon Bedrock service
    # Bedrock is AWS's service for accessing AI models like Claude
    bedrock = boto3.client(
        service_name='bedrock-runtime', # Specify we want the runtime version for making AI calls
        region_name='us-west-2' # AWS region - using us-west-2 as specified
    )

    try:
        # Send our prompt to Claude and get a response
        response = bedrock.converse(
            # Specify which version of Claude we want to use
            modelId='us.anthropic.claude-sonnet-4-5-20250929-v1:0', # Claude 4.5 Sonnet

            # Format our message - Claude expects messages in a specific structure
            messages=[
                {
                    "role": "user", # We are the user asking a question
                    "content": [{"text": prompt}] # Our actual question/prompt
                }
            ],

            # Configure how Claude should respond
            inferenceConfig={
                "maxTokens": 2000, # Maximum length of response (tokens ≈ words)
                "temperature": 0.7 # Creativity level (0=very focused, 1=very creative)
            }
        )

        # Extract the actual text response from Claude's response structure
        # The response comes nested in a complex structure, so we dig down to get the text
        return True, response['output']['message']['content'][0]['text']

    except Exception as e:
        # If something goes wrong, return an error message
        return False, f"Error calling Claude: {str(e)}"

def execute_curl_command(url):
    """
    Execute a curl command to fetch data from an API.
    This is how our agent "acts" in the real world - making HTTP requests.

    Args:
        url (str): The URL to fetch data from

    Returns:
        tuple: (success: bool, response: str) - success status and API response or error message
    """
    try:
        # Use curl command to make HTTP request
        # curl is a command-line tool for making HTTP requests
        result = subprocess.run(
            ['curl', '-s', url], # -s flag makes curl silent (no progress info)
            capture_output=True, # Capture the output so we can process it
            text=True, # Return output as text (not bytes)
            timeout=30 # Give up after 30 seconds
        )

        # Check if the command was successful
        if result.returncode == 0:
            return True, result.stdout
        else:
            return False, f"Curl command failed: {result.stderr}"

    except subprocess.TimeoutExpired:
        return False, "Request timed out after 30 seconds"
    except Exception as e:
        return False, f"Error executing curl: {str(e)}"

def generate_weather_api_calls(location):
    """
    Use Claude to intelligently generate National Weather Service API calls for a given location.
    This is where the "agentic" magic happens - AI generating the API call URL.

    Args:
        location (str): The location provided by the user

    Returns:
        tuple: (success: bool, api_calls: list) - success status and list of API URLs or error message
    """
    # Create a detailed prompt that teaches Claude how to generate NWS API calls
    prompt = f"""
You are an expert at working with the National Weather Service (NWS) API.

Your task: Generate the NWS API URL to get weather forecast data for "{location}".

Instructions:
1. First, determine the approximate latitude and longitude coordinates for this location
2. Generate the NWS Points API URL: https://api.weather.gov/points/{{lat}},{{lon}}

For the coordinates, use your knowledge to estimate:
- Major cities: Use well-known coordinates
- ZIP codes: Estimate based on the area
- States: Use approximate center coordinates
- In case a location description is provided instead of a location name, please use the most likely city and state name as the location for the coordinates

Example for Seattle:
https://api.weather.gov/points/47.6062,-122.3321

Example for largest city in USA:
Based on your knowledge, you will establish location is New York City
https://api.weather.gov/points/40.7128,-74.0060

Now generate the API call (Points API) for the established location. 
Return ONLY the complete Points API URL, nothing else.
Format: https://api.weather.gov/points/LAT,LON
"""

    print(f"🧠 AI is analyzing '{location}' and generating weather API calls...")
    success, response = call_claude_sonnet(prompt)

    if success:
        # Clean up the response - sometimes Claude adds extra text
        api_url = response.strip()
        # Make sure we got a valid URL
        if api_url.startswith('https://api.weather.gov/points/'):
            return True, [api_url] # Return as list for consistency
        else:
            return False, f"AI generated invalid URL: {api_url}"
    else:
        return False, response

def get_forecast_url_from_points_response(points_json):
    """
    Extract the forecast URL from the NWS Points API response.

    Args:
        points_json (str): JSON response from the Points API

    Returns:
        tuple: (success: bool, forecast_url: str) - success status and forecast URL or error message
    """
    try:
        data = json.loads(points_json)
        forecast_url = data['properties']['forecast']
        return True, forecast_url
    except (json.JSONDecodeError, KeyError) as e:
        return False, f"Error parsing Points API response: {str(e)}"

def process_weather_response(raw_json, location):
    """
    Use Claude to convert raw NWS API JSON into a human-readable weather summary.
    This is where AI processes complex data into useful information.

    Args:
        raw_json (str): Raw JSON response from NWS API
        location (str): Original location for context

    Returns:
        tuple: (success: bool, summary: str) - success status and processed summary or error message
    """
    prompt = f"""
You are a weather information specialist. I have raw National Weather Service forecast data for "{location}" that needs to be converted into a clear, helpful summary for a general audience.

Raw NWS API Response:
{raw_json}

Please create a weather summary that includes:
1. A brief introduction with the location
2. Current conditions and today's forecast
3. The next 2-3 days outlook with key details (temperature, precipitation, wind)
4. Any notable weather patterns or alerts
5. Format the response to be easy to read and understand

Make it informative and practical for someone planning their activities. Focus on being helpful and clear.
"""

    print(f"📊 AI is processing weather data and creating summary...")
    success, response = call_claude_sonnet(prompt)

    return success, response

def run_weather_agent():
    """
    Main function that orchestrates our AI agent.
    This demonstrates the complete agentic workflow.
    """
    print("🌤️ Welcome to the Weather AI Agent!")
    print("This agent uses Claude 4.5 Sonnet to help you get weather forecasts.")
    print("=" * 60)

    while True:
        # Get user input
        location = input("\n🔍 Enter a location name or description (or 'quit' to exit): ").strip()

        if location.lower() in ['quit', 'exit', 'q']:
            print("👋 Thanks for using the Weather Agent!")
            break

        if not location:
            print("❌ Please enter a location name or description.")
            continue

        print(f"\n🚀 Starting weather analysis for '{location}'...")
        print("-" * 40)

        # Step 1: AI generates the Points API URL
        print("Step 1: 🧠 AI Planning Phase")
        success, api_calls = generate_weather_api_calls(location)

        if not success:
            print(f"❌ Failed to generate API calls: {api_calls}")
            continue

        points_url = api_calls[0]
        print(f"✅ Generated Points API URL: {points_url}")

        # Step 2: Execute the Points API call
        print("\nStep 2: 🔗 Points API Execution")
        print("Fetching location data from National Weather Service...")
        success, points_response = execute_curl_command(points_url)

        if not success:
            print(f"❌ Failed to fetch points data: {points_response}")
            continue

        print(f"✅ Received points data")

        # Step 3: Extract forecast URL from Points response
        print("\nStep 3: 📍 Extracting Forecast URL")
        success, forecast_url = get_forecast_url_from_points_response(points_response)

        if not success:
            print(f"❌ Failed to extract forecast URL: {forecast_url}")
            continue

        print(f"✅ Forecast URL: {forecast_url[:60]}...")

        # Step 4: Execute the Forecast API call
        print("\nStep 4: 🌦️ Forecast API Execution")
        print("Fetching weather forecast data...")
        success, forecast_response = execute_curl_command(forecast_url)

        if not success:
            print(f"❌ Failed to fetch forecast data: {forecast_response}")
            continue

        print(f"✅ Received {len(forecast_response)} characters of forecast data")

        # Step 5: AI processes the response
        print("\nStep 5: 📊 AI Analysis Phase")
        success, summary = process_weather_response(forecast_response, location)

        if not success:
            print(f"❌ Failed to process data: {summary}")
            continue

        # Step 6: Display results
        print("\nStep 6: 💬 Weather Forecast")
        print("=" * 60)
        print(summary)
        print("=" * 60)

        print(f"\n✅ Weather analysis complete for '{location}'!")

# Run the agent when the script is executed
if __name__ == " __main__":
    run_weather_agent()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Key Components&lt;/strong&gt; : The code establishes a &lt;strong&gt;Bedrock Client&lt;/strong&gt; in the us-west-2 region and structures prompts in the specific message format Claude expects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuration&lt;/strong&gt; : You must set inference parameters to control the agent’s &lt;strong&gt;response length and creativity&lt;/strong&gt; , while implementing error handling to catch connection issues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Developing the Agent’s Logic&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An agent needs both “hands” to act and a “brain” to plan. This is achieved through four primary functions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;execute_curl_command():&lt;/strong&gt; Functions as the agent’s &lt;strong&gt;hands&lt;/strong&gt; , executing the actual HTTP requests to external APIs&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AdxYyWel7YXbWt9VV" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AdxYyWel7YXbWt9VV" alt="3" width="1000" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;generate_weather_api_calls():&lt;/strong&gt; Acts as the &lt;strong&gt;planning&lt;/strong&gt;  &lt;strong&gt;brain&lt;/strong&gt; , determining the correct coordinates and API endpoints based on user input&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AO1uhjIMwuuDqvV3Y" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AO1uhjIMwuuDqvV3Y" alt="4" width="1000" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;get_forecast_url_from_points_response():&lt;/strong&gt; A utility function to extract the specific forecast URL from the National Weather Service (NWS) JSON response&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2ACSJsBeBh9U0fqGSD" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2ACSJsBeBh9U0fqGSD" alt="5" width="1000" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;process_weather_response():&lt;/strong&gt; Serves as the &lt;strong&gt;analysis brain&lt;/strong&gt; , translating complex technical data into human-readable insights&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2Akkr3BkGwSnNrPR9W" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2Akkr3BkGwSnNrPR9W" alt="6" width="1000" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Executing the Main Workflow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent follows a circular pattern that defines the &lt;strong&gt;Agentic AI Workflow&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AWN51dpypcW80B76x" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AWN51dpypcW80B76x" alt="7" width="1000" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Planning&lt;/strong&gt; : The AI analyzes the location (e.g., “Seattle” or “90210”) and maps out the necessary API strategy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Action&lt;/strong&gt; : The agent executes the planned sequence, calling the &lt;strong&gt;Points API&lt;/strong&gt; first to get office data, followed by the &lt;strong&gt;Forecast API&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Processing&lt;/strong&gt; : Claude analyzes the raw, multi-period JSON weather data to identify the most relevant information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response&lt;/strong&gt; : The final summary is presented to the user in a friendly format, such as: &lt;em&gt;“Today: Partly cloudy with a high of 72°F”&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F684%2F0%2AfszadDpkgvz7Ks0C" 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%2Fcdn-images-1.medium.com%2Fmax%2F684%2F0%2AfszadDpkgvz7Ks0C" alt="8" width="684" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing and Validation&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Once your script is complete, you can run it from your terminal using python weather_agent_cli.py To see the agent's &lt;strong&gt;autonomy and flexibility&lt;/strong&gt; in action,&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AOX1xNApcvasbUFrj" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AOX1xNApcvasbUFrj" alt="9" width="1000" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AjvpG8UjNgCsIw8KG" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AjvpG8UjNgCsIw8KG" alt="10" width="1000" height="456"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Running the Web Application
&lt;/h3&gt;

&lt;p&gt;To run the web application for your weather agent, you will use &lt;strong&gt;Streamlit&lt;/strong&gt; , a Python library that transforms the agentic logic into an interactive, visual experience. While the web version uses the &lt;strong&gt;identical agentic AI logic&lt;/strong&gt; as the command-line version, it provides a professional presentation with real-time progress indicators.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Launching the Application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Inside your agentic-ai-workshop folder, ensure you have created the weather_agent_web.py file with the complete code provided in the workshop.&lt;/p&gt;

&lt;p&gt;Copy this complete code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import streamlit as st
import boto3
import subprocess
import json
import time
from datetime import datetime
from PIL import Image
import os

# Page configuration
st.set_page_config(
    page_title="Weather AI Agent",
    page_icon="🌤️",
    layout="wide",
    initial_sidebar_state="expanded"
)

# Custom CSS for better styling
st.markdown("""
&amp;lt;style&amp;gt;
    .step-container {
        border: 2px solid #e0e0e0;
        border-radius: 10px;
        padding: 20px;
        margin: 10px 0;
        background-color: #f9f9f9;
    }
    .step-header {
        font-size: 18px;
        font-weight: bold;
        color: #1f77b4;
        margin-bottom: 10px;
    }
    .success-box {
        border-left: 5px solid #28a745;
        background-color: #d4edda;
        padding: 10px;
        margin: 10px 0;
        color: #000000;
    }
    .error-box {
        border-left: 5px solid #dc3545;
        background-color: #f8d7da;
        padding: 10px;
        margin: 10px 0;
        color: #000000;
    }
    .info-box {
        border-left: 5px solid #17a2b8;
        background-color: #d1ecf1;
        padding: 10px;
        margin: 10px 0;
        color: #000000;
    }
&amp;lt;/style&amp;gt;
""", unsafe_allow_html=True)

def call_claude_sonnet(prompt):
    """
    Connect to Claude 4.5 Sonnet via Amazon Bedrock
    """
    bedrock = boto3.client(
        service_name='bedrock-runtime',
        region_name='us-west-2'
    )

    try:
        response = bedrock.converse(
            modelId='us.anthropic.claude-sonnet-4-5-20250929-v1:0',
            messages=[
                {
                    "role": "user",
                    "content": [{"text": prompt}]
                }
            ],
            inferenceConfig={
                "maxTokens": 2000,
                "temperature": 0.7
            }
        )

        return True, response['output']['message']['content'][0]['text']

    except Exception as e:
        return False, f"Error calling Claude: {str(e)}"

def execute_curl_command(url):
    """
    Execute curl command to fetch API data
    """
    try:
        result = subprocess.run(
            ['curl', '-s', url],
            capture_output=True,
            text=True,
            timeout=30
        )

        if result.returncode == 0:
            return True, result.stdout
        else:
            return False, f"Curl command failed: {result.stderr}"

    except subprocess.TimeoutExpired:
        return False, "Request timed out after 30 seconds"
    except Exception as e:
        return False, f"Error executing curl: {str(e)}"

def generate_weather_api_calls(location):
    """
    Use Claude to generate NWS API calls
    """
    prompt = f"""
You are an expert at working with the National Weather Service (NWS) API.

Your task: Generate the NWS API URL to get weather forecast data for "{location}".

Instructions:
1. First, determine the approximate latitude and longitude coordinates for this location
2. Generate the NWS Points API URL: https://api.weather.gov/points/{{lat}},{{lon}}

For the coordinates, use your knowledge to estimate:
- Major cities: Use well-known coordinates
- ZIP codes: Estimate based on the area
- States: Use approximate center coordinates
- In case a location description is provided instead of a location name, please use the most likely city and state name as the location for the coordinates

Example for Seattle:
https://api.weather.gov/points/47.6062,-122.3321

Example for largest city in USA:
Based on your knowledge, you will establish location is New York City
https://api.weather.gov/points/40.7128,-74.0060

Now generate the API call (Points API) for the established location. 
Return ONLY the complete Points API URL, nothing else.
Format: https://api.weather.gov/points/LAT,LON
"""

    success, response = call_claude_sonnet(prompt)

    if success:
        api_url = response.strip()
        if api_url.startswith('https://api.weather.gov/points/'):
            return True, [api_url]
        else:
            return False, f"AI generated invalid URL: {api_url}"
    else:
        return False, response

def get_forecast_url_from_points_response(points_json):
    """
    Extract forecast URL from Points API response
    """
    try:
        data = json.loads(points_json)
        forecast_url = data['properties']['forecast']
        return True, forecast_url
    except (json.JSONDecodeError, KeyError) as e:
        return False, f"Error parsing Points API response: {str(e)}"

def process_weather_response(raw_json, location):
    """
    Use Claude to process NWS API response
    """
    prompt = f"""
You are a weather information specialist. I have raw National Weather Service forecast data for "{location}" that needs to be converted into a clear, helpful summary for a general audience.

Raw NWS API Response:
{raw_json}

Please create a weather summary that includes:
1. A brief introduction with the location
2. Current conditions and today's forecast
3. The next 2-3 days outlook with key details (temperature, precipitation, wind)
4. Any notable weather patterns or alerts
5. Format the response to be easy to read and understand

Make it informative and practical for someone planning their activities. Focus on being helpful and clear.
"""

    success, response = call_claude_sonnet(prompt)
    return success, response

# Sidebar with information
st.sidebar.title("🤖 About This Agent")
st.sidebar.markdown("""
This AI agent demonstrates **Agentic AI** principles:

**🧠 Intelligence** : Uses Claude 4.5 Sonnet to understand locations and plan API calls

**🔗 Action** : Automatically calls the National Weather Service API

**📊 Processing** : Converts complex weather data into readable forecasts

**💬 Response** : Provides helpful, practical weather information
""")

st.sidebar.markdown("---")
st.sidebar.markdown("### 🏗️ Architecture")
st.sidebar.markdown("""
1. **User Input** → Location name
2. **AI Planning** → Generate API calls
3. **Points API** → Get forecast office  
4. **Forecast API** → Get weather data
5. **AI Processing** → Create summary
6. **Display Results** → Show to user
""")

# Main application
st.title("🌤️ Weather AI Agent")
st.markdown("### Powered by Claude 4.5 Sonnet on Amazon Bedrock")

st.markdown("""
This intelligent agent helps you get weather forecasts using the National Weather Service API. 
Enter any location below and watch the AI agent work through its reasoning process!
""")

# Initialize session state for results
if 'show_results' not in st.session_state:
    st.session_state.show_results = False

# Input section
st.markdown("---")
location = st.text_input(
    "🔍 Enter a location name or description:",
    placeholder="e.g., Seattle, 90210, New York City, National park near Homestead in Florida",
    help="You can enter city names, ZIP codes, state names, or location descriptions"
)

# Create columns for the buttons
button_col1, button_col2 = st.columns([2, 1])

with button_col1:
    get_forecast = st.button("🚀 Get Weather Forecast", type="primary")

with button_col2:
    clear_results = st.button("🗑️ Clear Results", type="secondary")

# Clear results functionality
if clear_results:
    st.session_state.show_results = False
    st.success("🗑️ Results cleared! Enter a new location to get a fresh forecast.")

if get_forecast:
    st.session_state.show_results = True

if st.session_state.show_results and get_forecast:
    if not location:
        st.error("❌ Please enter a location name or description.")
    else:
        # Create columns for better layout
        col1, col2 = st.columns([2, 1])

        with col1:
            st.markdown(f"## Weather Analysis for: **{location}**")

            # Step 1: AI Planning
            with st.container():
                st.markdown('&amp;lt;div class="step-container"&amp;gt;', unsafe_allow_html=True)
                st.markdown('&amp;lt;div class="step-header"&amp;gt;🧠 Step 1: AI Planning Phase&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

                with st.spinner("Claude is analyzing the location and planning the API calls..."):
                    success, api_calls = generate_weather_api_calls(location)

                if success:
                    points_url = api_calls[0]
                    st.markdown('&amp;lt;div class="success-box"&amp;gt;✅ Points API URL generated successfully!&amp;lt;/div&amp;gt;', unsafe_allow_html=True)
                    st.code(points_url, language="text")
                else:
                    st.markdown(f'&amp;lt;div class="error-box"&amp;gt;❌ Failed to generate API calls: {api_calls}&amp;lt;/div&amp;gt;', unsafe_allow_html=True)
                    st.stop()

                st.markdown('&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

            # Step 2: Points API Execution
            with st.container():
                st.markdown('&amp;lt;div class="step-container"&amp;gt;', unsafe_allow_html=True)
                st.markdown('&amp;lt;div class="step-header"&amp;gt;🔗 Step 2: Points API Execution&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

                with st.spinner("Fetching location data from National Weather Service..."):
                    success, points_response = execute_curl_command(points_url)

                if success:
                    st.markdown('&amp;lt;div class="success-box"&amp;gt;✅ Received location data from NWS&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

                    # Show a preview of the raw data
                    with st.expander("🔍 View Raw Points API Response (first 500 characters)"):
                        st.code(points_response[:500] + "..." if len(points_response) &amp;gt; 500 else points_response, language="json")
                else:
                    st.markdown(f'&amp;lt;div class="error-box"&amp;gt;❌ Failed to fetch points data: {points_response}&amp;lt;/div&amp;gt;', unsafe_allow_html=True)
                    st.stop()

                st.markdown('&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

            # Step 3: Extract Forecast URL
            with st.container():
                st.markdown('&amp;lt;div class="step-container"&amp;gt;', unsafe_allow_html=True)
                st.markdown('&amp;lt;div class="step-header"&amp;gt;📍 Step 3: Extracting Forecast URL&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

                success, forecast_url = get_forecast_url_from_points_response(points_response)

                if success:
                    st.markdown('&amp;lt;div class="success-box"&amp;gt;✅ Forecast URL extracted successfully!&amp;lt;/div&amp;gt;', unsafe_allow_html=True)
                    st.code(forecast_url, language="text")
                else:
                    st.markdown(f'&amp;lt;div class="error-box"&amp;gt;❌ Failed to extract forecast URL: {forecast_url}&amp;lt;/div&amp;gt;', unsafe_allow_html=True)
                    st.stop()

                st.markdown('&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

            # Step 4: Forecast API Execution
            with st.container():
                st.markdown('&amp;lt;div class="step-container"&amp;gt;', unsafe_allow_html=True)
                st.markdown('&amp;lt;div class="step-header"&amp;gt;🌦️ Step 4: Forecast API Execution&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

                with st.spinner("Fetching weather forecast data..."):
                    success, forecast_response = execute_curl_command(forecast_url)

                if success:
                    st.markdown(f'&amp;lt;div class="success-box"&amp;gt;✅ Received {len(forecast_response):,} characters of forecast data&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

                    # Show a preview of the raw data
                    with st.expander("🔍 View Raw Forecast API Response (first 500 characters)"):
                        st.code(forecast_response[:500] + "..." if len(forecast_response) &amp;gt; 500 else forecast_response, language="json")
                else:
                    st.markdown(f'&amp;lt;div class="error-box"&amp;gt;❌ Failed to fetch forecast data: {forecast_response}&amp;lt;/div&amp;gt;', unsafe_allow_html=True)
                    st.stop()

                st.markdown('&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

            # Step 5: AI Processing
            with st.container():
                st.markdown('&amp;lt;div class="step-container"&amp;gt;', unsafe_allow_html=True)
                st.markdown('&amp;lt;div class="step-header"&amp;gt;📊 Step 5: AI Analysis Phase&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

                with st.spinner("Claude is processing the weather data and creating a summary..."):
                    success, summary = process_weather_response(forecast_response, location)

                if success:
                    st.markdown('&amp;lt;div class="success-box"&amp;gt;✅ Weather analysis complete!&amp;lt;/div&amp;gt;', unsafe_allow_html=True)
                else:
                    st.markdown(f'&amp;lt;div class="error-box"&amp;gt;❌ Failed to process data: {summary}&amp;lt;/div&amp;gt;', unsafe_allow_html=True)
                    st.stop()

                st.markdown('&amp;lt;/div&amp;gt;', unsafe_allow_html=True)

            # Step 6: Results
            st.markdown("---")
            st.markdown("## 🌤️ Weather Forecast")
            st.markdown(summary)

        with col2:
            # Real-time status updates
            st.markdown("### 📊 Process Status")

            status_container = st.container()
            with status_container:
                st.markdown("""
                &amp;lt;div class="info-box"&amp;gt;
                &amp;lt;strong&amp;gt;🔄 Agent Workflow:&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;
                ✅ Planning Phase&amp;lt;br&amp;gt;
                ✅ Points API Call&amp;lt;br&amp;gt;
                ✅ URL Extraction&amp;lt;br&amp;gt;
                ✅ Forecast API Call&amp;lt;br&amp;gt;
                ✅ Data Processing&amp;lt;br&amp;gt;
                ✅ Results Generated
                &amp;lt;/div&amp;gt;
                """, unsafe_allow_html=True)

            st.markdown("### 🎯 What Makes This Agentic?")
            st.markdown("""
            - **🧠 Reasoning** : AI understands location formats
            - **📋 Planning** : Generates appropriate API call sequences
            - **🔧 Action** : Executes real-world API requests
            - **📊 Processing** : Converts raw data to insights
            - **🔄 Adaptation** : Handles different location types
            """)

# Footer
st.markdown("---")
st.markdown("""
### 🔬 About This Demo

This application demonstrates **Agentic AI** principles using:
- **Amazon Bedrock** with Claude 4.5 Sonnet for intelligent reasoning
- **National Weather Service API** for real-time weather data
- **Streamlit** for interactive web interface

**⚠️ Important** : This uses official NWS data for educational purposes. For critical weather decisions, consult official sources.
""")

# Add some example queries
st.markdown("### 💡 Try These Examples:")
st.markdown("""
**Suggested locations to test:**
- **Seattle** - Major city (tests city name recognition)
- **90210** - ZIP code (tests postal code handling)  
- **New York City** - Multi-word city (tests complex location parsing)
- **Miami, FL** - City with state (tests state abbreviations)
- **Chicago** - Another major city (tests different coordinates)
- **National park near Homestead in Florida** - Location description (tests AI reasoning)
- **Largest City in California** - Descriptive query (tests knowledge-based location finding)

Simply copy any of these into the location input above and click "Get Weather Forecast"!
""")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To start the application, run the following command in your terminal: &lt;code&gt;streamlit run weather\_agent\_web.py&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once executed, you will see output in your terminal indicating the local URL where you can view the interface in your web browser.&lt;/p&gt;

&lt;p&gt;You should see output like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://192.168.1.100:8501
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Interactive Features to Explore&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The web interface is designed to make the “agentic” nature of the AI visible to the user through several key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Step-by-Step Visualization&lt;/strong&gt; : Unlike the CLI, the web app allows you to watch each phase of the workflow as it happens, including the &lt;strong&gt;AI Planning Phase&lt;/strong&gt; , &lt;strong&gt;API Execution&lt;/strong&gt; , and &lt;strong&gt;AI Analysis&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Raw Data Inspection&lt;/strong&gt; : You can use expandable sections to view the &lt;strong&gt;complex JSON data&lt;/strong&gt; the agent is processing behind the scenes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time Status&lt;/strong&gt; : A sidebar allows you to monitor the agent’s progress as it moves from understanding your request to fetching and summarizing data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Observations and Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When running the web application, you should observe how the AI demonstrates &lt;strong&gt;Planning Intelligence&lt;/strong&gt; and &lt;strong&gt;Data Processing&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input Flexibility&lt;/strong&gt; : Test how it recognizes various inputs like “94129” or “Times Square” and maps them to coordinates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Translation&lt;/strong&gt; : Observe how Claude 4.5 Sonnet identifies the most relevant information from multiple forecast periods to create a human-readable summary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Handling&lt;/strong&gt; : Try entering misspelled city names or international locations (remembering that the NWS API only covers the US) to see how the agent provides helpful guidance rather than crashing&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AY9Zmp8gx3ldP54n_" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AY9Zmp8gx3ldP54n_" alt="11" width="1000" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AcupKkpWO0LvpvzkG" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AcupKkpWO0LvpvzkG" alt="12" width="1000" height="549"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2Ad5a2cAXjthnNypbG" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2Ad5a2cAXjthnNypbG" alt="13" width="1000" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source Code &amp;amp; Repository&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can access the full implementation of the weather_agent_cli.py and weather_agent_web.py files, along with the environment setup requirements, at the following GitHub repository here : &lt;a href="https://github.com/dineshrajdhanapathyDD/agentic-ai-amazon-bedrock.git" rel="noopener noreferrer"&gt;Agentic AI Building Blocks using Amazon Bedrock&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Use the Web Version?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The web application is particularly useful for &lt;strong&gt;non-technical users&lt;/strong&gt; or for &lt;strong&gt;professional presentations&lt;/strong&gt;. It provides a visual confirmation of the agent’s autonomy and reactivity, allowing you to see exactly how the “brain” (Claude) is directing the “hands” (API calls) to solve the problem&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to Observe&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During the execution of the agent, you should pay close attention to how the AI handles the transition from natural language to technical execution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Planning Intelligence:&lt;/strong&gt; Notice how the AI recognizes various input types, such as mapping “Seattle” to coordinates or handling ZIP codes like “90210”. Observe how it dynamically generates different API calls based on the specific location type provided.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Processing:&lt;/strong&gt; Watch how the AI converts complex JSON data often containing multiple forecast periods into a human-readable summary. It must identify the most relevant information and add appropriate context or recommendations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Handling:&lt;/strong&gt; Test the agent’s resilience by entering invalid locations, misspelled city names, or international locations. Observe how it provides helpful guidance rather than failing, noting that the National Weather Service API is limited to US locations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Comparing CLI vs. Web Experience&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While both versions use the &lt;strong&gt;identical agentic AI logic&lt;/strong&gt;  — relying on the same Claude 4.5 Sonnet reasoning and NWS API integration — they offer distinct advantages depending on the user:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Command-Line Version (CLI)&lt;/th&gt;
&lt;th&gt;Web Version (Streamlit)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Primary Audience&lt;/td&gt;
&lt;td&gt;Developers and technical users.&lt;/td&gt;
&lt;td&gt;Non-technical users or professional presentations.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Key Strength&lt;/td&gt;
&lt;td&gt;Direct, focused interaction ideal for automation and scripting.&lt;/td&gt;
&lt;td&gt;Visual, interactive experience with a polished presentation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visibility&lt;/td&gt;
&lt;td&gt;Shows the raw workflow steps clearly in the terminal.&lt;/td&gt;
&lt;td&gt;Provides real-time progress indicators and a sidebar to monitor status.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;Text-based output of the process.&lt;/td&gt;
&lt;td&gt;Step-by-step visualization of the planning, execution, and analysis phases.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Inspection&lt;/td&gt;
&lt;td&gt;Best for seeing the immediate code execution.&lt;/td&gt;
&lt;td&gt;Includes expandable sections to inspect raw API responses.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Ultimately, the choice between them depends on whether you prioritize &lt;strong&gt;developer efficiency and automation&lt;/strong&gt; (CLI) or &lt;strong&gt;visual clarity and user-friendly status tracking&lt;/strong&gt;  (Web).&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Definition of Agentic AI:&lt;/strong&gt; The fundamental shift in AI is moving from a “Question → Answer” model (smart encyclopedias) to a &lt;strong&gt;“Problem → Plan → Action → Result”&lt;/strong&gt; workflow. Truly agentic systems are defined by &lt;strong&gt;autonomy&lt;/strong&gt; (making independent decisions), &lt;strong&gt;reactivity&lt;/strong&gt; (responding to environmental changes and errors), and &lt;strong&gt;proactivity&lt;/strong&gt; (taking initiative through multi-step planning).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The AI as a Reasoning Engine:&lt;/strong&gt; Instead of just generating text, the AI (specifically Claude 4.5 Sonnet) acts as a &lt;strong&gt;reasoning engine&lt;/strong&gt;. It dynamically interprets descriptive user input, such as “largest city in California,” maps it to precise coordinates, and constructs the necessary API URLs rather than relying on hardcoded logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Agentic Workflow:&lt;/strong&gt; A successful agent follows a reusable four-step pattern: &lt;strong&gt;Planning&lt;/strong&gt; (analyzing input and strategizing), &lt;strong&gt;Action&lt;/strong&gt; (executing technical tasks like API calls), &lt;strong&gt;Processing&lt;/strong&gt; (analyzing raw data for insights), and &lt;strong&gt;Response&lt;/strong&gt; (presenting results in a human-friendly format).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Building without Abstractions:&lt;/strong&gt; Sophisticated agents can be built using &lt;strong&gt;pure Python and the AWS SDK (boto3)&lt;/strong&gt; without the need for complex frameworks. This “from-scratch” approach helps developers understand every component, from establishing a Bedrock connection to creating an &lt;strong&gt;error-resilient architecture&lt;/strong&gt; that handles network timeouts and invalid data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Versatile Real-World Applications:&lt;/strong&gt; The patterns used to build a weather assistant such as &lt;strong&gt;coordinate resolution and sequential API execution&lt;/strong&gt; are directly applicable to other fields like travel planning, emergency management, market analysis, and agriculture&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;The workshop concludes that the future of artificial intelligence is not just about chatbots, but about &lt;strong&gt;agents that can take meaningful actions in the world&lt;/strong&gt;. By moving beyond static responses and integrating real-time data with AI reasoning, developers can create systems that provide genuine value across any domain. The core principle for success in this new landscape is to &lt;strong&gt;start simple and iterate quickly&lt;/strong&gt; , using foundational building blocks to scale toward more complex multi-agent systems and advanced production environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/bedrock/" rel="noopener noreferrer"&gt;Amazon Bedrock Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-claude.html" rel="noopener noreferrer"&gt;Claude Model Parameters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.weather.gov/documentation/services-web-api" rel="noopener noreferrer"&gt;National Weather Service API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.streamlit.io/" rel="noopener noreferrer"&gt;Streamlit Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A special thanks to &lt;strong&gt;BeSA (Become a Solutions Architect)&lt;/strong&gt; for providing a free mentoring platform that enabled me to gain &lt;strong&gt;practical, hands-on experience&lt;/strong&gt; with Generative AI through this workshop. BeSA’s guidance and community support played a key role in helping me strengthen my GenAI and cloud skills.&lt;/p&gt;

&lt;p&gt;If you’d like to explore another hands-on agentic AI example using Amazon Bedrock, check out the AWS workshop 1 article. You can read it here:🔗 &lt;a href="https://builder.aws.com/content/3A2RZg37vuIPXHmXmPVAhZGkIUm/building-an-intelligent-shopping-assistant-with-amazon-bedrock-agents" rel="noopener noreferrer"&gt;&lt;strong&gt;Building an Intelligent Shopping Assistant with Amazon Bedrock Agents&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments; I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to connect or dive deeper into cloud, AI and DevOps, feel free to follow me on my socials:&lt;/p&gt;

&lt;p&gt;💼 &lt;a href="https://www.linkedin.com/in/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌&lt;/strong&gt; &lt;a href="https://x.com/DD_Dineshraj" rel="noopener noreferrer"&gt;&lt;strong&gt;X (formerly Twitter)&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻&lt;/strong&gt; &lt;a href="https://dev.to/dineshrajdhanapathydd"&gt;&lt;strong&gt;DEV Community&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🛡️&lt;a href="https://medium.com/@dineshrajdhanapathy" rel="noopener noreferrer"&gt;&lt;strong&gt;Medium&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🐙&lt;/strong&gt; &lt;a href="https://github.com/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌍&lt;a href="https://builder.aws.com/community/@dd1" rel="noopener noreferrer"&gt;&lt;strong&gt;AWS Builder Profile&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>amazonbedrock</category>
      <category>aws</category>
    </item>
    <item>
      <title>AWS Rift Rewind Story: Learning Cloud, Building Projects</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Wed, 25 Feb 2026 17:45:40 +0000</pubDate>
      <link>https://forem.com/aws-builders/aws-rift-rewind-story-learning-cloud-building-projects-1plk</link>
      <guid>https://forem.com/aws-builders/aws-rift-rewind-story-learning-cloud-building-projects-1plk</guid>
      <description>&lt;p&gt;AWS beginner to deploying a global project via Rift Rewind: secure storage, CloudFront, automated pipelines, live APIs — my journey &amp;amp; tips for builders.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ Adding My Personal Touch
&lt;/h3&gt;

&lt;p&gt;I didn’t just follow the templates, I made the site my own:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customized the &lt;strong&gt;design, colors, and layout&lt;/strong&gt; to match my style&lt;/li&gt;
&lt;li&gt;Added &lt;strong&gt;Riot Games API integration&lt;/strong&gt; to fetch live League of Legends data&lt;/li&gt;
&lt;li&gt;Included &lt;strong&gt;personal content and visuals&lt;/strong&gt; to make the site unique&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This wasn’t just a website — it became my personal playground for learning AWS.&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%2Fcdn-images-1.medium.com%2Fmax%2F750%2F0%2A7hil0frocMgQ_LZH" 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%2Fcdn-images-1.medium.com%2Fmax%2F750%2F0%2A7hil0frocMgQ_LZH" alt="1" width="750" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Power Spike Prep
&lt;/h3&gt;

&lt;p&gt;I started by setting up my AWS account safely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enabled &lt;strong&gt;MFA&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Created an &lt;strong&gt;admin IAM user&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Set up &lt;strong&gt;budget alerts&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2ACUJye7v61AJ3l4-b" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2ACUJye7v61AJ3l4-b" alt="2" width="1000" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 &lt;em&gt;Lesson learned:&lt;/em&gt; Security is the foundation. Even small mistakes can be costly in the cloud.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ward Your Data
&lt;/h3&gt;

&lt;p&gt;I created my first &lt;strong&gt;S3 bucket&lt;/strong&gt; and uploaded my project files securely.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ What I Accomplished
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Created a &lt;strong&gt;private Amazon S3 bucket&lt;/strong&gt; (with “Block Public Access” enabled)&lt;/li&gt;
&lt;li&gt;Verified that files are &lt;strong&gt;inaccessible publicly (Access Denied = ✅ security)&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AgKG-fo4MLrUivW-p" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AgKG-fo4MLrUivW-p" alt="3" width="1000" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2Av1wK8OAuuNu_NiK6" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2Av1wK8OAuuNu_NiK6" alt="4" width="1000" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 &lt;em&gt;Aha moment:&lt;/em&gt; Default privacy settings in S3 aren’t just a suggestion — they’re essential for protecting your data.&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Level Up Your Code
&lt;/h3&gt;

&lt;p&gt;Time to structure my project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organized &lt;strong&gt;HTML, CSS, and assets&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Applied &lt;strong&gt;best practices for project structure&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Uploaded everything to S3&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2Albn8AoGc87ZbK0Lo" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2Albn8AoGc87ZbK0Lo" alt="5" width="1000" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🖥️ Personal website customized&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%2Fcdn-images-1.medium.com%2Fmax%2F885%2F0%2AI9bcAZ89bJd0fKKR" 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%2Fcdn-images-1.medium.com%2Fmax%2F885%2F0%2AI9bcAZ89bJd0fKKR" alt="6" width="885" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 &lt;em&gt;Lesson learned:&lt;/em&gt; Clean, organized files make everything else easier — from deployment to debugging.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌍 Global Distribution
&lt;/h3&gt;

&lt;p&gt;I set up &lt;strong&gt;CloudFront&lt;/strong&gt; to make my website fast and accessible worldwide.&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AUlR3OCHP4pbxcHS-" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AUlR3OCHP4pbxcHS-" alt="7" width="1000" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ What I Accomplished
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Understood why &lt;strong&gt;distance = latency&lt;/strong&gt; (ping problem in real life 🌐)&lt;/li&gt;
&lt;li&gt;Learned how &lt;strong&gt;Content Delivery Networks (CDNs)&lt;/strong&gt; solve the speed problem&lt;/li&gt;
&lt;li&gt;Created a &lt;strong&gt;CloudFront distribution&lt;/strong&gt; connected to my private S3 bucket&lt;/li&gt;
&lt;li&gt;Configured &lt;strong&gt;index.html as default root object&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2A_L95Eqh45bS1DHoN" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2A_L95Eqh45bS1DHoN" alt="8" width="1000" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 &lt;em&gt;Aha moment:&lt;/em&gt; CloudFront doesn’t just speed up content — it also secures access to your S3 bucket.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Pro Deploy Mode
&lt;/h3&gt;

&lt;p&gt;I linked &lt;strong&gt;GitHub → AWS Amplify&lt;/strong&gt; for automated deployments.&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AC_FZPM0P_bWCv5oj" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AC_FZPM0P_bWCv5oj" alt="9" width="1000" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 &lt;em&gt;Lesson learned:&lt;/em&gt; Automation is a game-changer. Every change in GitHub now instantly updates my live site.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Tap Into the Rift
&lt;/h3&gt;

&lt;p&gt;I built my first &lt;strong&gt;serverless Lambda function&lt;/strong&gt; to fetch real-time Riot Games data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Secured my &lt;strong&gt;API key with Parameter Store&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Store API Key Securely&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;AWS Systems Manager → Parameter Store&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Store as /rift-rewind/riot-api-key (type: SecureString)&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AqIL_SvYllXwLpUSW" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AqIL_SvYllXwLpUSW" alt="10" width="1000" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Displayed &lt;strong&gt;summoner stats &amp;amp; top champions&lt;/strong&gt; on my site&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AHIqP7i0lYKY_-Kdz" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AHIqP7i0lYKY_-Kdz" alt="11" width="1000" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create Function URL&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Lambda → Function URL → Create&lt;/li&gt;
&lt;li&gt;Auth: NONE (so frontend can call it)&lt;/li&gt;
&lt;li&gt;Configure &lt;strong&gt;CORS&lt;/strong&gt; :&lt;/li&gt;
&lt;li&gt;Allowed origin = your Amplify site domain (must match exactly with &lt;a href="https://..." rel="noopener noreferrer"&gt;https://...)&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Allow headers: Content-Type&lt;/li&gt;
&lt;li&gt;Allow methods: POST&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AL9h83wbXFNXuxfzr" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AL9h83wbXFNXuxfzr" alt="12" width="1000" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test with a small event&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In Lambda Console → Test → Use event:&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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2A2Qt1Rs7cMM_-rPkx" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2A2Qt1Rs7cMM_-rPkx" alt="13" width="1000" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;CloudWatch logs&lt;/strong&gt; for debugging Lambda errors&lt;/li&gt;
&lt;li&gt;Riot dev keys expire in 24h → regenerate if broken&lt;/li&gt;
&lt;li&gt;If you see it 403 Forbidden, it’s usually a &lt;strong&gt;CORS or expired API key issue&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 &lt;em&gt;Aha moment:&lt;/em&gt; Serverless computing feels like magic, you get full backend functionality without maintaining a server.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I levelled up my cloud and development skills: I started by setting up AWS securely with MFA and budget alerts, then stored files safely in S3. I organised my project like a pro, made it globally accessible with CloudFront, and automated deployment using GitHub and Amplify. Finally, I integrated the Riot Games API with AWS Lambda to display live League of Legends data — all while following best practices for security, structure, and performance.&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%2Fcdn-images-1.medium.com%2Fmax%2F889%2F0%2AJ1zK29URU7hQEiZL" 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%2Fcdn-images-1.medium.com%2Fmax%2F889%2F0%2AJ1zK29URU7hQEiZL" alt="14" width="889" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🏆 Victory Lap
&lt;/h3&gt;

&lt;p&gt;I reflected on my journey and published my story:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shared screenshots of AWS services in action&lt;/li&gt;
&lt;li&gt;Documented lessons, tips, and personal experiences.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🎯 Goal for Today
&lt;/h3&gt;

&lt;p&gt;Celebrate completing the challenge and &lt;strong&gt;share my journey&lt;/strong&gt; with the AWS Builder community by writing an article on &lt;strong&gt;AWS Builder Center&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔑 Key Takeaways
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Security first: MFA &amp;amp; IAM aren’t optional.&lt;/li&gt;
&lt;li&gt;Organization matters: structure saves headaches.&lt;/li&gt;
&lt;li&gt;Automation rocks: GitHub + Amplify = effortless deployment.&lt;/li&gt;
&lt;li&gt;Global distribution matters: CloudFront = fast, secure, worldwide.&lt;/li&gt;
&lt;li&gt;Serverless is powerful: Lambda + APIs = endless possibilities.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  💡 Tips for Future Builders
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Keep AWS security top of mind&lt;/li&gt;
&lt;li&gt;Organize files from the start&lt;/li&gt;
&lt;li&gt;Automate deployments with Amplify &amp;amp; GitHub&lt;/li&gt;
&lt;li&gt;Test API integrations in small steps&lt;/li&gt;
&lt;li&gt;Experiment boldly — serverless lets you fail fast and learn faster&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🌟 Final Thoughts
&lt;/h3&gt;

&lt;p&gt;In just 7 days, I transformed from an AWS beginner to a cloud builder:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deployed globally distributed apps&lt;/li&gt;
&lt;li&gt;Integrated real-time APIs with serverless functions&lt;/li&gt;
&lt;li&gt;Implemented professional security practices&lt;/li&gt;
&lt;li&gt;Built a portfolio-ready project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Rift Rewind Challenge wasn’t just about building a website — it was about &lt;strong&gt;learning cloud architecture, modern workflows, and practical AWS skills&lt;/strong&gt;. And the best part? My live project now stands as proof of what I can build.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Riot ID in the format GameName#TAG correct region&lt;/li&gt;
&lt;li&gt;Should display &lt;strong&gt;Summoner Level + Top 3 Champs&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AR03N0Bbg-Ttz209d" 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%2Fcdn-images-1.medium.com%2Fmax%2F1000%2F0%2AR03N0Bbg-Ttz209d" alt="15" width="1000" height="771"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In this article, I share my 7-day journey building a cloud-powered Rift Rewind project using AWS, integrating live Riot Games data, and adding my personal design twists to create a fully interactive gaming platform.&lt;/em&gt; Check out the full project on the &lt;a href="https://github.com/dineshrajdhanapathyDD/rift-rewind-project" rel="noopener noreferrer"&gt;GitHub Repo &lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments — I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to connect or dive deeper into cloud and DevOps, feel free to follow me on my socials:&lt;/p&gt;

&lt;p&gt;💼 &lt;a href="https://www.linkedin.com/in/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌&lt;/strong&gt; &lt;a href="https://x.com/DD_Dineshraj" rel="noopener noreferrer"&gt;&lt;strong&gt;X (formerly Twitter)&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻&lt;/strong&gt; &lt;a href="https://dev.to/dineshrajdhanapathydd"&gt;&lt;strong&gt;DEV Community&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🛡️&lt;a href="https://medium.com/@dineshrajdhanapathy" rel="noopener noreferrer"&gt;&lt;strong&gt;Medium&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🐙&lt;/strong&gt; &lt;a href="https://github.com/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌍&lt;a href="https://builder.aws.com/community/@dd1" rel="noopener noreferrer"&gt;&lt;strong&gt;AWS Builder Profile&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>s3</category>
      <category>cloudfront</category>
      <category>amplify</category>
      <category>aws</category>
    </item>
    <item>
      <title>Architecture Diagram: Local Development with Amazon Q + WSL (Ubuntu) + MCP Server for Application…</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Wed, 18 Feb 2026 20:55:16 +0000</pubDate>
      <link>https://forem.com/aws-builders/architecture-diagram-local-development-with-amazon-q-wsl-ubuntu-mcp-server-for-application-4i3</link>
      <guid>https://forem.com/aws-builders/architecture-diagram-local-development-with-amazon-q-wsl-ubuntu-mcp-server-for-application-4i3</guid>
      <description>&lt;h3&gt;
  
  
  Architecture Diagram: Local Development with Amazon Q + WSL (Ubuntu) + MCP Server for Application Modernization
&lt;/h3&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%2Fmso38hv4ntfosqgn9wr0.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%2Fmso38hv4ntfosqgn9wr0.png" alt="1" width="800" height="546"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Amazon Q with VS code IDE&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Amazon Q Developer is your AI-powered coding assistant designed to supercharge productivity for developers working on AWS. Think of it as a contextual, cloud-native co-pilot that not only answers your questions but also helps write, debug, and modernize code right inside your IDE.&lt;/p&gt;
&lt;h3&gt;
  
  
  Amazon Q Developer (Free Tier)
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-free-tier.html" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Free Tier&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;✅ &lt;strong&gt;Natural language Q&amp;amp;A&lt;/strong&gt; on AWS services and cloud development.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Code generation &amp;amp; explanations&lt;/strong&gt; in supported languages.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;AWS documentation search&lt;/strong&gt; from within your IDE.&lt;/p&gt;

&lt;p&gt;✅ Works across local, AWS Builder ID-linked environments.&lt;/p&gt;
&lt;h3&gt;
  
  
  Amazon Q Developer (Pro Tier)
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-pro-tier.html" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Pro Tier&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;✅ &lt;strong&gt;Amazon Q Code Transformatio&lt;/strong&gt; n: Convert legacy Java apps to modern Java on AWS (Spring Boot + Lambda, etc.)&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Deep application analysis&lt;/strong&gt; and modernization recommendations.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Interactive code generatio&lt;/strong&gt; n with context-aware chat.&lt;/p&gt;

&lt;p&gt;✅ Enterprise-ready with &lt;strong&gt;SSO suppor&lt;/strong&gt; t and advanced integrations.&lt;/p&gt;
&lt;h4&gt;
  
  
  In Visual Studio Code, how can I install the Amazon Q extension?
&lt;/h4&gt;

&lt;p&gt;Available for Windows, macOS, and Linux, Visual Studio Code is a desktop source code editor that is both lightweight and powerful. Make sure &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Visual Studio Code&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; is installed on your computer. The &lt;a href="https://code.visualstudio.com/docs/setup/setup-overview" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;setup&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; instructions are available in their official manual.&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%2Fxz604t510dqa7iuzqps5.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%2Fxz604t510dqa7iuzqps5.png" alt="1" width="800" height="498"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Amazon Q Extension installed&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  What if you already have Amazon Q and the AWS Toolkit? How can that be updated?
&lt;/h4&gt;

&lt;p&gt;Update the AWS Toolkit if you have already done so. If you have Amazon Q connections, the new Amazon Q extension will be deployed for you immediately, even if they are expired.&lt;/p&gt;
&lt;h4&gt;
  
  
  There are two ways for you to log in, and this blog examines both of them:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;With &lt;a href="https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/builder-id.html" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Builder ID&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;&lt;em&gt;docs&lt;/em&gt;&lt;/strong&gt; for individual users using AWS’s Free Tier&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/sso-credentials.html" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;IAM Identity Center&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; with Pro Tier for Professional Users&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can represent your work-self with a workforce identity in IAM Identity Center and your private-self with an AWS Builder ID. These identities function on their own. For more information, see &lt;a href="https://aws.amazon.com/q/developer/pricing/" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Amazon Q Developer Pricing&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuju7n7q4tpec7ur49vtb.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%2Fuju7n7q4tpec7ur49vtb.png" alt="2" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This article focuses exclusively on the &lt;strong&gt;Amazon Q Developer Free Tier&lt;/strong&gt; , highlighting the powerful features available at no cost. With the Free Tier, developers can ask natural language questions, generate architecture diagrams, explore code, and interact with AWS services — all from the terminal or VS Code. While Amazon Q Pro offers advanced features like code transformation, this guide is tailored for those getting started with the free version, making it ideal for learners, hobbyists, and early-stage cloud developers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
  
  
  Without requiring an AWS account, using the AWS Builder ID
&lt;/h4&gt;

&lt;p&gt;To utilize Amazon Q for free, select this option. You must create an &lt;a href="https://community.aws/builderid" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;AWS Builder ID&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; even if you do not require an AWS account. Access to specific tools and services is granted by an individual’s AWS Builder ID. Free is the AWS Builder ID. In contrast to Builder ID, you only pay for the AWS resources you use in your AWS accounts. You can use the same email address for both your AWS Builder ID and an AWS account’s root user email.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click “Continue” after choosing the first “Use for Free” option in step 1.&lt;/li&gt;
&lt;li&gt;Click “Proceed to browser” when a pop-up window containing a confirmation code appears.&lt;/li&gt;
&lt;li&gt;It will take you to a web browser. Click “Confirm and continue” after making sure the code is the same.&lt;/li&gt;
&lt;li&gt;This takes you to the AWS Builder ID sign-up or sign-in page. The sign-up screen will be bypassed if you are already logged into Builder ID.&lt;/li&gt;
&lt;li&gt;Permit the IDE extensions to access AWS services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feutiqpsgmsgc08iw6siq.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%2Feutiqpsgmsgc08iw6siq.png" alt="3" width="800" height="644"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Amazon Q approved using IDE&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After finishing, you can return to your IDE. Using your Builder ID, you have successfully signed into Amazon Q. You should see a Q Chat window open automatically.&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%2Fqau8yv9mozhxz5rsdaqr.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%2Fqau8yv9mozhxz5rsdaqr.png" alt="4" width="800" height="519"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Amazon Q chat section in IDE&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;click on “Amazon Q” in the status bar below. For other options, such as pausing auto-suggestions, opening settings, or signing out.&lt;/p&gt;
&lt;h4&gt;
  
  
  Started with WSL and Ubuntu: A Developer’s Local
&lt;/h4&gt;

&lt;p&gt;For developers working on cloud-native applications, having a Linux-like environment on a Windows machine can be a game-changer. That’s where &lt;strong&gt;WSL (Windows Subsystem for Linux)&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;WSL + Ubuntu&lt;/strong&gt; , you get the best of both worlds: the power and familiarity of Linux tools and the convenience of Windows. No need for dual-booting or spinning up a virtual machine — WSL gives you a lightweight Linux environment directly inside Windows, perfect for development, automation, and working with cloud platforms like AWS.&lt;/p&gt;

&lt;p&gt;In this article, we’ll explore how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up &lt;a href="https://documentation.ubuntu.com/wsl/en/latest/howto/install-ubuntu-wsl2/" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;WSL with Ubuntu&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; on your Windows machine.&lt;/li&gt;
&lt;li&gt;Use it for &lt;strong&gt;local development and scripting.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Seamlessly integrate it with &lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Amazon Q&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp.html" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;MCP Server&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; for cloud modernization workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The command refreshes the list of available packages and their versions from the repositories, ensuring your system knows about the latest software updates.&lt;/p&gt;

&lt;p&gt;sudo apt-get update&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%2Fl9asjbb5kcqoi1vy5fvk.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%2Fl9asjbb5kcqoi1vy5fvk.png" alt="5" width="591" height="91"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;ubuntu latest updates&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The command installs the &lt;strong&gt;libfuse2&lt;/strong&gt; library, which is needed to run applications (like AppImage files) that rely on the FUSE (Filesystem in Userspace) interface.&lt;/p&gt;

&lt;p&gt;sudo apt install libfuse2&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%2Ffks0l2n91i698o7ez6dv.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%2Ffks0l2n91i698o7ez6dv.png" alt="6" width="684" height="281"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;installed libfuse2&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This command downloads the latest &lt;strong&gt;Amazon Q .deb installer&lt;/strong&gt; securely using curl and saves it as amazon-q.deb for installation on Debian-based systems.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl — proto ‘=https’ — tlsv1.2 -sSf https://desktop-release.q.us-east-1.amazonaws.com/latest/amazon-q.deb -o amazon-q.deb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvgymg9d1n1eyesrxg2b4.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%2Fvgymg9d1n1eyesrxg2b4.png" alt="2" width="800" height="19"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This command installs the downloaded &lt;strong&gt;Amazon Q .deb file&lt;/strong&gt; using apt, enabling Amazon Q on your system.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install -y ./amazon-q.deb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo77qge0hq4ct86t3icc5.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%2Fo77qge0hq4ct86t3icc5.png" alt="3" width="614" height="131"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;installed deb file&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To access Amazon Q Developer, create a &lt;a href="https://community.aws/builderid" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;BuilderID&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; here and then enter the command.&lt;/p&gt;

&lt;p&gt;q login&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%2Fc8dk3y8cxzm88dia2ypp.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%2Fc8dk3y8cxzm88dia2ypp.png" alt="4" width="800" height="216"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;q login&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Once logged in, just type q in the terminal to start using &lt;strong&gt;Amazon Q&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;q&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%2Fod66fmgn9s2ckwkiqky9.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%2Fod66fmgn9s2ckwkiqky9.png" alt="5" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After following the above steps, you’ll have &lt;a href="https://aws.amazon.com/q" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Amazon Q&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;successfully installed and running on your system. By updating your package list, installing required dependencies like libfuse2, and downloading the latest .deb file, you’ve set up the environment smoothly. Once the installation completes, simply launch Amazon Q by typing itq in your terminal. After logging in with your AWS Builder ID, you’re ready to interact with Amazon Q right from your local machine—ask questions, get code suggestions, and streamline your development workflow with ease.&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;MCP Support on Amazon Q CLI&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Amazon Q CLI now includes powerful support for &lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Model Context Protocol (MCP)&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;—a framework&lt;/strong&gt; designed to assist in the &lt;strong&gt;automated modernization of legacy applications&lt;/strong&gt;. MCP acts as a control plane that coordinates various tools and services involved in analyzing, transforming, and migrating applications to AWS-native architectures.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;MCP support in Amazon Q CLI&lt;/strong&gt; , developers can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scan and assess legacy Java applications&lt;/li&gt;
&lt;li&gt;Get AI-powered modernization recommendations&lt;/li&gt;
&lt;li&gt;Automate transformations (e.g., move to Spring Boot, Lambda, or containers)&lt;/li&gt;
&lt;li&gt;Seamlessly manage the modernization workflow — all from the terminal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This integration allows you to harness the full potential of Amazon Q’s intelligence and the structure of MCP, enabling a &lt;strong&gt;streamlined, developer-friendly approach to application modernization&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To install the &lt;strong&gt;Astral UV&lt;/strong&gt; runtime via Snap with classic confinement.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo snap install astral-uv --classic
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60payxxvnncdrt73c72k.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%2F60payxxvnncdrt73c72k.png" alt="6" width="609" height="115"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;installed Astral UV&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;create a file called mcp.jsonin~/.aws/amazonq&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%2F4a6uqldfwegzdzklglu6.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%2F4a6uqldfwegzdzklglu6.png" alt="7" width="800" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create a file : &lt;strong&gt;vim mcp.json&lt;/strong&gt;  . A powerful text editor used to &lt;strong&gt;create or edit files&lt;/strong&gt; in the terminal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;vim mcp.json&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A simple command used to &lt;strong&gt;display the contents&lt;/strong&gt; of a file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;cat mcp.json&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{

        "mcpServers" : {

 "awslabs.cdk-mcp-server": {
        "command": "uvx",
        "args": ["awslabs.cdk-mcp-server@latest"],
        "env": {
           "FASTMCP_LOG_LEVEL": "ERROR"
        }
   },
 "awslabs.aws-diagram-mcp-server": {
                "command": "uvx",
                "args": ["awslabs.aws-diagram-mcp-server"],
                "env": {
                        "FASTMCP_LOG_LEVEL": "ERROR"
                },
                "autoApprove": [],
                "disabled": false
        }
}

}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vim&lt;/strong&gt; is a powerful, keyboard-based text editor commonly used in Linux environments.&lt;/p&gt;

&lt;p&gt;To &lt;strong&gt;open/edit a file&lt;/strong&gt; :&lt;br&gt;&lt;br&gt;
&lt;em&gt;vim filename&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To &lt;strong&gt;enter insert mode&lt;/strong&gt; (to start typing):&lt;br&gt;&lt;br&gt;
Press &lt;em&gt;i&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To &lt;strong&gt;save and exit&lt;/strong&gt; :&lt;br&gt;&lt;br&gt;
Press &lt;em&gt;Esc&lt;/em&gt;, then type_:wq_and hit &lt;em&gt;Enter&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To &lt;strong&gt;exit without saving&lt;/strong&gt; :&lt;br&gt;&lt;br&gt;
Press &lt;em&gt;Esc&lt;/em&gt;, then type,&lt;em&gt;:q!&lt;/em&gt; and hit &lt;em&gt;Enter&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Servers still loading …. 2 mcp servers initialized.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;awslabsaws_diagram_mcp_server&lt;/li&gt;
&lt;li&gt;awslabscdk_mcp_server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5q7226f6pvocx0e3m2g0.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%2F5q7226f6pvocx0e3m2g0.png" alt="8" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check the command ‘uvx.’&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnzvc87xr6izkq5vnr83m.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%2Fnzvc87xr6izkq5vnr83m.png" alt="9" width="487" height="113"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Successfully Initialized:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;awslabs/aws-diagram-mcp-server&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides architecture diagrams and visual workflows for the MCP Server to help you understand the modernization process end-to-end.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;awslabs/cdk-mcp-server&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contains &lt;strong&gt;AWS CDK&lt;/strong&gt; ( &lt;strong&gt;Cloud Development Kit&lt;/strong&gt; ) constructs and templates to deploy the MCP Server and related components on your AWS environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;GitHub repo here &lt;a href="https://github.com/awslabs/mcp" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;awslabs/mcp&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The above repositories have been successfully initialized within &lt;strong&gt;Amazon Q&lt;/strong&gt; , enabling you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visualize and interact with MCP server architecture using Amazon Q&lt;/li&gt;
&lt;li&gt;Use CDK-based templates to deploy and test modernization workflows&lt;/li&gt;
&lt;li&gt;Leverage AI-powered guidance from Amazon Q to navigate, understand, and modernize your applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz92lwft9zmsy8ocnpkkq.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%2Fz92lwft9zmsy8ocnpkkq.png" alt="10" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All are set now. Start the prompt in Amazon Q.&lt;/p&gt;

&lt;h4&gt;
  
  
  Amazon Q — Prompting in the Terminal
&lt;/h4&gt;

&lt;p&gt;After launching &lt;strong&gt;Amazon Q&lt;/strong&gt; using the q command in your terminal, you can enter natural language queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Launch and connect to an EC2 instance, Create your very own Kubernetes cluster, Monitor cluster creation with CloudFormation.Access your cluster using an IAM access entry make its simple basic diagram
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Amazon Q Response (Terminal Output):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I'll help you create a simple diagram for launching an EC2 instance, creating a Kubernetes cluster, monitoring it with CloudFormation, and accessing 
it with IAM. Let me create that for you.


🛠️ Using tool: generate_diagram (trusted) from mcp server awslabsaws_diagram_mcp_server
 ⋮ 
 ● Running generate_diagram with the param:
 ⋮ {
 ⋮ "arguments": {
 ⋮ "code": "with Diagram(\"Simple Kubernetes Cluster Setup\", show=False, direction=\"LR\"):\n # User starting point\n user = User(\"DevOps Engineer\")\n \n # AWS Cloud resources\n with Cluster(\"AWS Cloud\"):\n # EC2 instance for management\n ec2 = EC2(\"Bastion Host\")\n \n # EKS Kubernetes cluster\n eks = EKS(\"Kubernetes Cluster\")\n \n # Worker nodes\n with Cluster(\"Worker Nodes\"):\n workers = [EC2(\"Node 1\"), \n EC2(\"Node 2\")]\n \n # CloudFormation for deployment\n cfn = Cloudformation(\"CloudFormation\")\n \n # IAM for access control\n iam = IAM(\"IAM Role\")\n \n # Flow connections\n user &amp;gt;&amp;gt; ec2\n user &amp;gt;&amp;gt; iam\n iam &amp;gt;&amp;gt; eks\n cfn &amp;gt;&amp;gt; eks\n cfn &amp;gt;&amp;gt; workers\n eks &amp;gt;&amp;gt; workers",
 ⋮ "filename": "simple_kubernetes_setup",
 ⋮ "workspace_dir": "/home/dd"
 ⋮ },
 ⋮ "name": "generate_diagram"
 ⋮ }
 ⋮
 ● Completed in 0.455s

## 🛠️ Using tool: fs_read (trusted)
 ⋮
 ● Reading images:
/home/dd/generated-diagrams/simple_kubernetes_setup.png
 ⋮
 ● Completed in 0.0s

The diagram shows a simple Kubernetes cluster setup in AWS Cloud. Here's what it illustrates:

1. A DevOps Engineer (you) is the starting point, connecting to three key components:
   • A Bastion Host (EC2 instance) for secure remote access to your infrastructure
   • IAM Role for authentication and authorization
   • CloudFormation for infrastructure deployment

2. The CloudFormation stack provisions and manages:
   • The Kubernetes Cluster (Amazon EKS)
   • Worker Nodes (EC2 instances running in a cluster)

3. The IAM Role connects to the Kubernetes Cluster, enabling secure access using AWS IAM authentication

4. The Kubernetes Cluster manages the Worker Nodes (Node 1 and Node 2)

This architecture follows AWS best practices by:
• Using a bastion host for secure access
• Implementing IAM for authentication
• Using CloudFormation for infrastructure as code
• Deploying worker nodes in a cluster for high availability

This simple setup provides all the essential components needed to launch, connect to, and manage a Kubernetes cluster on AWS while maintaining 
security and following infrastructure as code principles.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fieoh9nzdwpct20gv0png.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%2Fieoh9nzdwpct20gv0png.png" alt="11" width="800" height="786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This prompt shows how you can use &lt;strong&gt;Amazon Q&lt;/strong&gt; like a developer co-pilot in the terminal. By entering a clear query, Q:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understands your local environment (WSL + Ubuntu)&lt;/li&gt;
&lt;li&gt;Connects the flow from your &lt;strong&gt;local system&lt;/strong&gt; , through &lt;strong&gt;Amazon Q CLI&lt;/strong&gt; , into the &lt;strong&gt;MCP Server&lt;/strong&gt; , and finally to &lt;strong&gt;AWS services&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Automatically generates a clear, labeled architecture diagram to visualize the full modernization path&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reference link :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-in-IDE-setup.html" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Amazon Q Developer IDE Setup&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp-configuration.html" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;MCP configuration&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments —I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>awscommunitybuilder</category>
      <category>aws</category>
      <category>mcpserver</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>Build a Smart Trading Assistant with Kite MCP Server and Claude Sonnet 4</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Thu, 12 Feb 2026 13:20:29 +0000</pubDate>
      <link>https://forem.com/dineshrajdhanapathydd/build-a-smart-trading-assistant-with-kite-mcp-server-and-claude-sonnet-4-5e2k</link>
      <guid>https://forem.com/dineshrajdhanapathydd/build-a-smart-trading-assistant-with-kite-mcp-server-and-claude-sonnet-4-5e2k</guid>
      <description>&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%2Ftn7esyo7fw8tcuqx5pd3.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%2Ftn7esyo7fw8tcuqx5pd3.png" alt="1" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Ai generated image — Charts terminal&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI assist in determining the current performance of your stocks by analysing your portfolio. That future has arrived with Zerodha’s most recent Kite MCP (Model Context Protocol) version. Through the MCP, you can ask Claude to work with your Zerodha account. Through this connection, investors may ask sophisticated market questions in plain English and communicate with their portfolio. This integration will fundamentally alter your investment process, regardless of your level of experience. We will go into great detail in this guide on how to integrate the Zerodha Kite MCP server with Claude and use it to revolutionise our investment workflow.&lt;/p&gt;
&lt;h4&gt;
  
  
  What is Kite MCP?
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Kite MCP&lt;/strong&gt; Server is a Zerodha-developed backend server program that integrates smoothly with the Kite Connect &lt;strong&gt;API&lt;/strong&gt;. It enables you to programmatically manage your trading account, automate activities, and retrieve market data using a local or hosted server setup. It acts as an intermediary between your application and Zerodha’s trading infrastructure. &lt;strong&gt;Kite MCP&lt;/strong&gt; stands for &lt;strong&gt;Model Context Protocol&lt;/strong&gt;  — a new way to bridge your &lt;strong&gt;LLM (like Claude Sonnet 4)&lt;/strong&gt; with &lt;strong&gt;Zerodha’s trading tools&lt;/strong&gt; , such as holdings, orders, P&amp;amp;L, and market data.&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%2Fd37er5l6mk7n2knfwv7d.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%2Fd37er5l6mk7n2knfwv7d.png" alt="2" width="779" height="558"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Kite MCP Ecosystem&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Why It Matters
&lt;/h4&gt;

&lt;p&gt;Traditionally, you’d use the &lt;strong&gt;Kite Connect API&lt;/strong&gt;  to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write manual code&lt;/li&gt;
&lt;li&gt;Query stock data&lt;/li&gt;
&lt;li&gt;Analyze it yourself&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But with &lt;strong&gt;Kite MCP&lt;/strong&gt; , you can just ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Check the NIFTY 50 index performance for the last 10 trading days?”&lt;br&gt;&lt;br&gt;
“Check my portfolio which stocks perform well?”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And &lt;strong&gt;Claude AI&lt;/strong&gt; responds with insights, using &lt;strong&gt;live, contextual data&lt;/strong&gt;.&lt;/p&gt;
&lt;h4&gt;
  
  
  How It Works
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Acts as a connector&lt;/strong&gt; : MCP links your LLM to Zerodha’s APIs.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Provides context&lt;/strong&gt; : Supplies Claude with current portfolio data, past trades, etc.&lt;/li&gt;
&lt;li&gt;🔄 &lt;strong&gt;Enables dynamic actions&lt;/strong&gt; : Claude can not only “see” your data but also suggest or trigger actions like rebalancing or placing orders (if permitted).&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Kite MCP turns your AI into a smart stock assistant that understands and acts on your portfolio data — in real time.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
  
  
  Prerequisites:
&lt;/h4&gt;

&lt;p&gt;Prior to starting, make sure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have &lt;a href="http://Node.js%E2%80%8A-%E2%80%8ADownload%20Node.js%C2%AE%20nodejs.org" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt; (version 14 or above) installed on your computer.&lt;/li&gt;
&lt;li&gt;Your preferred desktop AI helper app is &lt;a href="https://claude.ai/download" rel="noopener noreferrer"&gt;Claude Desktop&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A Zerodha trading account with free access to the Kite Connect API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out the Kite MCP Server on GitHub:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://mcp.so/server/kite-mcp-server/zerodha" rel="noopener noreferrer"&gt;Kite MCP Server MCP Server&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/zerodha/kite-mcp-server" rel="noopener noreferrer"&gt;GitHub — zerodha/kite-mcp-server: Zerodha Kite MCP server&lt;/a&gt; &lt;a href="http://github.com/" rel="noopener noreferrer"&gt;github.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
  
  
  Setup Instructions:
&lt;/h4&gt;
&lt;h4&gt;
  
  
  1. Installing Node.js
&lt;/h4&gt;

&lt;p&gt;First, download Node from the official website &lt;a href="https://nodejs.org/en/download," rel="noopener noreferrer"&gt;https://nodejs.org/en/download,&lt;/a&gt; depending on your operating system.&lt;/p&gt;

&lt;p&gt;Once downloaded, use the following command to validate its installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75w9bpluw0a9huwnde69.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%2F75w9bpluw0a9huwnde69.png" alt="3" width="800" height="37"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;check node.js version&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Installing Claude Desktop
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;You can &lt;a href="https://claude.ai/download" rel="noopener noreferrer"&gt;download Claude&lt;/a&gt; directly from the official site, or clone the app repository to install it on your local machine for more control and customization.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
  
  
  Building &amp;amp; Installation (Debian/Ubuntu based)
&lt;/h4&gt;

&lt;p&gt;For Debian-based distributions (Debian, Ubuntu, Linux Mint, MX Linux, etc.), you can build Claude Desktop using the provided build script. Use command-line flags to specify the desired output format (.deb).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Clone this repository
git clone https://github.com/aaddrick/claude-desktop-debian.git
cd claude-desktop-debian
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhs02qju0hqcetlo5yedm.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%2Fhs02qju0hqcetlo5yedm.png" alt="4" width="800" height="203"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;clone claude-desktop-debian&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Build the package (Defaults to .deb)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./build.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxuec4jtdjo93b7ixi16.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%2Fwxuec4jtdjo93b7ixi16.png" alt="5" width="800" height="304"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;packages install&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Updating the Build Script&lt;/p&gt;

&lt;p&gt;When a new version of Claude Desktop is released, the script attempts to automatically detect the correct download URL based on your system architecture (amd64 or arm64). If the download URLs change significantly in the future, you may need to update the &lt;em&gt;CLAUDE_DOWNLOAD_URL&lt;/em&gt; variables near the top of &lt;em&gt;build.sh&lt;/em&gt;. The script should handle the rest of the build process automatically.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The script will automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check for and install required dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5oqiqgwbqj5l0yy896b.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%2Fe5oqiqgwbqj5l0yy896b.png" alt="6" width="800" height="180"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;complete claude desktop apps&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude apps installed successfully on your desktop!&lt;/strong&gt; You can now integrate them with the Kite MCP Server to start using AI-powered portfolio insights in real time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Uninstallation&lt;/p&gt;

&lt;p&gt;Debian Package (.deb)&lt;/p&gt;

&lt;p&gt;If you installed the .debpackage, you can uninstall it usingdpkg:&lt;code&gt;sudo dpkg -r claude-desktop&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you also want to remove configuration files (including MCP settings), usepurge: &lt;code&gt;sudo dpkg -P claude-desktop&lt;/code&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.amazonaws.com%2Fuploads%2Farticles%2Fvdgun3rbczdtxlr9c5q0.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%2Fvdgun3rbczdtxlr9c5q0.png" alt="7" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;claude signin page&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can sign in to Claude using your &lt;strong&gt;email and password&lt;/strong&gt; by choosing the &lt;strong&gt;“Continue with Google”&lt;/strong&gt; option on the Claude login page&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspjtp6p0ukvtfz12rwun.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%2Fspjtp6p0ukvtfz12rwun.png" alt="8" width="800" height="687"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;AI assistant&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clearly mention the AI assistant functionality.&lt;/li&gt;
&lt;li&gt;Click ‘I understand’ to continue the process.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frovms71hcio0s31cugnm.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%2Frovms71hcio0s31cugnm.png" alt="9" width="800" height="424"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;pricing model of claude&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;various plan prices in Claude, but we are using free only.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatug0d6o6vcdigp5369y.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%2Fatug0d6o6vcdigp5369y.png" alt="10" width="800" height="538"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;default page claude desktop&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finally set up my desktop application.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Configuring Claude Desktop for MCP
&lt;/h4&gt;

&lt;p&gt;we are using Claude’s desktop Application, we will need to change the settings file.&lt;/p&gt;

&lt;p&gt;To do this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Claude Settings.&lt;/li&gt;
&lt;li&gt;Then go to the Developer Section.&lt;/li&gt;
&lt;li&gt;Click on “Edit Config”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuhvlq2sspj2gge2hfjqv.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%2Fuhvlq2sspj2gge2hfjqv.png" alt="11" width="800" height="559"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Developer settings&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Look for “&lt;em&gt;claude_desktop_config.json&lt;/em&gt;”. If the file isn’t already there, please create it with the same name.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3v220k5qzne4vzq9owi.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%2Fv3v220k5qzne4vzq9owi.png" alt="12" width="800" height="261"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;config.json file&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Insert the following code into it and save the file. This code contains a link to the Kite MCP, which Claude will use to access the remote tools.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
   "mcpServers": {
       "kite": {
           "command": "npx",
           "args": ["mcp-remote", "https://mcp.kite.trade/sse"]
       }
   }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuzrllh9rthdw2mdf74ja.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%2Fuzrllh9rthdw2mdf74ja.png" alt="13" width="800" height="224"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;vs code config.json file&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To apply the modifications, save the file and restart Claude Desktop.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Troubleshooting Tips&lt;/p&gt;

&lt;p&gt;No “kite” option in Tools menu?&lt;br&gt;&lt;br&gt;
• Ensure you’ve saved the config properly and restarted the app.&lt;/p&gt;

&lt;p&gt;OAuth errors or “access denied”?&lt;br&gt;&lt;br&gt;
• Double-check your Zerodha API key permissions under the Kite developer dashboard.&lt;/p&gt;

&lt;p&gt;Delayed updates in portfolio metrics?&lt;br&gt;&lt;br&gt;
• MCP streams over SSE; verify your network allows long-lived HTTP connections to mcp.kite.trade.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You should now see Kite MCP now showing up inside the setting menu in the prompt window&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%2Fzxpjy32txswj2ldgweve.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%2Fzxpjy32txswj2ldgweve.png" alt="14" width="800" height="495"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;kite integration claude&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can now check the account from Kite (for example, ask about stock performance), and you should be prompted to visit a link.&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%2Fbbwnphwjwm9eh65lg8iv.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%2Fbbwnphwjwm9eh65lg8iv.png" alt="15" width="687" height="458"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;login kite link&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Navigate to that link, login into Kite, and then you will be required to authorise the Kite MCP app.&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%2Fiy6b0it9qrqwld35xnbu.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%2Fiy6b0it9qrqwld35xnbu.png" alt="16" width="384" height="477"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Authorize Kite MCP&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You should obtain the login successful screen and may navigate back to the Claude desktop app and prompt with Done/Continue to alert it that the login is done so that it can proceed with fetching the desired data.&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%2Firsczrsgyrgho2arfq67.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%2Firsczrsgyrgho2arfq67.png" alt="17" width="647" height="477"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Kite Login Successful&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Testing the Integration
&lt;/h4&gt;

&lt;p&gt;Now that we have successfully added the Zerodha Kite MCP server to Claude, it’s time to test it out.&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%2Fr0vumw3p7f2p7wtmt3dc.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%2Fr0vumw3p7f2p7wtmt3dc.png" alt="18" width="800" height="585"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;AI Investment Analysis&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Claude Prompt:
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Check the NIFTY 50 index performance for the last 10 trading days?”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This prompt will instruct Claude to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect to the &lt;strong&gt;Kite MCP Server&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Fetch the &lt;strong&gt;historical market data&lt;/strong&gt; for the NIFTY index&lt;/li&gt;
&lt;li&gt;Summarise it in a user-friendly format — such as daily % change, trends, and overall movement.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;When we enter the query, Claude correctly finds the Kite MCP AI tools and begins to enumerate the tools it will employ. It then prompts us to log in to Kite using the URL. When we click on the link and enter our account information, we will be logged in.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  output:
&lt;/h4&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%2Fa5ulr5o3yebvrudmtze6.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%2Fa5ulr5o3yebvrudmtze6.png" alt="19" width="745" height="834"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Nifty Index Performance&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude AI Response:&lt;/strong&gt; The Nifty has trended upward over the past 10 days, gaining about 1.52%. It broke above 25,000 on June 6 and has since been consolidating around that level.&lt;/p&gt;

&lt;h4&gt;
  
  
  Next Claude Prompt:
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Check my portfolio which stocks perform well”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  output:
&lt;/h4&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%2Fcdn-images-1.medium.com%2Fmax%2F582%2F1%2AIiszoVW1S1QJMrih0mS2-g.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%2Fcdn-images-1.medium.com%2Fmax%2F582%2F1%2AIiszoVW1S1QJMrih0mS2-g.png" alt="20" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;My portfolio performance&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude AI Response:&lt;/strong&gt; Your portfolio is well-diversified, and several high-potential stocks are already delivering impressive returns.&lt;/p&gt;

&lt;h4&gt;
  
  
  Kite MCP’s Data Security Highlights
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;User-Authorized Access Only&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude can access &lt;strong&gt;only the data explicitly authorised by the user&lt;/strong&gt;  — no blanket access is granted.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;No Credential Storage in Claude&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your &lt;strong&gt;Zerodha login credentials are never stored&lt;/strong&gt; in Claude. All authentication is securely handled by &lt;strong&gt;Zerodha’s systems&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Read-Only by Design&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Current operations are strictly &lt;strong&gt;read-only&lt;/strong&gt; , meaning &lt;strong&gt;no trades or changes can happen&lt;/strong&gt; without the user’s direct action or intent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Privacy-Centric Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zerodha designed Kite MCP with &lt;strong&gt;privacy and safety as top priorities&lt;/strong&gt; , ensuring control always stays with the user.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;The launch of &lt;strong&gt;Kite MCP&lt;/strong&gt; marks a major leap forward in AI-assisted trading. By integrating with Claude and other MCP-compatible clients, it transforms how traders interact with their portfolios, making insights, analytics, and decision-making as easy as asking a question.&lt;/p&gt;

&lt;p&gt;With the &lt;strong&gt;Kite MCP server running on Debian using Node.js&lt;/strong&gt; and connected seamlessly to your &lt;strong&gt;Kite apps&lt;/strong&gt; , you now have a &lt;strong&gt;personalised, secure, and intelligent stock assistant&lt;/strong&gt; right at your fingertips. This setup allows you to &lt;strong&gt;analyse your holdings, track performance, and make data-driven decisions&lt;/strong&gt;  — all through natural language.&lt;/p&gt;

&lt;p&gt;As AI in finance continues to evolve, this fusion of &lt;strong&gt;Zerodha’s secure infrastructure&lt;/strong&gt; and &lt;strong&gt;Claude’s contextual intelligence&lt;/strong&gt; is not just a tool; it’s a glimpse into the future of smart investing. Stay tuned, explore its full capabilities, and take control of your trading journey like never before.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments — I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>trading</category>
      <category>ai</category>
      <category>investment</category>
      <category>mcpserver</category>
    </item>
    <item>
      <title>From Vision to Interaction: A Workplace Dashboard That Works</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Tue, 10 Feb 2026 15:09:03 +0000</pubDate>
      <link>https://forem.com/dineshrajdhanapathydd/from-vision-to-interaction-a-workplace-dashboard-that-works-i4i</link>
      <guid>https://forem.com/dineshrajdhanapathydd/from-vision-to-interaction-a-workplace-dashboard-that-works-i4i</guid>
      <description>&lt;p&gt;As part of a hands-on challenge, I built a &lt;strong&gt;fully interactive, responsive company dashboard&lt;/strong&gt; from scratch. Designed for &lt;strong&gt;TechFlow Innovations&lt;/strong&gt; , this dashboard acts as a central hub for company updates, team recognition, real-time metrics, events, and tools—all wrapped in a modern, accessible UI. This journey helped me sharpen my &lt;strong&gt;front-end, UI/UX, and interactive JavaScript skills&lt;/strong&gt; while following industry best practices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📄 GitHub Link:&lt;/strong&gt; &lt;a href="https://github.com/dineshrajdhanapathyDD/TechFlow-Innovations.git" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;TechFlow Innovations&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jloxj6cgcgbvdaavhi7.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%2F5jloxj6cgcgbvdaavhi7.png" alt="1" width="800" height="464"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;TechFlow Dashboard&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔧 What I Built
&lt;/h3&gt;

&lt;p&gt;This dashboard wasn’t just a visual project — it combined &lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt; with a modular architecture to handle dynamic content and UI responsiveness. Below is a quick breakdown of the major components I built:&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 1. Project Setup
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Semantic HTML structure with proper meta tags.&lt;/li&gt;
&lt;li&gt;CSS foundation with resets, variables, design tokens, and a responsive grid.&lt;/li&gt;
&lt;li&gt;JavaScript module structure with utility functions and interactivity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 2. Header &amp;amp; Navigation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Company branding with animated logo and gradient styles.&lt;/li&gt;
&lt;li&gt;Hamburger menu for mobile.&lt;/li&gt;
&lt;li&gt;User profile section with avatar and dynamic greeting.&lt;/li&gt;
&lt;li&gt;Search bar with form accessibility.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 3. Responsive Dashboard Grid
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;CSS Grid layout with named grid areas.&lt;/li&gt;
&lt;li&gt;Dynamic 12-column system with responsive adjustments.&lt;/li&gt;
&lt;li&gt;Widget containers with consistent spacing, actions, and themes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 4. Welcome &amp;amp; Quick Links Widgets
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Personalised greeting with date/time and rotating motivational quote.&lt;/li&gt;
&lt;li&gt;Weather display and quick action buttons.&lt;/li&gt;
&lt;li&gt;Quick Links section with icon-based navigation and hover effects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 5. Events &amp;amp; Announcements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Card-based event layout with urgent badges and filters.&lt;/li&gt;
&lt;li&gt;Announcement section with priority tags and interactivity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 6. Team Spotlight &amp;amp; Recognition
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Employee grid with avatars, roles, achievements, and status indicators.&lt;/li&gt;
&lt;li&gt;Animated member cards with carousel controls and contact shortcuts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6j770cq9a7eon0yf3c4b.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%2F6j770cq9a7eon0yf3c4b.png" alt="2" width="800" height="617"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Events, Announcement and Quick links&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 7. Company Metrics &amp;amp; System Status
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;KPI widgets with animated charts and progress bars.&lt;/li&gt;
&lt;li&gt;Real-time status indicators with alerts and maintenance messages.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 8. News &amp;amp; Tools Widgets
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Tabbed news system with categories and featured articles.&lt;/li&gt;
&lt;li&gt;Tools section with department-based app shortcuts and usage stats.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fklgwr6qfgkl5faywrbhg.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%2Fklgwr6qfgkl5faywrbhg.png" alt="3" width="800" height="858"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Company Metrics&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 9. Interactivity &amp;amp; Real-Time Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Auto-refreshing widgets with loading states and retry logic.&lt;/li&gt;
&lt;li&gt;Interactive transitions, accessibility-first animations, and performance optimisations.&lt;/li&gt;
&lt;li&gt;Offline/online detection with update pausing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgp4lm6n9bc77vaq8xru.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%2Fkgp4lm6n9bc77vaq8xru.png" alt="4" width="800" height="427"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Refresh button&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 My Journey &amp;amp; Key Learnings
&lt;/h3&gt;

&lt;p&gt;This build helped me sharpen several core engineering skills:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧠 &lt;strong&gt;Modular architecture &amp;amp; scalable layouts&lt;/strong&gt; with CSS Grid and Flexbox.&lt;/li&gt;
&lt;li&gt;🎯 &lt;strong&gt;Responsive &amp;amp; mobile-first design&lt;/strong&gt; across all screen sizes.&lt;/li&gt;
&lt;li&gt;🌈 &lt;strong&gt;Design systems&lt;/strong&gt; with reusable design tokens and themes.&lt;/li&gt;
&lt;li&gt;♿ &lt;strong&gt;Accessibility-first development&lt;/strong&gt; with semantic HTML and keyboard navigation.&lt;/li&gt;
&lt;li&gt;⚙️ &lt;strong&gt;Real-time interactivity&lt;/strong&gt; with JS-based state updates, skeleton loaders, and error handling.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📦 Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;HTML5&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS3&lt;/strong&gt; (Grid, Flexbox, Variables)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript (ES6+)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design Tokens &amp;amp; Responsive Breakpoints&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Accessible Animations (prefers-reduced-motion)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧩 What’s Next?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌐 Turn this into a React or Vue app with API integration.&lt;/li&gt;
&lt;li&gt;⚙️ Use this structure for building a dynamic dashboard with real backend data.&lt;/li&gt;
&lt;li&gt;🧪 Add Cypress or Playwright tests for widget behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Special thanks to Axero&lt;/strong&gt; for inspiring this challenge and highlighting the importance of creating meaningful digital workspaces. Their focus on human-centred design really influenced the direction of this project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments — I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>website</category>
      <category>html</category>
      <category>frontend</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Automating AWS S3 with Terraform</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Tue, 10 Feb 2026 15:04:25 +0000</pubDate>
      <link>https://forem.com/aws-builders/automating-aws-s3-with-terraform-1np3</link>
      <guid>https://forem.com/aws-builders/automating-aws-s3-with-terraform-1np3</guid>
      <description>&lt;p&gt;Over the past months in my cloud and DevOps journey, I’ve constantly been looking for ways to move beyond theory and gain &lt;em&gt;real, practical, hands-on experience&lt;/em&gt;. As an &lt;strong&gt;AWS Community Builder&lt;/strong&gt; , I’ve had the opportunity to learn from industry experts, collaborate with passionate builders, and explore how real-world cloud environments are automated and managed at scale.&lt;/p&gt;

&lt;p&gt;While working with AWS services, I realized that manually creating resources in the console is fine for learning but it doesn’t scale in real DevOps environments. That’s when I decided to start my &lt;strong&gt;Terraform journey&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%2Fvikw0rqh20c5edz8d0xh.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%2Fvikw0rqh20c5edz8d0xh.png" alt="1" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wanted to understand how automation to build, deploy, and manage infrastructure efficiently. Instead of creating cloud resources manually in the AWS Console, Infrastructure as Code (IaC) allows us to define infrastructure in reusable configuration files – making deployments faster, repeatable, and less error-prone.&lt;/p&gt;

&lt;p&gt;In this blog, I used &lt;strong&gt;Terraform&lt;/strong&gt; to automate the deployment of an &lt;strong&gt;AWS S3 bucket&lt;/strong&gt; and upload an object to it. I will demonstrate how to install and set up Terraform, configure AWS credentials securely via the terminal, and use Terraform to create and manage S3 buckets. The goal is to automate the provisioning of AWS S3 resources and upload files directly to S3 using Terraform configurations, ensuring efficient and repeatable infrastructure deployment. This was a great hands-on experience that strengthened my understanding of cloud automation and DevOps workflows.&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%2Fdeuuqq0a09b5yceus8ah.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%2Fdeuuqq0a09b5yceus8ah.png" alt="2" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download and Install Terraform&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Head to the official Terraform download page: &lt;a href="https://developer.hashicorp.com/terraform/downloads" rel="noopener noreferrer"&gt;https://developer.hashicorp.com/terraform/downloads&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;🍎 MacOS:&lt;/strong&gt; Select the Apple icon from the top left hand corner of your computer’s menu bar. Select &lt;strong&gt;About this Mac&lt;/strong&gt; , and note whether your &lt;strong&gt;Chip&lt;/strong&gt; says &lt;strong&gt;Apple&lt;/strong&gt; (pick ARM64) or &lt;strong&gt;Intel&lt;/strong&gt; (pick AMD64).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🖼️ Windows:&lt;/strong&gt; Select the &lt;strong&gt;Start&lt;/strong&gt; button and search for &lt;strong&gt;System Information&lt;/strong&gt;. Note whether your &lt;strong&gt;System Type&lt;/strong&gt; says x64-based or ARM-based PC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🐧 Linux:&lt;/strong&gt; Open a terminal and run &lt;strong&gt;uname -m&lt;/strong&gt;. Match the output to the correct Linux package option.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  What I Set Out to Do
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;I demonstrated how to:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install and configure Terraform&lt;/li&gt;
&lt;li&gt;Configure AWS credentials securely using AWS CLI&lt;/li&gt;
&lt;li&gt;Create and manage an S3 bucket through Terraform&lt;/li&gt;
&lt;li&gt;Upload a file to S3 using Terraform&lt;/li&gt;
&lt;li&gt;Destroy resources safely after use&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to automate AWS resource provisioning instead of doing it manually, following real-world DevOps practices.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Terraform?
&lt;/h3&gt;

&lt;p&gt;Terraform is an &lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt; tool that lets you build and manage cloud infrastructure using configuration files instead of creating resources manually. You define what you want, such as S3 buckets, servers, networks, or databases, and Terraform automatically provisions them for you based on that blueprint.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Infrastructure as Code (IaC)?
&lt;/h3&gt;

&lt;p&gt;Infrastructure as Code means managing infrastructure using code rather than manual setup in the cloud console. Because everything is defined in files, deployments are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;consistent&lt;/li&gt;
&lt;li&gt;repeatable&lt;/li&gt;
&lt;li&gt;easy to rebuild or modify&lt;/li&gt;
&lt;li&gt;less prone to human error&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Terraform is one of the most popular IaC tools because it supports multiple cloud providers like &lt;strong&gt;AWS, Azure, and Google Cloud&lt;/strong&gt; , making it ideal for scalable and multi-cloud environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a Terraform binary?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A Terraform binary is the main &lt;strong&gt;executable&lt;/strong&gt; file that lets you run Terraform commands on your system. It’s the core program your operating system uses to execute Terraform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is PATH?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PATH is a list of system folders where your computer looks for programs when you run a command in the terminal. It lets you run tools like terraform without typing their full file location.&lt;/p&gt;
&lt;h4&gt;
  
  
  Installing Terraform
&lt;/h4&gt;

&lt;p&gt;Terraform is a powerful IaC tool that allows you to define infrastructure using configuration files.&lt;/p&gt;
&lt;h4&gt;
  
  
  🍎🐧 MacOS / Linux — Add Terraform to PATH
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Open Terminal and navigate to the unzipped Terraform folder, e.g.:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ~/Downloads/terraform_1.10.x_xxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;(Optional) Confirm location:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pwd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Move the Terraform binary to /usr/local/bin:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo mv terraform /usr/local/bin/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Enter your system password if prompted.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You’ve just installed Terraform on your local computer. Now we’ll need to verify we’ve installed it correctly.&lt;/p&gt;
&lt;h4&gt;
  
  
  🖥️ Windows — Add Terraform to PATH
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;System Properties → Advanced → Environment Variables&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;System Variables&lt;/strong&gt; , select &lt;strong&gt;PATH → Edit&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;New&lt;/strong&gt; and add:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\terraform
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Save changes and open a &lt;strong&gt;new terminal session.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After installation, &lt;strong&gt;verify Terraform Installation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run the following command:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7c2930ij0zetospu15i0.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%2F7c2930ij0zetospu15i0.png" alt="3" width="491" height="97"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Terraform version output&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;✔️ Terraform was successfully installed.&lt;/p&gt;
&lt;h4&gt;
  
  
  📁 Setting Up the Terraform Project
&lt;/h4&gt;

&lt;p&gt;I created my project directory and configuration file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir ~/Desktop/DD_terraform
cd ~/Desktop/DD_terraform
touch main.tf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frc0trd9uqgws2v0g78zq.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%2Frc0trd9uqgws2v0g78zq.png" alt="4" width="786" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  What is main.tf?
&lt;/h4&gt;

&lt;p&gt;main.tf is the primary Terraform configuration file where you define how your infrastructure should be built. The main.tf file acts as the blueprint of the infrastructure Terraform will build.&lt;/p&gt;

&lt;h4&gt;
  
  
  How does Terraform use configuration files?
&lt;/h4&gt;

&lt;p&gt;Terraform uses configuration files (like main.tf) to describe the desired state of your infrastructure and then automatically creates or updates resources to match that state.&lt;/p&gt;

&lt;p&gt;I will create a project directory and set up the main Terraform file (main.tf) because it organizes the infrastructure code and defines the resources to be provisioned. This structure makes the project clear, reusable, and easier for Terraform to manage and apply changes.&lt;/p&gt;

&lt;h4&gt;
  
  
  🧱 Defining the AWS S3 Bucket in Terraform
&lt;/h4&gt;

&lt;p&gt;Inside main.tfI defined the AWS provider and S3 bucket:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open main.tf in a text editor like &lt;strong&gt;VS Code, NotePad++&lt;/strong&gt; or &lt;strong&gt;TextEdit.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Copy and paste the following code into main.tf
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;provider "aws" {
  region = "us-east-2 #update the region closest to you
}
resource "aws_s3_bucket" "my_bucket" {
  bucket = "unique-bucket-{yourname}-{random number}" #Ensure the bucket name is unique
}
resource "aws_s3_bucket_public_access_block" "my_bucket_public_access_block" {
  bucket = aws_s3_bucket.my_bucket.id
  block_public_acls = true
  ignore_public_acls = true
  block_public_policy = true
  restrict_public_buckets = true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0bdrb36fya14x2k64oj.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%2Fi0bdrb36fya14x2k64oj.png" alt="5" width="800" height="331"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;main.tf configuration&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Bucket names must be &lt;strong&gt;globally unique&lt;/strong&gt; , so I customized the bucket name accordingly.&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;What’s in this Terraform configuration?&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;provider “aws”&lt;/strong&gt;  — Tells Terraform to use AWS as the cloud provider and enables it to interact with AWS services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;resource “aws_s3_bucket” “my_bucket”&lt;/strong&gt;  — Creates an S3 bucket, with my_bucket used as a reference name inside the configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;resource “aws_s3_bucket_public_access_block”&lt;/strong&gt;  — Blocks public access to the bucket by enabling security settings that prevent public ACLs and policies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How are configuration files structured in Terraform?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terraform configuration files are structured in blocks&lt;/strong&gt; , where each block defines a specific part of the infrastructure.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Provider blocks&lt;/strong&gt; specify which cloud or platform (AWS, Azure, GCP, etc.) Terraform will use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource blocks&lt;/strong&gt; define the actual resources to create or manage, like S3 buckets, servers, or networks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The configuration is structured in provider and resource blocks, where each block defines a specific part of the infrastructure. This keeps the code modular, readable, and easy to maintain. For example, the provider block connects to AWS, while the S3 resource block defines the bucket.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visit the Terraform registry’s documentation on &lt;a href="https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket" rel="noopener noreferrer"&gt;S3 buckets.&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;What is the Terraform registry?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;The Terraform Registry is an online library of Terraform providers and modules. It contains documentation, examples, best practices, and configuration options. Developers can also publish modules there, allowing others to reuse them instead of writing everything from scratch.&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;What can I find in this aws_s3_bucket page?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;The aws_s3_bucket page in the Terraform documentation explains how to create and manage S3 buckets. It includes configuration options, properties, examples, and details on how the bucket integrates with other AWS services.&lt;/p&gt;

&lt;p&gt;I visited the Terraform documentation to understand how to use the aws_s3_bucket resource. It explains how to configure S3 buckets using arguments like bucket name, ACLs, and tags, and provides examples and best-practice guidance, helping me customize and extend my project confidently.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From the documentation, choose an additional configuration that you might want to add to your S3 bucket or the object you’ve uploaded.&lt;/li&gt;
&lt;li&gt;Write your configuration in main.tf&lt;/li&gt;
&lt;li&gt;Save your changes to main.tf&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgdm2wea1q1wgi1h5tjy9.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%2Fgdm2wea1q1wgi1h5tjy9.png" alt="6" width="798" height="158"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Tags&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I customized my S3 bucket by adding tags to help identify and organize resources. I used tags Environment = "Dev" to label its purpose and environment. I verified this customization in the AWS S3 console by checking the Tags section, where these labels appear, making the bucket easier to manage and filter in larger environments.&lt;/p&gt;
&lt;h4&gt;
  
  
  ⚙️ Initializing and Planning the Terraform Configuration
&lt;/h4&gt;

&lt;p&gt;I will initialize Terraform and run a plan because initialization sets up the project and downloads the required provider plugins, while the plan previews the changes Terraform will make in AWS. This helps verify the configuration before applying it and reduces the risk of errors or unexpected changes.&lt;/p&gt;

&lt;p&gt;I initialized Terraform using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This downloaded the AWS provider plugin and prepared the project.&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%2Fyy32kzhu6aitchxyzfjt.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%2Fyy32kzhu6aitchxyzfjt.png" alt="7" width="800" height="346"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;terraform init output&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Next, I previewed the changes Terraform would make:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform plan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This execution plan showed which resources would be created before anything was applied.&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%2Fbc9dy34abnkv21brumlf.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%2Fbc9dy34abnkv21brumlf.png" alt="8" width="800" height="575"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftfdbuqgaxv26epj4rsew.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%2Ftfdbuqgaxv26epj4rsew.png" alt="9" width="800" height="596"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;terraform plan output&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I ran terraform plan to generate an execution plan that previews the changes Terraform will make to my AWS infrastructure based on the configuration in main.tf. It shows which resources will be created, updated, or deleted, allowing me to review the configuration safely before applying any real changes.&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;you get an error?&lt;/strong&gt;
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;When I tried to plan my Terraform configuration, I received an error message that says the AWS provider couldn’t authenticate because my credentials were missing or incorrect. This happened because I hadn’t configured the AWS CLI properly or used invalid access keys. Terraform needs valid credentials to connect to AWS and manage resources, so the plan command fails without proper authentication setup.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  🔑 Configuring AWS CLI and Credentials
&lt;/h3&gt;

&lt;p&gt;To allow Terraform to authenticate with AWS, I installed AWS CLI and verified it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws --version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I will install the &lt;strong&gt;AWS CLI&lt;/strong&gt; , generate access keys, and configure the CLI so Terraform can securely authenticate with my AWS account. This ensures Terraform has the required permissions to create and manage resources like S3 buckets during deployment.&lt;/p&gt;

&lt;p&gt;Then configured my credentials:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;Access Key ID&lt;/li&gt;
&lt;li&gt;Secret Access Key&lt;/li&gt;
&lt;li&gt;AWS Region&lt;/li&gt;
&lt;li&gt;Output format (JSON)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This enabled &lt;strong&gt;secure programmatic access&lt;/strong&gt; for Terraform.&lt;/p&gt;

&lt;h3&gt;
  
  
  🪣 Creating the S3 Bucket with Terraform
&lt;/h3&gt;

&lt;p&gt;Once everything was configured, I deployed the infrastructure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform apply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I will apply my Terraform configuration because this command takes the planned changes and actually creates the defined infrastructure in this case, an S3 bucket on AWS. This is the step where Terraform provisions resources, after which I will verify the bucket in the S3 console to ensure it was created as defined in main.tf.&lt;/p&gt;

&lt;p&gt;After reviewing the plan, I confirmed with &lt;strong&gt;'yes',&lt;/strong&gt; and Terraform created the S3 bucket successfully.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj0fqntslsr3aay0620ag.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%2Fj0fqntslsr3aay0620ag.png" alt="10" width="800" height="574"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk346u69zhpxqrrivzfyx.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%2Fk346u69zhpxqrrivzfyx.png" alt="11" width="800" height="591"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;terraform apply output&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I ran terraform apply to execute the changes in my configuration and provision resources like the S3 bucket. This command creates, updates, or deletes resources in my AWS account based on main.tf, and it confirms the plan before applying changes turning the code into real infrastructure.&lt;/p&gt;

&lt;p&gt;Seeing the bucket appear in AWS was a very satisfying moment 🙂&lt;/p&gt;
&lt;h3&gt;
  
  
  💎 Uploading an Object to S3 Using Terraform
&lt;/h3&gt;

&lt;p&gt;For the project’s, I uploaded a file to the bucket using Terraform.&lt;/p&gt;

&lt;p&gt;I will update my Terraform configuration, reapply it, and document the changes to demonstrate how Terraform detects and applies infrastructure updates. By modifying settings like tags or versioning, I can show how changes are managed safely and reliably using Infrastructure as Code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add a New Image File&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://web-unified-docs-hashicorp.vercel.app/api/assets/terraform/latest/img/docs/intro-terraform-workflow.png" rel="noopener noreferrer"&gt;Download this image.&lt;/a&gt; To download it as an image, you can right click on this link and select &lt;strong&gt;Save Link As…&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I placed image.png inside my project folder and added:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;resource "aws_s3_object" "image" {
  bucket = aws_s3_bucket.my_bucket.id
  key = "image.png"
  source = "image.png"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwtz4uh07jpwbgbo6gwjs.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%2Fwtz4uh07jpwbgbo6gwjs.png" alt="12" width="800" height="467"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Add image resource&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Then I reapplied the configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform plan
terraform apply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We need to run terraform apply again because any changes made to the configuration must be applied to update the actual infrastructure. Terraform compares the current state with the new configuration and applies only the detected changes ensuring the deployed environment stays consistent with the code. Terraform detected the new resource and uploaded the file automatically.&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%2F5w8k293x96rvxeqjpxhw.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%2F5w8k293x96rvxeqjpxhw.png" alt="13" width="800" height="223"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;S3 bucket in AWS console&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To validate my update, I confirmed that terraform apply completed successfully, then checked the S3 console and verified that the image.jpg file appeared in my bucket. This confirmed that the Terraform changes were applied correctly and reflected in my AWS environment.&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%2Fdcs3wep8wbf2vlr4ply0.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%2Fdcs3wep8wbf2vlr4ply0.png" alt="14" width="800" height="304"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;uploaded image in S3 bucket&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I validated the upload by downloading and viewing the file inside AWS S3.&lt;/p&gt;
&lt;h3&gt;
  
  
  🧹 Cleaning Up — Destroying Resources
&lt;/h3&gt;

&lt;p&gt;To avoid keeping unused resources, I removed the infrastructure using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform destroy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Terraform deleted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The S3 bucket&lt;/li&gt;
&lt;li&gt;The uploaded object&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfeonx1to08r28nnncpk.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%2Fvfeonx1to08r28nnncpk.png" alt="15" width="800" height="72"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbknk6km3kxf9c9uyef23.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%2Fbknk6km3kxf9c9uyef23.png" alt="16" width="800" height="250"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;terraform destroy output&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I also deleted the IAM access key created for the project following security best practices.&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 Key Concepts I Learned
&lt;/h3&gt;

&lt;p&gt;This project helped me strengthen my understanding of:&lt;/p&gt;

&lt;p&gt;✔️ Infrastructure as Code (IaC)&lt;br&gt;&lt;br&gt;
 ✔️ Terraform providers and resource blocks&lt;br&gt;&lt;br&gt;
 ✔️ Terraform lifecycle&lt;br&gt;&lt;br&gt;
 init → plan → apply → destroy&lt;br&gt;&lt;br&gt;
 ✔️ State files and execution plans&lt;br&gt;&lt;br&gt;
 ✔️ Secure AWS authentication via CLI&lt;br&gt;&lt;br&gt;
 ✔️ S3 storage automation&lt;/p&gt;

&lt;p&gt;I also experienced how Terraform enables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;repeatable deployments&lt;/li&gt;
&lt;li&gt;reduced manual effort&lt;/li&gt;
&lt;li&gt;version-controlled infrastructure&lt;/li&gt;
&lt;li&gt;safer cloud operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub link: &lt;a href="https://github.com/dineshrajdhanapathyDD/Terraform-series.git" rel="noopener noreferrer"&gt;https://github.com/dineshrajdhanapathyDD/Terraform-series.git&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Terraform is a highly practical and in-demand skill for roles such as DevOps Engineer, DevSecOps Engineer, Platform Engineer, and Cloud Engineer. Through this project, I gained hands-on experience in real-world cloud automation from configuring AWS credentials to provisioning and managing S3 buckets using Infrastructure as Code.&lt;/p&gt;

&lt;p&gt;I worked with AWS S3 for storage and AWS CLI for authentication, and strengthened key Terraform concepts including providers, resource blocks, and state files. I also practiced the full Terraform workflow initialization, planning, applying changes, and updating infrastructure safely and consistently.&lt;/p&gt;

&lt;p&gt;This experience has motivated me to continue expanding my Terraform journey into areas like EC2 provisioning, VPC and networking automation, bucket versioning and lifecycle rules, and remote Terraform state management.&lt;/p&gt;

&lt;p&gt;Overall, this project was a great learning experience and a meaningful step forward in my cloud and DevOps journey&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments, I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to connect or dive deeper into cloud and DevOps, feel free to follow me on my socials:&lt;/p&gt;

&lt;p&gt;💼 &lt;a href="https://www.linkedin.com/in/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌&lt;/strong&gt; &lt;a href="https://x.com/DD_Dineshraj" rel="noopener noreferrer"&gt;&lt;strong&gt;X (formerly Twitter)&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻&lt;/strong&gt; &lt;a href="https://dev.to/dineshrajdhanapathydd"&gt;&lt;strong&gt;DEV Community&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🐙&lt;/strong&gt; &lt;a href="https://github.com/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌍&lt;a href="https://builder.aws.com/community/@dd1" rel="noopener noreferrer"&gt;&lt;strong&gt;AWS Builder Profile&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>iac</category>
      <category>s3</category>
      <category>terraform</category>
      <category>aws</category>
    </item>
    <item>
      <title>Getting Started with AWS Developer Tools for Modern DevOps &amp; CI/CD</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Fri, 29 Aug 2025 19:27:25 +0000</pubDate>
      <link>https://forem.com/aws-builders/getting-started-with-aws-developer-tools-for-modern-devops-cicd-29ch</link>
      <guid>https://forem.com/aws-builders/getting-started-with-aws-developer-tools-for-modern-devops-cicd-29ch</guid>
      <description>&lt;p&gt;In today’s cloud-native world, &lt;strong&gt;DevOps&lt;/strong&gt; and &lt;strong&gt;CI/CD (Continuous Integration and Continuous Delivery)&lt;/strong&gt; have become essential for faster and more reliable software delivery. &lt;a href="https://docs.aws.amazon.com/dtconsole/" rel="noopener noreferrer"&gt;&lt;strong&gt;AWS Developer Tools&lt;/strong&gt;&lt;/a&gt; offer a robust set of managed services designed to help developers and DevOps teams &lt;strong&gt;build, test, and deploy applications securely and at scale&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Press enter or click to view image in full size&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%2Fjsh1lx7a7s9cvo5kliae.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%2Fjsh1lx7a7s9cvo5kliae.png" alt="1" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whether you’re a beginner in the cloud or looking to streamline your software lifecycle, this guide introduces the core &lt;a href="https://docs.aws.amazon.com/dtconsole/" rel="noopener noreferrer"&gt;AWS Dev Tools&lt;/a&gt; and related services that support efficient application delivery.&lt;/p&gt;

&lt;p&gt;As part of the &lt;a href="https://aws.amazon.com/developer/community/community-builders/" rel="noopener noreferrer"&gt;AWS Community Builders program&lt;/a&gt;, I had the exciting opportunity to dive deep into the &lt;a href="https://docs.aws.amazon.com/dtconsole/" rel="noopener noreferrer"&gt;&lt;strong&gt;AWS Developer Tools&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;(DevTools)&lt;/strong&gt; track. This experience has allowed me to gain &lt;strong&gt;hands-on exposure&lt;/strong&gt; to some of the most powerful tools AWS provides to build, test, and deploy software in a scalable, secure, and automated way.&lt;/p&gt;

&lt;p&gt;In AWS, &lt;a href="https://aws.amazon.com/blogs/developer/" rel="noopener noreferrer"&gt;&lt;strong&gt;DevTools&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;blog (Developer&lt;/strong&gt; &lt;strong&gt;Tools&lt;/strong&gt;) refer to services that help developers and DevOps teams &lt;strong&gt;build, test, and deploy&lt;/strong&gt; applications quickly and securely. These tools are especially useful for automating CI/CD pipelines and managing infrastructure as code. In this article, I’d like to share my &lt;strong&gt;key takeaways, real-world examples, and insights&lt;/strong&gt; from working with these services.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What are Developer Tools?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Developer tools&lt;/strong&gt; are technologies that simplify and speed up software development. They act as a bridge between real-world problems and computer systems by using programming languages, frameworks, and platforms to abstract complexity. Instead of low-level coding, developers use tools like libraries, APIs, and software services to build solutions more efficiently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits of Developer Tools :&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Developer tools help software teams code, test, deploy, and monitor applications more efficiently. Key benefits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Better Code Quality&lt;/strong&gt;: Standardized libraries and frameworks help write clean, high-performance code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fewer Errors&lt;/strong&gt;: Debugging and testing tools catch bugs early, reducing costly production issues.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Platform Development&lt;/strong&gt;: Tools enable building apps that run across different devices using a single codebase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Faster Delivery&lt;/strong&gt;: Automation and CI/CD tools speed up development and release cycles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Improved Collaboration&lt;/strong&gt;: Version control and code review tools support teamwork on complex projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lower Costs&lt;/strong&gt;: Reusable components and DevOps practices reduce development time and expenses.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What are some types of developer tools?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You use different types of tools to support development workflow. Each tool is often specific to a programming language, platform, or purpose. The following are several common development tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Coding Tools&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;These tools help you write, compile, and build code efficiently. Examples include compilers, builders, libraries, frameworks, and SDKs that accelerate development.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Programming Support Tools&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Support tools like IDEs and version control systems streamline workflows, manage projects, and enable collaboration among developers working on the same codebase.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;DevOps Tools&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;DevOps tools connect development and operations, enabling faster releases and continuous feedback. They support CI/CD pipelines, infrastructure as code (IaC), and real-time monitoring.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Software Testing Tools&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Testing tools identify bugs, performance issues, and security risks. They include debuggers, profilers, bug trackers, and security scanners like SAST and DAST.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How AWS Supports Developer Tool Needs :&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS offers a suite of developer tools to help you code, build, test, and deploy applications faster in the cloud. You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Use IDEs, SDKs, and CLI tools for seamless AWS integration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automate DevOps workflows with CI/CD pipelines&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Debug and manage code directly from your editor or browser&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get ML-powered code insights and best-practice suggestions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monitor app performance with built-in observability tools&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Press enter or click to view image in full size&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%2Fgbktewadmw2bx0gu5scc.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%2Fgbktewadmw2bx0gu5scc.png" alt="2" width="800" height="1381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🔧 Core AWS Developer Tools Services&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. AWS CodeCommit&lt;/strong&gt; — A secure, scalable, and managed &lt;strong&gt;Git-based source control service&lt;/strong&gt;, similar to GitHub or GitLab. It enables teams to collaborate on code securely within AWS.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A fintech startup replaces GitHub with &lt;strong&gt;CodeCommit&lt;/strong&gt; to meet security compliance. Developers push code to a private Git repo directly inside AWS, integrating it with CodePipeline for secure deployment.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We needed our code to stay within AWS due to internal audit rules — CodeCommit made that easy and seamless.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Since AWS CodeCommit is no longer available to new customers, you might want to consider alternative Git repository hosting services like GitHub, GitLab, Bitbucket, or AWS CodeStar Connections with these providers.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. AWS CodeBuild — A&lt;/strong&gt; fully managed &lt;strong&gt;build service&lt;/strong&gt; that compiles source code, runs tests, and produces build artifacts ready for deployment. You don’t need to manage your own build servers.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A media company builds its video processing Lambda functions using &lt;strong&gt;CodeBuild&lt;/strong&gt;, which compiles Python code, runs unit tests, and packages it — all automatically when code is pushed.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Instead of managing Jenkins build agents, we just let CodeBuild handle parallel builds for all our Lambda microservices.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;3. AWS CodeDeploy&lt;/strong&gt; — Automates the &lt;strong&gt;deployment&lt;/strong&gt; of applications to EC2 instances, Lambda functions, or on-prem servers, with built-in strategies like blue/green and rolling updates.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A logistics firm uses &lt;strong&gt;CodeDeploy&lt;/strong&gt; to update EC2 instances running tracking software, using &lt;strong&gt;blue/green deployments&lt;/strong&gt; to minimize downtime.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We reduced downtime from 10 minutes to under 1 minute by using CodeDeploy’s blue/green strategy.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;4. AWS CodePipeline&lt;/strong&gt; — CI/CD orchestration tool that automates the build, test, and deploy phases.A continuous delivery service that helps you &lt;strong&gt;automate the entire release process&lt;/strong&gt; — from build and test to deployment.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A SaaS product team configures a full CI/CD pipeline using &lt;strong&gt;CodePipeline&lt;/strong&gt; with CodeCommit, CodeBuild, and CodeDeploy to automate production releases multiple times a day.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;No more manual releases — CodePipeline gave us a reliable way to go from pull request to production in 15 minutes.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;5. AWS CodeStar&lt;/strong&gt; — Unified UI to manage software development activities with integrated CI/CD. An integrated development environment for managing software projects on AWS with &lt;strong&gt;built-in CI/CD&lt;/strong&gt;, issue tracking, and collaboration tools.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A startup bootstraps a new microservice in under 5 minutes using &lt;strong&gt;CodeStar&lt;/strong&gt;, which sets up Git repo, CI/CD pipeline, and a sample Lambda app with monitoring.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;For a hackathon MVP, CodeStar helped us skip all the setup and just focus on coding.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;6. AWS Cloud9&lt;/strong&gt; — Cloud-based IDE for writing, running, and debugging code directly in the browser.A &lt;strong&gt;cloud-based IDE&lt;/strong&gt; accessible from a browser. It includes a code editor, terminal, and debugger — all pre-configured for AWS development.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A remote DevOps team uses &lt;strong&gt;Cloud9 IDE&lt;/strong&gt; to onboard new hires — developers log in via browser and start coding with preconfigured AWS CLI and credentials.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;No more messy laptop setup. We give new devs a Cloud9 URL and they’re ready in minutes.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Since AWS Cloud9 is no longer available to new customers, you might want to consider alternatives like GitHub Codespaces, Visual Studio Code with remote development, or Kiro IDEs with cloud integrations.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. AWS CodeGuru&lt;/strong&gt; — ML-powered code reviewer and performance profiler for applications.A machine learning-powered tool that provides &lt;strong&gt;automated code reviews&lt;/strong&gt; and &lt;strong&gt;performance profiling&lt;/strong&gt; to optimize applications.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: An enterprise uses &lt;strong&gt;CodeGuru Reviewer&lt;/strong&gt; to scan pull requests and detect costly Java code inefficiencies — like unnecessary database calls in loops.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;It flagged a function making 1000 DB calls in a loop — we saved hours of debugging thanks to CodeGuru.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recent updates: AWS announced that support for Amazon CodeGuru Security will end on November 20, 2025. After this date, you won’t be able to access the console, service resources, existing scans, or documentation.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Press enter or click to view image in full size&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%2Fc8l9w5xpkqj4biuy7jmt.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%2Fc8l9w5xpkqj4biuy7jmt.png" alt="3" width="800" height="1086"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;⚙️ Related Topics / Tools Supporting DevOps&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To support infrastructure automation and deployment, AWS also offers powerful &lt;strong&gt;DevOps-related services&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Press enter or click to view image in full size&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%2Fcjd01mvqtidu0ov4pj4c.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%2Fcjd01mvqtidu0ov4pj4c.png" alt="4" width="800" height="884"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. AWS CloudFormation&lt;/strong&gt; — Infrastructure as Code (IaC) tool to define AWS resources in YAML/JSON.An &lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt; service to define and provision AWS resources using JSON or YAML templates.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A DevOps team uses &lt;strong&gt;CloudFormation templates&lt;/strong&gt; to deploy identical infrastructure across dev, staging, and production in different AWS accounts.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;With one template, we set up VPCs, EC2, RDS, and IAM roles consistently — no more manual config drift.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;2. AWS CDK (Cloud Development Kit)&lt;/strong&gt; — Define cloud infrastructure using familiar programming languages.Define cloud infrastructure using programming languages like TypeScript, Python, Java, or C#.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A Python developer uses &lt;strong&gt;AWS CDK&lt;/strong&gt; to define S3, Lambda, and DynamoDB in TypeScript instead of YAML.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We built infrastructure just like writing application code. CDK made it readable, reusable, and testable.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recent updates: End of Support for Node.js 18.x: Effective November 30, 2025, AWS CDK drops support for Node.js 18.x (which reached EOL on April 30, 2025). This impacts the CLI, Construct Library, and ecosystem tools like JSII and Projen. Upgrade to an active LTS version like Node.js 22.x for security patches and new features.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. AWS Elastic Beanstalk&lt;/strong&gt; — Platform as a Service (PaaS) to deploy and manage applications automatically.A &lt;strong&gt;Platform-as-a-Service (PaaS)&lt;/strong&gt; offering that lets you deploy and manage applications without managing infrastructure.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A team deploys a Django web app using &lt;strong&gt;Elastic Beanstalk&lt;/strong&gt;, letting AWS manage load balancing, autoscaling, and health checks.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We focused on the app, not the infrastructure — Beanstalk auto-managed the rest.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;4. AWS SAM (Serverless Application Model)&lt;/strong&gt; — Framework for building serverless applications.A framework to build, test, and deploy &lt;strong&gt;serverless applications&lt;/strong&gt; using simplified syntax.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A team creates and tests a serverless application (API Gateway + Lambda + DynamoDB) locally using the &lt;strong&gt;AWS SAM CLI&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We simulated API calls locally and deployed serverless stacks with one command using SAM.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;5. AWS Amplify&lt;/strong&gt; — Full-stack development platform for frontend + backend apps.A full-stack platform for developing web and mobile applications with built-in &lt;strong&gt;backend support&lt;/strong&gt; (Auth, API, storage).&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A solo developer builds a React app with Amplify Hosting, Auth, GraphQL API, and file storage — without managing backend servers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Amplify let me go from idea to full-stack app in 2 days — all hosted and integrated with CI/CD.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Recently, I completed a project using AWS Amplify — a powerful service to build, deploy, and host full-stack applications with ease. With just a few steps, Amplify lets you connect your frontend, backend, and CI/CD for seamless app hosting.&lt;/p&gt;

&lt;p&gt;👉 Check out my project and explore how you can host your own apps with Amplify:  &lt;a href="https://builder.aws.com/content/31idxVxBul5kfR34ms8D0ru4LGM/building-my-serverless-portfolio-website-on-aws" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;building-my-serverless-portfolio-website-on-aws&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. AWS X-Ray&lt;/strong&gt; — Distributed tracing system for debugging and analyzing microservices-based apps.A distributed &lt;strong&gt;tracing tool&lt;/strong&gt; for debugging microservices and understanding application performance bottlenecks.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A payment service team traces user requests through 10+ microservices using &lt;strong&gt;X-Ray&lt;/strong&gt;, pinpointing a latency issue in an SQS queue handler.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We visualized the request path and found the bottleneck in under 10 minutes with X-Ray.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Press enter or click to view image in full size&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%2F6cxp82oy6s8797alpvqq.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%2F6cxp82oy6s8797alpvqq.png" alt="5" width="800" height="1432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;📊 Monitoring and Logging Tools for Dev&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To ensure application health and compliance, AWS provides powerful observability tools:&lt;/p&gt;

&lt;p&gt;Press enter or click to view image in full size&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%2Fl6rf2c2okmvp395bqfse.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%2Fl6rf2c2okmvp395bqfse.png" alt="6" width="800" height="935"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Amazon CloudWatch&lt;/strong&gt; — Monitoring and logging service.Monitors AWS resources and applications, collects logs and metrics, and triggers alerts based on thresholds.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: An e-commerce site tracks EC2 CPU usage and sets up &lt;strong&gt;CloudWatch Alarms&lt;/strong&gt; to scale out when CPU exceeds 70%.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;CloudWatch and autoscaling kept our Black Friday site alive without manual intervention.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Amazon CloudWatch Evidently, a service for safely launching features and running experiments with A/B testing, is scheduled for discontinuation on October 17, 2025, after which access to the console, resources, and capabilities will end. Active users can continue using it normally until that date, with critical security patches provided but no support for limit increase requests or new features.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. AWS CloudTrail&lt;/strong&gt; — Tracks user activity and API usage. Tracks &lt;strong&gt;user activity and API calls&lt;/strong&gt;, useful for security audits and troubleshooting.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: After a security incident, the IT team uses &lt;strong&gt;CloudTrail logs&lt;/strong&gt; to trace who changed IAM policies and when.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We identified the root cause of a permission error by inspecting the API call logs in CloudTrail.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;3. AWS Config&lt;/strong&gt; — Tracks AWS resource configurations and compliance over time.Monitors &lt;strong&gt;configuration changes&lt;/strong&gt; to AWS resources and checks for compliance with best practices.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A regulated company uses &lt;strong&gt;AWS Config&lt;/strong&gt; to ensure encryption is always enabled on S3 buckets and logs violations.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;With AWS Config, we automatically audit every bucket for compliance and get alerts if policies change.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Press enter or click to view image in full size&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%2Flcdxeexmazp60pm8jczg.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%2Flcdxeexmazp60pm8jczg.png" alt="7" width="800" height="2816"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🧩 3rd-Party Integrations Support&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;AWS Dev Tools work seamlessly with popular tools used by developers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. GitHub / GitLab / Bitbucket integration —&lt;/strong&gt; Easily integrate external Git repositories into CodePipeline or CodeBuild.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A developer team connects &lt;strong&gt;GitHub PRs&lt;/strong&gt; to &lt;strong&gt;CodePipeline&lt;/strong&gt;, so every merge triggers a new build and deployment automatically.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;No manual steps — every GitHub merge deploys our app in minutes via CodePipeline.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;2. Jenkins integration with AWS Dev Tools —&lt;/strong&gt; Connect Jenkins pipelines to AWS services for hybrid workflows.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A company uses &lt;strong&gt;Jenkins&lt;/strong&gt; for job orchestration but offloads heavy builds to &lt;strong&gt;AWS CodeBuild&lt;/strong&gt;, reducing build agent maintenance.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We let Jenkins coordinate the workflow, but let AWS handle the compute for builds.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;3. Terraform &amp;amp; AWS&lt;/strong&gt; — Though not AWS-native, commonly used for IaC with AWS.Not AWS-native, but widely used for Infrastructure as Code alongside AWS.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A DevOps team provisions complete VPC, ECS, and RDS stacks across multiple environments using &lt;strong&gt;Terraform modules&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Terraform gave us reproducible, version-controlled infrastructure across regions and accounts.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;4. Docker &amp;amp; Container Registries&lt;/strong&gt;: Integrate with Amazon ECR for storing and pulling container images.&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;Example&lt;/strong&gt;: A SaaS company packages its microservices as &lt;strong&gt;Docker containers&lt;/strong&gt; and pushes them to &lt;strong&gt;Amazon Elastic Container Registry (ECR)&lt;/strong&gt;. These images are then pulled automatically by &lt;strong&gt;ECS and EKS clusters&lt;/strong&gt; during deployment.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Every time we push a new Docker image to ECR, our CI/CD pipeline deploys it to production in minutes — no more manual uploads or broken versions.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Press enter or click to view image in full size&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%2F3q9kztxf0lphj2kzdxb8.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%2F3q9kztxf0lphj2kzdxb8.png" alt="8" width="800" height="644"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  &lt;strong&gt;Why AWS DevTools Matter&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Whether you’re setting up your first CI/CD pipeline or optimising an enterprise-grade DevOps workflow, &lt;strong&gt;AWS Developer Tools offer the building blocks&lt;/strong&gt; you need to succeed. With native integrations, scalability, and security, you can automate your entire development lifecycle on the cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Explore MCP (Model Context Protocol) can be used to access and work with AWS documentation of&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://github.com/dineshrajdhanapathyDD/AWSCB-DD/blob/main/Devtools%20Article%20ref/Devtool%20overview.md" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Dev Tools overview&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;&lt;em&gt;using kiro IDE, making developer tools more efficient and improving the way engineers discover, integrate, and use cloud resources .&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Along with accessing documentation, MCP can also integrate with tools like AWS Diagrams to automatically generate architecture visuals. This allows developers to pull AWS service icons directly from documentation, quickly create diagrams without leaving the IDE, and keep their documentation, configurations, and visuals in sync. By combining Amazon Q, MCP, and AWS Diagrams, teams can code, reference AWS docs, and generate architecture diagrams in one place check my blog&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://medium.com/@dineshrajdhanapathy/architecture-diagram-local-development-with-amazon-q-wsl-ubuntu-mcp-server-for-application-ddd424b0c14c" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;here&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Working with AWS DevTools helped me understand how &lt;strong&gt;modern CI/CD, DevOps, and Infrastructure as Code&lt;/strong&gt; can come together in a unified, secure, and scalable way.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The more I explored AWS Developer Tools, the more I realized they aren’t just for big teams — they’re perfect for anyone who wants to build reliable software delivery systems.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Stay tuned for my upcoming project on this topic — I’ll be sharing a hands-on article soon.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Being part of the &lt;strong&gt;AWS Community Builder program&lt;/strong&gt; gives me the opportunity to explore cutting-edge &lt;strong&gt;developer tools&lt;/strong&gt; and deepen my knowledge in &lt;strong&gt;cloud and DevOps&lt;/strong&gt;. It’s a great way to learn, build, and grow with support from the AWS community.&lt;/p&gt;

&lt;p&gt;AWS Community Builders program gave me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;🎓 Learning resources and mentorship&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🌍 Global community to share and grow&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All &lt;strong&gt;AWS&lt;/strong&gt; builders are welcome and encouraged to apply 👇&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add your name to waitlist for upcoming years&lt;/strong&gt; — &lt;a href="https://aws.amazon.com/developer/community/community-builders/" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;AWS Community Builders&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check before article here : &lt;a href="https://medium.com/@dineshrajdhanapathy/how-i-started-with-aws-and-became-an-aws-community-builder-89d894e75306" rel="noopener noreferrer"&gt;&lt;strong&gt;How I Started with AWS and Became an AWS Community Builder&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments — I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to connect or dive deeper into cloud and DevOps, feel free to follow me on my socials:&lt;/p&gt;

&lt;p&gt;💼 &lt;a href="https://www.linkedin.com/in/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌&lt;/strong&gt; &lt;a href="https://x.com/DD_Dineshraj" rel="noopener noreferrer"&gt;&lt;strong&gt;X (formerly Twitter)&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻&lt;/strong&gt; &lt;a href="https://dev.to/dineshrajdhanapathydd"&gt;&lt;strong&gt;DEV Community&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🐙&lt;/strong&gt; &lt;a href="https://github.com/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Redis AI Platform: Accelerating the Future of AI with Real-Time Data Intelligence</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Sun, 10 Aug 2025 19:33:49 +0000</pubDate>
      <link>https://forem.com/dineshrajdhanapathydd/redis-ai-platform-accelerating-the-future-of-ai-with-real-time-data-intelligence-5chm</link>
      <guid>https://forem.com/dineshrajdhanapathydd/redis-ai-platform-accelerating-the-future-of-ai-with-real-time-data-intelligence-5chm</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/redis-2025-07-23"&gt;Redis AI Challenge&lt;/a&gt;: Real-Time AI Innovators&lt;/em&gt;.&lt;/p&gt;

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




&lt;h3&gt;
  
  
  🚀 Beyond Simple Chatbots: Building High-Impact AI Applications
&lt;/h3&gt;

&lt;p&gt;In the rapidly evolving landscape of artificial intelligence, the difference between a good AI application and a transformative one often lies not in the model itself, but in the data infrastructure that powers it. The &lt;strong&gt;Redis AI Platform&lt;/strong&gt; represents a paradigm shift from traditional AI architectures, leveraging Redis as a high-performance real-time data layer to unlock unprecedented AI capabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 The Challenge: Moving Beyond Basic AI
&lt;/h3&gt;

&lt;p&gt;While the market is saturated with simple chatbots and basic AI interfaces, the real opportunity lies in building &lt;strong&gt;high-impact AI systems&lt;/strong&gt; that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Process and respond to data in &lt;strong&gt;real-time&lt;/strong&gt; (sub-100ms)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learn and adapt from user behavior &lt;strong&gt;instantly&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scale to handle &lt;strong&gt;millions of concurrent operations&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide &lt;strong&gt;intelligent recommendations&lt;/strong&gt; based on complex multi-modal data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optimize AI model performance through &lt;strong&gt;semantic caching&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;This project demonstrates how Redis transforms these challenges into competitive advantages.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏗️ Architecture Innovation: Redis as the AI Accelerator
&lt;/h3&gt;

&lt;h3&gt;
  
  
  The Traditional Problem
&lt;/h3&gt;

&lt;p&gt;Most AI applications suffer from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Slow data retrieval&lt;/strong&gt; from traditional databases&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cold start problems&lt;/strong&gt; with recommendation systems&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Expensive LLM calls&lt;/strong&gt; without intelligent caching&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Disconnected data silos&lt;/strong&gt; that prevent real-time learning&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Redis Solution
&lt;/h3&gt;

&lt;p&gt;Our platform leverages Redis’s unique capabilities:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Multi-Modal   │    │   Redis Stack   │    │   AI Models     │
│   Data Ingestion│◄──►│   (Real-time)   │◄──►│   (Optimized)   │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         ▼                       ▼                       ▼
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Vector Search │    │   Semantic      │    │   Feature       │
│   Engine        │◄──►│   Caching       │◄──►│   Streaming     │
└─────────────────┘    └─────────────────┘    └─────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  💡 High-Impact Use Cases Implemented
&lt;/h3&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%2Flx095aycgjrwx4tjqok8.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%2Flx095aycgjrwx4tjqok8.png" alt="2" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Vector Search-Driven Recommendations 🔍
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The Innovation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Real-time similarity matching across text, images, audio, and code&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sub-100ms response times for complex multi-modal queries&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dynamic recommendation updates based on user behavior&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Technical Implementation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Real-time vector similarity search
const searchResults = await vectorSearch.findSimilar({
    query: userInput,
    modalities: ['text', 'image', 'audio'],
    threshold: 0.85,
    realTimeWeighting: true
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Business Impact:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;10–20x faster&lt;/strong&gt; recommendations than traditional systems&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;50% higher engagement&lt;/strong&gt; through real-time personalization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Seamless multi-modal&lt;/strong&gt; content discovery&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Semantic Caching for LLM Optimization ⚡
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The Innovation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Intelligent caching of LLM responses based on semantic similarity&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dramatic reduction in API costs and response times&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Context-aware cache invalidation&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Technical Implementation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Semantic cache with intelligent similarity matching
const cachedResponse = await semanticCache.get({
    query: userQuery,
    context: conversationContext,
    similarityThreshold: 0.9
});
if (!cachedResponse) {
    const llmResponse = await aiModel.generate(userQuery);
    await semanticCache.set(userQuery, llmResponse, {
        ttl: 3600,
        semanticTags: extractTags(userQuery)
    });
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Business Impact:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;80% reduction&lt;/strong&gt; in LLM API costs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;5x faster&lt;/strong&gt; response times for similar queries&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Intelligent cache warming&lt;/strong&gt; based on usage patterns&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Real-Time Feature Streaming for ML Workflows 📊
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The Innovation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Live feature computation and streaming to ML models&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Real-time model performance monitoring and adaptation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automated feature engineering pipeline&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Technical Implementation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Real-time feature streaming
const featureStream = await featureStore.createStream({
    features: ['user_behavior', 'content_engagement', 'temporal_patterns'],
    updateFrequency: 'realtime',
    aggregationWindow: '5m'
});
featureStream.on('update', async (features) =&amp;gt; {
    await mlModel.updateFeatures(features);
    await performanceMonitor.track(features);
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Business Impact:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time model adaptation&lt;/strong&gt; to changing patterns&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;90% reduction&lt;/strong&gt; in feature engineering time&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Continuous learning&lt;/strong&gt; without batch processing delays&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Collaborative AI Workspaces 👥
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The Innovation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Shared AI contexts across multiple users and sessions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Real-time knowledge graph updates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Collaborative learning from team interactions&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Technical Implementation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Collaborative workspace with shared AI context
const workspace = await collaborativeAI.createWorkspace({
    participants: teamMembers,
    sharedContext: true,
    realTimeSync: true
});
workspace.on('knowledge_update', async (update) =&amp;gt; {
    await knowledgeGraph.addNode(update);
    await notifyParticipants(update);
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Business Impact:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Team AI intelligence&lt;/strong&gt; that grows with collaboration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Shared learning&lt;/strong&gt; across organizational boundaries&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time knowledge&lt;/strong&gt; synchronization&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📈 Performance Achievements
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Speed Benchmarks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sub-100ms&lt;/strong&gt; vector search responses&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;10–20x throughput&lt;/strong&gt; improvement through request batching&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;50–90% latency reduction&lt;/strong&gt; via intelligent caching&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time collaboration&lt;/strong&gt; with &amp;lt;50ms synchronization&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cost Optimization
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;80% reduction&lt;/strong&gt; in LLM API costs through semantic caching&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;60% lower infrastructure&lt;/strong&gt; costs through efficient data structures&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;90% faster development&lt;/strong&gt; cycles with real-time debugging&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Scalability Metrics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Millions of vectors&lt;/strong&gt; searchable in real-time&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Thousands of concurrent&lt;/strong&gt; collaborative sessions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic scaling&lt;/strong&gt; based on demand patterns&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F747xzgdrjbh3agg4iw9o.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%2F747xzgdrjbh3agg4iw9o.png" alt="3" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Redis 8
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🛠️ Technical Innovation Highlights
&lt;/h3&gt;

&lt;h3&gt;
  
  
  1. Multi-Modal Vector Search Engine
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Advanced vector search with cross-modal capabilities
const results = await searchEngine.query({
    text: "machine learning algorithms",
    image: userUploadedImage,
    audio: voiceQuery,
    filters: { domain: "AI", recency: "1week" },
    crossModalBoost: true
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Adaptive Learning System
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Real-time behavioral analysis and adaptation
const userProfile = await adaptiveLearning.analyzeUser({
    interactions: recentInteractions,
    preferences: inferredPreferences,
    context: currentSession
});
await personalizeExperience(userProfile);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Intelligent Model Routing
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Dynamic routing to optimal AI models
const optimalModel = await modelRouter.selectBest({
    query: userInput,
    performance: realTimeMetrics,
    cost: budgetConstraints,
    latency: responseTimeRequirements
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxmd8y9tfiohwlf5vh9fh.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%2Fxmd8y9tfiohwlf5vh9fh.png" alt="5" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🌟 Real-World Applications
&lt;/h3&gt;

&lt;h3&gt;
  
  
  E-Commerce Intelligence
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time product recommendations&lt;/strong&gt; based on browsing behavior&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Visual search&lt;/strong&gt; across product catalogs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dynamic pricing&lt;/strong&gt; optimization&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Content Platforms
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Semantic content discovery&lt;/strong&gt; across multiple media types&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time trend analysis&lt;/strong&gt; and content optimization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Personalized content&lt;/strong&gt; generation&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Enterprise AI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Intelligent document search&lt;/strong&gt; across organizational knowledge&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time collaboration&lt;/strong&gt; on AI-powered projects&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated workflow&lt;/strong&gt; optimization&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Getting Started
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Quick Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Clone and start the platform
git clone https://github.com/dineshrajdhanapathyDD/Redis-AI.git
cd Redis-AI

# Start Redis with AI modules
docker-compose up -d redis-stack
# Run the comprehensive demo
npm run demo
# Access the web interface
open http://localhost:3001
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7b23ue0z3m3tyqeb2aya.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%2F7b23ue0z3m3tyqeb2aya.png" alt="1" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features to Explore
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multi-modal search&lt;/strong&gt; — Try searching across different content types&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time recommendations&lt;/strong&gt; — Watch suggestions adapt to your behavior&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaborative workspaces&lt;/strong&gt; — Experience shared AI intelligence&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance monitoring&lt;/strong&gt; — See real-time metrics and optimizations&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🎯 Why This Matters: The Future of AI
&lt;/h3&gt;

&lt;p&gt;This project demonstrates that the future of AI isn’t just about better models — it’s about &lt;strong&gt;intelligent data infrastructure&lt;/strong&gt; that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;React in real-time&lt;/strong&gt; to changing conditions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learn continuously&lt;/strong&gt; from user interactions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scale efficiently&lt;/strong&gt; without compromising performance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Optimize costs&lt;/strong&gt; through intelligent caching and routing&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Competitive Advantage
&lt;/h3&gt;

&lt;p&gt;Organizations using this approach gain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;10x faster&lt;/strong&gt; time-to-insight&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Significantly lower&lt;/strong&gt; operational costs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Higher user engagement&lt;/strong&gt; through personalization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalable AI infrastructure&lt;/strong&gt; that grows with demand&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔮 What’s Next
&lt;/h3&gt;

&lt;p&gt;The Redis AI Platform represents just the beginning. Future enhancements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Federated learning&lt;/strong&gt; across distributed Redis clusters&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Advanced multi-modal&lt;/strong&gt; AI capabilities&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated model optimization&lt;/strong&gt; and deployment&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enterprise-grade&lt;/strong&gt; security and compliance features&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📊 Challenge Results
&lt;/h3&gt;

&lt;p&gt;This project successfully demonstrates:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Beyond Simple Chatbots&lt;/strong&gt; — Multi-modal AI with real-time adaptation&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;High-Impact Use Cases&lt;/strong&gt; — Vector search, semantic caching, feature streaming&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Redis as AI Accelerator&lt;/strong&gt; — Sub-100ms performance with intelligent caching&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Production-Ready&lt;/strong&gt; — Scalable architecture with comprehensive monitoring&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Innovation&lt;/strong&gt; — Novel approaches to AI infrastructure challenges&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%2Fdp2optonqzn6fscim1n4.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%2Fdp2optonqzn6fscim1n4.png" alt="6" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The Redis AI Platform proves that with the right data infrastructure, AI applications can transcend traditional limitations and deliver transformative user experiences. This is how Redis accelerates the future of AI.&lt;/strong&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GitHub Link : &lt;a href="https://github.com/dineshrajdhanapathyDD/Redis-AI" rel="noopener noreferrer"&gt;dineshrajdhanapathyDD/Redis-AI: An innovative AI-powered application that leverages Redis as a real-time data layer to accelerate cutting-edge AI workflows.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Live Demo&lt;/strong&gt;: &lt;a href="http://localhost:3001/" rel="noopener noreferrer"&gt;http://localhost:3001&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;RedisInsight&lt;/strong&gt;: &lt;a href="http://localhost:8001/" rel="noopener noreferrer"&gt;http://localhost:8001&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;API Documentation&lt;/strong&gt;: &lt;code&gt;/docs/api/README.md&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance Benchmarks&lt;/strong&gt;: &lt;code&gt;/docs/performance/README.md&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deployment Guide&lt;/strong&gt;: &lt;code&gt;/docs/deployment/README.md&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Built for the Redis AI Challenge — Demonstrating the power of Redis as a real-time AI data layer.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments — I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to connect or dive deeper into cloud and DevOps, feel free to follow me on my socials:&lt;/p&gt;

&lt;p&gt;💼 &lt;a href="https://www.linkedin.com/in/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌&lt;/strong&gt; &lt;a href="https://x.com/DD_Dineshraj" rel="noopener noreferrer"&gt;&lt;strong&gt;X (formerly Twitter)&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻&lt;/strong&gt; &lt;a href="https://dev.to/dineshrajdhanapathydd"&gt;&lt;strong&gt;DEV Community&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🐙&lt;/strong&gt; &lt;a href="https://github.com/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>redischallenge</category>
      <category>devchallenge</category>
      <category>database</category>
      <category>ai</category>
    </item>
    <item>
      <title>From Idea to Infrastructure: How Kiro AI Agents Empower My Portfolio Websites Build Smarter</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Mon, 28 Jul 2025 15:51:53 +0000</pubDate>
      <link>https://forem.com/kirodotdev/from-idea-to-infrastructure-how-kiro-ai-agents-empower-my-portfolio-websites-build-smarter-c86</link>
      <guid>https://forem.com/kirodotdev/from-idea-to-infrastructure-how-kiro-ai-agents-empower-my-portfolio-websites-build-smarter-c86</guid>
      <description>&lt;p&gt;One of the most rewarding aspects of being part of the &lt;a href="https://medium.com/@dineshrajdhanapathy/how-i-started-with-aws-and-became-an-aws-community-builder-89d894e75306" rel="noopener noreferrer"&gt;&lt;strong&gt;AWS Community Builders program&lt;/strong&gt;&lt;/a&gt; is the chance to gain early access to innovative tools , and today, I’m excited to share one that’s now available in public preview: &lt;a href="https://kiro.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;Kiro&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Through this program, I’ve had the opportunity to attend exclusive webinars, interact with AWS professionals, and learn directly from builders across the globe. These experiences have not only expanded my technical knowledge but also given me a broader perspective on how products are built, used, and evolved.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kiro.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;Kiro&lt;/strong&gt;&lt;/a&gt; is a perfect example of that journey, an agentic development environment that pushes the boundaries of productivity and redefines how we interact with code.&lt;/p&gt;

&lt;p&gt;I’ve been testing &lt;a href="https://kiro.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;Kiro&lt;/strong&gt;&lt;/a&gt; extensively, and while it’s still in its early stages, there’s no doubt that it’s already &lt;strong&gt;supercharged my productivity&lt;/strong&gt; as a cloud and DevOps engineer portfolio. Compared to traditional IDEs and even other agentic IDEs I’ve explored, Kiro stands out—not just as a &lt;strong&gt;VS Code fork&lt;/strong&gt;, but as a &lt;strong&gt;whole new development experience&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Then I found &lt;a href="https://kiro.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;Kiro&lt;/strong&gt;&lt;/a&gt;—a new kind of AI development agent that didn’t just write code. It collaborated. It adapted. And it helped me turn my idea into a working website using &lt;strong&gt;intelligent agent architecture and task list&lt;/strong&gt;, powered by hooks and steering inputs.&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%2Focspflcb44icarbjw6zr.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%2Focspflcb44icarbjw6zr.png" alt="1" width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One month ago, I found myself staring at a blank terminal. I had a clear vision: build my own website to showcase my skills as a &lt;strong&gt;Cloud and DevOps engineer&lt;/strong&gt; — from automated pipelines to smart infrastructure demos. I planned it all out: a sleek, professional design, responsive layout, project filtering, SEO, accessibility, and high performance. But turning that idea into a &lt;strong&gt;production-ready, secure, and scalable site&lt;/strong&gt; quickly became overwhelming. Despite my backend expertise, I found myself spending more time tweaking config files and solving deployment quirks than actually shipping features. What started as a portfolio turned into a real-world challenge — one that pushed me to rethink my own workflow.&lt;/p&gt;

&lt;p&gt;Enter &lt;a href="https://kiro.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;Kiro&lt;/strong&gt;&lt;/a&gt;, an agentic AI IDE that doesn’t just code — it &lt;strong&gt;understands your intent&lt;/strong&gt;, &lt;strong&gt;steers toward your goals&lt;/strong&gt;, and &lt;strong&gt;hooks into your logic&lt;/strong&gt;. That’s when things changed.&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%2Fywq8eatd3gidtpzkismp.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%2Fywq8eatd3gidtpzkismp.png" alt="2" width="277" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;kiro functions&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Kiro?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kiro.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;Kiro&lt;/strong&gt;&lt;/a&gt; is an AI assistant and IDE built specifically for developers. It combines the power of artificial intelligence with practical development tools to streamline your coding process. Unlike traditional IDEs, &lt;a href="https://kiro.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;Kiro&lt;/strong&gt;&lt;/a&gt; can understand natural language instructions, recommend code changes, and help troubleshoot issues in real-time.&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%2Fp85spiqvsgatjh0100dh.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%2Fp85spiqvsgatjh0100dh.png" alt="3" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complexity with Spec-Driven Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modern development often drowns in chaos, unclear requirements, scattered documentation, and disconnected tasks. &lt;strong&gt;Kiro changes that narrative&lt;/strong&gt; with a &lt;strong&gt;spec-driven development model&lt;/strong&gt; that brings structure to your workflow. It transforms your initial prompt into &lt;strong&gt;clear requirements&lt;/strong&gt;, &lt;strong&gt;system designs&lt;/strong&gt;, and &lt;strong&gt;actionable tasks,&lt;/strong&gt; all in one place.&lt;/p&gt;

&lt;p&gt;Whether you’re planning a microservice or a full-stack app, Kiro lets you &lt;strong&gt;collaborate directly within the spec pane&lt;/strong&gt;, aligning on architecture and goals before writing a line of code. Once finalized, &lt;strong&gt;Kiro’s intelligent agents&lt;/strong&gt; can implement the spec autonomously, while you stay in control of every decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automate Smarter with Agent Hooks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;agent hooks&lt;/strong&gt;, Kiro allows you to automate repetitive and context-aware tasks. You can &lt;strong&gt;delegate operations to background AI agents&lt;/strong&gt; that trigger on specific events, like saving a file. These agents can generate &lt;strong&gt;unit tests&lt;/strong&gt;, improve &lt;strong&gt;code efficiency&lt;/strong&gt;, or even &lt;strong&gt;update documentation,&lt;/strong&gt; all without breaking your flow.&lt;/p&gt;

&lt;p&gt;By using agent hooks, you scale your development process without scaling your mental overhead. The agents work behind the scenes while you stay focused on what matters most, &lt;strong&gt;shipping great features&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro’s Spec-Driven Workflow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro bridges the gap between &lt;strong&gt;product ideas&lt;/strong&gt; and &lt;strong&gt;technical execution&lt;/strong&gt; with a structured, spec-driven approach. Each feature begins with a dedicated spec folder containing three essential files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;requirements.md&lt;/code&gt;: Captures clear, testable user stories using EARS (Easy Approach to Requirements Syntax), This structured approach brings clarity, testability, and traceability to your workflow. By turning vague ideas into clear, testable requirements, &lt;strong&gt;Kiro reduces miscommunication and accelerates development&lt;/strong&gt; — ensuring alignment between product and engineering from day one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;design.md&lt;/code&gt;: Outlines system architecture, data flow, interfaces, and testing strategy—providing a collaborative space for visualizing complex interactions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;tasks.md&lt;/code&gt;: Breaks the work into discrete, trackable tasks with real-time status updates, ensuring smooth progress tracking and accountability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3crfewffao4owv5vhtn.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%2Fi3crfewffao4owv5vhtn.png" alt="4" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This structured format reduces ambiguity, improves alignment between product and engineering, and streamlines the entire development lifecycle — from feature idea to production-ready code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automate with Precision: Agent Hooks in Kiro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In a world where efficiency defines velocity, &lt;strong&gt;Kiro’s Agent Hooks&lt;/strong&gt; bring automation to your IDE in a seamless, intelligent way. Rather than manually initiating routine tasks like linting, generating tests, or updating documentation, &lt;strong&gt;Agent Hooks respond to events like file saves or new file creation, executing predefined AI-powered actions behind the scenes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Are Agent Hooks?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agent Hooks are &lt;strong&gt;event-driven triggers&lt;/strong&gt; in your development workflow. When an event occurs, such as saving, creating, or deleting a file, Kiro automatically activates an agent that follows your prompt and performs the associated task. Imagine never having to remind yourself to generate unit tests again. With hooks, that’s your new normal.&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%2Frk7xgttviuqj5390xni3.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%2Frk7xgttviuqj5390xni3.png" alt="5" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hook created&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Use Agent Hooks?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By automating repetitive actions, Agent Hooks help you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;🧹 &lt;strong&gt;Maintain consistent code quality&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🛡️ &lt;strong&gt;Prevent security vulnerabilities&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⏱️ &lt;strong&gt;Reduce manual overhead&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🧑‍🤝‍🧑 &lt;strong&gt;Standardize team workflows&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⚡ &lt;strong&gt;Accelerate development cycles&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How Agent Hooks Work&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro’s automation system runs in three simple steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Event Detection&lt;/strong&gt;: Monitors IDE activity for triggers (e.g. file save)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prompt Execution&lt;/strong&gt;: Sends your predefined natural language prompt to the agent&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated Action&lt;/strong&gt;: The agent executes the task autonomously&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Guide the AI with Confidence: Steering in Kiro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of Kiro’s most powerful features isn’t flashy—it’s smart, subtle, and scalable. Meet &lt;strong&gt;Steering&lt;/strong&gt;, Kiro’s mechanism for persistent project context. Instead of repeating yourself in every conversation, &lt;strong&gt;Steering ensures Kiro remembers your conventions, standards, and architecture&lt;/strong&gt; automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Is Steering?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Steering is Kiro’s way of building long-term memory around your project using markdown files located in &lt;code&gt;.kiro/steering/&lt;/code&gt;. These files act as blueprints that teach Kiro &lt;strong&gt;how your project works&lt;/strong&gt;, what libraries you use, and how your team writes code. It’s like having a senior engineer embedded in your IDE who never forgets the rules of your codebase.&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%2F2vydon14wc2lki7ycjbg.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%2F2vydon14wc2lki7ycjbg.png" alt="6" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Use Steering in Kiro?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steering&lt;/strong&gt; in Kiro isn’t just a configuration — it’s your project’s memory, blueprint, and quality enforcer all in one. Here’s why it’s a game-changer:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Consistent Code Generation&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Every API, test, or component adheres to your team’s conventions — automatically.&lt;/p&gt;

&lt;p&gt;🔁 &lt;strong&gt;Reduced Repetition&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You don’t need to keep explaining your preferences. Kiro learns and remembers.&lt;/p&gt;

&lt;p&gt;🤝 &lt;strong&gt;Team Alignment&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Onboard new developers effortlessly. Kiro enforces your standards from day one.&lt;/p&gt;

&lt;p&gt;📚 &lt;strong&gt;Scalable Project Knowledge&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
As your project evolves, your documentation grows with it — structured, searchable, and agent-aware.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Steering&lt;/strong&gt;, your codebase becomes cleaner, your team becomes faster, and your decisions scale with confidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌐 Model Context Protocol (MCP): Supercharging Kiro with Specialized Context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modern development doesn’t happen in isolation — it thrives on context, references, and real-time insight. That’s where &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt; comes in. By extending Kiro’s AI with MCP, you’re not just coding — you’re tapping into a live stream of domain-specific intelligence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔎 What is MCP?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt; is a communication standard that allows &lt;strong&gt;Kiro&lt;/strong&gt; to connect with external servers packed with &lt;strong&gt;specialized knowledge, tools, and APIs&lt;/strong&gt;. These MCP servers act like power-ups for your AI workflow — feeding it relevant data and making it context-aware.&lt;/p&gt;

&lt;p&gt;Imagine having &lt;strong&gt;AWS documentation&lt;/strong&gt;, &lt;strong&gt;API specs&lt;/strong&gt;, or even &lt;strong&gt;design system rules&lt;/strong&gt; instantly accessible by your assistant — MCP makes that possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Can You Do With MCP?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When paired with Kiro, MCP unlocks the following superpowers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🔍 Live Documentation Access&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Browse and retrieve AWS Docs, OpenAPI specs, and developer references &lt;em&gt;within the IDE.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🤖 AI with Domain Awareness&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Instead of general answers, Kiro can respond using &lt;em&gt;accurate, official sources&lt;/em&gt; from your custom MCP server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;💡 Contextual Code Recommendations&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Based on the connected service, Kiro can auto-suggest configurations, cloud commands, best practices, and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🧰 External Tool Integration&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You can hook in documentation engines, dev portals, internal wikis, or any server that supports MCP’s JSON protocol.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Far4zbn2r9yy04bqq68p4.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%2Far4zbn2r9yy04bqq68p4.png" alt="7" width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;mcp server -aws docs&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧱 Real-World Example: AWS MCP Server&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s say you’re building an app on AWS. With the &lt;strong&gt;AWS Documentation MCP server&lt;/strong&gt;, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ask Kiro “How does S3 versioning work?”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get code snippets with AWS SDK best practices&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Auto-complete IAM policy JSON&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generate Terraform or CloudFormation templates, instantly&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All without leaving your IDE or flipping tabs.&lt;/p&gt;

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

&lt;p&gt;MCP transforms Kiro from a &lt;strong&gt;smart code assistant&lt;/strong&gt; into a &lt;strong&gt;context-aware development ally&lt;/strong&gt;. Whether you’re learning cloud tech, building internal tools, or scaling infrastructure, you get AI help &lt;em&gt;informed by your real-world environment.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Personal Portfolio Built&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a modern, responsive personal portfolio website built for GitHub Pages hosting. The project showcases professional work, skills, and contact information using a clean, performance-focused architecture.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create a professional online presence for career opportunities&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Showcase technical projects with detailed case studies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Demonstrate modern web development skills and best practices&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide multiple contact channels for potential employers/collaborators&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Achieve excellent performance and accessibility scores&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk30f42p1l994idnz71mj.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%2Fk30f42p1l994idnz71mj.png" alt="8" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Task list&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How It’s Built&lt;br&gt;&lt;br&gt;
Core Technologies:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Static HTML5/CSS3/JavaScript&lt;/strong&gt; — Pure web technologies for GitHub Pages compatibility&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Jekyll&lt;/strong&gt; — Optional static site generator for GitHub Pages integration&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Modern CSS&lt;/strong&gt; — CSS Grid, Flexbox, Custom Properties for responsive design&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Vanilla JavaScript&lt;/strong&gt; — ES6+ modules for interactive features&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Responsive Design&lt;/strong&gt; — Mobile-first approach with CSS Grid layouts&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Project Showcase&lt;/strong&gt; — Dynamic filtering and search functionality&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Contact Integration&lt;/strong&gt; — Forms with third-party service handling (Formspree)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Performance Optimized&lt;/strong&gt; — Lazy loading, image optimization, minified assets&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Accessibility First&lt;/strong&gt; — WCAG AA compliance with keyboard navigation and screen reader support&lt;br&gt;&lt;br&gt;
&lt;strong&gt;SEO Optimized&lt;/strong&gt; — Structured data, meta tags, and sitemap generation&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Component&lt;/strong&gt;-based CSS using BEM methodology&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Modular JavaScript&lt;/strong&gt; with ES6 modules&lt;br&gt;&lt;br&gt;
&lt;strong&gt;File-based content management&lt;/strong&gt; through YAML data files&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Automated build pipeline&lt;/strong&gt; with GitHub Actions and Lighthouse CI&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%2Fusdncyx9hnpqfpo8ahry.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%2Fusdncyx9hnpqfpo8ahry.png" alt="9" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project demonstrates modern web development practices while maintaining the simplicity required for static hosting, making it both performant and maintainable. check the live website here : &lt;a href="https://dineshrajdhanapathydd.github.io/dineshrajdhanapathy/" rel="noopener noreferrer"&gt;&lt;strong&gt;DD-website&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion: From Complexity to Clarity — The Kiro Way&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In a world where shipping software often feels like solving a puzzle with missing pieces, &lt;a href="https://kiro.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;Kiro&lt;/strong&gt;&lt;/a&gt; provides the structure, automation, and contextual intelligence developers have long craved. From &lt;strong&gt;spec-driven clarity&lt;/strong&gt; to &lt;strong&gt;automated agent hooks&lt;/strong&gt;, &lt;strong&gt;steering-based consistency&lt;/strong&gt;, and &lt;strong&gt;MCP-powered insight&lt;/strong&gt;, Kiro transforms development from a manual grind into an intelligent, collaborative workflow.&lt;/p&gt;

&lt;p&gt;For me, what started as a personal project to showcase my Cloud and DevOps skills evolved into a deep dive into the future of AI-assisted development. Kiro didn’t just help me build faster — it helped me &lt;strong&gt;build smarter&lt;/strong&gt;. And it’s just the beginning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌐 Next Up in the Series&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“From Spec to Site: Building a Frontend Portfolio with Kiro”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the next part of this series, I’ll show you how I transformed my Kiro-powered specs into a live, responsive frontend website — complete with automated code generation, component scaffolding, and spec-driven UI logic.&lt;/p&gt;

&lt;p&gt;After weeks of refining specs, collaborating with intelligent agents, and streamlining my workflow inside Kiro, I’m excited to share the result: &lt;a href="https://dineshrajdhanapathydd.github.io/dineshrajdhanapathy/" rel="noopener noreferrer"&gt;&lt;strong&gt;my live cloud and DevOps portfolio website&lt;/strong&gt;&lt;/a&gt;, designed and built using Kiro’s agentic IDE. From layout to logic, every component was generated through spec-driven development, hooks, and steering files — allowing me to focus on what matters most: showcasing real skills, real projects, and real impact.&lt;/p&gt;

&lt;p&gt;In the next part of this series, I’ll walk you through how this site came to life — how I turned natural language specs into production-ready frontend code, automated build flows, and shipped a polished site without touching endless config files. Whether you’re building a personal brand or launching a product, this next article will show how Kiro can turn your idea into infrastructure — fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stay tuned.&lt;/strong&gt; ✨&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments — I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to connect or dive deeper into cloud and DevOps, feel free to follow me on my socials:&lt;/p&gt;

&lt;p&gt;💼 &lt;a href="https://www.linkedin.com/in/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌&lt;/strong&gt; &lt;a href="https://x.com/DD_Dineshraj" rel="noopener noreferrer"&gt;&lt;strong&gt;X (formerly Twitter)&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻&lt;/strong&gt; &lt;a href="https://dev.to/dineshrajdhanapathydd"&gt;&lt;strong&gt;DEV Community&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🐙&lt;/strong&gt; &lt;a href="https://github.com/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building an Interactive Office Scene with Pure CSS</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Fri, 25 Jul 2025 20:25:29 +0000</pubDate>
      <link>https://forem.com/dineshrajdhanapathydd/building-an-interactive-office-scene-with-pure-css-5c3h</link>
      <guid>https://forem.com/dineshrajdhanapathydd/building-an-interactive-office-scene-with-pure-css-5c3h</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend/axero"&gt;Frontend Challenge: Office Edition sponsored by Axero, CSS Art: Office Culture&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Exploring Creativity, Accessibility, and Performance—Without Relying on JavaScript
&lt;/h3&gt;

&lt;h3&gt;
  
  
  👋 Introduction
&lt;/h3&gt;

&lt;p&gt;I set out on a creative challenge: &lt;strong&gt;Can you build a fully interactive, visually engaging office environment using just HTML and CSS—with minimal JavaScript?&lt;/strong&gt; The answer turned into one of the most fun and rewarding projects I’ve worked on.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌟 Inspiration
&lt;/h3&gt;

&lt;p&gt;The idea sparked during a quiet evening while working remotely. I glanced around my real desk—sticky notes, a flickering terminal, a half-full coffee mug, and a wall clock ticking past midnight—and thought, &lt;em&gt;"What if I could bring this physical workspace into code?"&lt;/em&gt;&lt;br&gt;&lt;br&gt;
That blend of physical presence and digital interaction inspired me to recreate the essence of a modern workplace using nothing but frontend code.&lt;/p&gt;

&lt;p&gt;This interactive CSS art piece simulates a &lt;strong&gt;modern digital workspace&lt;/strong&gt; and demonstrates how far CSS has come—from simple styling to complex interaction and animation. Inspired by &lt;strong&gt;human-centered design&lt;/strong&gt; and &lt;strong&gt;digital collaboration tools&lt;/strong&gt;, this project blends &lt;strong&gt;visual storytelling&lt;/strong&gt; with &lt;strong&gt;technical innovation&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  What I Built
&lt;/h3&gt;

&lt;p&gt;I created an interactive CSS art piece that depicts a complete office environment using only HTML, CSS, and minimal JavaScript. The project showcases advanced CSS techniques while telling the story of modern office culture through visual elements and animations. Just click the pop-up to start exploring.&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%2Fif1289wn3zi31s3n8czx.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%2Fif1289wn3zi31s3n8czx.png" alt="1" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interactive Office Elements&lt;/strong&gt;: Coffee mug with steam animation, clickable monitor with cycling code snippets, water cooler conversations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Time-Based Simulation&lt;/strong&gt;: Automatic day/night cycle that affects lighting and office activity levels&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Full Accessibility&lt;/strong&gt;: Keyboard navigation, screen reader support, and motion preference handling&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Responsive Design&lt;/strong&gt;: Optimized for desktop, tablet, and mobile with touch-friendly interactions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Advanced CSS Architecture&lt;/strong&gt;: Custom properties system, hardware acceleration, and modular organization&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  Demo
&lt;/h3&gt;

&lt;p&gt;The interactive office scene includes:&lt;/p&gt;

&lt;p&gt;🖥️ &lt;strong&gt;Dynamic Monitor&lt;/strong&gt;: Click to cycle through different code snippets and terminal outputs&lt;br&gt;&lt;br&gt;
☕ &lt;strong&gt;Smart Coffee Mug&lt;/strong&gt;: Interactive steam animation with temperature states that change on click&lt;br&gt;&lt;br&gt;
👥 &lt;strong&gt;Character Conversations&lt;/strong&gt;: Water cooler characters with rotating dialogue systems&lt;br&gt;&lt;br&gt;
🕐 &lt;strong&gt;Office Clock&lt;/strong&gt;: Click to advance time and trigger day/night transitions&lt;br&gt;&lt;br&gt;
📝 &lt;strong&gt;Interactive Notes&lt;/strong&gt;: Sticky notes and notice board items with hover effects&lt;br&gt;&lt;br&gt;
🌱 &lt;strong&gt;Office Plants&lt;/strong&gt;: Animated leaves that respond to user interaction&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%2Fyx9dg5zqwjcm8cs4zb4u.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%2Fyx9dg5zqwjcm8cs4zb4u.png" alt="2" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it yourself&lt;/strong&gt;: Hover over elements, use Tab to navigate with the keyboard, or click the help button (?) for technical details.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Want to explore the code? Check out the&lt;/em&gt; &lt;a href="https://github.com/dineshrajdhanapathyDD/CSS-Art---challenge.git" rel="noopener noreferrer"&gt;&lt;em&gt;GitHub repository&lt;/em&gt;&lt;/a&gt; &lt;em&gt;or click the help button (?) in the demo to see the technical implementation details.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3vzrssvy2y9xflcu0azq.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%2F3vzrssvy2y9xflcu0azq.png" alt="3" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Journey
&lt;/h3&gt;
&lt;h3&gt;
  
  
  The Challenge
&lt;/h3&gt;

&lt;p&gt;I wanted to push the boundaries of what’s possible with pure CSS while creating something that felt alive and interactive. The goal was to build a complete office ecosystem that responds to user interaction without relying on heavy JavaScript frameworks.&lt;/p&gt;
&lt;h3&gt;
  
  
  Technical Approach
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. CSS Architecture Revolution&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:root {
  /* Theme System */
  --primary-hue: 210;
  --saturation: 50%;
  --theme-primary: hsl(var(--primary-hue), var(--saturation), var(--lightness));

  /* Animation System */
  --animation-speed-multiplier: 1;
  --animation-duration-base: 0.3s;

  /* Time-Based Variables */
  --time-of-day: 1; /* 0 = night, 1 = day */
  --ambient-light: calc(0.7 + (var(--time-of-day) * 0.3));
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I built a comprehensive custom properties system that acts like a design system, allowing for dynamic theming and consistent animations across all components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Advanced Animation Techniques&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The coffee mug steam uses multiple pseudo-elements with staggered animations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.coffee-mug__steam::before,
.coffee-mug__steam::after {
  animation: steam var(--coffee-steam-duration) infinite ease-out;
  box-shadow: 
    -3px -10px 0 -2px rgba(255, 255, 255, 0.3),
    3px -15px 0 -1px rgba(255, 255, 255, 0.2);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Accessibility-First Design&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Every interactive element includes proper ARIA labels and keyboard navigation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="coffee-mug interactive-element" 
     tabindex="0" 
     role="button" 
     aria-label="Coffee mug - click to interact"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Performance Optimization&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Hardware acceleration and CSS containment ensure smooth 60fps animations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.animated-element {
  will-change: transform;
  transform: translateZ(0);
  contain: layout style paint;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbkqcgwvcj1by26jb19a.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%2Fnbkqcgwvcj1by26jb19a.png" alt="4" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Learnings
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;CSS Can Do More Than You Think&lt;/strong&gt;: By combining custom properties, advanced selectors, and modern CSS features, you can create complex interactive systems without JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accessibility Enhances Creativity&lt;/strong&gt;: Adding proper keyboard navigation and screen reader support didn’t limit the design — it made it more robust and usable for everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance Matters&lt;/strong&gt;: Using CSS containment and hardware acceleration made the difference between choppy animations and smooth 60fps interactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modular Architecture Scales&lt;/strong&gt;: Organizing CSS with clear sections and comprehensive custom properties made the 1000+ line stylesheet maintainable and extensible.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Result
&lt;/h3&gt;

&lt;p&gt;The final project demonstrates that CSS has evolved into a powerful tool for creating interactive experiences. It’s not just about styling anymore — it’s about building complete user interfaces that are performant, accessible, and engaging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical Stats:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;1000+ lines of organized CSS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;14 interactive elements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;4 time-based states&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Full keyboard navigation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mobile-responsive design&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;90+ Lighthouse performance score&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project proves that with modern CSS techniques, you can create rich, interactive experiences that rival JavaScript-heavy applications while maintaining better performance and accessibility.&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%2Feun2dcn9uwugxap58znj.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%2Feun2dcn9uwugxap58znj.png" alt="5" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Special thanks to Axero&lt;/strong&gt; for inspiring this project. Their commitment to &lt;strong&gt;human-centered design&lt;/strong&gt; and &lt;strong&gt;digital collaboration&lt;/strong&gt; continues to shape the way we envision connected, &lt;strong&gt;thriving workplaces&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments — I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to connect, feel free to follow me on my socials:&lt;/p&gt;

&lt;p&gt;💼 &lt;a href="https://www.linkedin.com/in/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;LinkedIn&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌&lt;/strong&gt; &lt;a href="https://x.com/DD_Dineshraj" rel="noopener noreferrer"&gt;&lt;strong&gt;X (formerly Twitter)&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻&lt;/strong&gt; &lt;a href="https://dev.to/dineshrajdhanapathydd"&gt;&lt;strong&gt;DEV Community&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🐙&lt;/strong&gt; &lt;a href="https://github.com/dineshrajdhanapathydd" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>frontendchallenge</category>
      <category>devchallenge</category>
      <category>css</category>
    </item>
    <item>
      <title>From Vision to Interaction: A Workplace Dashboard That Works</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Thu, 24 Jul 2025 19:14:02 +0000</pubDate>
      <link>https://forem.com/dineshrajdhanapathydd/from-vision-to-interaction-a-workplace-dashboard-that-works-5dp7</link>
      <guid>https://forem.com/dineshrajdhanapathydd/from-vision-to-interaction-a-workplace-dashboard-that-works-5dp7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend/axero"&gt;Frontend Challenge: Office Edition sponsored by Axero, Holistic Webdev: Office Space&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;As part of a hands-on challenge, I built a &lt;strong&gt;fully interactive, responsive company dashboard&lt;/strong&gt; from scratch. Designed for &lt;strong&gt;TechFlow Innovations&lt;/strong&gt;, this dashboard acts as a central hub for company updates, team recognition, real-time metrics, events, and tools—all wrapped in a modern, accessible UI. This journey helped me sharpen my &lt;strong&gt;front-end, UI/UX, and interactive JavaScript skills&lt;/strong&gt; while following industry best practices.&lt;/p&gt;




&lt;h3&gt;
  
  
  📺 Live Demo
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;🔗 Demo Link:&lt;/strong&gt; &lt;a href="https://dineshrajdhanapathydd.github.io/TechFlow-Innovations/" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;TechFlow Innovations&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
 &lt;strong&gt;📄 GitHub Link:&lt;/strong&gt; &lt;a href="https://github.com/dineshrajdhanapathyDD/TechFlow-Innovations.git" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;TechFlow Innovations&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbnw4nsmo2kgxj18bx7d9.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%2Fbnw4nsmo2kgxj18bx7d9.png" alt="1" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;TechFlow Dashboard&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔧 What I Built
&lt;/h3&gt;

&lt;p&gt;This dashboard wasn’t just a visual project — it combined &lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt; with a modular architecture to handle dynamic content and UI responsiveness. Below is a quick breakdown of the major components I built:&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 1. Project Setup
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Semantic HTML structure with proper meta tags.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS foundation with resets, variables, design tokens, and a responsive grid.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JavaScript module structure with utility functions and interactivity.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 2. Header &amp;amp; Navigation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Company branding with animated logo and gradient styles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hamburger menu for mobile.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;User profile section with avatar and dynamic greeting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search bar with form accessibility.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 3. Responsive Dashboard Grid
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CSS Grid layout with named grid areas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dynamic 12-column system with responsive adjustments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Widget containers with consistent spacing, actions, and themes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 4. Welcome &amp;amp; Quick Links Widgets
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Personalised greeting with date/time and rotating motivational quote.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Weather display and quick action buttons.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Quick Links section with icon-based navigation and hover effects.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 5. Events &amp;amp; Announcements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Card-based event layout with urgent badges and filters.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Announcement section with priority tags and interactivity.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 6. Team Spotlight &amp;amp; Recognition
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Employee grid with avatars, roles, achievements, and status indicators.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Animated member cards with carousel controls and contact shortcuts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytq1ue85ifs9ky4kn15j.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%2Fytq1ue85ifs9ky4kn15j.png" alt="2" width="800" height="617"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Events, Announcement and Quick links&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 7. Company Metrics &amp;amp; System Status
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;KPI widgets with animated charts and progress bars.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Real-time status indicators with alerts and maintenance messages.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ 8. News &amp;amp; Tools Widgets
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tabbed news system with categories and featured articles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tools section with department-based app shortcuts and usage stats.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9kw2ltrds0uliwjmxfw.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%2Fl9kw2ltrds0uliwjmxfw.png" alt="3" width="800" height="858"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Company Metrics&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 9. Interactivity &amp;amp; Real-Time Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Auto-refreshing widgets with loading states and retry logic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Interactive transitions, accessibility-first animations, and performance optimisations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Offline/online detection with update pausing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmx0giyj2jpnhsritpvo.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%2Flmx0giyj2jpnhsritpvo.png" alt="4" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Refresh button&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  📚 My Journey &amp;amp; Key Learnings
&lt;/h3&gt;

&lt;p&gt;This build helped me sharpen several core engineering skills:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;🧠 &lt;strong&gt;Modular architecture &amp;amp; scalable layouts&lt;/strong&gt; with CSS Grid and Flexbox.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🎯 &lt;strong&gt;Responsive &amp;amp; mobile-first design&lt;/strong&gt; across all screen sizes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🌈 &lt;strong&gt;Design systems&lt;/strong&gt; with reusable design tokens and themes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;♿ &lt;strong&gt;Accessibility-first development&lt;/strong&gt; with semantic HTML and keyboard navigation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⚙️ &lt;strong&gt;Real-time interactivity&lt;/strong&gt; with JS-based state updates, skeleton loaders, and error handling.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📦 Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;HTML5&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CSS3&lt;/strong&gt; (Grid, Flexbox, Variables)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;JavaScript (ES6+)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Design Tokens &amp;amp; Responsive Breakpoints&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accessible Animations (prefers-reduced-motion)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧩 What’s Next?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;🌐 Turn this into a React or Vue app with API integration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⚙️ Use this structure for building a dynamic dashboard with real backend data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🧪 Add Cypress or Playwright tests for widget behavior.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Special thanks to Axero&lt;/strong&gt; for inspiring this challenge and highlighting the importance of creating meaningful digital workspaces. Their focus on human-centred design really influenced the direction of this project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments — I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🏃‍♂️ Meet Runner H: The AI Agent Tailors, That Finds &amp; Emails Your Top Cloud/DevOps Jobs</title>
      <dc:creator>dineshrajdhanapathyDD</dc:creator>
      <pubDate>Thu, 03 Jul 2025 04:06:34 +0000</pubDate>
      <link>https://forem.com/dineshrajdhanapathydd/meet-runner-h-the-ai-agent-tailors-that-finds-emails-your-top-clouddevops-jobs-4kno</link>
      <guid>https://forem.com/dineshrajdhanapathydd/meet-runner-h-the-ai-agent-tailors-that-finds-emails-your-top-clouddevops-jobs-4kno</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/runnerh"&gt;Runner H "AI Agent Prompting" Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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




&lt;h3&gt;
  
  
  ⚡ The Challenge: Simplifying the Cloud/DevOps Job Hunt
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How can we streamline job hunting for entry-level Cloud and DevOps roles — without burning out?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In today’s hyper-competitive market, even talented professionals are overwhelmed by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;🔎 &lt;strong&gt;Endlessly scrolling&lt;/strong&gt; through LinkedIn, AngelList, and niche job boards&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;📄 &lt;strong&gt;Tailoring resumes&lt;/strong&gt; to pass Applicant Tracking Systems (ATS)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✍️ &lt;strong&gt;Writing cover letters&lt;/strong&gt; that sound human and not copy-pasted&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🧮 &lt;strong&gt;Tracking job applications manually&lt;/strong&gt; across messy spreadsheets&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s exactly why &lt;strong&gt;Runner H was born&lt;/strong&gt; — to reduce anxiety, automate repetitive tasks, and let you &lt;strong&gt;focus on being the best version of yourself&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  🛠️ Integrated Apps for a Seamless Experience
&lt;/h3&gt;

&lt;p&gt;To tackle this challenge, &lt;strong&gt;Runner H connects directly to the tools you already use&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;📧 Gmail&lt;/strong&gt; — Automatically sends personalized job lists to your inbox or recruiter&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;📁 Google Drive&lt;/strong&gt; — Stores your resume, PDFs, and project documents securely&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;📊 Google Sheets&lt;/strong&gt; — Organizes job applications into a structured, shareable format&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🔁 Zapier / n8n / Notion / Slack&lt;/strong&gt; — Optional integrations for full workflow automation&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No more switching tabs 20 times a day.&lt;br&gt;&lt;br&gt;
No more missed follow-ups.&lt;br&gt;&lt;br&gt;
No more generic applications.&lt;/p&gt;

&lt;p&gt;Runner H turns job hunting into a &lt;strong&gt;streamlined, AI-powered workflow&lt;/strong&gt; — giving you the edge to land the right role faster.&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%2F5380005sb0dfmacnxsmy.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%2F5380005sb0dfmacnxsmy.png" alt="Runner H dashboard" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Runner H&lt;/p&gt;

&lt;p&gt;In today’s fast-moving tech world, finding the right Cloud or DevOps job can be overwhelming — especially if you’re just starting out. That’s why I built &lt;a href="https://runner.hcompany.ai/" rel="noopener noreferrer"&gt;&lt;strong&gt;Runner H&lt;/strong&gt;&lt;/a&gt;, an AI-powered job-hunting assistant designed to streamline the process from start to finish:&lt;br&gt;&lt;br&gt;
 ✅ Search jobs&lt;br&gt;&lt;br&gt;
 ✅ Tailor resumes&lt;br&gt;&lt;br&gt;
 ✅ Write personalized cover letters&lt;br&gt;&lt;br&gt;
 ✅ Help you stand out&lt;/p&gt;
&lt;h3&gt;
  
  
  🧩 Why I Created Runner H
&lt;/h3&gt;

&lt;p&gt;I noticed a common pattern among peers and community learners:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;They had &lt;strong&gt;great skills&lt;/strong&gt; but &lt;strong&gt;struggled to tailor resumes&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Job descriptions were too generic&lt;/strong&gt;, leading to &lt;strong&gt;template overload&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cover letters felt like &lt;strong&gt;copy-paste fillers&lt;/strong&gt;, not real reflections&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s where &lt;a href="https://runner.hcompany.ai/" rel="noopener noreferrer"&gt;&lt;strong&gt;Runner H&lt;/strong&gt;&lt;/a&gt; steps in — powered by &lt;strong&gt;prompt engineering and real-time search&lt;/strong&gt;, it becomes your &lt;strong&gt;personal agent&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  🔍 Step 1: Search Jobs with Smart Prompts
&lt;/h3&gt;

&lt;p&gt;Runner H first looks for roles matching keywords like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Entry-Level DevOps Engineer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cloud Engineer — Remote&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Junior Site Reliability Engineer (SRE)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prompt:&lt;br&gt;
&lt;br&gt;
 &lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Act as my personal job search assistant. I’m looking for entry-level or junior Cloud/DevOps Engineer roles (0–1 year experience) or internships in DevOps, SRE, or Cloud Engineering. I have foundational knowledge in AWS, Kubernetes, CI/CD, Terraform, Git, and basic scripting (Python/Bash). I’ve completed hands-on projects, courses, and actively contribute to learning communities. Help me find relevant job openings that welcome freshers or early-career professionals on LinkedIn, AngelList, or other platforms. Prioritize roles with learning potential, mentorship, and cloud-native technologies. Also, help tailor my resume and generate personalized cover letters to match each job
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9j9eatg2brl8c6ws3q7l.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%2F9j9eatg2brl8c6ws3q7l.png" alt="2" width="677" height="211"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Searching jobs&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It scrapes popular job boards like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/jobs/search/?keywords=Entry%20Level%20DevOps%20Engineer" rel="noopener noreferrer"&gt;LinkedIn — Entry-Level DevOps Jobs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/jobs/search/?keywords=Cloud%20Engineer&amp;amp;location=Canada" rel="noopener noreferrer"&gt;LinkedIn — Cloud Engineer Jobs in Canada&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://wellfound.com" rel="noopener noreferrer"&gt;Wellfound (AngelList) — Remote DevOps Jobs&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  📄 Step 2: Resume Tailoring Suggestions
&lt;/h3&gt;

&lt;p&gt;Once jobs are collected, Runner H analyses job descriptions and offers &lt;strong&gt;real-time tailoring suggestions&lt;/strong&gt;, like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Clearly list your skills: AWS, Kubernetes, CI/CD, Terraform, Git, Python/Bash scripting.&lt;/p&gt;

&lt;p&gt;Highlight any projects: Briefly describe the projects, your role, and technologies used.&lt;/p&gt;

&lt;p&gt;Mention community contributions: Any significant learning or collaborative activities in learning communities.&lt;/p&gt;

&lt;p&gt;Highlight your AWS Cloud Practitioner certification.  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This turns a static resume into a &lt;strong&gt;targeted job magnet&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  Step 3: Build a Smart Resume Framework
&lt;/h3&gt;

&lt;p&gt;You can prompt Runner H with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Create a resume for a DevOps Engineer role including: header, objective, skills, projects, education, and community.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here’s the layout:&lt;/p&gt;

&lt;p&gt;✅ Header&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ensure it includes your full name, phone number, email address, and LinkedIn profile link.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  🎯 Objective
&lt;/h3&gt;

&lt;p&gt;Clear 2–3 line goal aligned to the job&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Aspiring DevOps Engineer with a foundational knowledge in AWS, Kubernetes, CI/CD, Terraform, and Python/Bash scripting. Committed to leveraging hands-on project experience and active learning community contributions to support innovative cloud solutions at [Company Name].”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  🛠️ Technical Skills
&lt;/h3&gt;

&lt;p&gt;Group by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cloud&lt;/strong&gt;: AWS, Azure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IaC&lt;/strong&gt;: Terraform, CloudFormation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CI/CD&lt;/strong&gt;: Jenkins, GitHub Actions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Containers&lt;/strong&gt;: Docker, Kubernetes&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;List skills relevant to the job, such as Cloud Platforms (AWS), Containerization (Kubernetes), Continuous Integration/Continuous Deployment (CI/CD), Infrastructure as Code (Terraform), Version Control (Git), and Scripting (Python/Bash).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  🚀 Project Highlights
&lt;/h3&gt;

&lt;p&gt;Briefly describe 2–3 significant projects. Showcase impact-driven projects:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Example: “Deployed a scalable web application on AWS using Terraform and Kubernetes. Automated deployment pipelines using Jenkins for CI/CD.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  🎓 Education
&lt;/h3&gt;

&lt;p&gt;Degree + Certifications (AWS CCP, DevOps Pro, etc.)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Include your degree(s), institution, and graduation date.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  🌐 Community
&lt;/h3&gt;

&lt;p&gt;Mention AWS Community Builder, GitHub repos, blogs, or public talks.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Highlight any significant contributions like open-source projects, blogs, or forums.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  Write a Personalized Cover Letter
&lt;/h3&gt;

&lt;p&gt;Runner H takes the job description and builds a cover letter using four pillars:&lt;/p&gt;
&lt;h3&gt;
  
  
  🔓 Introduction
&lt;/h3&gt;

&lt;p&gt;Mention the specific role and why it interests you&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Introduce yourself and express your enthusiasm for the position.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  🧩 Skills Match
&lt;/h3&gt;

&lt;p&gt;Align key strengths with listed requirements&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Identify key requirements in the job description and link them to your skills and experiences.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  🏢 Company Connection
&lt;/h3&gt;

&lt;p&gt;Reflect values or projects of the company you admire&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Demonstrate knowledge about the company, express interest in its projects, mission, or culture.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  ✍️ Closing
&lt;/h3&gt;

&lt;p&gt;Invite for interview, express enthusiasm&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thank them for considering your application and express eagerness to discuss further.&lt;/p&gt;

&lt;p&gt;If you provide me with specific job postings, I can help generate targeted cover letters for those applications. Feel free to share any job descriptions or additional details you need help with!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Prompts: make templates for common cover letter formats. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Certainly! Here’s a template for a cover letter tailored for entry-level or junior Cloud/DevOps Engineer roles that you can customize for each application:&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Your Name]
[Your Address]
[City, State, Zip]
[Email Address]
[Phone Number]
[LinkedIn Profile URL]
[Date]

[Hiring Manager's Name]
[Company Name]
[Company Address]
[City, State, Zip]

Dear [Hiring Manager's Name],

I am writing to express my interest in the Entry-Level Cloud/DevOps Engineer position at [Company Name] as advertised. With a foundational background in cloud technologies and hands-on experience in AWS, Kubernetes, CI/CD, Terraform, and Git, I am excited about the opportunity to contribute to your team while continuing to grow my skills in a dynamic and innovative environment.

In my recent project [Briefly describe a relevant project or experience], I successfully [Explain what you did and achieved, relating it to the skills relevant to the job]. This experience honed my abilities in [mention particular skills] and demonstrated the impact of effective cloud infrastructure solutions.

[Company Name]'s commitment to [mention company mission, values, or projects you admire] strongly resonates with my career aspirations. I am particularly drawn to [mention any specific aspect of the job/company you are interested in], and I am eager to bring my proactive approach and passion for cloud technologies to your team.

Thank you for considering my application. I am looking forward to the possibility of discussing how I can contribute to the innovative solutions at [Company Name]. I am eager to learn and grow under the mentorship of esteemed professionals in your organization.

Warm regards,

[Your Name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tips for Customisation:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;\Company Name: Replace with the company’s name you’re applying to.&lt;/p&gt;

&lt;p&gt;\Hiring Manager’s Name: Find and add the hiring manager’s name if possible.&lt;/p&gt;

&lt;p&gt;Projects/Skills: Tailor the project and skills mentioned to closely match the specific requirements in the job description.&lt;/p&gt;

&lt;p&gt;Company Mission/Values: Research the company’s mission statement, culture, or recent projects to demonstrate your genuine interest and make your application stand out.&lt;/p&gt;

&lt;p&gt;Feel free to adjust the details to better align with the job posting or to add any personal touches that reflect your enthusiasm and qualifications. If you need further customization or help with multiple specific postings, just let me know!&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🧠 Step 5: Smart Prompt for Multi-Job Customization
&lt;/h3&gt;

&lt;p&gt;Applying for multiple jobs? Ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Give 5 resume templates for Cloud/DevOps roles and how to tweak them based on different company types.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Runner H will respond with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Generic template&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Startup-friendly version&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enterprise-ATS compliant&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Remote-only jobs format&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Internship/Entry-level focused&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Final Tips from Runner H
&lt;/h3&gt;

&lt;h3&gt;
  
  
  📌 Resume Customization
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Use keywords from the job post&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Quantify project impacts (ex: “reduced build time by 20%”)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add certs, GitHub links, portfolio&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  📌 Cover Letter Tips
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Write with company in mind (not just yourself)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Don’t repeat your resume&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  📌 General Advice
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Keep PDF format&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use clean, ATS-optimized layouts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid jargon overload — be concise&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Final Thought
&lt;/h3&gt;

&lt;p&gt;Job hunting shouldn’t be guesswork. With Runner H, &lt;strong&gt;you let AI work the process&lt;/strong&gt; so you can focus on telling your unique story.&lt;/p&gt;




&lt;h3&gt;
  
  
  The AI Agent Integrated Gmail That Finds &amp;amp; Emails Your Top Cloud/DevOps Jobs
&lt;/h3&gt;

&lt;p&gt;The job hunt is time-consuming, repetitive, and often overwhelming. What if it wasn’t?&lt;/p&gt;

&lt;p&gt;Meet &lt;a href="https://runner.hcompany.ai/" rel="noopener noreferrer"&gt;&lt;strong&gt;Runner H&lt;/strong&gt;&lt;/a&gt; , an AI-powered job-hunting agent that doesn’t just search for jobs — it &lt;strong&gt;shortlists&lt;/strong&gt;, &lt;strong&gt;formats&lt;/strong&gt;, and even &lt;strong&gt;emails&lt;/strong&gt; the top picks to you using your resume and custom preferences.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Runner H Can Do
&lt;/h3&gt;

&lt;p&gt;Just drop a prompt like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Based on my resume in {RESUME.PDF}, browse Welcome to the Jungle and shortlist the 10 most relevant DevOps and Cloud roles (0–2 years experience, remote only). Create a Google Sheet with job title, company, location, salary (if listed), and link to apply. Then email it to {&lt;a href="mailto:dineshrajdhanapathy@gmail.com"&gt;dineshrajdhanapathy@gmail.com&lt;/a&gt;} with the subject: ‘Top 10 Roles You Should Look At 🙏’ and ask for feedback.”&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.amazonaws.com%2Fuploads%2Farticles%2Faxxmw2wac251r7qrvaxh.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%2Faxxmw2wac251r7qrvaxh.png" alt="3" width="642" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;completed the process&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ Integrated Tools
&lt;/h3&gt;

&lt;p&gt;Runner H now supports integration with:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Google Drive&lt;/strong&gt; — access resume files&lt;br&gt;&lt;br&gt;
 ✅ &lt;strong&gt;Gmail&lt;/strong&gt; — send curated job lists automatically&lt;br&gt;&lt;br&gt;
 ✅ &lt;strong&gt;Google Sheets&lt;/strong&gt; — create and update job trackers&lt;br&gt;&lt;br&gt;
 ✅ &lt;strong&gt;Zapier&lt;/strong&gt; — automate workflows (like syncing to Notion/Slack)&lt;/p&gt;

&lt;p&gt;📧 &lt;strong&gt;Email Sample&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Subject: Top 10 Roles You Should Look At 🙏&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Hi Dineshraj,&lt;/p&gt;

&lt;p&gt;I have shortlisted some relevant job positions for you that align with your DevOps and Cloud skills, particularly focusing on remote roles for 0–2 years of experience. Although the search yielded limited results on Welcome to the Jungle, here are a few links to explore:&lt;/p&gt;

&lt;p&gt;1. [Guild Education DevOps Manager](&lt;a href="https://app.welcometothejungle.com/jobs/BowrPZLN" rel="noopener noreferrer"&gt;https://app.welcometothejungle.com/jobs/BowrPZLN&lt;/a&gt;)&lt;br&gt;&lt;br&gt;
2. [Platform.sh Chief Revenue Officer](&lt;a href="https://app.welcometothejungle.com/jobs/FsrsFjZE" rel="noopener noreferrer"&gt;https://app.welcometothejungle.com/jobs/FsrsFjZE&lt;/a&gt;)&lt;br&gt;&lt;br&gt;
3. [Remote Engineering Team Leader](&lt;a href="https://app.welcometothejungle.com/jobs/sNWCjdxf" rel="noopener noreferrer"&gt;https://app.welcometothejungle.com/jobs/sNWCjdxf&lt;/a&gt;)&lt;br&gt;&lt;br&gt;
4. [Remote Staff Product Designer](&lt;a href="https://app.welcometothejungle.com/jobs/13w7jz1j" rel="noopener noreferrer"&gt;https://app.welcometothejungle.com/jobs/13w7jz1j&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;I’ll be eager to hear your feedback or if you’d like assistance in exploring further.&lt;/p&gt;

&lt;p&gt;Best regards,&lt;br&gt;&lt;br&gt;
Your AI Assistant&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.amazonaws.com%2Fuploads%2Farticles%2Fdi7bzpsbj25m6t5m6dyh.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%2Fdi7bzpsbj25m6t5m6dyh.png" alt="4" width="800" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gmail for me&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%2Forn4k62q9o8pbyzy8wvc.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%2Forn4k62q9o8pbyzy8wvc.png" alt="5" width="795" height="298"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google sheet for me&lt;/p&gt;

&lt;h3&gt;
  
  
  💬 Final Note
&lt;/h3&gt;

&lt;p&gt;With Runner H, you don’t chase jobs — they come to your inbox, fully organized, and ready for feedback.&lt;/p&gt;

&lt;p&gt;The future of job applications isn’t reactive — it’s &lt;strong&gt;automated, prompt-driven, and AI-powered.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion: Let Runner H Do the Heavy Lifting
&lt;/h3&gt;

&lt;p&gt;Job hunting today isn’t just about &lt;em&gt;finding&lt;/em&gt; roles — it’s about &lt;em&gt;standing out&lt;/em&gt;. With &lt;strong&gt;Runner H&lt;/strong&gt;, you’re not alone in this journey. You’re equipped with an intelligent AI agent that can:&lt;/p&gt;

&lt;p&gt;✅ Search relevant Cloud &amp;amp; DevOps roles across platforms&lt;br&gt;&lt;br&gt;
✅ Tailor your resume based on live job data&lt;br&gt;&lt;br&gt;
✅ Craft compelling cover letters aligned to each role&lt;br&gt;&lt;br&gt;
✅ Organize top job picks in a Google Sheet&lt;br&gt;&lt;br&gt;
✅ Email you a personalized job list — automatically&lt;/p&gt;

&lt;p&gt;Whether you’re an entry-level engineer or a career shifter in tech, &lt;strong&gt;Runner H empowers you to focus on what matters most: learning, building, and growing&lt;/strong&gt; — while the job hunt works &lt;em&gt;for&lt;/em&gt; you in the background.&lt;/p&gt;

&lt;p&gt;This is just the beginning.&lt;br&gt;&lt;br&gt;
 📩 Let Runner H run your job search — so you can run your career.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments — I’d love to hear from you.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>runnerhchallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
