<?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: Ebikara Spiff ᴀɪᴄᴍᴄ</title>
    <description>The latest articles on Forem by Ebikara Spiff ᴀɪᴄᴍᴄ (@spiff).</description>
    <link>https://forem.com/spiff</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%2F1392055%2F2b41052c-d618-4ca8-9376-961db9b38af9.png</url>
      <title>Forem: Ebikara Spiff ᴀɪᴄᴍᴄ</title>
      <link>https://forem.com/spiff</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/spiff"/>
    <language>en</language>
    <item>
      <title>Why an Accurate Loan Model Can Still Be Unfair in Nigeria</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Mon, 06 Apr 2026 09:08:19 +0000</pubDate>
      <link>https://forem.com/spiff/why-an-accurate-loan-model-can-still-be-unfair-in-nigeria-2ncn</link>
      <guid>https://forem.com/spiff/why-an-accurate-loan-model-can-still-be-unfair-in-nigeria-2ncn</guid>
      <description>&lt;p&gt;A loan model can be 95% accurate and still be unfair in Nigeria.&lt;/p&gt;

&lt;p&gt;AI loan systems make decisions using patterns from historical data.&lt;/p&gt;

&lt;p&gt;They look at things like:&lt;/p&gt;

&lt;p&gt;➖ transaction history&lt;/p&gt;

&lt;p&gt;➖ location&lt;/p&gt;

&lt;p&gt;➖ phone activity&lt;/p&gt;

&lt;p&gt;➖ financial behaviour&lt;/p&gt;

&lt;p&gt;On paper, this works pretty well.&lt;/p&gt;

&lt;p&gt;But the problem is Many Nigerians are invisible in that data.&lt;/p&gt;

&lt;p&gt;👉 The informal workers. &lt;br&gt;
👉 The unbanked individuals.&lt;br&gt;
👉 People operating in cash-based systems.&lt;/p&gt;

&lt;p&gt;Take a skilled carpenter who gets paid mostly in cash for example&lt;/p&gt;

&lt;p&gt;He has no strong transaction history. No formal credit trail.&lt;/p&gt;

&lt;p&gt;To the model?&lt;/p&gt;

&lt;p&gt;That looks like risk.&lt;/p&gt;

&lt;p&gt;But in reality, it’s just missing data.&lt;/p&gt;

&lt;p&gt;It gets more subtle.&lt;/p&gt;

&lt;p&gt;Location also can quietly influence outcomes.&lt;/p&gt;

&lt;p&gt;Someone from a high-activity area like Lagos Island may be favored over someone from the mainland, not because they’re more creditworthy, but because of patterns in the data.&lt;/p&gt;

&lt;p&gt;This is how bias hides.&lt;/p&gt;

&lt;p&gt;The model can be highly accurate overall…&lt;/p&gt;

&lt;p&gt;While consistently failing certain groups.&lt;/p&gt;

&lt;p&gt;Accuracy isn’t the problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Representation&lt;/strong&gt; is.&lt;/p&gt;

&lt;p&gt;If the data is incomplete, the decisions will be too.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nigeria</category>
      <category>ailoanmodel</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Not What AI Does, But How It Decides: Anthropic’s Claude Constitution Explained.</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Sun, 25 Jan 2026 20:21:43 +0000</pubDate>
      <link>https://forem.com/spiff/not-what-ai-does-but-how-it-decides-anthropics-claude-constitution-explained-408o</link>
      <guid>https://forem.com/spiff/not-what-ai-does-but-how-it-decides-anthropics-claude-constitution-explained-408o</guid>
      <description>&lt;p&gt;I didn’t really understand why enterprises care so much about AI governance until I saw what Anthropic just did with Claude.&lt;/p&gt;

&lt;p&gt;In 2023, Claude had a constitution.&lt;br&gt;
Basically: a long list of rules telling the model what not to do.&lt;/p&gt;

&lt;p&gt;It worked.&lt;br&gt;
But rules break when reality gets messy.&lt;/p&gt;

&lt;p&gt;So on Jan 21, Anthropic rewrote the whole thing.&lt;/p&gt;

&lt;p&gt;This new Claude Constitution isn’t just rules anymore.&lt;br&gt;
It’s principles.&lt;/p&gt;

&lt;p&gt;A 4-tier priority system around safety, ethics, compliance, and usefulness and more importantly, why those rules exist.&lt;/p&gt;

&lt;p&gt;That shift matters.&lt;/p&gt;

&lt;p&gt;Because enterprises already assume something most people don’t want to say out loud:&lt;br&gt;
Every AI model has bias.&lt;br&gt;
It’s shaped by training data and the values baked into it.&lt;/p&gt;

&lt;p&gt;Anthropic isn’t pretending otherwise.&lt;br&gt;
They’re saying: this is how our model reasons when things get weird.&lt;/p&gt;

&lt;p&gt;And things will get weird.&lt;/p&gt;

&lt;p&gt;Especially in enterprise use cases where edge cases are guaranteed.&lt;/p&gt;

&lt;p&gt;This is the real difference:&lt;br&gt;
Not what the model should do,&lt;br&gt;
but how it decides what to do when no one predicted the scenario.&lt;/p&gt;

&lt;p&gt;Compare that to models that still allow obviously inappropriate behavior.&lt;/p&gt;

&lt;p&gt;One approach builds trust.&lt;br&gt;
The other creates risk.&lt;/p&gt;

&lt;p&gt;Transparency isn’t about feeling safe.&lt;br&gt;
It’s about knowing where the boundaries actually are.&lt;/p&gt;

&lt;p&gt;And even then, no constitution replaces human judgment.&lt;br&gt;
Domain expertise still matters.&lt;br&gt;
Oversight still matters.&lt;/p&gt;

&lt;p&gt;Claude’s new constitution doesn’t make AI perfect.&lt;br&gt;
It just makes its bias visible.&lt;/p&gt;

&lt;p&gt;And for enterprises, that visibility is the real product.&lt;/p&gt;

</description>
      <category>anthropic</category>
      <category>ai</category>
      <category>transparency</category>
      <category>webdev</category>
    </item>
    <item>
      <title>#ai_documentation.</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Tue, 06 Jan 2026 11:55:19 +0000</pubDate>
      <link>https://forem.com/spiff/-4e2n</link>
      <guid>https://forem.com/spiff/-4e2n</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/spiff" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img 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%2Fuser%2Fprofile_image%2F1392055%2F2b41052c-d618-4ca8-9376-961db9b38af9.png" alt="spiff"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/spiff/translating-a-complex-object-detection-model-for-sales-teams-an-ai-documentation-case-study-46ao" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Translating a Complex Object Detection Model for Sales Teams: An AI Documentation Case Study&lt;/h2&gt;
      &lt;h3&gt;Ebikara Spiff ᴀɪᴄᴍᴄ ・ Jan 5&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#ai&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#writing&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#documentation&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>ai</category>
      <category>writing</category>
      <category>documentation</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Translating a Complex Object Detection Model for Sales Teams: An AI Documentation Case Study</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Mon, 05 Jan 2026 14:50:00 +0000</pubDate>
      <link>https://forem.com/spiff/translating-a-complex-object-detection-model-for-sales-teams-an-ai-documentation-case-study-46ao</link>
      <guid>https://forem.com/spiff/translating-a-complex-object-detection-model-for-sales-teams-an-ai-documentation-case-study-46ao</guid>
      <description>&lt;p&gt;AI models are powerful, but their technical descriptions are often incomprehensible to non-engineers. Sales teams especially struggle to explain AI capabilities to clients without oversimplifying or misrepresenting them.  &lt;/p&gt;

&lt;p&gt;In this case study, I translated a highly technical object detection model description into clear, actionable language for a sales audience — demonstrating how to bridge the gap between engineering complexity and business communication.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Challenge
&lt;/h2&gt;

&lt;p&gt;Here’s the &lt;strong&gt;original technical paragraph from the engineers&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Our proprietary detection framework implements a multi-scale feature pyramid network with deformable convolutions and focal loss optimization. The backbone utilizes an EfficientNet-B4 architecture pretrained on ImageNet, fine-tuned using mixed precision training with the AdamW optimizer. We've achieved state-of-the-art mean Average Precision (mAP) of 0.87 on the internal benchmark dataset, with inference latency of 17ms on our edge hardware, making it suitable for real-time detection tasks in constrained computational environments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As you can see, this paragraph is &lt;strong&gt;dense with jargon and metrics&lt;/strong&gt; — accurate but completely inaccessible to a sales team.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Approach
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Identify the audience:&lt;/strong&gt; Sales team members needing clarity and confidence to explain AI to clients.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus on key aspects:&lt;/strong&gt; Accuracy, speed, and real-world limitations.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Translate step by step:&lt;/strong&gt; Rewrite each sentence in plain, conversational language without losing meaning.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add a visual analogy:&lt;/strong&gt; Something memorable to help explain how the model works.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create a translation glossary:&lt;/strong&gt; Simplify recurring technical terms for easy reference.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sales-Friendly Rewrite:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;This object detection model has a high reliability rate for real-time use and is designed to assist the average human when driving. It reacts fast enough to keep up with real-world driving conditions in supported environments.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visual Analogy:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;It’s like an extra pair of eyes that assists you in identifying objects in real time while driving.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Translation Glossary:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-scale Feature Pyramid Network&lt;/strong&gt; → Lets the system notice both big and small objects at the same time.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deformable Convolutions&lt;/strong&gt; → Helps the system adjust to unusual or stretched shapes so it can recognize them better.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EfficientNet-B4 Backbone&lt;/strong&gt; → The “engine” of the system that efficiently extracts important details from images.&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>ai</category>
      <category>writing</category>
      <category>documentation</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Master Responsible AI: Key Principles for Ethical Impact</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Mon, 27 Oct 2025 04:46:58 +0000</pubDate>
      <link>https://forem.com/spiff/master-responsible-ai-key-principles-for-ethical-impact-5fmf</link>
      <guid>https://forem.com/spiff/master-responsible-ai-key-principles-for-ethical-impact-5fmf</guid>
      <description>&lt;p&gt;This article explains the essential principles of Responsible AI and how organizations can build ethical AI systems.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>If you only have 10–30 PDF files, you can keep things super simple. In this guide, you’ll learn how to power up an AI agent in n8n using OpenAI Assistants API, without all the extra tech</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Sat, 04 Oct 2025 19:31:22 +0000</pubDate>
      <link>https://forem.com/spiff/if-you-only-have-10-30-pdf-files-you-can-keep-things-super-simple-in-this-guide-youll-learn-how-9kl</link>
      <guid>https://forem.com/spiff/if-you-only-have-10-30-pdf-files-you-can-keep-things-super-simple-in-this-guide-youll-learn-how-9kl</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/spiff/turn-your-pdfs-into-a-chatbot-with-n8n-open-ai-no-vector-db-needed-38en" class="crayons-story__hidden-navigation-link"&gt;Turn Your PDFs into a Chatbot with n8n + Open AI (No Vector DB Needed).&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/spiff" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img 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%2Fuser%2Fprofile_image%2F1392055%2F2b41052c-d618-4ca8-9376-961db9b38af9.png" alt="spiff profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/spiff" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ebikara Spiff ᴀɪᴄᴍᴄ
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ebikara Spiff ᴀɪᴄᴍᴄ
                
              
              &lt;div id="story-author-preview-content-2874994" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/spiff" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img 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%2Fuser%2Fprofile_image%2F1392055%2F2b41052c-d618-4ca8-9376-961db9b38af9.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ebikara Spiff ᴀɪᴄᴍᴄ&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/spiff/turn-your-pdfs-into-a-chatbot-with-n8n-open-ai-no-vector-db-needed-38en" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 1 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/spiff/turn-your-pdfs-into-a-chatbot-with-n8n-open-ai-no-vector-db-needed-38en" id="article-link-2874994"&gt;
          Turn Your PDFs into a Chatbot with n8n + Open AI (No Vector DB Needed).
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/openai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;openai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/spiff/turn-your-pdfs-into-a-chatbot-with-n8n-open-ai-no-vector-db-needed-38en" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/spiff/turn-your-pdfs-into-a-chatbot-with-n8n-open-ai-no-vector-db-needed-38en#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>ai</category>
      <category>openai</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Turn Your PDFs into a Chatbot with n8n + Open AI (No Vector DB Needed).</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Wed, 01 Oct 2025 18:05:09 +0000</pubDate>
      <link>https://forem.com/spiff/turn-your-pdfs-into-a-chatbot-with-n8n-open-ai-no-vector-db-needed-38en</link>
      <guid>https://forem.com/spiff/turn-your-pdfs-into-a-chatbot-with-n8n-open-ai-no-vector-db-needed-38en</guid>
      <description>&lt;p&gt;Most people think you &lt;em&gt;must&lt;/em&gt; set up a complex RAG (Retrieval Augmented Generation) system with vector databases just to give your AI some knowledge. That’s not true.&lt;/p&gt;

&lt;p&gt;If you only have &lt;strong&gt;10–30 PDF files&lt;/strong&gt;, you can keep things super simple. In this guide, you’ll learn how to power up an AI agent in &lt;strong&gt;n8n&lt;/strong&gt; using &lt;strong&gt;OpenAI Assistants API&lt;/strong&gt;, without all the extra tech.&lt;/p&gt;

&lt;p&gt;You will build a &lt;strong&gt;chatbot&lt;/strong&gt; that answers FAQs (we’ll use a restaurant example).&lt;/p&gt;

&lt;p&gt;By the end, you’ll have a working AI assistant that reads your documents, remembers chat history, and answers smartly, no headaches.&lt;/p&gt;




&lt;h2&gt;
  
  
  What You will Need
&lt;/h2&gt;

&lt;p&gt;🛠 Tools:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://n8n.io" rel="noopener noreferrer"&gt;n8n&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://openai.com/" rel="noopener noreferrer"&gt;OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And a small set of PDFs (10–30 files is perfect).&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Set Up n8n Trigger
&lt;/h2&gt;

&lt;p&gt;→ Open &lt;strong&gt;n8n&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%2Fswtllhcnp7qfts1cikf3.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%2Fswtllhcnp7qfts1cikf3.png" alt="n8n homepage" width="800" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Click on the &lt;strong&gt;trigger&lt;/strong&gt;.&lt;br&gt;
→ Choose &lt;strong&gt;Chat Message&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%2Fimlpmishuirx11odjtu1.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%2Fimlpmishuirx11odjtu1.png" alt="trigger" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Click on the trigger button, then select &lt;strong&gt;Advanced AI&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%2Fz9y5ki6qwzrqjcm1wsp8.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%2Fz9y5ki6qwzrqjcm1wsp8.png" alt="advanced AI" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 2: Connect n8n to OpenAI
&lt;/h2&gt;

&lt;p&gt;→ Add an &lt;strong&gt;OpenAI node&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%2Fzen97usa0y91qe58p222.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%2Fzen97usa0y91qe58p222.png" alt="Open AI NODE" width="800" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Select &lt;strong&gt;Message an Assistant&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%2Frj2mo9eadgvtr05thsco.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%2Frj2mo9eadgvtr05thsco.png" alt="Message an assistant" width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, connect your OpenAI account:&lt;/p&gt;

&lt;p&gt;→ Go to &lt;a href="https://platform.openai.com" rel="noopener noreferrer"&gt;OpenAI&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%2Ff15h4sd6kjntozdkkij5.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%2Ff15h4sd6kjntozdkkij5.png" alt="openai homepage" width="800" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Go to &lt;strong&gt;API Platform&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%2Fumlf4m149fg9ryfx5h95.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%2Fumlf4m149fg9ryfx5h95.png" alt="openAI API Platform" width="800" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Click &lt;strong&gt;start building&lt;/strong&gt; (If you don’t have an account, create one.)&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%2F0ez7rttos3g0b6tgzp6o.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%2F0ez7rttos3g0b6tgzp6o.png" alt="openai" width="800" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Open &lt;strong&gt;Settings&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%2Fn9b1xxz3ssuigbsfozit.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%2Fn9b1xxz3ssuigbsfozit.png" alt="setting" width="800" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Scroll down and click on &lt;strong&gt;API Keys.&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%2F9ikb0g8eq8s7qztf4ors.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%2F9ikb0g8eq8s7qztf4ors.png" alt="API Keys" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Click &lt;strong&gt;Create new secret key&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%2Fpngf8qrrw3z0unrkqhut.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%2Fpngf8qrrw3z0unrkqhut.png" alt="Create new secret key page" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Give it a name, then click &lt;strong&gt;Create secret key&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%2Fm2zvk4t3q1y5ya3j8f6b.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%2Fm2zvk4t3q1y5ya3j8f6b.png" alt="openai" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Copy the secret key.&lt;/p&gt;

&lt;p&gt;Back in &lt;strong&gt;n8n&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;→ Open your &lt;strong&gt;OpenAI Assistant&lt;/strong&gt; node.&lt;br&gt;
→ Click on &lt;strong&gt;credentials to connect with&lt;/strong&gt;&lt;br&gt;
→ Click &lt;strong&gt;Create new credentials&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%2Feu4fj4qpebrakft6h1vc.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%2Feu4fj4qpebrakft6h1vc.png" alt="n8n" width="800" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Paste your &lt;strong&gt;API key&lt;/strong&gt; in the box.&lt;br&gt;
→  Save it.&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%2Fcgqa6dvoupi7mkjtpjnc.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%2Fcgqa6dvoupi7mkjtpjnc.png" alt="api key - save" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now your &lt;strong&gt;n8n&lt;/strong&gt; is linked to &lt;strong&gt;OpenAI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;→ Go back to your &lt;strong&gt;Open AI&lt;/strong&gt; account.&lt;br&gt;
→ Click on &lt;strong&gt;billings&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%2Fsmyeaygrp75a3tipao8a.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%2Fsmyeaygrp75a3tipao8a.png" alt="OPEN AI" width="800" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Click on &lt;strong&gt;Add to credit balance&lt;/strong&gt; to make sure you have some credits.&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%2Fp139rqvtxayhrj1c0azs.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%2Fp139rqvtxayhrj1c0azs.png" alt="credit page" width="800" height="308"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 3: Create Your OpenAI Assistant
&lt;/h2&gt;

&lt;p&gt;→  Go to &lt;strong&gt;Dashboard&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%2Fxy4dgkt2mdfprfv5nfnr.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%2Fxy4dgkt2mdfprfv5nfnr.png" alt="open ai dashboard" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Click &lt;strong&gt;Assistants&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%2Fdmrw1kn84qqdjw9yc73k.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%2Fdmrw1kn84qqdjw9yc73k.png" alt="create new assistant" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Give it a name (example: &lt;code&gt;RAG Agent&lt;/code&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%2Fvvjf9ic553khpt9o6l1y.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%2Fvvjf9ic553khpt9o6l1y.png" alt="RAG AI Agent" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Copy the &lt;strong&gt;Assistant ID&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%2Fdohn9qmwaxyuh87vyajt.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%2Fdohn9qmwaxyuh87vyajt.png" alt="assistant id" width="800" height="294"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Back in &lt;strong&gt;n8n&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;→  Open your &lt;strong&gt;OpenAI node&lt;/strong&gt;.&lt;br&gt;
→  In the &lt;strong&gt;Assistant box&lt;/strong&gt;, choose &lt;strong&gt;By ID&lt;/strong&gt;.&lt;br&gt;
→  Paste the ID you copied.&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%2Fvnn6janjw8g5q18x7w30.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%2Fvnn6janjw8g5q18x7w30.png" alt="n8n" width="800" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;p&gt;→  Under &lt;strong&gt;Source from prompt (user message)&lt;/strong&gt;, pick &lt;strong&gt;Define below&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%2Fi8aznn7yc34m0lblhj9m.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%2Fi8aznn7yc34m0lblhj9m.png" alt="define below" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Back to your &lt;strong&gt;OpenAI&lt;/strong&gt; dashboard where you copied the &lt;strong&gt;id&lt;/strong&gt;&lt;br&gt;
→  Put this in your system's instructions: &lt;code&gt;Respond to the user query by following the given instruction&lt;/code&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%2Fkzfkfkqkvtyxtzamjms2.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%2Fkzfkfkqkvtyxtzamjms2.png" alt="OpenAI" width="800" height="298"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 4: Add Knowledge (Upload Files)
&lt;/h2&gt;

&lt;p&gt;→  In your OpenAI assistant dashboard, scroll to &lt;strong&gt;File Search&lt;/strong&gt;.&lt;br&gt;
→  Turn it &lt;strong&gt;On&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%2Fpw83i7tr8gfsuhliq842.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%2Fpw83i7tr8gfsuhliq842.png" alt="KNOWLEDGE BASE" width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Click the &lt;strong&gt;Files&lt;/strong&gt; button beside it.&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%2Fs997f1y9cb5yjh8ex849.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%2Fs997f1y9cb5yjh8ex849.png" alt="OPENAI files" width="800" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Upload the files you want the AI agent to access&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%2F20r5h5em60qnad9ew8rt.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%2F20r5h5em60qnad9ew8rt.png" alt="AI agent" width="800" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 For this tutorial, Let's upload &lt;strong&gt;one FAQ file&lt;/strong&gt; with about 25 restaurant questions. (In real use, you can upload up to 30 or more files.)&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%2Fn7ui3qh8vyctcpvbl8m1.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%2Fn7ui3qh8vyctcpvbl8m1.png" alt="one FAQ file" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Click &lt;strong&gt;Attach&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%2F78azkh8y61vrwhq5o1sp.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%2F78azkh8y61vrwhq5o1sp.png" alt="pdf upload" width="800" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now your agent can read these files.&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 5: Write the System Instructions
&lt;/h2&gt;

&lt;p&gt;→ Go to your &lt;strong&gt;OpenAI&lt;/strong&gt; assistant node&lt;br&gt;
→ Add the prompt below in &lt;strong&gt;the prompt user message&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%2Fpw2tefwah6yi6hdxctqs.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%2Fpw2tefwah6yi6hdxctqs.png" alt="System Instructions" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  RAG Agent Prompt
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Identity&lt;/strong&gt;&lt;br&gt;
You are an AI assistant for Jennie’s Restaurant. Your role is to help customers by answering FAQs about menu items, hours, location, and general restaurant policies. Be friendly, professional, and concise. Do not assist with reservations, payments, or event bookings. Use only the restaurant’s FAQ knowledge base for answers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Style Guardrails&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Be Concise: Keep responses short, direct, and informative.&lt;/li&gt;
&lt;li&gt;Be Engaging: Use a warm, welcoming tone.&lt;/li&gt;
&lt;li&gt;Stay Proactive: Offer extra help naturally (e.g., “Would you also like to know about our specials?”).&lt;/li&gt;
&lt;li&gt;Get Clarity: If a request is unclear, politely ask a follow-up question.&lt;/li&gt;
&lt;li&gt;Avoid Repetition: Change your wording so replies don’t sound the same.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conversation Flow&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Introduction&lt;/strong&gt;
Greet warmly and offer help.
Example:&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;“Hi! Thanks for reaching out to Jennie’s Restaurant. How can I help you today?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Answer FAQs&lt;/strong&gt;&lt;br&gt;
Always check the FAQ knowledge base. Never guess. Use the &lt;code&gt;remove_annotations&lt;/code&gt; tool to clean the response.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;If the Query Is Vague&lt;/strong&gt;&lt;br&gt;
Ask politely for more details.&lt;br&gt;
Example:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;“Could you clarify if you’re asking about the lunch or dinner menu at Jennie’s Restaurant?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;If the Query Is Out of Scope&lt;/strong&gt;
Apologize and send them to a human.
Example:&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;“I’m sorry, I can’t help with that. Please call (555) 123-4567 for more details.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Closure&lt;/strong&gt;
Offer more help, then close politely.
Example:&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;“Is there anything else I can help you with today?”&lt;br&gt;
If not:&lt;br&gt;
“Thanks for reaching out to Jennie’s Restaurant. Have a wonderful day!”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Tool Usage&lt;/strong&gt;&lt;br&gt;
Always run your final answer through the &lt;code&gt;remove_annotations&lt;/code&gt; tool before replying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Date today:&lt;/strong&gt; {{ $now }}&lt;br&gt;
&lt;strong&gt;User’s input:&lt;/strong&gt; {{ $json.chatInput }}&lt;/p&gt;

&lt;p&gt;👉 Make sure &lt;code&gt;{{ $json.chatInput }}&lt;/code&gt; shows in &lt;strong&gt;green&lt;/strong&gt; inside n8n. &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%2Fh3bpg7skdwyo6sta2h92.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%2Fh3bpg7skdwyo6sta2h92.png" alt="OPENAI assistant" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ If it’s not green, drag &lt;code&gt;chatInput&lt;/code&gt; into that spot.&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%2Fgico868zcp2fmjb25nf1.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%2Fgico868zcp2fmjb25nf1.png" alt="drag chatInput" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 6: Add Memory
&lt;/h2&gt;

&lt;p&gt;In your &lt;strong&gt;AI Assistant node&lt;/strong&gt; (n8n):&lt;/p&gt;

&lt;p&gt;→  Click on &lt;strong&gt;Memory lane&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%2Fx35cuh6wiy0naoev1j9x.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%2Fx35cuh6wiy0naoev1j9x.png" alt="memory lane" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Pick &lt;strong&gt;Simple memory&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%2Frmvk6cvcd3ag3m3g0iol.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%2Frmvk6cvcd3ag3m3g0iol.png" alt="simple memory" width="800" height="259"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Set &lt;strong&gt;Context window length&lt;/strong&gt; to &lt;strong&gt;10&lt;/strong&gt; (or any number you prefer.)&lt;/p&gt;

&lt;p&gt;This way, the bot remembers the last 10 messages in the same chat.&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%2Fokwsk1t0j5h8e1vd870i.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%2Fokwsk1t0j5h8e1vd870i.png" alt="Context window length" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 7: Add a Cleanup Tool (remove annotations)
&lt;/h2&gt;

&lt;p&gt;You don’t want the bot showing raw citations. So let’s add a cleanup tool.&lt;/p&gt;

&lt;p&gt;→  In your &lt;strong&gt;OpenAI assistant&lt;/strong&gt;, click on the boxed cross on &lt;strong&gt;Tools&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%2Faucgeiuvsfs7zmxpfslu.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%2Faucgeiuvsfs7zmxpfslu.png" alt="openAI" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Select &lt;strong&gt;Code tool&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%2Fw3ctbs0jzkg58ev7zodh.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%2Fw3ctbs0jzkg58ev7zodh.png" alt="Code tool image" width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→  Name it: &lt;code&gt;remove_annotations&lt;/code&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%2Fy1lvghzg9rjnmkfmh0bm.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%2Fy1lvghzg9rjnmkfmh0bm.png" alt="remove annontation" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Description: &lt;code&gt;Removes any annotation from the output. Always use this before sending to customer.&lt;/code&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%2Fays60uk640enq3t76mqa.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%2Fays60uk640enq3t76mqa.png" alt="n8n description" width="800" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Paste this code in the JavaScript box:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;removeAnnotations&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/【&lt;/span&gt;&lt;span class="se"&gt;[^&lt;/span&gt;&lt;span class="sr"&gt;】&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;*】/g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Example usage&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;removeAnnotations&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&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%2Ffpeafbg3d8rx01jd9grf.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%2Ffpeafbg3d8rx01jd9grf.png" alt="javascript" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Save it.&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%2Fwz4r5if6be1jwi0f6qm4.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%2Fwz4r5if6be1jwi0f6qm4.png" alt="save it" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Restaurant FAQ Chatbot
&lt;/h2&gt;

&lt;p&gt;Now test your chatbot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Type a question about Jennie’s Restaurant.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The bot will check the FAQ file, clean up the answer, and reply in a warm, short style.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Big RAG Misconception
&lt;/h2&gt;

&lt;p&gt;Most people think &lt;strong&gt;RAG = Vector Database&lt;/strong&gt;. That’s wrong.&lt;/p&gt;

&lt;p&gt;For small projects with a few documents, you don’t need Pinecone, Weaviate, or any other heavy setup.&lt;/p&gt;

&lt;p&gt;OpenAI Assistants + n8n file uploads work just fine.&lt;/p&gt;

&lt;p&gt;Vector DBs are useful at scale. But for &lt;strong&gt;10–30 PDFs&lt;/strong&gt;, skip the complexity and keep it light.&lt;/p&gt;




&lt;p&gt;You just built a working AI agent in n8n using OpenAI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trigger on chat.&lt;/li&gt;
&lt;li&gt;Connect to OpenAI.&lt;/li&gt;
&lt;li&gt;Create an assistant.&lt;/li&gt;
&lt;li&gt;Upload files.&lt;/li&gt;
&lt;li&gt;Add memory.&lt;/li&gt;
&lt;li&gt;Clean responses.&lt;/li&gt;
&lt;li&gt;Test your chat.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Simple, clean, and affordable. No vector databases, no headaches.&lt;/p&gt;

&lt;p&gt;👉 Try it out with your own docs today.&lt;/p&gt;




</description>
      <category>ai</category>
      <category>openai</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How To Self-Host N8N For FREE (In 4 Minutes).</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Mon, 22 Sep 2025 01:49:19 +0000</pubDate>
      <link>https://forem.com/spiff/how-to-self-host-n8n-for-free-in-4-minutes-4kil</link>
      <guid>https://forem.com/spiff/how-to-self-host-n8n-for-free-in-4-minutes-4kil</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%2Flck5764bu3omsyy5cnxe.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%2Flck5764bu3omsyy5cnxe.png" alt="Image of n8n monthly cost" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Do you want powerful automations without paying for pricey tools? Let me tell you a secret: you can self-host n8n for free and it only takes 4 minutes to set up.&lt;/p&gt;

&lt;p&gt;n8n lets you connect apps, move data, and automate tasks that usually eat up your time. The best part of it all is that You own it. No subscriptions. No limits.&lt;/p&gt;

&lt;p&gt;In this guide, I’ll show you step by step how to get &lt;a href="//n8n.io"&gt;n8n&lt;/a&gt; running fast using &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;. By the end, you will have your own automation hub that is free, simple, and under your control. 🚀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;&lt;br&gt;
First we have to download and install &lt;a href="//docker.com"&gt;Docker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Go to &lt;a href="//docker.com"&gt;docker.com&lt;/a&gt; and download &lt;code&gt;Docker desktop&lt;/code&gt; for system.&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%2Ffb6k693k7r3t7m4ib6xc.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%2Ffb6k693k7r3t7m4ib6xc.png" alt="Image of docker download page" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Mine is Windows.&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%2Ff5o5zt7ciguias9c12bn.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%2Ff5o5zt7ciguias9c12bn.png" alt="Image of dockers windows download page" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before installing &lt;code&gt;Docker&lt;/code&gt;, you must check the &lt;code&gt;system requirements&lt;/code&gt; to confirm if your PC can run it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## System Requirements (Step by Step)&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%2Fvdfpdf0jlu9hmmp962v5.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%2Fvdfpdf0jlu9hmmp962v5.png" alt="Image of docker's system requirements page" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Check WSL Version&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first requirement is &lt;code&gt;WSL 1.1.3.0 or later.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To check if it’s installed:&lt;/p&gt;

&lt;p&gt;→ Press &lt;code&gt;Windows + R&lt;/code&gt;, type &lt;code&gt;cmd&lt;/code&gt;, and press &lt;code&gt;Enter&lt;/code&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%2Fp0ku1p891oqdpf6gntpp.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%2Fp0ku1p891oqdpf6gntpp.png" alt="Image docker's system's requirement" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It will take you to your terminal&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%2F8ayzzjsnr789jrsqpku4.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%2F8ayzzjsnr789jrsqpku4.png" alt="Image of window terminal" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ In terminal, run &lt;code&gt;WSL&lt;/code&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%2Fx71dkekv2cn4iux3loss.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%2Fx71dkekv2cn4iux3loss.png" alt="Image WIN Terminal" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If &lt;code&gt;WSL&lt;/code&gt; runs, it’s installed.&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%2Fenl5rb3e3o0bhrwf5lzm.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%2Fenl5rb3e3o0bhrwf5lzm.png" alt="Image WIN Terminal" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If not installed &lt;/p&gt;

&lt;p&gt;→ Type &lt;code&gt;wsl --install&lt;/code&gt; and press &lt;code&gt;enter&lt;/code&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%2F99go8v16alc6jvbcdnx8.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%2F99go8v16alc6jvbcdnx8.png" alt="Image WIN Terminal" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Check Windows Version&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next on the requirement page, it says we need to have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Operating System: Windows 11, 64-bit&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Edition: Pro&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Version: 21H2 or later&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;→ Press &lt;code&gt;Win + R&lt;/code&gt; and type &lt;code&gt;winver&lt;/code&gt; in the box, then hit &lt;code&gt;Okay&lt;/code&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%2F7r94675sv44on032ene2.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%2F7r94675sv44on032ene2.png" alt="Image of system's requirement" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My version is &lt;code&gt;22H2&lt;/code&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%2Furuuat28cg8incshsoi2.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%2Furuuat28cg8incshsoi2.png" alt="Image of my windows version" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Enable WSL 2 Features&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The next requirement - Turn on &lt;code&gt;WSL 2&lt;/code&gt; features on &lt;code&gt;windows&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;→ Go to the search bar on your system and type &lt;code&gt;Enable windows&lt;/code&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%2Fpoya9waorjbzsgnp9d05.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%2Fpoya9waorjbzsgnp9d05.png" alt="Image of windows home page" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Click on &lt;code&gt;Turn Windows features on or off&lt;/code&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%2F13co30ntytl9zrpm27al.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%2F13co30ntytl9zrpm27al.png" alt="Image of windows home page" width="800" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Enable &lt;code&gt;Windows Subsystem for Linux (WSL)&lt;/code&gt; by ticking the box beside it. &lt;/p&gt;

&lt;p&gt;→ Click &lt;code&gt;Ok&lt;/code&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%2F2oab4pvvrvfe8xfvvppj.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%2F2oab4pvvrvfe8xfvvppj.png" alt="Image of WSL box" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wait for setup to finish&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%2Fzrm5sqza5sc7x3tvv88c.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%2Fzrm5sqza5sc7x3tvv88c.png" alt="Image of setup" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Select &lt;code&gt;Don’t restart&lt;/code&gt; for now.&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%2F6v34a00bkgkqlgbaf5hd.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%2F6v34a00bkgkqlgbaf5hd.png" alt="Image setup" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Verify Virtualization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next on the requirement page, check if  &lt;code&gt;virtualization is enabled.&lt;/code&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%2F59wx5sgvrj3bnt5jc5v3.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%2F59wx5sgvrj3bnt5jc5v3.png" alt=" " width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To check if &lt;code&gt;Virtualization is enabled&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;→ Press &lt;code&gt;Ctrl + Esc&lt;/code&gt; key to open &lt;code&gt;Task Manager.&lt;/code&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%2Fsn9ae95vxwb4rm8640ra.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%2Fsn9ae95vxwb4rm8640ra.png" alt="Image of task manager" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Click on the &lt;code&gt;second icon&lt;/code&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%2Fnzh3hntceld5e2jcrmhj.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%2Fnzh3hntceld5e2jcrmhj.png" alt="Image of task manager" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Click on &lt;code&gt;CPU&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;At the bottom, check if &lt;code&gt;Virtualization is enabled&lt;/code&gt; (it usually is by default).&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%2Fxf59svnfygw3ei5iirwc.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%2Fxf59svnfygw3ei5iirwc.png" alt="Image of CPU" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Install Docker on Windows
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Run the Installer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;→ Double-click the &lt;code&gt;Docker Desktop installer&lt;/code&gt; you downloaded.&lt;/p&gt;

&lt;p&gt;→ Click &lt;code&gt;Yes&lt;/code&gt; when prompted for permissions.&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%2Fpdrb7vhq1rwbzhosk7gh.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%2Fpdrb7vhq1rwbzhosk7gh.png" alt="Image of docker file" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Configure Setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;→ Keep the shortcut option checked.&lt;/p&gt;

&lt;p&gt;→ Click &lt;code&gt;OK&lt;/code&gt; to continue.&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%2F4qwt55z7ub0d99wk30hg.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%2F4qwt55z7ub0d99wk30hg.png" alt="Image docker setup" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:  Install&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Docker&lt;/code&gt; will unpack files and install automatically.&lt;/p&gt;

&lt;p&gt;This may take several minutes, be patient.&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%2Fh5ewg7oiwxr1twn0klne.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%2Fh5ewg7oiwxr1twn0klne.png" alt="Image of docker installing" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Confirm Installation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When complete, you will see &lt;code&gt;Installation Successful.&lt;/code&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%2Fjbyj79h9w1p7q1ka1guo.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%2Fjbyj79h9w1p7q1ka1guo.png" alt="Image docker" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Restart and Launch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Restart your computer.&lt;/p&gt;

&lt;p&gt;→ Open &lt;code&gt;Docker Desktop&lt;/code&gt;, &lt;/p&gt;

&lt;p&gt;You are ready to use &lt;code&gt;Docker&lt;/code&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%2Fbymhgb3mxows2ehqoh4h.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%2Fbymhgb3mxows2ehqoh4h.png" alt="Image docker's home page" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## How to Self-Host n8n for Free&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1. Open Docker Desktop&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Make sure Docker is installed and running.&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%2Fbymhgb3mxows2ehqoh4h.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%2Fbymhgb3mxows2ehqoh4h.png" alt="Image docker's home page" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2. Go to the Images Tab&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In &lt;code&gt;Docker Desktop&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;→ Click on &lt;code&gt;Images&lt;/code&gt; from the left panel.&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%2Fnvhkuhzci0f6zbhr2i2u.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%2Fnvhkuhzci0f6zbhr2i2u.png" alt="Image of docker home page" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3. Search for n8n&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;→ Click on search &lt;code&gt;images&lt;/code&gt; to run.&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%2Fl74ap4a06akb5qri1pra.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%2Fl74ap4a06akb5qri1pra.png" alt="Image of docker home page" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ In the &lt;code&gt;search bar&lt;/code&gt;, type: &lt;code&gt;n8n&lt;/code&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%2Fweeyobi6e6h3w6rpbnud.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%2Fweeyobi6e6h3w6rpbnud.png" alt="Image of search bar" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4. Select the Official Image&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;→ Choose &lt;code&gt;n8nio/n8n (the one with 100M+ downloads).&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;→ Click &lt;code&gt;Pull&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This downloads the official &lt;code&gt;n8n Docker image&lt;/code&gt; to your computer.&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%2F66dojhls9kivq33becxw.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%2F66dojhls9kivq33becxw.png" alt="Image of n8n.io" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5. Run the Image&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After pulling:&lt;/p&gt;

&lt;p&gt;→  Click &lt;code&gt;Run&lt;/code&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%2F8ojyrtwstoo0zcsc0f10.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%2F8ojyrtwstoo0zcsc0f10.png" alt="Image of docker" width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, &lt;strong&gt;Configure the container:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;Container Name:&lt;/strong&gt; &lt;code&gt;n8n&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;Host Port:&lt;/strong&gt; &lt;code&gt;5678&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;→ Click &lt;code&gt;Run&lt;/code&gt; again.&lt;/p&gt;

&lt;p&gt;This downloads the official &lt;code&gt;n8n Docker image&lt;/code&gt; to your computer.&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%2Frq0k3p4dm4lkwoq4zsx7.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%2Frq0k3p4dm4lkwoq4zsx7.png" alt="Image docker" width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6. Wait for Startup.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let &lt;code&gt;Docker&lt;/code&gt; run until you see this message:&lt;/p&gt;

&lt;p&gt;→ &lt;code&gt;Editor is now accessible via: http://localhost:5678&lt;/code&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%2Fcie2x2b1fqgkap6zpy86.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%2Fcie2x2b1fqgkap6zpy86.png" alt="Image docker" width="800" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7. Open n8n in Browser&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;→ Copy and paste &lt;code&gt;http://localhost:5678&lt;/code&gt; into your browser and run.&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%2Fat0ioc1vqoaunmb52p39.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%2Fat0ioc1vqoaunmb52p39.png" alt="Image docker" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will see the &lt;code&gt;n8n&lt;/code&gt; welcome 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%2F147ieo2bizngxiroviam.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%2F147ieo2bizngxiroviam.png" alt="Image docker" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;→ Confirm the URL shows &lt;code&gt;localhost:5678.&lt;/code&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%2Fb8b8587kf8almzqva2n7.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%2Fb8b8587kf8almzqva2n7.png" alt="Image docker" width="800" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8. Create Your Account&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sign up with your details (Let's use a demo account).&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%2Fpy3lahvgx4yxzuumjd2e.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%2Fpy3lahvgx4yxzuumjd2e.png" alt="Image docker" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Log in to access your &lt;code&gt;n8n&lt;/code&gt; dashboard.&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%2F2wv4ir7i9er4rb29plqb.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%2F2wv4ir7i9er4rb29plqb.png" alt="Image docker" width="800" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations. You now have &lt;code&gt;n8n&lt;/code&gt; running locally on your computer with Docker.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>ai</category>
      <category>automation</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Whose Fairness Are You Coding Into Your AI System?</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Wed, 23 Apr 2025 04:35:10 +0000</pubDate>
      <link>https://forem.com/spiff/whose-fairness-are-you-coding-into-your-ai-system-47i0</link>
      <guid>https://forem.com/spiff/whose-fairness-are-you-coding-into-your-ai-system-47i0</guid>
      <description>&lt;p&gt;As developers, we’re often taught to treat fairness like a math problem.&lt;/p&gt;

&lt;p&gt;Balance the dataset.&lt;br&gt;&lt;br&gt;
Reduce bias.&lt;br&gt;&lt;br&gt;
Optimize the outcome.  &lt;/p&gt;

&lt;p&gt;But here’s a question I’ve been wrestling with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Is fairness universal — or is it cultural?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Growing up, I saw fairness differently
&lt;/h2&gt;

&lt;p&gt;I’m from Nigeria.&lt;/p&gt;

&lt;p&gt;Where I grew up, fairness didn’t mean “treat everyone exactly the same.”&lt;br&gt;&lt;br&gt;
It often meant “consider people’s different realities.”&lt;/p&gt;

&lt;p&gt;Think about it:&lt;br&gt;&lt;br&gt;
If two students show up late to class, one because of traffic, the other because they were helping their parents in the market,  do we punish them both the same way?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Same rule, different context.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
And &lt;em&gt;maybe&lt;/em&gt; fairness means acknowledging that.&lt;/p&gt;




&lt;h2&gt;
  
  
  AI doesn't always do that
&lt;/h2&gt;

&lt;p&gt;Most AI systems we build today encode a &lt;em&gt;Western&lt;/em&gt; interpretation of fairness:&lt;br&gt;&lt;br&gt;
🧮 Group fairness&lt;br&gt;&lt;br&gt;
⚖️ Individual fairness&lt;br&gt;&lt;br&gt;
📊 Statistical parity&lt;/p&gt;

&lt;p&gt;These are important, but they’re not always &lt;em&gt;enough&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Take this real case:&lt;br&gt;&lt;br&gt;
A credit scoring algorithm in Kenya failed to recognize community-based lending traditions, like rotating savings groups (ROSCAs).&lt;/p&gt;

&lt;p&gt;As a result, reliable borrowers were marked “high-risk” because the system didn’t understand local context.&lt;/p&gt;

&lt;p&gt;Fair model?&lt;br&gt;&lt;br&gt;
Accurate data?&lt;br&gt;&lt;br&gt;
Maybe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fair outcome?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Not really.&lt;/p&gt;




&lt;h2&gt;
  
  
  Developers, we need to ask harder questions
&lt;/h2&gt;

&lt;p&gt;If you’re working on AI, especially models that affect people’s lives, I urge you to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Whose values are we embedding into our models?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are we treating fairness as a checklist or a conversation?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Can our systems adapt to different cultural realities, not just datasets?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;As I prepare for a PhD, I’m committed to asking these questions, and building models that reflect &lt;em&gt;local values&lt;/em&gt;, not just global assumptions.&lt;/p&gt;

&lt;p&gt;Because true fairness in AI might not come from the top down, but from the &lt;strong&gt;Global South outward&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;💬 &lt;em&gt;What’s your take?&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Have you ever worked on an AI project where fairness was tricky to define? &lt;/p&gt;

&lt;p&gt;Do you think AI models should adapt to different cultures, or aim for universal rules?&lt;/p&gt;

&lt;p&gt;Let’s talk in the comments 👇🏽&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>ethicalai</category>
      <category>responsibleai</category>
    </item>
    <item>
      <title>How to Set Up a Cost-Effective AWS Environment: A Step-by-Step Guide for Startups and Small Businesses.</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Wed, 11 Sep 2024 09:45:57 +0000</pubDate>
      <link>https://forem.com/spiff/how-to-set-up-a-cost-effective-aws-environment-a-step-by-step-guide-for-startups-and-small-businesses-5afb</link>
      <guid>https://forem.com/spiff/how-to-set-up-a-cost-effective-aws-environment-a-step-by-step-guide-for-startups-and-small-businesses-5afb</guid>
      <description>&lt;p&gt;Every unnecessary cent spent brings your organization one step closer to the end of it's runway, a grueling fundraising round, or even the end of your startup.&lt;/p&gt;

&lt;p&gt;As a founder, you want to focus on innovation and finding that perfect product-market fit, not worrying about infrastructure or unexpected costs. According to &lt;strong&gt;RightScale&lt;/strong&gt;, small and medium-sized companies &lt;strong&gt;overspend by an average of 35% on cloud resources.&lt;/strong&gt; This equates to $6.4 billion in annualized wasted cost for AWS alone.&lt;/p&gt;

&lt;p&gt;One way many startups manage costs is by opting to use flexible &lt;a href="https://aws.amazon.com/about-aws/global-infrastructure/" rel="noopener noreferrer"&gt;AWS cloud infrastructure.&lt;/a&gt; With this in mind, Here is a how-to guide to help you create a cost-effective AWS environment for your small startup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Should Startups Use AWS?
&lt;/h2&gt;

&lt;p&gt;Before diving into specific cost-saving tips, let’s explore why startups should consider using a cloud infrastructure provider like &lt;a href="https://aws.amazon.com/free/?gclid=Cj0KCQjwlvW2BhDyARIsADnIe-KCVAsRc2Gc9_Miw-JWQRlRFknpnYpkjoSn2V3tkqImhr_Hx3EnXPgaAg20EALw_wcB&amp;amp;trk=2d3e6bee-b4a1-42e0-8600-6f2bb4fcb10c&amp;amp;sc_channel=ps&amp;amp;ef_id=Cj0KCQjwlvW2BhDyARIsADnIe-KCVAsRc2Gc9_Miw-JWQRlRFknpnYpkjoSn2V3tkqImhr_Hx3EnXPgaAg20EALw_wcB:G:s&amp;amp;s_kwcid=AL!4422!3!645125273261!e!!g!!aws!19574556887!145779846712&amp;amp;all-free-tier.sort-by=item.additionalFields.SortRank&amp;amp;all-free-tier.sort-order=asc&amp;amp;awsf.Free%20Tier%20Types=*all&amp;amp;awsf.Free%20Tier%20Categories=*all" rel="noopener noreferrer"&gt;AWS&lt;/a&gt;. Physical infrastructure can quickly consume a large portion of a startup’s budget.&lt;/p&gt;

&lt;p&gt;Cloud infrastructure, particularly when provided by AWS, offers a flexible solution to this problem. It can scale up or down based on demand, allowing startups to avoid the significant expenses of maintaining physical infrastructure. Additionally, AWS outsources much of the technical work to a highly specialized team that excels in maximizing efficiency and passing those savings on to their clients.&lt;/p&gt;

&lt;p&gt;That said, cloud infrastructure isn't automatically cheap. Poor optimization can lead to escalating costs. That’s why AWS emphasizes cost optimization as a core aspect of their Shared Responsibility Model and Well-Architected Framework. While it’s the responsibility of AWS customers to configure their infrastructure properly, AWS provides several built-in optimization tools and partners who can assist in ensuring cost-effective usage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Familiar with the AWS Environment.
&lt;/h2&gt;

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

&lt;p&gt;Start by getting comfortable with the &lt;a href="https://aws.amazon.com/free/?gclid=Cj0KCQjwlvW2BhDyARIsADnIe-KZI6PeFHTF5P1X1Ln8CUeBkB7rCSlFmDJP6F7aUdwTFfPX7fZkJ2IaAriNEALw_wcB&amp;amp;trk=99f831a2-d162-429a-9a77-a89f6b3bd6cd&amp;amp;sc_channel=ps&amp;amp;ef_id=Cj0KCQjwlvW2BhDyARIsADnIe-KZI6PeFHTF5P1X1Ln8CUeBkB7rCSlFmDJP6F7aUdwTFfPX7fZkJ2IaAriNEALw_wcB:G:s&amp;amp;s_kwcid=AL!4422!3!645125273270!e!!g!!aws%20amazon%20console!19574556890!145779847152&amp;amp;all-free-tier.sort-by=item.additionalFields.SortRank&amp;amp;all-free-tier.sort-order=asc&amp;amp;awsf.Free%20Tier%20Types=*all&amp;amp;awsf.Free%20Tier%20Categories=*all" rel="noopener noreferrer"&gt;AWS Management Console&lt;/a&gt;. This is your primary interface for managing AWS services. &lt;/p&gt;

&lt;p&gt;The AWS Management Console is a web-based user interface that makes it easy to manage and interact with Amazon Web Services (AWS). It provides a simple, intuitive way to access and manage AWS cloud resources and services, such as computing power, storage, databases, and machine learning tools.&lt;/p&gt;

&lt;p&gt;With the &lt;a href="https://aws.amazon.com/free/?gclid=Cj0KCQjwlvW2BhDyARIsADnIe-KZI6PeFHTF5P1X1Ln8CUeBkB7rCSlFmDJP6F7aUdwTFfPX7fZkJ2IaAriNEALw_wcB&amp;amp;trk=99f831a2-d162-429a-9a77-a89f6b3bd6cd&amp;amp;sc_channel=ps&amp;amp;ef_id=Cj0KCQjwlvW2BhDyARIsADnIe-KZI6PeFHTF5P1X1Ln8CUeBkB7rCSlFmDJP6F7aUdwTFfPX7fZkJ2IaAriNEALw_wcB:G:s&amp;amp;s_kwcid=AL!4422!3!645125273270!e!!g!!aws%20amazon%20console!19574556890!145779847152&amp;amp;all-free-tier.sort-by=item.additionalFields.SortRank&amp;amp;all-free-tier.sort-order=asc&amp;amp;awsf.Free%20Tier%20Types=*all&amp;amp;awsf.Free%20Tier%20Categories=*all" rel="noopener noreferrer"&gt;AWS Management Console&lt;/a&gt;, you can:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Launch and Manage Services&lt;/strong&gt;: Start new services like EC2 instances, RDS databases, or S3 storage buckets with a few clicks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitor Resources&lt;/strong&gt;: View and track the status and health of your resources in real time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Access Management Tools&lt;/strong&gt;: Use services like AWS IAM (Identity and Access Management) to manage user access and security settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Organize Resources&lt;/strong&gt;: Tag and organize your resources for easier management and cost allocation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create and Manage Dashboards&lt;/strong&gt;: Visualize and monitor the performance of your applications and infrastructure with customizable dashboards.&lt;/p&gt;

&lt;p&gt;The &lt;a href="(https://aws.amazon.com/free/?gclid=Cj0KCQjwlvW2BhDyARIsADnIe-KZI6PeFHTF5P1X1Ln8CUeBkB7rCSlFmDJP6F7aUdwTFfPX7fZkJ2IaAriNEALw_wcB&amp;amp;trk=99f831a2-d162-429a-9a77-a89f6b3bd6cd&amp;amp;sc_channel=ps&amp;amp;ef_id=Cj0KCQjwlvW2BhDyARIsADnIe-KZI6PeFHTF5P1X1Ln8CUeBkB7rCSlFmDJP6F7aUdwTFfPX7fZkJ2IaAriNEALw_wcB:G:s&amp;amp;s_kwcid=AL!4422!3!645125273270!e!!g!!aws%20amazon%20console!19574556890!145779847152&amp;amp;all-free-tier.sort-by=item.additionalFields.SortRank&amp;amp;all-free-tier.sort-order=asc&amp;amp;awsf.Free%20Tier%20Types=*all&amp;amp;awsf.Free%20Tier%20Categories=*all)"&gt;AWS Management Console&lt;/a&gt; is designed for both beginners and experienced cloud professionals, providing guided workflows and advanced tools to help you make the most of AWS services.&lt;/p&gt;

&lt;h3&gt;
  
  
  Here’s how to navigate through key services:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://aws.amazon.com/pm/ec2/?gclid=CjwKCAjw_4S3BhAAEiwA_64YhkTDtb15IkVQl9lVGDSdviqXuHhUitZ7OCgRLaBV_mnCioj3IIvoBhoCBIUQAvD_BwE&amp;amp;trk=3fc1271f-8d0f-43b5-b177-4fba4b680f8b&amp;amp;sc_channel=ps&amp;amp;ef_id=CjwKCAjw_4S3BhAAEiwA_64YhkTDtb15IkVQl9lVGDSdviqXuHhUitZ7OCgRLaBV_mnCioj3IIvoBhoCBIUQAvD_BwE:G:s&amp;amp;s_kwcid=AL!4422!3!645125292218!e!!g!!aws%20ec2!19574556935!145779863272" rel="noopener noreferrer"&gt;Amazon EC2&lt;/a&gt; (Elastic Compute Cloud)&lt;/strong&gt;: Use this for scalable computing capacity. Select the correct instance type based on your workload. Use Auto Scaling to dynamically adjust capacity and reduce costs.&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%2Fr01k638fqvrr35oi94kp.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%2Fr01k638fqvrr35oi94kp.png" alt="Image of Amazon EC2" width="800" height="951"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Navigating to EC2 (Elastic Compute Cloud)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 1&lt;/em&gt;: After logging in, locate the &lt;code&gt;Services menu&lt;/code&gt; at the top of the &lt;code&gt;AWS Management Console&lt;/code&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%2Fzw1sth092pe0ys0foaf9.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%2Fzw1sth092pe0ys0foaf9.png" alt="Homepage of EC2" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 2&lt;/em&gt;: Click  &lt;code&gt;Compute section.&lt;/code&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%2Fdpoz27cjvtx45yr8iyun.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%2Fdpoz27cjvtx45yr8iyun.png" alt="Compute section of aws" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 3: Click on &lt;code&gt;EC2&lt;/code&gt; and this will take you to the &lt;code&gt;EC2 dashboard&lt;/code&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%2F3rcq1inemwq8uqsqw0wx.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%2F3rcq1inemwq8uqsqw0wx.png" alt="EC2 dashboard" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 4&lt;/em&gt;: In the &lt;code&gt;EC2 dashboard&lt;/code&gt;, you can manage &lt;code&gt;instances&lt;/code&gt;, &lt;code&gt;security groups&lt;/code&gt;, &lt;code&gt;elastic IPs&lt;/code&gt;, &lt;code&gt;key pairs&lt;/code&gt;, and more. Use the left-side menu to explore different EC2 features, such as &lt;code&gt;Instances&lt;/code&gt;, &lt;code&gt;AMI&lt;/code&gt;, &lt;code&gt;Snapshots&lt;/code&gt;, etc.&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%2Fdcnhgcw7laah9xw1bs63.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%2Fdcnhgcw7laah9xw1bs63.png" alt="EC2 dashboard" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://aws.amazon.com/pm/serv-s3/?gclid=CjwKCAjw_4S3BhAAEiwA_64Yhtal3jwySDvw-Awc2N9x6y3Y9SpaS4sg1_n5qwDof57NzO0axJ5GgRoCjTsQAvD_BwE&amp;amp;trk=c8974be7-bc21-436d-8108-722e8ab912e1&amp;amp;sc_channel=ps&amp;amp;ef_id=CjwKCAjw_4S3BhAAEiwA_64Yhtal3jwySDvw-Awc2N9x6y3Y9SpaS4sg1_n5qwDof57NzO0axJ5GgRoCjTsQAvD_BwE:G:s&amp;amp;s_kwcid=AL!4422!3!645125274431!e!!g!!amazon%20s3!19574556914!145779857032" rel="noopener noreferrer"&gt;Amazon S3&lt;/a&gt; (Simple Storage Service)&lt;/strong&gt;: Ideal for storing and retrieving any amount of data. Choose appropriate storage classes (e.g. &lt;code&gt;Standard&lt;/code&gt;, &lt;code&gt;Intelligent-Tiering&lt;/code&gt;, &lt;code&gt;Glacier&lt;/code&gt;) to balance cost and access needs: &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%2Fc1cbb7lcoarj53eez64m.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%2Fc1cbb7lcoarj53eez64m.png" alt="Image of Amazon S3" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Navigating to S3 (Simple Storage Service)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 1&lt;/em&gt;: Go to the &lt;code&gt;Service menu.&lt;/code&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%2Fmak1ofeqx3rug7rvrewa.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%2Fmak1ofeqx3rug7rvrewa.png" alt="Image of S3 service menu" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 2&lt;/em&gt;: Click on  &lt;code&gt;Storage section&lt;/code&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%2Ff00d524np2e3hbb5eovf.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%2Ff00d524np2e3hbb5eovf.png" alt="Image of storage section" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 3: Click on &lt;code&gt;S3&lt;/code&gt; to open the &lt;code&gt;S3 dashboard&lt;/code&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%2F1sellormoksbjzmm2wm3.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%2F1sellormoksbjzmm2wm3.png" alt="Image of S3 dashboard section" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 4&lt;/em&gt;: From the &lt;code&gt;S3 dashboard&lt;/code&gt;, you can create new buckets, upload files, manage storage classes, and set permissions. Use the navigation bar to switch between &lt;code&gt;Buckets&lt;/code&gt;, &lt;code&gt;Access Points&lt;/code&gt;, &lt;code&gt;Storage Lens&lt;/code&gt;, etc.&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%2F5y1pexs383fn5notbmpv.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%2F5y1pexs383fn5notbmpv.png" alt="Image of S3 dashboard control page" width="800" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://aws.amazon.com/iam/?gclid=CjwKCAjw_4S3BhAAEiwA_64Yhl3nnveN52_AH_jEbHgq1KzpHreEs3aN53na1c85QSaoS8GvK5bJoRoCKb0QAvD_BwE&amp;amp;trk=d1aef4e9-3926-42ff-adb8-41a4e7609990&amp;amp;sc_channel=ps&amp;amp;ef_id=CjwKCAjw_4S3BhAAEiwA_64Yhl3nnveN52_AH_jEbHgq1KzpHreEs3aN53na1c85QSaoS8GvK5bJoRoCKb0QAvD_BwE:G:s&amp;amp;s_kwcid=AL!4422!3!651612444473!e!!g!!iam!19836376726!147106032916" rel="noopener noreferrer"&gt;IAM&lt;/a&gt; (Identity and Access Management):&lt;/strong&gt; Use this to manage user access and control permissions securely.&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%2Fqdol5bg7a4o7w8gn0rc7.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%2Fqdol5bg7a4o7w8gn0rc7.png" alt="Image of IAM homepage" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Navigating to IAM (Identity and Access Management)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 1&lt;/em&gt;: Go to the &lt;code&gt;Services menu&lt;/code&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%2F4icmppmfbgrfwn1epjrj.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%2F4icmppmfbgrfwn1epjrj.png" alt="Image of IAM services menu" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 2&lt;/em&gt;: Click the &lt;code&gt;Security, Identity, &amp;amp; Compliance&lt;/code&gt; section.&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%2F4e042rnfyaz5hq600200.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%2F4e042rnfyaz5hq600200.png" alt="Image of Security, Identity, &amp;amp; Compliance section" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 3&lt;/em&gt;: Next, click on &lt;code&gt;IAM.&lt;/code&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%2F4468j13do5hr49q1dweo.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%2F4468j13do5hr49q1dweo.png" alt="Image of clicking on IAM" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 4&lt;/em&gt;: This will open the &lt;code&gt;IAM&lt;/code&gt; dashboard, where you can manage &lt;code&gt;users, groups, roles, and policies&lt;/code&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%2Fi1joujum3o42tq6u7i5z.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%2Fi1joujum3o42tq6u7i5z.png" alt="Image IAM dashboard" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tips for Navigation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search Bar&lt;/strong&gt;: Use the search bar at the top of the &lt;code&gt;AWS Management Console&lt;/code&gt; to quickly find any service by typing its name (e.g., &lt;code&gt;EC2,&lt;/code&gt; &lt;code&gt;S3,&lt;/code&gt; &lt;code&gt;IAM&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pinning Services&lt;/strong&gt;: You can also pin frequently used services to the &lt;code&gt;navigation bar&lt;/code&gt; for easy access by clicking the &lt;code&gt;pin icon&lt;/code&gt; next to each service in the &lt;code&gt;Services menu.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Make sure to explore the &lt;code&gt;AWS Free Tier&lt;/code&gt; to experiment with services without incurring costs. Familiarize yourself with key settings and service limits to avoid unexpected charges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up Basic IAM (Identity and Access Management)
&lt;/h2&gt;

&lt;p&gt;Properly managing user access is crucial for both security and cost management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create an IAM User with Administrator Privileges&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Log into your &lt;code&gt;root account&lt;/code&gt; and start by creating a dedicated &lt;code&gt;IAM user&lt;/code&gt; with admin privileges, not using your &lt;code&gt;root account&lt;/code&gt; enhances security by limiting access to sensitive functions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step-by-Step Instructions to create an IAM user with Administrator Privileges&lt;/strong&gt;*:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 1&lt;/em&gt;: Go to the &lt;code&gt;IAM dashboard.&lt;/code&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%2Fehb2mgmjxucejt6mk7jk.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%2Fehb2mgmjxucejt6mk7jk.png" alt="Homepage of IAM dashboard" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 2&lt;/em&gt;: Click on &lt;code&gt;Users&lt;/code&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%2F91ic0c3n89v943chx6sg.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%2F91ic0c3n89v943chx6sg.png" alt="Image arrow clicking on users" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 3&lt;/em&gt;: Click on  &lt;code&gt;Create user.&lt;/code&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%2Fohxa2qcswoxj9drcqv20.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%2Fohxa2qcswoxj9drcqv20.png" alt="Image of arrow clicking on create user" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 4&lt;/em&gt;: Add &lt;code&gt;User name&lt;/code&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%2F6zdvx2ic9wt2zio5ve7u.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%2F6zdvx2ic9wt2zio5ve7u.png" alt="Image of User name section" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 5&lt;/em&gt;: Assign the user to the &lt;code&gt;AdministratorAccess policy.&lt;/code&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%2Frjuc0hweus7bu6fpoav1.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%2Frjuc0hweus7bu6fpoav1.png" alt="Assigning the user Administrator-Access policy" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 6&lt;/em&gt;:  &lt;code&gt;Review and Create&lt;/code&gt; and click on &lt;code&gt;Create User&lt;/code&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%2Fxhisg50ammd1btz3ss3d.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%2Fxhisg50ammd1btz3ss3d.png" alt="Creating user section" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You should see &lt;code&gt;User Successfully Created&lt;/code&gt; at the top of your screen.&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%2Fn71a64aee4pywshmj8z8.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%2Fn71a64aee4pywshmj8z8.png" alt="Finish page of created user" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Set Up an IAM Group for General Users:
&lt;/h2&gt;

&lt;p&gt;Create an &lt;code&gt;IAM group&lt;/code&gt; for your team with appropriate access policies. For example, developers might need full access to &lt;code&gt;EC2&lt;/code&gt; but only &lt;code&gt;read-only&lt;/code&gt; access to &lt;code&gt;billing information&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step-by-Step Instructions to set up an IAM group&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 1&lt;/em&gt;:  In the &lt;code&gt;IAM dashboard&lt;/code&gt;, go to &lt;code&gt;Groups&lt;/code&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%2Fyigql0wkmq3aod2wft2l.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%2Fyigql0wkmq3aod2wft2l.png" alt="IAM dashboard section" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 2&lt;/em&gt;: Click on &lt;code&gt;Create Group&lt;/code&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%2Fo4hqpkw88se60o0ja98s.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%2Fo4hqpkw88se60o0ja98s.png" alt="Image of create group section" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 3&lt;/em&gt;: Give your &lt;code&gt;Group&lt;/code&gt; a name.&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%2Fmjudeioechm4uf5ec8ew.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%2Fmjudeioechm4uf5ec8ew.png" alt="Naming the group created" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 4&lt;/em&gt;: Next, add &lt;code&gt;users&lt;/code&gt; to the &lt;code&gt;group&lt;/code&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%2Fzpvvo79t21cbau3nx9cn.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%2Fzpvvo79t21cbau3nx9cn.png" alt="Adding users tithe group" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 5&lt;/em&gt;: Attach relevant policies&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%2Fzifgl60iuw9odxzff93x.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%2Fzifgl60iuw9odxzff93x.png" alt="Attaching relevant policies" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 6&lt;/em&gt;: Click on Create &lt;code&gt;user&lt;/code&gt; group&lt;/p&gt;

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

&lt;p&gt;Now you have your group.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Assign Basic Policies and Permissions:
&lt;/h2&gt;

&lt;p&gt;Start with &lt;code&gt;managed policies&lt;/code&gt; such as &lt;code&gt;ReadOnlyAccess&lt;/code&gt; or &lt;code&gt;PowerUserAccess.&lt;/code&gt;  This limits exposure to potential errors and keeps your &lt;code&gt;AWS&lt;/code&gt; environment secure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Assigning Basic Policies and Permissions in &lt;code&gt;IAM&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;When setting up &lt;code&gt;IAM&lt;/code&gt; users in &lt;code&gt;AWS&lt;/code&gt;, assigning the right policies and permissions is crucial for managing access and ensuring security. Policies define what actions a user can perform on &lt;code&gt;AWS resources&lt;/code&gt;, and understanding how to assign them effectively can prevent unauthorized access and minimize security risks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Basic Policies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;AWS Identity and Access Management&lt;/code&gt; (IAM) policies are &lt;code&gt;JSON documents&lt;/code&gt; that define what actions are allowed or denied for specific &lt;code&gt;AWS&lt;/code&gt; resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are two main types of policies you might work with:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/aws-managed-policy/latest/reference/policy-list.html" rel="noopener noreferrer"&gt;Managed Policies&lt;/a&gt;&lt;/strong&gt;: These are pre-defined by &lt;code&gt;AWS&lt;/code&gt; and are a good starting point for common use cases. &lt;code&gt;AWS&lt;/code&gt; provides a variety of managed policies for different services and tasks, such as &lt;code&gt;AmazonS3ReadOnlyAccess&lt;/code&gt; or &lt;code&gt;AmazonEC2FullAccess.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies" rel="noopener noreferrer"&gt;Inline Policies&lt;/a&gt;:&lt;/strong&gt; These are custom policies attached directly to a specific &lt;code&gt;IAM user&lt;/code&gt;, &lt;code&gt;group&lt;/code&gt;, or &lt;code&gt;role&lt;/code&gt;. &lt;code&gt;Inline policies&lt;/code&gt; offer fine-grained control and are useful when you need to tailor permissions for specific needs. However, they can become cumbersome to manage as your environment grows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Assigning Policies to IAM Users
&lt;/h3&gt;

&lt;p&gt;Assigning policies to IAM users is key to managing who can do what in AWS. By attaching policies, you control access to different resources, making sure users have just the right permissions for their roles. This keeps your environment secure while giving your team the tools they need to get their work done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attach Managed Policies:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Follow these steps to attach managed policies to your IAM users.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 1&lt;/em&gt;: Select &lt;code&gt;Users&lt;/code&gt; from the &lt;code&gt;IAM dashboard&lt;/code&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%2Frsl8a14wqmf167teyq1h.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%2Frsl8a14wqmf167teyq1h.png" alt="Selecting Users from the IAM dashboard" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 2&lt;/em&gt;: Click on the &lt;code&gt;User&lt;/code&gt; you want to assign &lt;code&gt;permissions.&lt;/code&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%2F2zv6jqgs4x0ethwiyn7l.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%2F2zv6jqgs4x0ethwiyn7l.png" alt="Image of user Abiola" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 3&lt;/em&gt;: Click on the &lt;code&gt;Permissions tab&lt;/code&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%2F9bwbl21gjpqdqa9y0wyz.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%2F9bwbl21gjpqdqa9y0wyz.png" alt="Image of permissions tab section" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 4&lt;/em&gt;: click on &lt;code&gt;Add permissions.&lt;/code&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%2F4xwvogzzxp8n671ckpsy.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%2F4xwvogzzxp8n671ckpsy.png" alt="adding permission section" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 5&lt;/em&gt;:  Choose &lt;code&gt;Attach policies directly&lt;/code&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%2Figus6zvrdrh5qbvxxzxw.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%2Figus6zvrdrh5qbvxxzxw.png" alt="Image of attaching policy" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 6&lt;/em&gt;: Select from the list of &lt;code&gt;managed policies.&lt;/code&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%2F8fmbaeq9qxbqya8o0kyo.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%2F8fmbaeq9qxbqya8o0kyo.png" alt="Image of managed policies" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 7&lt;/em&gt;: Scroll down and click on &lt;code&gt;Next&lt;/code&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%2F7s1ghm7vih1qfbjyupxl.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%2F7s1ghm7vih1qfbjyupxl.png" alt="Image of arrow clicking on next" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 8&lt;/em&gt;: Review the policies and click &lt;code&gt;Add permissions.&lt;/code&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%2Fou2xwmj2e8lutxver6d8.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%2Fou2xwmj2e8lutxver6d8.png" alt="Image of policies and adding permission" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create and Attach Inline Policies:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Step-by-step instructions on how to create and attach &lt;code&gt;inline policies&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 1&lt;/em&gt;: From the &lt;code&gt;IAM dashboard&lt;/code&gt;, select the &lt;code&gt;User&lt;/code&gt; you want.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;Step 2&lt;/em&gt;: Go to the &lt;code&gt;Permissions&lt;/code&gt; tab.&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%2F3zn38inh4dxqkc2prhtu.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%2F3zn38inh4dxqkc2prhtu.png" alt="Image of permissions tab" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 3&lt;/em&gt;: Click &lt;code&gt;Create inline policy&lt;/code&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%2Fnaxqcjso1b1igl4zkv7d.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%2Fnaxqcjso1b1igl4zkv7d.png" alt="Image of creating inline policies" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 4&lt;/em&gt;: Use the &lt;code&gt;Visual editor or JSON editor&lt;/code&gt; to define the &lt;code&gt;policy&lt;/code&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%2Fokmrmlcg595jwfux40v1.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%2Fokmrmlcg595jwfux40v1.png" alt="defining policies section" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 5&lt;/em&gt;: Click on &lt;code&gt;Visual&lt;/code&gt; for this guide&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%2Fw88mjq6lmhcgeqs711f6.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%2Fw88mjq6lmhcgeqs711f6.png" alt="Image of virtual policies section" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 6&lt;/em&gt;: Select &lt;code&gt;service&lt;/code&gt; and click on &lt;code&gt;s3&lt;/code&gt; (like s3:GetObject)&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%2Fd9vbv6epgvjjn04milfq.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%2Fd9vbv6epgvjjn04milfq.png" alt="Image of s3 section" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 7&lt;/em&gt;: Type &lt;code&gt;GetObject&lt;/code&gt; in &lt;code&gt;Actions allowed&lt;/code&gt; and select actions from the service to be allowed.&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%2Farh8mq0n40vgudl1jgqi.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%2Farh8mq0n40vgudl1jgqi.png" alt="Image virtual policies section" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 8&lt;/em&gt;: Choose &lt;code&gt;ANY&lt;/code&gt; in the &lt;code&gt;resources section&lt;/code&gt; to grant &lt;code&gt;permissions&lt;/code&gt; to any resources of that type.&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%2Fvfifviygs3639zcggb91.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%2Fvfifviygs3639zcggb91.png" alt="Image of resources section" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 9&lt;/em&gt;: Click &lt;code&gt;Next&lt;/code&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%2Ftkfmla8l00ng6fk7f0sj.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%2Ftkfmla8l00ng6fk7f0sj.png" alt="arrow clicking on next" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 10&lt;/em&gt;: Give your policy a &lt;code&gt;name&lt;/code&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%2Fqrfnxbhfyb8h4abt42nf.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%2Fqrfnxbhfyb8h4abt42nf.png" alt="naming your policy section " width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Step 11&lt;/em&gt;: Review the policy and click &lt;code&gt;Create policy&lt;/code&gt; to attach it to the selected user.&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%2Fcnctohdax1twzun2rk6s.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%2Fcnctohdax1twzun2rk6s.png" alt="Image of arrow clicking policiees" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Best Practices for Policy Assignment
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Follow the Principle of Least Privilege&lt;/strong&gt;: Only grant the permissions necessary for a user to perform their job. Avoid using overly permissive policies, which can lead to security vulnerabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Groups for Common Permissions&lt;/strong&gt;: Assign users to groups with predefined policies to manage permissions more efficiently. This is especially useful for larger teams where multiple users need the same access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regularly Review and Adjust Permissions:&lt;/strong&gt; Periodically review &lt;code&gt;IAM&lt;/code&gt; policies and permissions to ensure they are still appropriate. As your team or projects evolve, adjust permissions to match current needs.&lt;br&gt;
By carefully assigning basic policies and permissions, you ensure that your AWS environment remains secure and that users have the appropriate level of access to perform their tasks effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Leveraging AWS Pricing Models
&lt;/h2&gt;

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

&lt;p&gt;Understanding &lt;code&gt;AWS pricing models&lt;/code&gt; helps you avoid unnecessary costs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://aws.amazon.com/ec2/pricing/on-demand/" rel="noopener noreferrer"&gt;On-Demand Pricing&lt;/a&gt;:&lt;/strong&gt; Ideal for short-term, unpredictable workloads. You only pay for what you use without any long-term commitments.&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%2Fd2dforihqg6v9hx67drl.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%2Fd2dforihqg6v9hx67drl.png" alt="On-Demand Pricing" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://aws.amazon.com/savingsplans/" rel="noopener noreferrer"&gt;Reserved Instances and Savings Plans&lt;/a&gt;:&lt;/strong&gt; If you have predictable workloads, consider these options to save up to 72% over &lt;code&gt;on-demand pricing.&lt;/code&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%2Fmjsyr976neqbf31eybrq.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%2Fmjsyr976neqbf31eybrq.png" alt="Image Reserved Instances and Savings Plans" width="739" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://aws.amazon.com/ec2/spot/?gclid=CjwKCAjw_4S3BhAAEiwA_64YhjIcyrZorKu6-fEJvmbmUcWhjTaR6Q62ZHhr-1KaGGmJR4F6qRME7xoCqoQQAvD_BwE&amp;amp;cards.sort-by=item.additionalFields.startDateTime&amp;amp;cards.sort-order=asc&amp;amp;trk=efc7d2b1-f8f9-4101-9ca8-72f181e23d18&amp;amp;sc_channel=ps&amp;amp;ef_id=CjwKCAjw_4S3BhAAEiwA_64YhjIcyrZorKu6-fEJvmbmUcWhjTaR6Q62ZHhr-1KaGGmJR4F6qRME7xoCqoQQAvD_BwE:G:s&amp;amp;s_kwcid=AL!4422!3!669080180287!p!!g!!aws%20ec2%20spot!20443322872!160759391708" rel="noopener noreferrer"&gt;Spot Instances&lt;/a&gt;:&lt;/strong&gt; Use these for flexible workloads to take advantage of up to 90% discounts. Great for batch processing or data analysis tasks that can be interrupted.&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%2Fknedti641w98nprjyd0l.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%2Fknedti641w98nprjyd0l.png" alt="Image of Spot Instances" width="739" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost Optimization Tools
&lt;/h2&gt;

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

&lt;h3&gt;
  
  
  AWS provides several tools to help you monitor and control spending:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AWS Cost Explorer:&lt;/strong&gt; Use this tool to analyze spending patterns, set up forecasts, and identify cost-saving opportunities.&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%2Fpawwwqfwjkkk37a9gvs3.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%2Fpawwwqfwjkkk37a9gvs3.png" alt="Image of Cost Explorer" width="310" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Budgets:&lt;/strong&gt; Set custom budgets to track costs and receive alerts when spending exceeds thresholds.&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%2F1og3o3obzjusvdxdzuz5.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%2F1og3o3obzjusvdxdzuz5.png" alt="Image of AWS Budgets" width="702" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Trusted Advisor:&lt;/strong&gt; Leverage this tool to get personalized recommendations for cost optimization, security improvements, and performance enhancement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementing Advanced Cost Management Strategies.
&lt;/h2&gt;

&lt;p&gt;This means using smart methods to control spending, cut down on waste, and make the best use of your money. This can include predicting costs, setting automated budget limits, and tracking usage to get the most value from every expense.&lt;/p&gt;

&lt;p&gt;To keep costs under control, apply these strategies:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Resource Tagging:&lt;/strong&gt; Tag your resources to track spending by project or department. This makes it easier to identify cost drivers.&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%2Fmo2tgy6znbmmy1xofg5z.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%2Fmo2tgy6znbmmy1xofg5z.png" alt="Image of Resource Tagging" width="760" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Right-Size Your Resources:&lt;/strong&gt; Regularly review and adjust your instances, storage, and other resources to match your current needs.&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%2Fxz2mmnppsf1864whzg53.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%2Fxz2mmnppsf1864whzg53.png" alt="Image of Right-Size Your Resources" width="760" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optimize Data Transfer:&lt;/strong&gt; Minimize costs associated with data transfer by using services like Amazon &lt;code&gt;CloudFront&lt;/code&gt; for content delivery.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitoring and Automation.
&lt;/h2&gt;

&lt;p&gt;Continuous monitoring and automation will help keep your environment cost-efficient&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use AWS CloudWatch&lt;/strong&gt;: Set up alarms and dashboards to monitor usage, performance, and costs 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%2F0p34jdtwg9lc1o4t4in4.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%2F0p34jdtwg9lc1o4t4in4.png" alt="AWS CloudWatch" width="558" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automate with AWS CloudFormation:&lt;/strong&gt; Use Infrastructure as Code (IaC) to automate deployments, reducing manual errors and streamlining operations.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Securing Your AWS Environment.
&lt;/h2&gt;

&lt;p&gt;Protecting your AWS environment involves implementing best practices to safeguard your data, applications, and resources from unauthorized access and potential threats. Security is vital when setting up a cloud environment&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implement IAM Best Practices:&lt;/strong&gt; Use multi-factor authentication (MFA), apply the principle of least privilege, and regularly audit permissions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enable AWS Security Tools:&lt;/strong&gt; Use services like AWS Shield for DDoS protection and AWS Config for compliance checks.&lt;/p&gt;

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

&lt;p&gt;By setting up a cost-effective AWS environment, managing user access with IAM, leveraging cost optimization tools, and selecting the right services, you can ensure your startup makes the most out of AWS without overspending. Regular monitoring, automation, and a focus on security will further enhance efficiency, allowing you to focus on innovation and growth.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>startup</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AI Research Agent with memory using GPT-4o-mini: Step-by-Step Guide.</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Wed, 24 Jul 2024 15:05:04 +0000</pubDate>
      <link>https://forem.com/spiff/ai-research-agent-with-memory-using-gpt-4o-mini-step-by-step-guide-3142</link>
      <guid>https://forem.com/spiff/ai-research-agent-with-memory-using-gpt-4o-mini-step-by-step-guide-3142</guid>
      <description>&lt;p&gt;Do you sometimes feel overwhelmed by too many research papers and struggle to find the right one? You're not alone my friend. There's so much academic literature that it's becoming hard to keep up with the latest discoveries in your field. But what if you could make this process easier and tailor it to your needs? What if you could build an AI Research Agent and make it your personal assistant that finds the most relevant papers for you?&lt;/p&gt;

&lt;p&gt;You will build this agent using powerful libraries like &lt;a href="https://streamlit.io/" rel="noopener noreferrer"&gt;Streamlit&lt;/a&gt; to create a user-friendly web app, OpenAI's &lt;a href="https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/" rel="noopener noreferrer"&gt;GPT-4o-mini&lt;/a&gt; for advanced language understanding, &lt;a href="https://www.multion.ai/" rel="noopener noreferrer"&gt;MultiOn&lt;/a&gt; to access Arxiv and retrieve the latest research data, and &lt;a href="https://www.ycombinator.com/companies/mem0" rel="noopener noreferrer"&gt;Mem0&lt;/a&gt; to provide a personalized memory layer that learns from your preferences. With these tools, you'll be able to navigate academic research like never before.&lt;/p&gt;

&lt;p&gt;With this, you'll spend less time searching and more time focusing on your work. In this guide, you'll realize that building your own AI research agent with memory using GPT-4o-mini and a vector database to find relevant research papers based on your interests is easier than you think.&lt;br&gt;
It doesn't matter if you are just starting out, you can set up this powerful tool.&lt;br&gt;
Here’s a step-by-step guide to get you started.&lt;/p&gt;
&lt;h2&gt;
  
  
  Project Environment Setup
&lt;/h2&gt;

&lt;p&gt;When working in &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt; (VS Code), start by creating a new &lt;a href="https://www.python.org/" rel="noopener noreferrer"&gt;Python&lt;/a&gt; file for our project. It's helpful to have separate files for different parts of your project.&lt;/p&gt;
&lt;h3&gt;
  
  
  Create a new Python application:
&lt;/h3&gt;

&lt;p&gt;To do this, start by opening your &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;VS Code&lt;/a&gt; and creating a new folder:&lt;/p&gt;
&lt;h4&gt;
  
  
  Step 1
&lt;/h4&gt;

&lt;p&gt;Open &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;VS Code&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%2Fg8zdtdxtra7hbfb1wi41.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%2Fg8zdtdxtra7hbfb1wi41.png" alt="Homepage of vs code" width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Step 2
&lt;/h4&gt;

&lt;p&gt;Create new folder&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%2Fy9bebjhrf6ak97j6inab.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%2Fy9bebjhrf6ak97j6inab.png" alt="Creating a new folder in Vs code" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Step 3
&lt;/h4&gt;

&lt;p&gt;Create a new file called &lt;code&gt;app.py&lt;/code&gt; in the newly created folder.&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%2Ft923h9pxrjiexfh8k8sl.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%2Ft923h9pxrjiexfh8k8sl.png" alt="Creating a new file" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Installing required Python Libraries
&lt;/h3&gt;

&lt;p&gt;First, open your terminal and run the following commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;streamlit openai multion mem0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Importing the necessary Libraries
&lt;/h3&gt;

&lt;p&gt;In your Python script, import the following libraries:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;streamlit&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;multion.client&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Multi0n&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mem0&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Memory&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://streamlit.io/" rel="noopener noreferrer"&gt;Streamlit&lt;/a&gt;:&lt;/strong&gt; Used for building the web app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/" rel="noopener noreferrer"&gt;OpenAI&lt;/a&gt;:&lt;/strong&gt; Utilized for GPT-4o-mini.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.multion.ai/" rel="noopener noreferrer"&gt;MultiOn&lt;/a&gt;:&lt;/strong&gt; Accesses Arxiv and retrieves data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.ycombinator.com/companies/mem0" rel="noopener noreferrer"&gt;Mem0&lt;/a&gt;:&lt;/strong&gt; Provides a personalized memory layer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Setting the Streamlit App
&lt;/h3&gt;

&lt;p&gt;Configure the basic layout of your &lt;code&gt;Streamlit app&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AI Research Agent with Memory 📚&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;api_keys&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_keys&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;text_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; (k.capitalize()} API Key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;password&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;openai&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;multion&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Initializing services with API Keys
&lt;/h3&gt;

&lt;p&gt;Set up the services by configuring &lt;code&gt;Mem0&lt;/code&gt; with &lt;code&gt;Qdrant&lt;/code&gt; as the vector store and initializing &lt;code&gt;MultiOn&lt;/code&gt; and OpenAI clients:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_keys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;values&lt;/span&gt;&lt;span class="p"&gt;()):&lt;/span&gt;
  &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;api_keys&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;openai&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;vector_store&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;provider&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;qdrant&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;config&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-40-mini&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;host&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;localhost&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;port&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;6333&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Memory&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
  &lt;span class="n"&gt;multion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Multion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;api_keys&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;multion&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
  &lt;span class="n"&gt;openai_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;api_keys&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;openai&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Creating user input and search query fields
&lt;/h3&gt;

&lt;p&gt;Add a sidebar for user input and a search query field:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sidebar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;text_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enter your Username&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;search_query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;text_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Research paper search query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Defining a function to process search results with GPT-4o-mini
&lt;/h3&gt;

&lt;p&gt;Create a function to process search results into a readable format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;process_with_gpt4&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt; 
    Based on the following arXiv search result, provide a proper structured output in markdown that is readable by the users. Each paper should have a title, authors, abstract, and link.Search Result: (result) Output Format: Table with the following columns: [{{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Paper Title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;authors&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Author Names&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;abstract&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Brief abstract&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;link&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;arXiv link&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;}}, ...]&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-40-mini&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt; &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Implementing paper search functionality
&lt;/h3&gt;

&lt;p&gt;Build the core functionality to search and display research papers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Search for Papers&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
   &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="nf"&gt;spinner &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Searching and Processing...&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
     &lt;span class="n"&gt;relevant&lt;/span&gt; &lt;span class="n"&gt;memories&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;search_query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
     &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Search for arXiv papers: {search_query}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;User background: {&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.join(mem[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;] for mem in relevant_memories)}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
     &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;process_with_gpt4 &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;multion&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;browse &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://arxiv.org/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
     &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;markdown &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Adding memory viewing feature
&lt;/h3&gt;

&lt;p&gt;To view your stored memories:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sidebar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;View Memory&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sidebar&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;- &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;mem&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_all &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;)]))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Running Application
&lt;/h3&gt;

&lt;p&gt;To see your &lt;code&gt;AI research agent&lt;/code&gt; in action, paste the above code into your IDE (VSCode or PyCharm) and run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;streamlit run ai_arxiv_agent_memory.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will launch your &lt;code&gt;Streamlit app&lt;/code&gt;, where you can search for research papers and manage your personalized memory layer.&lt;/p&gt;

&lt;p&gt;And there you have it! You now have the power to tame the beast of academic literature and make research a whole lot easier. With your &lt;code&gt;AI Research Agent&lt;/code&gt; by your side, you'll be able to find the perfect papers, stay on top of the latest discoveries, and focus on what really matters - your work.&lt;br&gt;
It's like having your own personal research assistant, minus the coffee breaks. So, what are you waiting for? Dive in, start building, and discover a whole new world of stress-free research.&lt;br&gt;
If you find this guide useful, please share it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>python</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The 3 Crucial Instruction Types Every Technical Writer Needs to Know.</title>
      <dc:creator>Ebikara Spiff ᴀɪᴄᴍᴄ</dc:creator>
      <pubDate>Sat, 13 Jul 2024 17:03:34 +0000</pubDate>
      <link>https://forem.com/spiff/master-3-essential-instruction-types-for-technical-writing-success-1chj</link>
      <guid>https://forem.com/spiff/master-3-essential-instruction-types-for-technical-writing-success-1chj</guid>
      <description>&lt;h2&gt;
  
  
  INSTRUCTIONS: THE HEART OF TECHNICAL WRITING.
&lt;/h2&gt;

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

&lt;p&gt;As you progress on your journey as a technical writer, the writing structures you need to learn might overwhelm you. It may seem that technical writing is all about complex frameworks and following rigid templates.&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%2Frhzmdg3h7lbbzln9ftxy.jpeg" class="article-body-image-wrapper"&gt;&lt;img 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%2Frhzmdg3h7lbbzln9ftxy.jpeg" alt="Image of an overwhelmed writer" width="452" height="678"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, if you take a look at some technical writing examples, you will notice that almost all of them consist of instructions and explanations on how to do things.&lt;br&gt;
Focus on mastering the act of writing instructions, and the rest will come easily.&lt;br&gt;
In technical writing, instruction comes in three common forms:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frequently Asked Questions (FAQ)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Step-by-Step Instructions&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Troubleshooting Guides&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mastering the art of writing clear and effective instructions is crucial for technical writers.&lt;br&gt;
Here's a breakdown of the three types of instructions every technical writer should master:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frequently Asked Questions (FAQs):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FAQs are structured to address common queries users might have about a product, service, or process. They are typically presented in a question-and-answer format to provide quick solutions to common issues or inquiries.&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%2F7qbppunih97mc6hmpda7.jpeg" class="article-body-image-wrapper"&gt;&lt;img 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%2F7qbppunih97mc6hmpda7.jpeg" alt="Image of a dark themed background with question marks" width="626" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step-by-Step Instructions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Step-by-step instructions break down complex processes into sequential, manageable steps. These are essential for guiding users through tasks, procedures, or setups in a systematic way, ensuring clarity and ease of execution.&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%2Fmjm1hutjx70as67ozntw.jpeg" class="article-body-image-wrapper"&gt;&lt;img 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%2Fmjm1hutjx70as67ozntw.jpeg" alt="Image of a man climbing a staircase" width="612" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Troubleshooting Guides:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Troubleshooting guides help users diagnose and resolve problems they encounter. They typically list common issues, symptoms, possible causes, and corresponding solutions or workarounds, enabling users to troubleshoot effectively.&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%2Fcmaytdkgyvy5rw2lhj0n.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%2Fcmaytdkgyvy5rw2lhj0n.png" alt="Image of troubleshooting logo" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learning these three forms of instructional writing empowers technical writers to create various types of technical documentation, including user manuals, instruction manuals, setup guides, release notes, workflows, customer service scripts, and so much more.&lt;/p&gt;

&lt;p&gt;Each form serves a specific purpose in providing users with clear, concise, and actionable information.&lt;/p&gt;

&lt;p&gt;Ready to become better at technical writing? By perfecting the art of clear, concise instructions, you'll unlock the door to creating everything from user manuals to troubleshooting guides.&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%2Fgxupx2ph7l5785jdt99m.jpeg" class="article-body-image-wrapper"&gt;&lt;img 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%2Fgxupx2ph7l5785jdt99m.jpeg" alt="Image description of a man opening a dooe" width="431" height="612"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It might seem overwhelming at first, but remember, even the most complex technical documents boil down to simple, easy-to-follow steps.&lt;/p&gt;

&lt;p&gt;Your journey to technical writing excellence starts here, and it's going to be a fun ride. Ready, set, write.&lt;/p&gt;

&lt;p&gt;I'd love to help you take the next step, &lt;strong&gt;it's the most important skill you need to apply for technical writing jobs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Would you like to know how to write &lt;strong&gt;clear&lt;/strong&gt;, &lt;strong&gt;concise&lt;/strong&gt;, and &lt;strong&gt;user-centric&lt;/strong&gt; instructions?&lt;br&gt;
Let me know in the comment section.&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%2F6u20u6voaf3yl54418op.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%2F6u20u6voaf3yl54418op.png" alt="Image of comment section logo" width="533" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>writing</category>
      <category>contentwriting</category>
      <category>devrel</category>
    </item>
  </channel>
</rss>
