<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: CyprianTinasheAarons</title>
    <description>The latest articles on DEV Community by CyprianTinasheAarons (@cypriantinasheaarons).</description>
    <link>https://dev.to/cypriantinasheaarons</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%2F349088%2F6a3fae93-608d-4f65-9fd9-b049c96866f5.jpeg</url>
      <title>DEV Community: CyprianTinasheAarons</title>
      <link>https://dev.to/cypriantinasheaarons</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cypriantinasheaarons"/>
    <language>en</language>
    <item>
      <title>The "Vibe Coding" Trap 🤖🔥</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Wed, 11 Mar 2026 12:56:50 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/the-vibe-coding-trap-26id</link>
      <guid>https://dev.to/cypriantinasheaarons/the-vibe-coding-trap-26id</guid>
      <description>&lt;h2&gt;
  
  
  Why AI-Native Devs Still Need to Understand LLM Architecture
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Conversation I Keep Having 👀
&lt;/h2&gt;

&lt;p&gt;"I'm vibe coding now — Claude / Cursor just does it all."&lt;/p&gt;

&lt;p&gt;I hear this &lt;strong&gt;3 times a week&lt;/strong&gt; from developers in my network.&lt;/p&gt;

&lt;p&gt;And honestly… I get it.&lt;/p&gt;

&lt;p&gt;That &lt;strong&gt;dopamine hit of shipping features in 20 minutes&lt;/strong&gt; is real.&lt;br&gt;
You prompt → code appears → tests pass → deploy 🚀&lt;/p&gt;

&lt;p&gt;Feels like magic.&lt;/p&gt;

&lt;p&gt;But here's the thing most people &lt;strong&gt;aren’t talking about&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vibe coding works… until it doesn't.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And when it breaks, &lt;strong&gt;you have absolutely no idea why.&lt;/strong&gt;&lt;/p&gt;


&lt;h1&gt;
  
  
  3 Real Cases From Recent Interviews 🎤
&lt;/h1&gt;
&lt;h2&gt;
  
  
  1️⃣ Context Window Blindness
&lt;/h2&gt;

&lt;p&gt;A developer built an agent with &lt;strong&gt;50+ tool calls per request&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Testing?&lt;br&gt;
Worked perfectly. ✅&lt;/p&gt;

&lt;p&gt;Production?&lt;br&gt;
&lt;strong&gt;50% failure rate.&lt;/strong&gt; ❌&lt;/p&gt;
&lt;h3&gt;
  
  
  The problem
&lt;/h3&gt;

&lt;p&gt;They didn’t realize:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tool definitions count as tokens&lt;/li&gt;
&lt;li&gt;Conversation history counts as tokens&lt;/li&gt;
&lt;li&gt;System prompts count as tokens&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That &lt;strong&gt;128k context window disappears FAST&lt;/strong&gt; when you are verbose.&lt;/p&gt;

&lt;p&gt;💡 Result: prompts were getting &lt;strong&gt;silently truncated&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  2️⃣ The Temperature Problem 🌡️
&lt;/h2&gt;

&lt;p&gt;Developer complaint:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"My outputs are inconsistent."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We looked at the config.&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;temperature&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a &lt;strong&gt;deterministic task.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Temperature basically controls &lt;strong&gt;randomness&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Think of it like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Temperature&lt;/th&gt;
&lt;th&gt;Behavior&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;deterministic / consistent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0.3&lt;/td&gt;
&lt;td&gt;slightly flexible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0.7&lt;/td&gt;
&lt;td&gt;creative&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.0&lt;/td&gt;
&lt;td&gt;chaos mode&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;They wanted &lt;strong&gt;structured outputs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But they configured the model for &lt;strong&gt;creative writing&lt;/strong&gt; 😂&lt;/p&gt;




&lt;h2&gt;
  
  
  3️⃣ Hallucination Blindspot 🧠💥
&lt;/h2&gt;

&lt;p&gt;Agent kept making &lt;strong&gt;confident but wrong API calls&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It cost the team &lt;strong&gt;6 hours of debugging.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The root issue?&lt;/p&gt;

&lt;p&gt;They assumed the LLM &lt;strong&gt;knew facts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It doesn't.&lt;/p&gt;

&lt;p&gt;LLMs are basically:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Next-token prediction engines.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not databases.&lt;br&gt;
Not truth engines.&lt;/p&gt;

&lt;p&gt;Without a &lt;strong&gt;validation layer&lt;/strong&gt;, the model will happily invent things.&lt;/p&gt;


&lt;h1&gt;
  
  
  What Actually Matters 🧠
&lt;/h1&gt;

&lt;p&gt;You don't need to understand &lt;strong&gt;transformer math&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But if you're building AI products, you &lt;strong&gt;must understand these basics:&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  🧾 Context Windows
&lt;/h3&gt;

&lt;p&gt;You are paying for &lt;strong&gt;every token&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Design your systems around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prompt compression&lt;/li&gt;
&lt;li&gt;summarization&lt;/li&gt;
&lt;li&gt;retrieval patterns&lt;/li&gt;
&lt;li&gt;chunking&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  🌡️ Temperature &amp;amp; Top-P
&lt;/h3&gt;

&lt;p&gt;Know when you want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;determinism&lt;/strong&gt; (automation, APIs, agents)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;creativity&lt;/strong&gt; (content, ideation)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wrong setting = unstable systems.&lt;/p&gt;


&lt;h3&gt;
  
  
  🔤 Tokenization Artifacts
&lt;/h3&gt;

&lt;p&gt;Those weird bugs like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;off-by-one errors&lt;/li&gt;
&lt;li&gt;truncated prompts&lt;/li&gt;
&lt;li&gt;unexpected formatting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Often come from &lt;strong&gt;tokenization quirks&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  🧭 System Prompt Weight
&lt;/h3&gt;

&lt;p&gt;Your system instructions are &lt;strong&gt;competing with training data&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Position matters.&lt;br&gt;
Structure matters.&lt;/p&gt;

&lt;p&gt;Sometimes &lt;strong&gt;moving instructions earlier fixes everything.&lt;/strong&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  📦 Structured Output
&lt;/h3&gt;

&lt;p&gt;Use constraints when possible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON mode&lt;/li&gt;
&lt;li&gt;function calling&lt;/li&gt;
&lt;li&gt;response_format&lt;/li&gt;
&lt;li&gt;schema validation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Never trust &lt;strong&gt;free-form text&lt;/strong&gt; in production systems.&lt;/p&gt;


&lt;h1&gt;
  
  
  The Real Bottom Line ⚡
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Vibe coding is incredible.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s a &lt;strong&gt;productivity multiplier.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But it is &lt;strong&gt;not a skill replacement.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The devs who will dominate the next 5 years will:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Vibe code 80% of the boilerplate
Engineer the 20% that actually matters
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That 20% is where &lt;strong&gt;real systems are built.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Your Turn 👇
&lt;/h1&gt;

&lt;p&gt;What’s the &lt;strong&gt;biggest vibe-coding failure&lt;/strong&gt; you've experienced?&lt;/p&gt;

&lt;p&gt;Context limits?&lt;br&gt;
Hallucinations?&lt;br&gt;
Agent chaos?&lt;/p&gt;

&lt;p&gt;Drop it below 👇&lt;/p&gt;

&lt;p&gt;Let's learn from the war stories 😄&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>javascript</category>
      <category>vibecoding</category>
    </item>
    <item>
      <title>Google's A2A Protocol: The HTTP for AI Agents Nobody Asked For, But Everyone Needs</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Tue, 10 Mar 2026 12:51:24 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/googles-a2a-protocol-the-http-for-ai-agents-nobody-asked-for-but-everyone-needs-166b</link>
      <guid>https://dev.to/cypriantinasheaarons/googles-a2a-protocol-the-http-for-ai-agents-nobody-asked-for-but-everyone-needs-166b</guid>
      <description>&lt;h1&gt;
  
  
  The Fragmentation Problem
&lt;/h1&gt;

&lt;p&gt;We have a problem. In 2026, we're drowning in AI agents. Every SaaS product has one. Your CRM has an agent. Your email has an agent. Your calendar, your IDE, your analytics dashboard—all agents, all siloed. They don't talk to each other. They don't share context. They don't collaborate.&lt;/p&gt;

&lt;p&gt;The result? Digital busywork. You copy prompts between tools. You manually hand off tasks. You become the integration layer, stitching together workflows that should be autonomous.&lt;/p&gt;

&lt;p&gt;This wasn't the promise. The promise was agents working together—specialized AI teammates collaborating on complex, long-running tasks without human micromanagement.&lt;/p&gt;




&lt;h1&gt;
  
  
  Enter A2A: Simple, Open, Universal
&lt;/h1&gt;

&lt;p&gt;Google's &lt;strong&gt;Agent2Agent (A2A) protocol&lt;/strong&gt;, announced in &lt;strong&gt;April 2025&lt;/strong&gt; and now on &lt;strong&gt;v0.3.0&lt;/strong&gt;, aims to solve this problem.&lt;/p&gt;

&lt;p&gt;It does what &lt;strong&gt;HTTP did for the web&lt;/strong&gt;: provide a common language any AI agent can speak, regardless of who built it or what framework it runs on.&lt;/p&gt;

&lt;p&gt;The protocol is intentionally minimal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No custom binary formats
&lt;/li&gt;
&lt;li&gt;No proprietary transports
&lt;/li&gt;
&lt;li&gt;Simple HTTP + JSON communication
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your agent can make HTTP requests and parse JSON, it can speak A2A.&lt;/p&gt;

&lt;p&gt;Version &lt;strong&gt;0.3.0&lt;/strong&gt; added optional &lt;strong&gt;gRPC support&lt;/strong&gt; for high-performance deployments, while &lt;strong&gt;HTTP remains the baseline&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  How It Works: Three Core Primitives
&lt;/h1&gt;

&lt;p&gt;A2A is built around three simple concepts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Cards
&lt;/h2&gt;

&lt;p&gt;Public metadata describing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What an agent does
&lt;/li&gt;
&lt;li&gt;What inputs it needs
&lt;/li&gt;
&lt;li&gt;How to authenticate
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it as &lt;strong&gt;robots.txt for AI capabilities&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Task Management
&lt;/h2&gt;

&lt;p&gt;Standardized messages for delegating work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Task requests
&lt;/li&gt;
&lt;li&gt;Status updates
&lt;/li&gt;
&lt;li&gt;Streaming responses
&lt;/li&gt;
&lt;li&gt;Task completion
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agents can hand off work and track progress &lt;strong&gt;asynchronously&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Context Sharing
&lt;/h2&gt;

&lt;p&gt;A mechanism for sharing relevant information without exposing sensitive internal data.&lt;/p&gt;

&lt;p&gt;The receiving agent gets &lt;strong&gt;only what it needs to complete the task&lt;/strong&gt;, not a full data dump.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Linux Foundation Move
&lt;/h1&gt;

&lt;p&gt;In &lt;strong&gt;June 2025&lt;/strong&gt;, the &lt;strong&gt;Linux Foundation launched the Agent2Agent Protocol Project&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is important.&lt;/p&gt;

&lt;p&gt;Corporate-led standards often fade when the originating company loses interest.&lt;br&gt;&lt;br&gt;
Linux Foundation governance provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Neutral stewardship
&lt;/li&gt;
&lt;li&gt;Open collaboration
&lt;/li&gt;
&lt;li&gt;Long-term viability
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More than &lt;strong&gt;50 technology partners&lt;/strong&gt; have joined, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Atlassian
&lt;/li&gt;
&lt;li&gt;Box
&lt;/li&gt;
&lt;li&gt;MongoDB
&lt;/li&gt;
&lt;li&gt;Salesforce
&lt;/li&gt;
&lt;li&gt;SAP
&lt;/li&gt;
&lt;li&gt;ServiceNow
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A2A is no longer a Google experiment. It is evolving into an &lt;strong&gt;industry standard&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Now?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;2025 was the year of single agents.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2026 is the year of multi-agent systems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Industry momentum is already visible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anthropic’s multi-agent research platforms
&lt;/li&gt;
&lt;li&gt;Salesforce’s &lt;strong&gt;Agentforce orchestration&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;OpenAI’s &lt;strong&gt;Swarm&lt;/strong&gt; framework
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The transition from &lt;strong&gt;demo prototypes&lt;/strong&gt; to &lt;strong&gt;production systems&lt;/strong&gt; requires interoperability.&lt;/p&gt;

&lt;p&gt;Enterprises will not deploy dozens of disconnected agent frameworks.&lt;/p&gt;

&lt;p&gt;They need a &lt;strong&gt;protocol layer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A2A is positioning itself to become that layer.&lt;/p&gt;




&lt;h1&gt;
  
  
  Real-World Applications
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Supply Chain Coordination
&lt;/h2&gt;

&lt;p&gt;A logistics agent communicates with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a warehouse agent
&lt;/li&gt;
&lt;li&gt;a shipping agent
&lt;/li&gt;
&lt;li&gt;a customs agent
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each specializes in a domain. Each delegates subtasks.&lt;/p&gt;

&lt;p&gt;Routine coordination happens &lt;strong&gt;without human intervention&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Healthcare Workflows
&lt;/h2&gt;

&lt;p&gt;A triage agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Routes cases to diagnostic agents
&lt;/li&gt;
&lt;li&gt;Diagnostic agents consult specialist agents
&lt;/li&gt;
&lt;li&gt;Specialist agents coordinate with scheduling agents
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Complex patient journeys become &lt;strong&gt;coordinated systems instead of fragmented workflows&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Implications for Developers
&lt;/h1&gt;

&lt;p&gt;Developers building agents today face a strategic decision:&lt;/p&gt;

&lt;p&gt;Build &lt;strong&gt;another silo&lt;/strong&gt;, or build on &lt;strong&gt;an interoperable standard&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;With A2A:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your Slack bot can delegate tasks to a code review agent
&lt;/li&gt;
&lt;li&gt;Your support agent can escalate to a specialist agent
&lt;/li&gt;
&lt;li&gt;Your product analytics agent can collaborate with a marketing agent
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agents become &lt;strong&gt;services in a network&lt;/strong&gt;, not isolated applications.&lt;/p&gt;

&lt;p&gt;The network effects grow as more agents adopt the protocol.&lt;/p&gt;




&lt;h1&gt;
  
  
  Challenges and Open Questions
&lt;/h1&gt;

&lt;p&gt;A2A is promising but not complete.&lt;/p&gt;

&lt;p&gt;Open problems remain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identity verification between agents
&lt;/li&gt;
&lt;li&gt;Trust and reputation systems
&lt;/li&gt;
&lt;li&gt;Preventing malicious agents
&lt;/li&gt;
&lt;li&gt;Auditing multi-agent transactions
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google is supporting adoption with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A2A Interactions API&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Development Kit (ADK)&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, standards require time and ecosystem growth.&lt;/p&gt;

&lt;p&gt;HTTP itself took years before universal adoption.&lt;/p&gt;

&lt;p&gt;A2A will need &lt;strong&gt;critical mass&lt;/strong&gt; to succeed.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Bottom Line
&lt;/h1&gt;

&lt;p&gt;We are reaching an inflection point.&lt;/p&gt;

&lt;p&gt;Single AI agents are becoming &lt;strong&gt;table stakes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The new competitive advantage lies in &lt;strong&gt;orchestration&lt;/strong&gt;—how effectively agents collaborate.&lt;/p&gt;

&lt;p&gt;A2A represents a strong bet that &lt;strong&gt;interoperability will win over walled gardens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Given its growing partner ecosystem and Linux Foundation backing, it is a development worth watching.&lt;/p&gt;

&lt;p&gt;If you are building agentic systems today, you should strongly consider building on A2A—or have a compelling reason not to.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;multi-agent future&lt;/strong&gt; is already emerging.&lt;/p&gt;

&lt;p&gt;A2A may become the &lt;strong&gt;connective tissue that makes it possible&lt;/strong&gt;.&lt;/p&gt;




</description>
      <category>ai</category>
      <category>learngoogleaistudio</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>I Replaced My Entire Productivity Stack with an AI Agent Running 24/7</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Sat, 07 Mar 2026 15:36:13 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/i-replaced-my-entire-productivity-stack-with-an-ai-agent-running-247-4f6p</link>
      <guid>https://dev.to/cypriantinasheaarons/i-replaced-my-entire-productivity-stack-with-an-ai-agent-running-247-4f6p</guid>
      <description>&lt;h1&gt;
  
  
  I Was Drowning in Tools
&lt;/h1&gt;

&lt;p&gt;Notion. Trello. Google Calendar. Gmail. Telegram. Discord. LinkedIn. Dev.to.&lt;/p&gt;

&lt;p&gt;Every morning I'd open 8 tabs, check 4 apps, copy-paste between 3 dashboards, and somehow still miss important emails. I was spending more time managing my systems than actually doing work.&lt;/p&gt;

&lt;p&gt;Then I found &lt;strong&gt;OpenClaw&lt;/strong&gt; — an open-source framework that lets you run a personal AI agent 24/7. Not a chatbot. Not a copilot that waits for you to ask. A persistent agent that proactively manages your life while you sleep.&lt;/p&gt;

&lt;p&gt;Here's how I set mine up — and what a typical day looks like.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is OpenClaw?
&lt;/h2&gt;

&lt;p&gt;OpenClaw is a self-hosted AI assistant framework. Think Jarvis, but real. It runs as a Node.js service that connects to your messaging platforms (Discord, Telegram, WhatsApp, iMessage) and gives an AI agent access to tools: shell commands, browser automation, file management, APIs, cron jobs, and more.&lt;/p&gt;

&lt;p&gt;The key difference from ChatGPT or Claude's web interface: it runs continuously. It has persistent memory. It can reach out to you — not just respond when prompted.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Setup: The EPA (Execute Personal Assistant)
&lt;/h2&gt;

&lt;p&gt;I named my agent &lt;strong&gt;Molty&lt;/strong&gt; 🐒. It runs on a cloud instance with these integrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Discord&lt;/strong&gt; — Primary communication channel&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telegram&lt;/strong&gt; — Alerts only&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gmail/Calendar&lt;/strong&gt; — Email monitoring + calendar pulls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Life OS Dashboard&lt;/strong&gt; — Custom Next.js app with tRPC + Neon DB for tasks, jobs, finance, daily logs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; — Authenticated for repo management&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Personality Layer
&lt;/h3&gt;

&lt;p&gt;OpenClaw lets you define your agent's personality through &lt;code&gt;SOUL.md&lt;/code&gt;. Mine is configured to be direct, no-fluff, and to actively push back on bad decisions. It knows my goals ($1M by end of 2026), my tendencies (impulsive under stress), and my priorities (money &amp;gt; everything else).&lt;/p&gt;

&lt;p&gt;This isn't a gimmick — it means when I'm about to rage-quit a project at 1 AM, my agent literally asks: &lt;em&gt;"Is this the move, or is this the mood?"&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Automation Stack
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🎯 Job Hunting on Autopilot (4 batches/day)
&lt;/h3&gt;

&lt;p&gt;I'm actively job hunting for senior remote roles. Instead of manually browsing job boards, I have 4 daily cron jobs that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search WeWorkRemotely, RemoteOK, Himalayas, Arc.dev, and others&lt;/li&gt;
&lt;li&gt;Compile 25 opportunities per batch (100/day total)&lt;/li&gt;
&lt;li&gt;Score each by match level against my skills&lt;/li&gt;
&lt;li&gt;Post the full list to Discord &lt;code&gt;#job-batches&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Create top entries in my Life OS database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Schedule:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;th&gt;Batch&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;07:00&lt;/td&gt;
&lt;td&gt;Batch 1/4 (25 jobs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11:00&lt;/td&gt;
&lt;td&gt;Batch 2/4 (25 jobs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15:00&lt;/td&gt;
&lt;td&gt;Batch 3/4 (25 jobs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;19:00&lt;/td&gt;
&lt;td&gt;Batch 4/4 (25 jobs)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That's &lt;strong&gt;100 curated job opportunities&lt;/strong&gt; landing in my Discord every single day without me lifting a finger.&lt;/p&gt;

&lt;h3&gt;
  
  
  💪 Motivation System (5 drops/day)
&lt;/h3&gt;

&lt;p&gt;Context-aware motivation drops that reference my actual goals, current projects, and progress. Not generic Instagram quotes.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;th&gt;Drop&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;09:00&lt;/td&gt;
&lt;td&gt;Morning fire&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12:00&lt;/td&gt;
&lt;td&gt;Midday push&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15:00&lt;/td&gt;
&lt;td&gt;Afternoon grind&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;18:00&lt;/td&gt;
&lt;td&gt;Evening reminder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;22:30&lt;/td&gt;
&lt;td&gt;Night reflection&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  📊 Daily Operations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;06:00&lt;/strong&gt; — Morning briefing (weather, calendar, emails, priorities)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;07:30 + 13:00&lt;/strong&gt; — Personal brand warm-up (trending topics for Twitter/LinkedIn)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;21:00&lt;/strong&gt; — Evening wrap-up (what got done, metrics, tomorrow's plan)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧠 Heartbeat System
&lt;/h3&gt;

&lt;p&gt;Every hour, OpenClaw runs a "heartbeat" — a health check that scans all cron jobs for missed runs, recovers failures by spawning sub-agents, and reports status. This morning, 3 cron jobs failed due to a misconfigured delivery channel. The heartbeat caught it, I fixed the routing, and every job since has delivered successfully. Self-healing automation.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Memory System
&lt;/h2&gt;

&lt;p&gt;This is what makes OpenClaw feel alive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;MEMORY.md&lt;/code&gt;&lt;/strong&gt; — Long-term curated knowledge (contacts, decisions, preferences, lessons)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;memory/YYYY-MM-DD.md&lt;/code&gt;&lt;/strong&gt; — Daily logs (raw events, conversations, actions)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;SOUL.md&lt;/code&gt;&lt;/strong&gt; — Identity and personality&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;USER.md&lt;/code&gt;&lt;/strong&gt; — Context about you (goals, style, decision patterns)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every session, the agent reads these files to rebuild context. Mine knows I make impulsive decisions under stress, so it's configured to challenge me before validating any major call.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real Numbers After 1 Month
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Job opportunities reviewed/day&lt;/td&gt;
&lt;td&gt;5–10 (manual)&lt;/td&gt;
&lt;td&gt;100 (automated)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time on job search/day&lt;/td&gt;
&lt;td&gt;45–60 min&lt;/td&gt;
&lt;td&gt;10 min (review only)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Missed emails&lt;/td&gt;
&lt;td&gt;Several/week&lt;/td&gt;
&lt;td&gt;Near zero&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calendar surprises&lt;/td&gt;
&lt;td&gt;Often&lt;/td&gt;
&lt;td&gt;Never&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Daily motivation&lt;/td&gt;
&lt;td&gt;Random YouTube&lt;/td&gt;
&lt;td&gt;5 targeted drops&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Brand content&lt;/td&gt;
&lt;td&gt;When I remembered&lt;/td&gt;
&lt;td&gt;Scheduled daily&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  How to Set It Up
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Install:&lt;/strong&gt; &lt;code&gt;npx openclaw@latest&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configure&lt;/strong&gt; &lt;code&gt;SOUL.md&lt;/code&gt; (personality), &lt;code&gt;USER.md&lt;/code&gt; (your context), &lt;code&gt;AGENTS.md&lt;/code&gt; (rules)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connect channels&lt;/strong&gt; (Discord recommended for structured delivery)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set up cron jobs&lt;/strong&gt; for your automations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build your memory&lt;/strong&gt; — start with basic &lt;code&gt;MEMORY.md&lt;/code&gt;, let it grow&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with one automation, not ten.&lt;/strong&gt; Morning briefing first. Once solid, layer on more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delivery channel matters.&lt;/strong&gt; Discord with dedicated channels &amp;gt; routing everything through one chat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timeouts are real.&lt;/strong&gt; 180s for complex tasks, 60s for simple ones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The heartbeat is your safety net.&lt;/strong&gt; Self-healing cron recovery is a game-changer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personality isn't fluff.&lt;/strong&gt; A well-configured &lt;code&gt;SOUL.md&lt;/code&gt; = assistant you actually want to talk to.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;OpenClaw isn't magic. It's infrastructure that compounds — every automation you add frees up time to build the next one. The future isn't AI replacing developers. It's developers who use AI agents outrunning everyone else.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Sat, 03 Jan 2026 14:05:07 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/-3ild</link>
      <guid>https://dev.to/cypriantinasheaarons/-3ild</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb" class="crayons-story__hidden-navigation-link"&gt;My 2026 Job hunting list&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="/cypriantinasheaarons" 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%2F349088%2F6a3fae93-608d-4f65-9fd9-b049c96866f5.jpeg" alt="cypriantinasheaarons profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/cypriantinasheaarons" class="crayons-story__secondary fw-medium m:hidden"&gt;
              CyprianTinasheAarons
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                CyprianTinasheAarons
                
              
              &lt;div id="story-author-preview-content-3140670" 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="/cypriantinasheaarons" 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%2F349088%2F6a3fae93-608d-4f65-9fd9-b049c96866f5.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;CyprianTinasheAarons&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/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 1&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/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb" id="article-link-3140670"&gt;
          My 2026 Job hunting list
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/javascript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;javascript&lt;/a&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;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb" 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/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/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.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;17&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/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              5&lt;span class="hidden s:inline"&gt; comments&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;
            5 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>programming</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
    </item>
    <item>
      <title>Great Resource guide on getting hired in 2026.</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Thu, 01 Jan 2026 09:23:45 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/great-resource-guide-on-getting-hired-in-2026-2pdj</link>
      <guid>https://dev.to/cypriantinasheaarons/great-resource-guide-on-getting-hired-in-2026-2pdj</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb" class="crayons-story__hidden-navigation-link"&gt;My 2026 Job hunting list&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="/cypriantinasheaarons" 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%2F349088%2F6a3fae93-608d-4f65-9fd9-b049c96866f5.jpeg" alt="cypriantinasheaarons profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/cypriantinasheaarons" class="crayons-story__secondary fw-medium m:hidden"&gt;
              CyprianTinasheAarons
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                CyprianTinasheAarons
                
              
              &lt;div id="story-author-preview-content-3140670" 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="/cypriantinasheaarons" 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%2F349088%2F6a3fae93-608d-4f65-9fd9-b049c96866f5.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;CyprianTinasheAarons&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/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 1&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/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb" id="article-link-3140670"&gt;
          My 2026 Job hunting list
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/javascript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;javascript&lt;/a&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;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb" 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/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/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.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;17&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/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              5&lt;span class="hidden s:inline"&gt; comments&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;
            5 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>programming</category>
      <category>webdev</category>
      <category>career</category>
      <category>leadership</category>
    </item>
    <item>
      <title>My 2026 Job hunting list</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Thu, 01 Jan 2026 09:21:28 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb</link>
      <guid>https://dev.to/cypriantinasheaarons/starting-2026-strong-a-job-hunters-resource-guide-3dbb</guid>
      <description>&lt;p&gt;Happy New Year to everyone reading this.&lt;/p&gt;

&lt;p&gt;Starting the year can be difficult and challenging, especially if you're unemployed or looking for a new place to call home as an employee. I know this firsthand—the last two years have been tough for me. I've been unemployed, navigating the uncertainty, the rejection emails, the waiting, and yes, sometimes just holding onto hope that something will break through.&lt;/p&gt;

&lt;p&gt;But I'm still here, still searching, still trying. And I thought that maybe there's someone like me out there who's looking for some work. If that's you, I hope this helps.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm Sharing With You
&lt;/h2&gt;

&lt;p&gt;I've curated a list of some of the best and favorite job sites that I've worked with to secure work over the years. Some are part-time opportunities, some are full-time positions. Some are contract and freelance gigs. The variety is there because different seasons of life call for different types of work.&lt;/p&gt;

&lt;p&gt;But beyond just job links, I've also added resources that have helped me—platforms for upskilling, guides for crafting killer cover letters, and tips for refining your resume. All the best wishes as you dive in.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 My Tips for Your Job Search Journey
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. 🔔 Set Up Your Accounts and Email Alerts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Do take a deep dive into these links. Set up accounts, maybe even email alerts, and make it a habit. Consistency matters more than perfection. Apply to the best places you like—3 to 5 jobs a day would be good when it comes to freelancing. Maybe put in more effort in contract work since those might require detailed proposals and more preparation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. 📚 Upskill While You Search&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I've added a roadmap platform where you can find different roadmaps to upskill. My tip and advice would be for you to use &lt;strong&gt;&lt;a href="https://notebooklm.google.com/" rel="noopener noreferrer"&gt;Google's NotebookLM&lt;/a&gt;&lt;/strong&gt; to sort of curate different learning materials—quizzes, videos, explainers, podcasts, and mind maps. It just depends on how you learn best. So you can work with that and tailor your learning experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. ✉️ Master the Cover Letter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another big thing is for you to learn how to create good cover letters. For every job interview—and even when you're applying for platforms like Upwork—it is advised to put in a good, thoughtful cover letter. I've found one of the best explainers from Reddit in terms of creating a killer cover letter, and I'm sharing it below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. 📄 Refine Your Resume&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I've also added another Reddit article that discusses the benefits and drawbacks of different resume approaches, as well as practical tips on refining and enhancing your resume. These insights come from someone who's reviewed over 1,000 resumes, so the advice is battle-tested.&lt;/p&gt;

&lt;h2&gt;
  
  
  💼 The Job Boards &amp;amp; Platforms
&lt;/h2&gt;

&lt;p&gt;Here's a comprehensive list of job sites across different categories. I've organized them so you can focus on the ones that match your situation—whether you're looking for remote work, freelance gigs, or international opportunities.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌍 Global &amp;amp; Remote-First Job Boards
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://jobswithgpt.com" rel="noopener noreferrer"&gt;JobsWithGPT&lt;/a&gt; - AI and tech jobs&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jobboardsearch.com/remote-jobs" rel="noopener noreferrer"&gt;JobBoard Search - Remote Jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://authenticjobs.com" rel="noopener noreferrer"&gt;Authentic Jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://himalayas.app" rel="noopener noreferrer"&gt;Himalayas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jobspresso.co/remote-work" rel="noopener noreferrer"&gt;Jobspresso&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://remoteok.com" rel="noopener noreferrer"&gt;Remote OK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://weworkremotely.com" rel="noopener noreferrer"&gt;We Work Remotely&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://justremote.co/remote-jobs" rel="noopener noreferrer"&gt;JustRemote&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://remote100k.com" rel="noopener noreferrer"&gt;Remote100k&lt;/a&gt; - High-paying remote roles&lt;/li&gt;
&lt;li&gt;&lt;a href="https://workingnomads.com" rel="noopener noreferrer"&gt;Working Nomads&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  💰 Freelance &amp;amp; Contract Platforms
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.freelancer.com" rel="noopener noreferrer"&gt;Freelancer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.upwork.com" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.guru.com" rel="noopener noreferrer"&gt;Guru&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fiverr.com" rel="noopener noreferrer"&gt;Fiverr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://contra.com" rel="noopener noreferrer"&gt;Contra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arc.dev" rel="noopener noreferrer"&gt;Arc.dev&lt;/a&gt; - Developer-focused&lt;/li&gt;
&lt;li&gt;&lt;a href="https://app.flexiple.com/talent/jobs" rel="noopener noreferrer"&gt;Flexiple&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://app.usebraintrust.com/jobs" rel="noopener noreferrer"&gt;Braintrust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://virtasant.teamtailor.com" rel="noopener noreferrer"&gt;Virtasant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://app.terminal.io" rel="noopener noreferrer"&gt;Terminal&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  💻 Tech-Focused &amp;amp; Developer Job Boards
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.ycombinator.com/jobs" rel="noopener noreferrer"&gt;Y Combinator Jobs&lt;/a&gt; - Startup jobs&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.indiehackers.com/jobs" rel="noopener noreferrer"&gt;Indie Hackers Jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.trueup.io" rel="noopener noreferrer"&gt;TrueUp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://landing.jobs" rel="noopener noreferrer"&gt;Landing.jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.wearedevelopers.com/en/jobs" rel="noopener noreferrer"&gt;WeAreDevelopers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.dice.com/jobs" rel="noopener noreferrer"&gt;Dice&lt;/a&gt; - Tech careers&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.builtwithdjango.com/jobs" rel="noopener noreferrer"&gt;Built with Django&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.djangojob.com" rel="noopener noreferrer"&gt;Django Job&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://japan-dev.com" rel="noopener noreferrer"&gt;Japan Dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.testgorilla.com/job-board" rel="noopener noreferrer"&gt;TestGorilla Job Board&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🌏 Relocation, Japan, Asia &amp;amp; International Jobs
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://tokyodev.com" rel="noopener noreferrer"&gt;TokyoDev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://japan-dev.com" rel="noopener noreferrer"&gt;Japan Dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.workingnomads.com/remote-japan-jobs" rel="noopener noreferrer"&gt;Working Nomads - Remote Japan Jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.careercross.com" rel="noopener noreferrer"&gt;CareerCross&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sg.jobstreet.com/software-engineer-jobs" rel="noopener noreferrer"&gt;JobStreet Singapore&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.techinasia.com/jobs/search" rel="noopener noreferrer"&gt;Tech in Asia Jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://relocate.me/international-jobs" rel="noopener noreferrer"&gt;Relocate.me - International Jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://relocate.me/international-jobs/software-engineer" rel="noopener noreferrer"&gt;Relocate.me - Software Engineer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jaabz.com" rel="noopener noreferrer"&gt;Jaabz&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🏢 Corporate &amp;amp; High-End Tech Careers
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://careersatagoda.com" rel="noopener noreferrer"&gt;Agoda Careers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.hudsonrivertrading.com/careers" rel="noopener noreferrer"&gt;Hudson River Trading&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.paradigm.xyz/careers" rel="noopener noreferrer"&gt;Paradigm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.crossover.com" rel="noopener noreferrer"&gt;Crossover&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.turing.com" rel="noopener noreferrer"&gt;Turing&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🌍 Middle East, Gulf &amp;amp; Global Aggregators
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.naukrigulf.com/software-jobs" rel="noopener noreferrer"&gt;Naukri Gulf - Software Jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gulftalent.com/jobs/category/software" rel="noopener noreferrer"&gt;Gulf Talent - Software&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.bayt.com" rel="noopener noreferrer"&gt;Bayt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ziprecruiter.com/jobs-search" rel="noopener noreferrer"&gt;ZipRecruiter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.glassdoor.com/Job/index.htm" rel="noopener noreferrer"&gt;Glassdoor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.seek.com.au/technology-jobs" rel="noopener noreferrer"&gt;Seek Australia - Technology&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🚀 Startup-Friendly Platforms
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://wellfound.com/jobs" rel="noopener noreferrer"&gt;Wellfound (formerly AngelList)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.themuse.com/search/category/software_engineering" rel="noopener noreferrer"&gt;The Muse - Software Engineering&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  📚 Learning &amp;amp; Career Resources
&lt;/h2&gt;

&lt;p&gt;Here are the additional resources I've gathered for you:&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Interview Prep &amp;amp; Technical Skills
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://medium.com/javarevisited/10-best-tech-programming-interview-prep-resources-in-2025-212f31c8629b" rel="noopener noreferrer"&gt;10 Best Tech Programming Interview Prep Resources in 2025&lt;/a&gt;&lt;/strong&gt; - Comprehensive guide for technical interview preparation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📈 Skill Development Roadmaps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://roadmap.sh/" rel="noopener noreferrer"&gt;Roadmap.sh&lt;/a&gt;&lt;/strong&gt; - Different roadmaps for various career tracks to help you upskill strategically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://notebooklm.google.com/" rel="noopener noreferrer"&gt;Google NotebookLM&lt;/a&gt;&lt;/strong&gt; - AI-powered tool to curate learning materials like quizzes, videos, explainers, podcasts, and mind maps&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💬 Post-Interview Communication
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://interviewguide.dev/" rel="noopener noreferrer"&gt;Communication After the Interview | InterviewGuide.dev&lt;/a&gt;&lt;/strong&gt; - Learn how to follow up professionally after interviews&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📝 Resume Writing
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.reddit.com/r/jobs/comments/ijyjwk/ive_reviewed_1000_good_and_bad_resumes_here_are/" rel="noopener noreferrer"&gt;I've Reviewed 1000+ Resumes - Here Are My Tips (Reddit)&lt;/a&gt;&lt;/strong&gt; - Battle-tested advice on what makes a resume stand out&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✍️ Cover Letter Mastery
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.reddit.com/r/datascience/comments/tag8l5/my_guide_to_writing_a_killer_cover_letter/" rel="noopener noreferrer"&gt;My Guide to Writing a Killer Cover Letter (Reddit)&lt;/a&gt;&lt;/strong&gt; - Detailed guide on crafting compelling cover letters that get noticed&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📰 Staying Updated
&lt;/h3&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://daily.dev" rel="noopener noreferrer"&gt;daily.dev&lt;/a&gt;&lt;/strong&gt; — Stay informed with current tech trends and news прямо from your browser dashboard. Great for keeping up with what's happening in the developer ecosystem daily.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💪 A Final Word
&lt;/h2&gt;

&lt;p&gt;Sometimes we just have this hope, you know? Hope that the next application will be the one. Hope that someone will see our value. Hope that things will get better.&lt;/p&gt;

&lt;p&gt;Hold onto that hope. But also take action alongside it. Use these resources. Apply consistently. Keep learning. Keep growing.&lt;/p&gt;

&lt;p&gt;The job market is tough right now—I'm not going to sugarcoat that. But you're tougher. You're still here, still trying, still pushing forward.&lt;/p&gt;

&lt;p&gt;And that counts for something.&lt;/p&gt;

&lt;p&gt;All the best wishes for 2026. You've got this.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What resources have helped you in your job search? Feel free to share in the comments below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
    </item>
    <item>
      <title>Umoja — One Africa. One App.</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Tue, 11 Nov 2025 14:50:27 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/umoja-one-africa-one-app-59k7</link>
      <guid>https://dev.to/cypriantinasheaarons/umoja-one-africa-one-app-59k7</guid>
      <description>&lt;p&gt;Hi, my name is Cyprian Aarons, and I’m the founder of Umoja.&lt;/p&gt;

&lt;p&gt;In Africa, most small businesses sell through WhatsApp, but they still manage payments, delivery, and accounting separately. It’s slow and messy.&lt;/p&gt;

&lt;p&gt;Umoja fixes that.&lt;br&gt;
We bring everything into one place — chat, POS, payroll, delivery, and accounting — all connected to WhatsApp.&lt;/p&gt;

&lt;p&gt;A customer can message a shop on WhatsApp, place an order, pay, and get delivery — all through Umoja.&lt;/p&gt;

&lt;p&gt;We’re starting in Zimbabwe, where over a million vendors already sell informally, and expanding across Africa’s 500 million WhatsApp users.&lt;/p&gt;

&lt;p&gt;Our business model is simple: we take a small 1–3% fee on each transaction and offer premium plans for growing businesses.&lt;/p&gt;

&lt;p&gt;We’ve built the platform and are raising funds to scale.&lt;/p&gt;

&lt;p&gt;Umoja — One Africa. One App.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>My 2025 AI Engineer Roadmap List</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Mon, 16 Dec 2024 06:02:27 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/my-2024-ai-engineer-roadmap-list-1i8n</link>
      <guid>https://dev.to/cypriantinasheaarons/my-2024-ai-engineer-roadmap-list-1i8n</guid>
      <description>&lt;h2&gt;
  
  
  Developer Tools &amp;amp; Platforms
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Frameworks / Infrastructure / Backends
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://supabase.com/" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt;&lt;/strong&gt;: An open-source Firebase alternative offering Postgres, authentication, and storage solutions. 🚀&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://langchain.com/" rel="noopener noreferrer"&gt;LangChain&lt;/a&gt;&lt;/strong&gt;: A powerful framework for building applications powered by LLMs, enabling seamless integration of prompts, chains, and agents. 🧠&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.llamaindex.ai/" rel="noopener noreferrer"&gt;LlamaIndex&lt;/a&gt;&lt;/strong&gt;: A tool for connecting LLMs with your own data, streamlining retrieval-augmented generation workflows. 📖&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://streamlit.io/" rel="noopener noreferrer"&gt;Streamlit&lt;/a&gt;&lt;/strong&gt;: Quickly build interactive web apps for machine learning and data science projects. 💻&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://fastapi.tiangolo.com/" rel="noopener noreferrer"&gt;FastAPI&lt;/a&gt;&lt;/strong&gt;: A modern Python framework for building APIs with automatic interactive documentation. ⚡&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.djangoproject.com/" rel="noopener noreferrer"&gt;Django&lt;/a&gt;&lt;/strong&gt;: A high-level Python web framework that encourages rapid development and clean, pragmatic design. 🌐&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://flask.palletsprojects.com/" rel="noopener noreferrer"&gt;Flask&lt;/a&gt;&lt;/strong&gt;: A lightweight WSGI web application framework in Python. 🧩&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Roadmaps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Learning and Growth Paths
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://roadmap.sh/ai-engineer" rel="noopener noreferrer"&gt;AI Engineer Roadmap&lt;/a&gt;&lt;/strong&gt;: A step-by-step guide to mastering AI engineering in 2024. 🎓&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://roadmap.sh/prompt-engineering" rel="noopener noreferrer"&gt;Prompt Engineering Roadmap&lt;/a&gt;&lt;/strong&gt;: Learn the art of crafting effective prompts for large language models. ✍️&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://roadmap.sh/data-analyst" rel="noopener noreferrer"&gt;Data Analyst Roadmap&lt;/a&gt;&lt;/strong&gt;: A structured path to excelling as a data analyst. 📊&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://roadmap.sh/ai-data-scientist" rel="noopener noreferrer"&gt;AI and Data Scientist Roadmap&lt;/a&gt;&lt;/strong&gt;: A holistic view of the skills and technologies needed for AI and data science careers. 🧪&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://roadmap.sh/system-design" rel="noopener noreferrer"&gt;System Design&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://roadmap.sh/software-design-architecture" rel="noopener noreferrer"&gt;Software Architecture&lt;/a&gt;&lt;/strong&gt;: Essential guides for designing scalable, efficient, and maintainable systems. 🏗️&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://roadmap.sh/python" rel="noopener noreferrer"&gt;Python Developer Roadmap&lt;/a&gt;&lt;/strong&gt;: Learn to become a modern Python developer. 🐍&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Tools
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.copilotkit.ai/" rel="noopener noreferrer"&gt;CopilotKit&lt;/a&gt;&lt;/strong&gt;: Build advanced AI-powered apps quickly and effectively. 🤖&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.langflow.org/" rel="noopener noreferrer"&gt;Langflow&lt;/a&gt;&lt;/strong&gt;: Simplify the process of designing LangChain-based applications. 🎨&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://zapier.com/" rel="noopener noreferrer"&gt;Zapier&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://n8n.io/" rel="noopener noreferrer"&gt;n8n&lt;/a&gt;&lt;/strong&gt;: Automation tools to integrate workflows across applications. 🔄&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://openrouter.ai/" rel="noopener noreferrer"&gt;OpenRouter&lt;/a&gt;&lt;/strong&gt;: A centralized platform to experiment with and deploy various LLMs. 🛠️&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.elastic.co/search-labs/blog/local-rag-agent-elasticsearch-langgraph-llama3" rel="noopener noreferrer"&gt;Elastic RAG Agent&lt;/a&gt;&lt;/strong&gt;: Combining Elasticsearch and LangChain for retrieval-augmented generation tasks. 📂&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://jupyter.org/" rel="noopener noreferrer"&gt;Jupyter Notebooks&lt;/a&gt;&lt;/strong&gt;: Interactive computing notebooks for data analysis and visualization. 📓&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;VS Code&lt;/a&gt;&lt;/strong&gt;: A popular code editor with extensive AI and Python extensions. ✏️&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Open-Source Projects
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Noteworthy GitHub Repositories
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/langchain-ai/rag-research-agent-template" rel="noopener noreferrer"&gt;LangChain RAG Template&lt;/a&gt;&lt;/strong&gt;: A starter template for building Retrieval-Augmented Generation workflows. 🔍&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/samwit/agent_tutorials/tree/main/agent_write" rel="noopener noreferrer"&gt;Agent Tutorials&lt;/a&gt;&lt;/strong&gt;: Hands-on tutorials for implementing various agents. 🤝&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/leerob/next-saas-starter?ref=dailydev" rel="noopener noreferrer"&gt;Next.js AI Starter&lt;/a&gt;&lt;/strong&gt;: A Next.js template for SaaS apps integrating AI features. 💡&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/run-llama/voice-chat-pdf" rel="noopener noreferrer"&gt;Voice Chat PDF&lt;/a&gt;&lt;/strong&gt;: A tool to converse with PDFs using voice commands. 🗣️&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/AstraBert/everything-ai" rel="noopener noreferrer"&gt;Everything AI&lt;/a&gt;&lt;/strong&gt;: A comprehensive collection of AI tools, libraries, and resources. 🛠️&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/TheAlgorithms/Python" rel="noopener noreferrer"&gt;Python Algorithms&lt;/a&gt;&lt;/strong&gt;: A treasure trove of algorithmic implementations in Python. 🧮&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/openai/openai-assistants-quickstart" rel="noopener noreferrer"&gt;OpenAI Assistants&lt;/a&gt;&lt;/strong&gt;: Get started with deploying OpenAI-powered assistants. 🤖&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/shaunthecomputerscientist/EDA-GPT" rel="noopener noreferrer"&gt;EDA GPT&lt;/a&gt;&lt;/strong&gt;: Explore AI-driven exploratory data analysis. 🔎&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Learning Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Books
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://learning.oreilly.com/library/view/building-generative-ai/9781098160296/ch01.html" rel="noopener noreferrer"&gt;Building Generative AI Applications&lt;/a&gt; 📚&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://learning.oreilly.com/library/view/learning-langchain/9781098167271/" rel="noopener noreferrer"&gt;Learning LangChain&lt;/a&gt; 📖&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://learning.oreilly.com/library/view/hands-on-generative-ai/9781098149239/" rel="noopener noreferrer"&gt;Hands-on Generative AI&lt;/a&gt; 🛠️&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://learning.oreilly.com/library/view/essential-math-for/9781098107628/" rel="noopener noreferrer"&gt;Essential Math for AI&lt;/a&gt; 🔢&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://learning.oreilly.com/library/view/think-python-3rd/9781098155421/" rel="noopener noreferrer"&gt;Think Python (3rd Edition)&lt;/a&gt; 🐍&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://learning.oreilly.com/library/view/fluent-python-2nd/9781492056348/" rel="noopener noreferrer"&gt;Fluent Python (2nd Edition)&lt;/a&gt; 🎯&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Courses
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.deeplearning.ai/courses/" rel="noopener noreferrer"&gt;DeepLearning.AI&lt;/a&gt;&lt;/strong&gt;: A wide variety of courses to master deep learning and related fields. 🧠&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.coursera.org/" rel="noopener noreferrer"&gt;Coursera&lt;/a&gt;&lt;/strong&gt;: Explore certifications, degrees, and free courses across AI, data science, and more. 🎓&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://langchain-ai.github.io/langgraph/tutorials/" rel="noopener noreferrer"&gt;LangChain Tutorials&lt;/a&gt;&lt;/strong&gt;: Dedicated tutorials for leveraging LangChain effectively. 📘&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Blogs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/copilotkit/how-i-built-the-worlds-best-nextjs-ai-scheduling-app-442c"&gt;"How I Built the World’s Best AI Scheduling App"&lt;/a&gt; 🗓️&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/copilotkit/the-ai-powered-trip-planner-you-cant-live-without-2pk6"&gt;"The AI-Powered Trip Planner"&lt;/a&gt; ✈️&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/niharikaa/integrate-ai-effortlessly-a-beginners-guide-to-using-copilotkit-1pgg"&gt;"Integrate AI Effortlessly"&lt;/a&gt; 🤖&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/swapnendu003/introducing-swapnance-your-finance-aid-powered-by-copilotkit-1k3m"&gt;"Your Finance Aid Powered by CopilotKit"&lt;/a&gt; 💵&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;This is a list i curated in 2024 as i upskilled my skills as a AI Engineer and i hope it will benefit you too on your journey in the space. LFG!!&lt;/p&gt;




&lt;p&gt;🚀 &lt;strong&gt;Ready to Level Up Your Tech Insights?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hi there! 🤗&lt;br&gt;&lt;br&gt;
I’m &lt;strong&gt;Cyprian Aarons&lt;/strong&gt;, a Senior Software Engineer specializing in AI.&lt;br&gt;&lt;br&gt;
Join me on &lt;a href="https://x.com/cyprianaarons" rel="noopener noreferrer"&gt;🐦 Twitter&lt;/a&gt; for daily deep-dives into cutting-edge tech, behind-the-scenes looks at innovative projects, and strategies to help you thrive in the digital era.  &lt;/p&gt;

&lt;p&gt;✨ &lt;strong&gt;Stay Connected &amp;amp; Informed!&lt;/strong&gt; ✨&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://x.com/cyprianaarons" rel="noopener noreferrer"&gt;📢 Follow me on Twitter&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://cyprianxyz.beehiiv.com/subscribe" rel="noopener noreferrer"&gt;📰 Subscribe to my Newsletter&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🌟 Why Follow or Subscribe?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔍 In-Depth Analysis:&lt;/strong&gt; Get detailed insights into the latest AI and tech trends.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎥 Exclusive Content:&lt;/strong&gt; Access behind-the-scenes content and project updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💡 Actionable Strategies:&lt;/strong&gt; Learn strategies to excel in the digital landscape.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📬 Regular Updates:&lt;/strong&gt; Receive newsletters packed with valuable information straight to your inbox.&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>javascript</category>
      <category>ai</category>
      <category>rag</category>
      <category>langchain</category>
    </item>
    <item>
      <title>How to Ensure Your Startup Fails Spectacularly 🚀💥</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Sat, 14 Dec 2024 09:43:14 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/how-to-ensure-your-startup-fails-spectacularly-14no</link>
      <guid>https://dev.to/cypriantinasheaarons/how-to-ensure-your-startup-fails-spectacularly-14no</guid>
      <description>&lt;p&gt;Embarking on a startup journey? Here's your tongue-in-cheek guide to making sure it crashes and burns. Follow these steps meticulously, and failure is practically guaranteed. Let’s dive in!&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Ignore the Art of Selling 🚫
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Definition of Selling:&lt;/strong&gt; Convincing someone to part with their money for your product or service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Crucial:&lt;/strong&gt; Without sales, your product is just a hobby. Even the most groundbreaking innovations need a sales strategy to reach customers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Believe that a great product will sell itself. Why waste time understanding your audience when you can just assume they’ll flock to you?&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Dismiss Marketing as Unnecessary 📢
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Definition of Marketing:&lt;/strong&gt; The art of making your product known and desirable to the masses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Vital:&lt;/strong&gt; A product without marketing is like winking in the dark—you know what you’re doing, but no one else does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Think marketing is overrated. Skip the storytelling, branding, and customer engagement. Just hope the universe spreads the word for you.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Build Blindly Without Research 🔨
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Keep building without understanding the market or customer needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Doomed:&lt;/strong&gt; You’ll end up with a product no one wants, wasting time and resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Believe that sheer effort without direction leads to success. Keep building features no one asked for. It’s character-building, right?&lt;/p&gt;

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




&lt;h2&gt;
  
  
  4. Succumb to Analysis Paralysis 🧠
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Research endlessly without ever launching.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s a Trap:&lt;/strong&gt; Competitors will surpass you while you’re stuck in the planning phase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Think that more information always leads to better decisions. Just keep researching until your laptop’s battery dies.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Target a Dying Market 📉
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Developing a newspaper app in the digital age.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Risky:&lt;/strong&gt; Investing in a shrinking market limits growth potential.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Assume nostalgia will drive demand. Who doesn’t miss the good old classifieds?&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Aim for an Overly Broad Audience 🎡
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Attempting to solve poverty across the entire developing world with a single solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Unrealistic:&lt;/strong&gt; Lack of focus leads to diluted efforts and minimal impact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Believe that if you’re solving everything for everyone, you’re bound to succeed. The more, the merrier, right?&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Choose a Market That Can’t Afford You 💸
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Selling a $10/month product to consumers with only $5 of disposable income.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s a Problem:&lt;/strong&gt; Poor sales and eventual business failure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Assume everyone will find a way to afford your product. Maybe they’ll skip dinner?&lt;/p&gt;

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




&lt;h2&gt;
  
  
  8. Chase Every Shiny New Thing ✨
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Constantly pivoting to the latest trend or tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Distracting:&lt;/strong&gt; Lack of direction and unfinished projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Jump from one trend to another. Blockchain one day, AI the next. Who needs consistency?&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Compete Solely on Price 🏷️
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Undercutting competitors without differentiating your product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Dangerous:&lt;/strong&gt; A race to the bottom erodes profits and brand value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Sell everything for peanuts. Who needs margins anyway?&lt;/p&gt;




&lt;h2&gt;
  
  
  10. Rely Entirely on a Single Investor’s Promise 💰
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Putting all your hopes on one potential investor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Risky:&lt;/strong&gt; If the investment falls through, so does your startup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Wait endlessly for that one check. Forget building traction or seeking alternative funding. Patience is a virtue, after all.&lt;/p&gt;




&lt;h2&gt;
  
  
  11. Isolate Yourself as a Lone Genius 🧩
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Working solo, believing you don’t need a team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Limiting:&lt;/strong&gt; Limited perspectives and burnout.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Be the hero who does it all. Teamwork is overrated, right?&lt;/p&gt;




&lt;h2&gt;
  
  
  12. Pursue Only What You Enjoy 🎮
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Focusing solely on personal passions, ignoring market demand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Risky:&lt;/strong&gt; Creating products with no market interest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Believe your passion alone guarantees success. Customers will surely appreciate your obscure retro game software product.&lt;/p&gt;




&lt;h2&gt;
  
  
  13. Disregard Financial Planning 📊
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Assuming revenue will naturally follow without budgeting or planning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Reckless:&lt;/strong&gt; Financial instability and potential bankruptcy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Burn through your savings and hope for a miracle.&lt;/p&gt;




&lt;h2&gt;
  
  
  14. Lack a Clear Definition of Success 🎯
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Operating without specific goals or benchmarks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s a Problem:&lt;/strong&gt; Aimless progress and difficulty measuring achievements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Assume success is a given. Who needs metrics or KPIs?&lt;/p&gt;




&lt;h2&gt;
  
  
  15. Take Reckless Risks Without Safeguards 🎲
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Risking everything without contingency plans.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Dangerous:&lt;/strong&gt; Potential for catastrophic failure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Bet the farm. High risk, high reward… or total collapse.&lt;/p&gt;




&lt;h2&gt;
  
  
  16. Neglect Personal Well-being for the Startup 🛌
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Approach:&lt;/strong&gt; Sacrificing health and personal life for work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Unsustainable:&lt;/strong&gt; Burnout and decreased productivity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip for Failing:&lt;/strong&gt; Sleep is for the weak. Red Bull will keep you going forever.&lt;/p&gt;




&lt;p&gt;Building a startup is hard enough without these missteps. So, take these points as a humorous reminder of what &lt;em&gt;not&lt;/em&gt; to do. Focus, plan, and most importantly—listen to your customers. The rest will follow. 🌟&lt;/p&gt;

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




&lt;p&gt;🚀 &lt;strong&gt;Ready to Level Up Your Tech Insights?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hi there! 🤗&lt;br&gt;&lt;br&gt;
I’m &lt;strong&gt;Cyprian Aarons&lt;/strong&gt;, a Senior Software Engineer specializing in AI.&lt;br&gt;&lt;br&gt;
Join me on &lt;a href="https://x.com/cyprianaarons" rel="noopener noreferrer"&gt;🐦 Twitter&lt;/a&gt; for daily deep-dives into cutting-edge tech, behind-the-scenes looks at innovative projects, and strategies to help you thrive in the digital era.  &lt;/p&gt;

&lt;p&gt;✨ &lt;strong&gt;Stay Connected &amp;amp; Informed!&lt;/strong&gt; ✨&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://x.com/cyprianaarons" rel="noopener noreferrer"&gt;📢 Follow me on Twitter&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://cyprianxyz.beehiiv.com/subscribe" rel="noopener noreferrer"&gt;📰 Subscribe to my Newsletter&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🌟 Why Follow or Subscribe?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔍 In-Depth Analysis:&lt;/strong&gt; Get detailed insights into the latest AI and tech trends.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎥 Exclusive Content:&lt;/strong&gt; Access behind-the-scenes content and project updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💡 Actionable Strategies:&lt;/strong&gt; Learn strategies to excel in the digital landscape.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📬 Regular Updates:&lt;/strong&gt; Receive newsletters packed with valuable information straight to your inbox.&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>startup</category>
      <category>beginners</category>
      <category>learning</category>
      <category>leadership</category>
    </item>
    <item>
      <title>My 2024 Good Links List</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Sat, 07 Dec 2024 07:29:15 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/my-2024-good-links-list-dca</link>
      <guid>https://dev.to/cypriantinasheaarons/my-2024-good-links-list-dca</guid>
      <description>&lt;h2&gt;
  
  
  Developer Tools &amp;amp; Platforms
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Frameworks / Infrastructure / Backends&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://supabase.com/" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt; – Open-source Firebase alternative; Postgres, auth, and storage.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://payloadcms.com/" rel="noopener noreferrer"&gt;PayloadCMS&lt;/a&gt; – Headless CMS built with Node.js, TypeScript, and MongoDB.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://platform.openai.com/docs/overview" rel="noopener noreferrer"&gt;OpenAI Platform&lt;/a&gt; – API docs for building AI-driven applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://python.langchain.com/" rel="noopener noreferrer"&gt;Langchain Python Docs&lt;/a&gt; – Documentation for building LLM-powered apps.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://trigger.dev/" rel="noopener noreferrer"&gt;Trigger.dev&lt;/a&gt; – Automated workflows with code directly in your codebase.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://segment.com/" rel="noopener noreferrer"&gt;Segment&lt;/a&gt; – Customer data platform for tracking and analytics.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://sendgrid.com/" rel="noopener noreferrer"&gt;Sendgrid&lt;/a&gt; – Email delivery and management.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.twilio.com/" rel="noopener noreferrer"&gt;Twilio&lt;/a&gt; – Communications APIs: SMS, voice, WhatsApp, and more.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dash.cloudflare.com/login" rel="noopener noreferrer"&gt;Cloudflare&lt;/a&gt; – DNS, CDN, and security solutions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://resend.com/home" rel="noopener noreferrer"&gt;Resend&lt;/a&gt; – Simple API for sending transactional emails.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://upstash.com/" rel="noopener noreferrer"&gt;Upstash&lt;/a&gt; – Serverless data platform for Redis and Kafka.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://openpanel.com/" rel="noopener noreferrer"&gt;Openpanel&lt;/a&gt; – Event-level analytics for product insights.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Frontend &amp;amp; UI Libraries&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://tailwindui.com/" rel="noopener noreferrer"&gt;Tailwind UI&lt;/a&gt; – UI components built with Tailwind CSS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ui.shadcn.com/" rel="noopener noreferrer"&gt;Shadcn UI&lt;/a&gt; – Customizable components built on Tailwind CSS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mantine.dev/" rel="noopener noreferrer"&gt;Mantine&lt;/a&gt; &amp;amp; &lt;a href="https://ui.mantine.dev/" rel="noopener noreferrer"&gt;Mantine UI&lt;/a&gt; – React components for building rich UIs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blocks.tremor.so/blocks" rel="noopener noreferrer"&gt;Tremor Blocks&lt;/a&gt; – Low-level components for building dashboards.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://syntaxui.com/" rel="noopener noreferrer"&gt;Syntax UI&lt;/a&gt; – Tailwind-based React UI.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.melt-ui.com/" rel="noopener noreferrer"&gt;Melt-UI&lt;/a&gt; – Svelte-based component library.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Documentation &amp;amp; Knowledge Bases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://mintlify.com/" rel="noopener noreferrer"&gt;Mintlify&lt;/a&gt; – Docs as code, easy-to-maintain documentation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://posthog.com/docs" rel="noopener noreferrer"&gt;PostHog Docs&lt;/a&gt; – Self-hosted analytics platform reference.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.n8n.io/" rel="noopener noreferrer"&gt;N8n Docs&lt;/a&gt; – Workflow automation platform documentation.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;DevOps &amp;amp; Deployment&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://sdk.vercel.ai/docs" rel="noopener noreferrer"&gt;Vercel AI SDK&lt;/a&gt; – Tools for building AI apps on Vercel.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://elest.io/" rel="noopener noreferrer"&gt;Elest.io&lt;/a&gt; – Managed services for open-source software.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.fleetbase.dev/api#metadata" rel="noopener noreferrer"&gt;Fleetbase API Docs&lt;/a&gt; – Logistics API references.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.openremote.io/developers/" rel="noopener noreferrer"&gt;OpenRemote&lt;/a&gt; – Open-source IoT platform.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;AI &amp;amp; LLM Tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.llamaindex.ai/" rel="noopener noreferrer"&gt;LlamaIndex&lt;/a&gt; – Data framework for LLM applications.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://flowiseai.com/" rel="noopener noreferrer"&gt;FlowiseAI&lt;/a&gt; – Visual drag-and-drop UI to build LangChain flows.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://serper.dev/" rel="noopener noreferrer"&gt;Serper.dev&lt;/a&gt; – Search APIs powered by AI.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://beta.dreamstudio.ai/" rel="noopener noreferrer"&gt;DreamStudio AI&lt;/a&gt; – Text-to-image generation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://aieditor.dev/" rel="noopener noreferrer"&gt;AI Editor&lt;/a&gt; – AI-assisted code and content editing.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.continue.dev/" rel="noopener noreferrer"&gt;Continue.dev&lt;/a&gt; – IDE plugins for AI-driven coding assistance.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.financialdatasets.ai/" rel="noopener noreferrer"&gt;FinancialDatasets.ai&lt;/a&gt; – Financial data for machine learning.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.goapi.ai/" rel="noopener noreferrer"&gt;GoAPI.ai&lt;/a&gt; – AI-assisted API building and testing environment.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Automation &amp;amp; Workflows&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://eu2.make.com/templates" rel="noopener noreferrer"&gt;Make.com Templates&lt;/a&gt; – Visual automation scenarios.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://axiom.ai/" rel="noopener noreferrer"&gt;Axiom.ai&lt;/a&gt; – Browser automation without coding.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cal.com/docs" rel="noopener noreferrer"&gt;Cal.com Docs&lt;/a&gt; – Scheduling APIs and integrations.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Design &amp;amp; UX Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;UI Kits &amp;amp; Design Systems&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://ui.shadcn.com/" rel="noopener noreferrer"&gt;UI Shadcn&lt;/a&gt; – Re-usable UI components for next-gen projects.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://uicolors.app/create" rel="noopener noreferrer"&gt;UI Colors&lt;/a&gt; – Generate color palettes for UIs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://shapes.framer.website/" rel="noopener noreferrer"&gt;Shapeframer&lt;/a&gt; – Curated shapes for Framer.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.animata.design/docs/setup" rel="noopener noreferrer"&gt;Animata.design&lt;/a&gt; – Animation libraries &amp;amp; tools.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.cult-ui.com/docs/installation" rel="noopener noreferrer"&gt;Cult-UI&lt;/a&gt; – UI components and themes.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.eldoraui.site/docs/installation" rel="noopener noreferrer"&gt;Eldora UI&lt;/a&gt; – UI library for React projects.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lunarui.dev/components" rel="noopener noreferrer"&gt;LunarUI&lt;/a&gt; – Elegant Tailwind-based components.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Visual Design &amp;amp; Inspiration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://mobbin.com/" rel="noopener noreferrer"&gt;Mobbin&lt;/a&gt; &amp;amp; &lt;a href="https://www.behance.net/" rel="noopener noreferrer"&gt;Behance&lt;/a&gt; – Design inspiration and showcases.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dribbble.com/" rel="noopener noreferrer"&gt;Dribbble&lt;/a&gt; &amp;amp; &lt;a href="https://www.landingfolio.com/" rel="noopener noreferrer"&gt;LandingFolio&lt;/a&gt; – Landing page and UI inspiration.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://land-book.com/" rel="noopener noreferrer"&gt;Land-Book&lt;/a&gt; – Curated gallery of landing pages.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://logosystem.co/" rel="noopener noreferrer"&gt;Logosystem&lt;/a&gt; &amp;amp; &lt;a href="https://www.logggos.club/browse/type/tech" rel="noopener noreferrer"&gt;Logggos.club&lt;/a&gt; – Logo design inspiration.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.transparenttextures.com/" rel="noopener noreferrer"&gt;Transparent Textures&lt;/a&gt; – Subtle background patterns.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://3dicons.co/" rel="noopener noreferrer"&gt;3Dicons&lt;/a&gt; &amp;amp; &lt;a href="https://svgl.app/" rel="noopener noreferrer"&gt;SVG L.app&lt;/a&gt; – 3D and SVG icons.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://webgradients.com/" rel="noopener noreferrer"&gt;Webgradients&lt;/a&gt; – Curated gradients for backgrounds.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fontsinuse.com/" rel="noopener noreferrer"&gt;Fontsinuse&lt;/a&gt; – Real-world font usage and typography inspiration.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://minimal.gallery/" rel="noopener noreferrer"&gt;Minimal.gallery&lt;/a&gt; – Minimalist website inspiration.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.saaspo.com/" rel="noopener noreferrer"&gt;SaaSpo&lt;/a&gt; – SaaS landing page examples.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://uiverse.io/" rel="noopener noreferrer"&gt;UIverse.io&lt;/a&gt; &amp;amp; &lt;a href="https://cssfx.netlify.app/" rel="noopener noreferrer"&gt;CSS FX&lt;/a&gt; – CSS components and effects.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;UX &amp;amp; Design Articles&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.muz.li/10-principles-of-good-web-design-1b837743ffa8" rel="noopener noreferrer"&gt;10 Principles of Good Web Design (Medium)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.muz.li/how-to-create-a-great-website-hero-section-f22ec2f6e86a" rel="noopener noreferrer"&gt;Building a Great Website Hero Section (Medium)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.muz.li/what-makes-a-brand-iconic-4161b9afa6cb" rel="noopener noreferrer"&gt;What Makes a Brand Iconic (Medium)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.prototypr.io/how-uber-conquered-ux-design-1d9c56788a41" rel="noopener noreferrer"&gt;How Uber Conquered UX Design (Prototypr)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Tooling for Designers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://app.spline.design/" rel="noopener noreferrer"&gt;Spline&lt;/a&gt; – 3D design platform for web experiences.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.toN/A%20link%20but%20recommended"&gt;Figma Plugins&lt;/a&gt; – Extending design capabilities directly in Figma.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hemingwayapp.com/" rel="noopener noreferrer"&gt;HemingwayApp&lt;/a&gt; – Improve readability of your content.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.realtimecolors.com/" rel="noopener noreferrer"&gt;RealTimeColors&lt;/a&gt; – Live color palette adjustments.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://polypane.app/" rel="noopener noreferrer"&gt;Polypane&lt;/a&gt; – Browser for responsive and accessibility testing.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Analytics, Monitoring &amp;amp; Marketing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://plausible.io/login" rel="noopener noreferrer"&gt;Plausible.io&lt;/a&gt; – Privacy-friendly web analytics.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://logsnag.com/" rel="noopener noreferrer"&gt;LogSnag&lt;/a&gt; – Event tracking and analytics.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://posthog.com/docs" rel="noopener noreferrer"&gt;PostHog&lt;/a&gt; – Product analytics and event tracking.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mixpanel.com/" rel="noopener noreferrer"&gt;Mixpanel&lt;/a&gt; – Advanced product analytics for user behavior.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://growth.design/case-studies" rel="noopener noreferrer"&gt;Growth.Design&lt;/a&gt; – Case studies on product growth and UX.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hypefury.com/" rel="noopener noreferrer"&gt;Hypefury&lt;/a&gt; &amp;amp; &lt;a href="https://tweethunter.io/twemex" rel="noopener noreferrer"&gt;TweetHunter&lt;/a&gt; – Social media growth tools.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nuelink.com/" rel="noopener noreferrer"&gt;Nuelink&lt;/a&gt; – Social media automation and scheduling.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://segment.com/" rel="noopener noreferrer"&gt;Segment&lt;/a&gt; – Customer data platform to unify analytics and messaging.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  AI &amp;amp; Data
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://academy.langchain.com/" rel="noopener noreferrer"&gt;Langchain Academy&lt;/a&gt; – Training resources for building LLM apps.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.meilisearch.com/blog/add-ai-powered-search-to-react" rel="noopener noreferrer"&gt;Meilisearch &amp;amp; AI&lt;/a&gt; – AI-powered search integration.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://openart.ai/" rel="noopener noreferrer"&gt;OpenArt.ai&lt;/a&gt; – Browse and generate AI-generated art.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.stack-ai.com/" rel="noopener noreferrer"&gt;Stack AI&lt;/a&gt; – AI insights for data-driven decisions.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/phidatahq/phidata/tree/main/cookbook/examples/auto_rag" rel="noopener noreferrer"&gt;RAG (Retrieval Augmented Generation) Examples&lt;/a&gt; – Sample code for retrieval-augmented AI apps.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://farid.one/kaggle-solutions/" rel="noopener noreferrer"&gt;Kaggle Solutions&lt;/a&gt; – Curated Kaggle challenge solutions.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Workflow &amp;amp; Project Management
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://monday.com/crm/features" rel="noopener noreferrer"&gt;Monday.com CRM&lt;/a&gt; – CRM and workflow management.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://clickup.com/" rel="noopener noreferrer"&gt;ClickUp&lt;/a&gt; – Project management and productivity tool.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://shipfa.st/docs" rel="noopener noreferrer"&gt;Shipfast Docs&lt;/a&gt; – Faster shipping solutions documentation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://crisp.chat/" rel="noopener noreferrer"&gt;Crisp.chat&lt;/a&gt; – Multi-channel customer support chat.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.chatwoot.com/features" rel="noopener noreferrer"&gt;Chatwoot&lt;/a&gt; – Open-source customer engagement platform.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cal.com/docs" rel="noopener noreferrer"&gt;Cal.com&lt;/a&gt; – Scheduling infrastructure and integrations.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eu2.make.com/templates" rel="noopener noreferrer"&gt;Make.com&lt;/a&gt; &amp;amp; &lt;a href="https://dev.toN/A%20link%20but%20recommended"&gt;Zapier&lt;/a&gt; – Workflow automation tools.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  E-Commerce &amp;amp; Payments
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://medusajs.com/nextjs-commerce/" rel="noopener noreferrer"&gt;Medusa Commerce&lt;/a&gt; – Commerce engine built on Node.js.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.circle.com/en/developers" rel="noopener noreferrer"&gt;Circle Developers&lt;/a&gt; – Crypto payment infrastructure.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://thirdweb.com/" rel="noopener noreferrer"&gt;Thirdweb&lt;/a&gt; &amp;amp; &lt;a href="https://www.alchemy.com/" rel="noopener noreferrer"&gt;Alchemy&lt;/a&gt; – Web3 tools and NFT infrastructure.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.atlys.com/" rel="noopener noreferrer"&gt;Atlys&lt;/a&gt; – Get visas and travel documents easily (service reference).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Inspiration &amp;amp; Learning
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.3blue1brown.com/" rel="noopener noreferrer"&gt;3Blue1Brown&lt;/a&gt; – Math and data visualization videos.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.theaivalley.com/" rel="noopener noreferrer"&gt;AIValley&lt;/a&gt; &amp;amp; &lt;a href="https://dailyai.com/" rel="noopener noreferrer"&gt;DailyAI&lt;/a&gt; – AI news and insights.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://bootcamp.uxdesign.cc/" rel="noopener noreferrer"&gt;Bootcamp UXDesign&lt;/a&gt; – UX and design tutorials.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/"&gt;Dev.to Articles&lt;/a&gt; – Developer-centric articles and tutorials.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/" rel="noopener noreferrer"&gt;Medium Publications&lt;/a&gt; – Articles on design, AI, web dev, and best practices.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Web3 &amp;amp; Blockchain
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://thirdweb.com/" rel="noopener noreferrer"&gt;Thirdweb&lt;/a&gt; – Web3 development framework and tools.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.soliditylang.org/en/v0.8.21/" rel="noopener noreferrer"&gt;Solidity Docs&lt;/a&gt; – Official docs for the Solidity language.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.alchemy.com/university" rel="noopener noreferrer"&gt;Alchemy University&lt;/a&gt; – Web3 development courses and tutorials.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.useweb3.xyz/" rel="noopener noreferrer"&gt;Useweb3.xyz&lt;/a&gt; – Curated Web3 resources and guides.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://evm-from-scratch.xyz/content/01_intro" rel="noopener noreferrer"&gt;EVM from Scratch&lt;/a&gt; – Learn Ethereum Virtual Machine internals.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Others &amp;amp; Miscellaneous
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://novel.sh/" rel="noopener noreferrer"&gt;Novel.sh&lt;/a&gt; – AI-powered text editing.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dyte.io/" rel="noopener noreferrer"&gt;Dyte.io&lt;/a&gt; – Video and voice APIs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://acquire.com/" rel="noopener noreferrer"&gt;Acquire.com&lt;/a&gt; – Platform for buying and selling online businesses.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pusher.com/" rel="noopener noreferrer"&gt;Pusher&lt;/a&gt; – Realtime APIs for communication features.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://framermotionexamples.com/examples?s=free" rel="noopener noreferrer"&gt;Framermotion Examples&lt;/a&gt; – Motion UI library examples.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://imagekit.io/dashboard" rel="noopener noreferrer"&gt;ImageKit&lt;/a&gt; – Image optimization and CDN.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://testimonial.to/" rel="noopener noreferrer"&gt;Testimonial.to&lt;/a&gt; – Collect video testimonials.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;🚀 &lt;strong&gt;Ready to Level Up Your Tech Insights?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hi there! 🤗&lt;br&gt;&lt;br&gt;
I’m &lt;strong&gt;Cyprian Aarons&lt;/strong&gt;, a Senior Software Engineer specializing in AI.&lt;br&gt;&lt;br&gt;
Join me on &lt;a href="https://x.com/cyprianaarons" rel="noopener noreferrer"&gt;🐦 Twitter&lt;/a&gt; for daily deep-dives into cutting-edge tech, behind-the-scenes looks at innovative projects, and strategies to help you thrive in the digital era.  &lt;/p&gt;

&lt;p&gt;✨ &lt;strong&gt;Stay Connected &amp;amp; Informed!&lt;/strong&gt; ✨&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://x.com/cyprianaarons" rel="noopener noreferrer"&gt;📢 Follow me on Twitter&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://cyprianxyz.beehiiv.com/subscribe" rel="noopener noreferrer"&gt;📰 Subscribe to my Newsletter&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🌟 Why Follow or Subscribe?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔍 In-Depth Analysis:&lt;/strong&gt; Get detailed insights into the latest AI and tech trends.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎥 Exclusive Content:&lt;/strong&gt; Access behind-the-scenes content and project updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💡 Actionable Strategies:&lt;/strong&gt; Learn strategies to excel in the digital landscape.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📬 Regular Updates:&lt;/strong&gt; Receive newsletters packed with valuable information straight to your inbox.&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>🚀 Introduction to Building AI-Powered Apps with Streamlit and FastAPI</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Wed, 16 Oct 2024 08:28:26 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/introduction-to-building-ai-powered-apps-with-streamlit-and-fastapi-73d</link>
      <guid>https://dev.to/cypriantinasheaarons/introduction-to-building-ai-powered-apps-with-streamlit-and-fastapi-73d</guid>
      <description>&lt;p&gt;The software world has made it fun and exciting for builders to create solutions and bring their ideas to life quicker than ever before. Sometimes, you just want to build something cool to show off or to learn a new concept or AI model by building it. Whether it's for a quick MVP or a POC to gauge traction in the real world, learning the combo of &lt;strong&gt;Streamlit&lt;/strong&gt; for the frontend and &lt;strong&gt;FastAPI&lt;/strong&gt; for your backend will make you a beast at this game. 🦾&lt;/p&gt;




&lt;h2&gt;
  
  
  🌟 What is FastAPI?
&lt;/h2&gt;

&lt;p&gt;FastAPI is a &lt;strong&gt;fast&lt;/strong&gt; and modern web framework for building APIs with Python. It boasts numerous advantages, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Speed&lt;/strong&gt;: High performance, on par with Node.js and Go.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ease of Use&lt;/strong&gt;: Simple and intuitive syntax.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Less Code&lt;/strong&gt;: Requires fewer lines of code to achieve the same functionality compared to other frameworks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But there are other frameworks like &lt;strong&gt;Django&lt;/strong&gt; and &lt;strong&gt;Flask&lt;/strong&gt;, to name a few, that can also work well. Personally, I prefer FastAPI for many reasons, and the goal is to solve problems efficiently. So, remember to stick to one framework you like and understand. 👍&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ FastAPI Basics
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Setting Up the Virtual Environment
&lt;/h3&gt;

&lt;p&gt;First, let's set up our virtual environment to keep our project dependencies isolated.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; venv .venv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Activating the Virtual Environment
&lt;/h3&gt;

&lt;p&gt;Activate the environment you just created:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; .venv/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;For Windows users:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;.venv&lt;span class="se"&gt;\S&lt;/span&gt;cripts&lt;span class="se"&gt;\a&lt;/span&gt;ctivate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Installing Required Packages
&lt;/h3&gt;

&lt;p&gt;Next, install FastAPI and Uvicorn (an ASGI server):&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;fastapi uvicorn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Creating the Main Application File
&lt;/h3&gt;

&lt;p&gt;Create a new file named &lt;code&gt;main.py&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. Writing the Basic FastAPI Application
&lt;/h3&gt;

&lt;p&gt;Copy and paste the following code into your &lt;code&gt;main.py&lt;/code&gt; file:&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;from&lt;/span&gt; &lt;span class="n"&gt;fastapi&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastAPI&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;uvicorn&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nd"&gt;@app.get&lt;/span&gt;&lt;span class="p"&gt;(&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="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;root&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&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;Hello World&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;uvicorn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0.0.0.0&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  6. Running the FastAPI Application
&lt;/h3&gt;

&lt;p&gt;In your terminal, run the application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;FastAPI automatically generates documentation using OpenAPI, which is one of the many features AI engineers love! 🎉&lt;/p&gt;

&lt;p&gt;Navigate to your local URL:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://0.0.0.0:8000/docs" rel="noopener noreferrer"&gt;http://0.0.0.0:8000/docs&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%2F8ftzegd4jaxd71rgenoa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ftzegd4jaxd71rgenoa.png" alt="FastAPI Docs" width="800" height="786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yay!! Our first API is up and running with a simple "Hello World" response. But the fun is just beginning! 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 Project Summary
&lt;/h2&gt;

&lt;p&gt;We will be building a simple FastAPI endpoint that takes a prompt and, with the help of Replicate's hosted Flux Image GenAI model, generates a cool image. Then, using Streamlit for our client-side, we'll call the endpoint using &lt;code&gt;requests&lt;/code&gt; to generate and present the image to the user. 🎨✨&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 What is Replicate.com?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://replicate.com/" rel="noopener noreferrer"&gt;Replicate&lt;/a&gt; lets you run AI models with a cloud API, without having to understand machine learning or manage your own infrastructure. It's a game-changer for developers looking to integrate powerful AI capabilities quickly and effortlessly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps to Get Started with Replicate:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create or Log In&lt;/strong&gt;: Go to &lt;a href="https://replicate.com/" rel="noopener noreferrer"&gt;Replicate&lt;/a&gt; and create an account or log in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access the Flux Model&lt;/strong&gt;: Navigate to &lt;a href="https://replicate.com/black-forest-labs/flux-1.1-pro" rel="noopener noreferrer"&gt;Flux 1.1 Pro&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Replicate provides excellent documentation for their APIs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://replicate.com/black-forest-labs/flux-1.1-pro/api" rel="noopener noreferrer"&gt;Flux 1.1 Pro API Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Select the Python documentation for seamless integration:&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Obtaining Your Replicate API Token
&lt;/h3&gt;

&lt;p&gt;To get the API key, follow these two steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Add Billing Information&lt;/strong&gt;:&lt;br&gt;
Go to &lt;a href="https://replicate.com/account/billing" rel="noopener noreferrer"&gt;Replicate Billing&lt;/a&gt; and follow the instructions to add your billing information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create API Key&lt;/strong&gt;:&lt;br&gt;
Go to &lt;a href="https://replicate.com/account/api-tokens" rel="noopener noreferrer"&gt;Replicate API Tokens&lt;/a&gt; to create your API key.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Export your API token in your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;REPLICATE_API_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;paste-your-token-here&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🖥️ Enhancing FastAPI with Replicate
&lt;/h2&gt;

&lt;p&gt;Install the necessary packages:&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;replicate loguru
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Replicate: To interact with Replicate's API.&lt;/li&gt;
&lt;li&gt;Loguru: For logging errors, information, etc. &lt;a href="https://loguru.readthedocs.io/en/stable/" rel="noopener noreferrer"&gt;Loguru Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example Code Provided by Replicate
&lt;/h3&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;replicate&lt;/span&gt;

&lt;span class="nb"&gt;input&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;prompt&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;black forest gateau cake spelling out the words &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s"&gt;FLUX 1.1 Pro&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s"&gt;, tasty, food photography&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;prompt_upsampling&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;replicate&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;black-forest-labs/flux-1.1-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;#=&amp;gt; "https://replicate.delivery/czjl/HQZ89fz0ogUSJi2RLpuTyYER..."
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Customizing the Code for Our Image Generation Endpoint
&lt;/h3&gt;

&lt;p&gt;Replace the above with the following enhanced code in &lt;code&gt;main.py&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="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastAPI&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pydantic&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BaseModel&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;uvicorn&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;replicate&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;loguru&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;logger&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;typing&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Dict&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Configure Loguru to log into app.log with rotation
&lt;/span&gt;&lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;app.log&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rotation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;500 MB&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ImageInput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseModel&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="nb"&gt;str&lt;/span&gt;
    &lt;span class="n"&gt;prompt_upsampling&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;

&lt;span class="nd"&gt;@app.post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/generate&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ImageInput&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Dict&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="n"&gt;input_prompt&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;prompt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;input_data&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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt_upsampling&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;input_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt_upsampling&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;# Generate image using Replicate's Flux model
&lt;/span&gt;    &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;replicate&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;black-forest-labs/flux-1.1-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;input_prompt&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Handle the output to get the image URL
&lt;/span&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;replicate&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;helpers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FileOutput&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="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&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="n"&gt;output&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&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;Image generated&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;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nd"&gt;@app.get&lt;/span&gt;&lt;span class="p"&gt;(&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="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;root&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Dict&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Root endpoint accessed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&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;Welcome to the Flux Image Generation API&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Starting the application&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;uvicorn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;127.0.0.1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8000&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%2F9e0xt8jzktxgviid4wli.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9e0xt8jzktxgviid4wli.png" alt="FastAPI Enhanced" width="800" height="794"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Breakdown 🧐
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Importing Necessary Libraries:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastAPI&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pydantic&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BaseModel&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;uvicorn&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;replicate&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;loguru&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;logger&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;typing&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Dict&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Initializing FastAPI and Loguru:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;app.log&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rotation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;500 MB&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;ul&gt;
&lt;li&gt;FastAPI Instance: Creates the FastAPI app.&lt;/li&gt;
&lt;li&gt;Loguru Configuration: Logs will be stored in &lt;code&gt;app.log&lt;/code&gt; with a rotation size of 500 MB.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Defining the Data Model:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ImageInput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseModel&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="nb"&gt;str&lt;/span&gt;
    &lt;span class="n"&gt;prompt_upsampling&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;



&lt;ul&gt;
&lt;li&gt;ImageInput: A Pydantic model that ensures the incoming data has the required structure.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Creating the &lt;code&gt;/generate&lt;/code&gt; Endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nd"&gt;@app.post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/generate&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ImageInput&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Dict&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="n"&gt;input_prompt&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;prompt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;input_data&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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt_upsampling&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;input_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prompt_upsampling&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;# Generate image using Replicate's Flux model
&lt;/span&gt;    &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;replicate&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;black-forest-labs/flux-1.1-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;input_prompt&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Handle the output to get the image URL
&lt;/span&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;replicate&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;helpers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FileOutput&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="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&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="n"&gt;output&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&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;Image generated&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;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;



&lt;ul&gt;
&lt;li&gt;Purpose: Takes a prompt from the user, generates an image using Replicate's Flux model, and returns the image URL.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Creating the Root Endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nd"&gt;@app.get&lt;/span&gt;&lt;span class="p"&gt;(&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="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;root&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Dict&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Root endpoint accessed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&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;Welcome to the Flux Image Generation API&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;ul&gt;
&lt;li&gt;Purpose: A simple root endpoint that logs access and returns a welcome message.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Running the Application:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Starting the application&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;uvicorn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;127.0.0.1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;



&lt;ul&gt;
&lt;li&gt;Purpose: Starts the FastAPI application using Uvicorn.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎨 Building the Client with Streamlit
&lt;/h2&gt;

&lt;p&gt;Now, let's create the client-side application using Streamlit to interact with our FastAPI backend.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Installing Streamlit and Requests
&lt;/h3&gt;

&lt;p&gt;Install the necessary packages:&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 requests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Creating the Streamlit Client
&lt;/h3&gt;

&lt;p&gt;Create a new file named &lt;code&gt;client.py&lt;/code&gt; and add the following code:&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;requests&lt;/span&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="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_image&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="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&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;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:8000/generate&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json&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;prompt&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="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="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&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;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;🎨 Flux 1.1 Pro Image Generator&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="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;Enter a prompt for the image&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&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;Generate Image&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;prompt&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;Generating image...&lt;/span&gt;&lt;span class="sh"&gt;"&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="nf"&gt;generate_image&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;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;caption&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Your Generated Image&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;else&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;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;❗ Please enter a prompt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Code Explanation 📝
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Importing Libraries:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&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;/code&gt;&lt;/pre&gt;


&lt;ul&gt;
&lt;li&gt;Requests: To make HTTP requests to our FastAPI backend.&lt;/li&gt;
&lt;li&gt;Streamlit: To build the frontend interface.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Defining the &lt;code&gt;generate_image&lt;/code&gt; Function:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_image&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="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&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;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:8000/generate&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json&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;prompt&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="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="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&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;ul&gt;
&lt;li&gt;Purpose: Sends the user's prompt to the FastAPI &lt;code&gt;/generate&lt;/code&gt; endpoint and retrieves the generated image URL.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Creating the Main Function:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&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;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;🎨 Flux 1.1 Pro Image Generator&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="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;Enter a prompt for the image&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&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;Generate Image&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;prompt&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;Generating image...&lt;/span&gt;&lt;span class="sh"&gt;"&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="nf"&gt;generate_image&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;st&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;caption&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Your Generated Image&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;else&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;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;❗ Please enter a prompt&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;ul&gt;
&lt;li&gt;Title: Displays the app title.&lt;/li&gt;
&lt;li&gt;Text Input: Allows users to enter a prompt for image generation.&lt;/li&gt;
&lt;li&gt;Button: When clicked, it triggers the image generation process.&lt;/li&gt;
&lt;li&gt;Spinner: Shows a loading animation while the image is being generated.&lt;/li&gt;
&lt;li&gt;Image Display: Displays the generated image with a caption.&lt;/li&gt;
&lt;li&gt;Error Handling: Alerts the user if no prompt is entered.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Running the Main Function:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;



&lt;ul&gt;
&lt;li&gt;Purpose: Ensures that the &lt;code&gt;main&lt;/code&gt; function runs when the script is executed.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Running the Streamlit Client
&lt;/h3&gt;

&lt;p&gt;In your terminal, run the Streamlit app:&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 client.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Navigate to your local URL, typically &lt;a href="http://localhost:8501" rel="noopener noreferrer"&gt;http://localhost:8501&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%2Fwwodmvz3dxe7epiul11s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwodmvz3dxe7epiul11s.png" alt="Streamlit Client" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Generating an Image
&lt;/h3&gt;

&lt;p&gt;Enter a prompt like &lt;code&gt;"a car"&lt;/code&gt; and click on &lt;strong&gt;Generate Image&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%2Fsnzps6dcebtjsspgiqid.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsnzps6dcebtjsspgiqid.png" alt="Generating Image" width="800" height="657"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Boom! Your AI-generated image appears in seconds. 🚗✨&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Quick Setup
&lt;/h2&gt;

&lt;p&gt;For a seamless setup, clone the repository and follow along with the &lt;code&gt;README.md&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/CyprianTinasheAarons/replicate-streamlit-fastapi" rel="noopener noreferrer"&gt;Replicate-Streamlit-FastAPI GitHub Repository&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 Additional Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/ericchapman/python-fastapi-crash-course-533e"&gt;Python FastAPI Crash Course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fastapi.tiangolo.com/" rel="noopener noreferrer"&gt;Official FastAPI Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CyprianTinasheAarons/replicate-streamlit-fastapi" rel="noopener noreferrer"&gt;Replicate-Streamlit-FastAPI GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CyprianTinasheAarons/agent-service-toolkit" rel="noopener noreferrer"&gt;Great Bolierplate Github Repository&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎉 We so done!!
&lt;/h2&gt;

&lt;p&gt;Congratulations on getting this far! 🎊 You've just built a powerful AI-powered image generator using &lt;strong&gt;FastAPI&lt;/strong&gt; for the backend and &lt;strong&gt;Streamlit&lt;/strong&gt; for the frontend. Now, you can launch amazing AI solutions that will make the world a better place. 🌍✨&lt;/p&gt;




&lt;p&gt;🚀 &lt;strong&gt;Ready to Level Up Your Tech Insights?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hi there! 🤗&lt;br&gt;&lt;br&gt;
I’m &lt;strong&gt;Cyprian Aarons&lt;/strong&gt;, a Senior Software Engineer specializing in AI.&lt;br&gt;&lt;br&gt;
Join me on &lt;a href="https://x.com/cyprianaarons" rel="noopener noreferrer"&gt;🐦 Twitter&lt;/a&gt; for daily deep-dives into cutting-edge tech, behind-the-scenes looks at innovative projects, and strategies to help you thrive in the digital era.  &lt;/p&gt;

&lt;p&gt;✨ &lt;strong&gt;Stay Connected &amp;amp; Informed!&lt;/strong&gt; ✨&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://x.com/cyprianaarons" rel="noopener noreferrer"&gt;📢 Follow me on Twitter&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://cyprianxyz.beehiiv.com/subscribe" rel="noopener noreferrer"&gt;📰 Subscribe to my Newsletter&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🌟 Why Follow or Subscribe?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔍 In-Depth Analysis:&lt;/strong&gt; Get detailed insights into the latest AI and tech trends.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎥 Exclusive Content:&lt;/strong&gt; Access behind-the-scenes content and project updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💡 Actionable Strategies:&lt;/strong&gt; Learn strategies to excel in the digital landscape.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📬 Regular Updates:&lt;/strong&gt; Receive newsletters packed with valuable information straight to your inbox.&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
      <category>rag</category>
    </item>
    <item>
      <title>Building a Document QA with Streamlit &amp; OpenAI</title>
      <dc:creator>CyprianTinasheAarons</dc:creator>
      <pubDate>Tue, 15 Oct 2024 08:30:27 +0000</pubDate>
      <link>https://dev.to/cypriantinasheaarons/building-a-document-qa-with-streamlit-openai-1e07</link>
      <guid>https://dev.to/cypriantinasheaarons/building-a-document-qa-with-streamlit-openai-1e07</guid>
      <description>&lt;h1&gt;
  
  
  What is Streamlit? 🚀
&lt;/h1&gt;

&lt;p&gt;Streamlit is an open-source Python framework for data scientists and AI/ML engineers to deliver dynamic data apps with only a few lines of code.&lt;/p&gt;

&lt;p&gt;Streamlit is exciting for AI engineers who want to quickly demo or create Proof of concept projects.&lt;/p&gt;

&lt;p&gt;Streamlit provides great documentation that is easy to understand, and for any developer to pick up easily. 📈&lt;/p&gt;




&lt;h2&gt;
  
  
  Some Fundamentals before we dive into our project 🧩
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Installation 🛠️
&lt;/h3&gt;

&lt;p&gt;To install Streamlit, we can 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;pip &lt;span class="nb"&gt;install &lt;/span&gt;streamlit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To test if we have installed it successfully, we run the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;streamlit hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once we have built our application script i.e &lt;code&gt;&amp;lt;streamlit_script.py&amp;gt;&lt;/code&gt;, we can run it using 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 &amp;lt;streamlit_script.py&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Displaying Text or Diagrams 📝
&lt;/h3&gt;

&lt;p&gt;Using st.write we can display information in our app:&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;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hello world&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;
  
  
  Text Elements ✍️
&lt;/h3&gt;

&lt;p&gt;We can display strings in different formats, e.g., markdown, title, header, and subheader:&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;markdown&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;*Streamlit* is **really** ***cool***.&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;
  
  
  Widgets 🎛️
&lt;/h3&gt;

&lt;p&gt;Streamlit has many widgets that include buttons, select boxes, checkboxes, etc.:&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;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;Click me&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;
  
  
  Layout 🖼️
&lt;/h3&gt;

&lt;p&gt;We can work with sidebars, columns, and expanders. For example, &lt;code&gt;st.sidebar&lt;/code&gt; will show a sidebar on our app interface:&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;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;I am a sidebar&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;p&gt;👉 Going through the Streamlit docs and cheat sheet will quickly get you updated on the entire syntax:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.streamlit.io/get-started/fundamentals" rel="noopener noreferrer"&gt;Streamlit Fundamentals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.streamlit.io/develop/quick-reference/cheat-sheet" rel="noopener noreferrer"&gt;Streamlit Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hosting a Streamlit App 🌐
&lt;/h3&gt;

&lt;p&gt;Hosting a Streamlit app is very easy when working with Streamlit Cloud:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.streamlit.io/deploy/streamlit-community-cloud/deploy-your-app" rel="noopener noreferrer"&gt;Deploy Your App&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Prerequisites 📋
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;You are a Python developer.&lt;/li&gt;
&lt;li&gt;You have a basic understanding of Gen AI and LLMs like OpenAI.&lt;/li&gt;
&lt;li&gt;You love learning and upskilling.&lt;/li&gt;
&lt;li&gt;Your preferred IDE e.g VScode.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  A Breakdown of our Document Question &amp;amp; Answer Streamlit application
&lt;/h2&gt;

&lt;p&gt;We start by importing Streamlit and OpenAI into our app.py file:&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;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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, we make use of &lt;code&gt;st.title&lt;/code&gt; and &lt;code&gt;st.write&lt;/code&gt; to display the title and description:&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;📄 Document Question Answering&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;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Upload a document below and ask a question about it – GPT will answer! &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;To use this app, you need to provide an OpenAI API key, which you can get [here](https://platform.openai.com/account/api-keys). &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;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjldz9ba6ibbkqmvy0p5a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjldz9ba6ibbkqmvy0p5a.png" alt="Image description" width="767" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next up, is the &lt;code&gt;st.text_input&lt;/code&gt; function by Streamlit to add our OpenAI key giving our application AI capabilities:&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;openai_api_key&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;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="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;/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%2Fqfftcyjvqjgz2vldcpd0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfftcyjvqjgz2vldcpd0.png" alt="Image description" width="760" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lastly, when Implementing the core logic for the platform, we start with an &lt;code&gt;if not&lt;/code&gt; condition to check if the key exists; otherwise, we show the &lt;code&gt;st.info&lt;/code&gt; to ask the user to add the key:&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="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;openai_api_key&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;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Please add your OpenAI API key to continue.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;icon&lt;/span&gt;&lt;span class="o"&gt;=&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="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%2F5i3pfmky71epm3krz341.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5i3pfmky71epm3krz341.png" alt="Image description" width="797" height="101"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;else&lt;/code&gt; condition shows our fully functional Doc QA:&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;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

    &lt;span class="c1"&gt;# Create an OpenAI client.
&lt;/span&gt;    &lt;span class="n"&gt;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;openai_api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Let the user upload a file via `st.file_uploader`.
&lt;/span&gt;    &lt;span class="n"&gt;uploaded_file&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;file_uploader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Upload a document (.txt or .md)&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="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;txt&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;md&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="c1"&gt;# Ask the user for a question via `st.text_area`.
&lt;/span&gt;    &lt;span class="n"&gt;question&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_area&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Now ask a question about the document!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;placeholder&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Can you give me a short summary?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;disabled&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;uploaded_file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;uploaded_file&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;question&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

        &lt;span class="c1"&gt;# Process the uploaded file and question.
&lt;/span&gt;        &lt;span class="n"&gt;document&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;uploaded_file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;decode&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="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="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Here&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s a document: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s"&gt;---&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;question&lt;/span&gt;&lt;span class="si"&gt;}&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="p"&gt;]&lt;/span&gt;

        &lt;span class="c1"&gt;# Generate an answer using the OpenAI API.
&lt;/span&gt;        &lt;span class="n"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;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-3.5-turbo&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="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# Stream the response to the app using `st.write_stream`.
&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;write_stream&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stream&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%2Fh4cinpk0ygwvige2w7yl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4cinpk0ygwvige2w7yl.png" alt="Image description" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A Breakdown of the Code 🧐
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Initializing our OpenAI client using the added OpenAI key:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;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;openai_api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Using &lt;code&gt;file_uploader&lt;/code&gt; from Streamlit, we upload our types &lt;code&gt;.txt&lt;/code&gt; and &lt;code&gt;.md&lt;/code&gt;:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;uploaded_file&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;file_uploader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Upload a document (.txt or .md)&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="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;txt&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;md&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;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Using &lt;code&gt;text_area&lt;/code&gt;, we take the input from the user:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;question&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_area&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Now ask a question about the document!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;placeholder&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Can you give me a short summary?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;disabled&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;uploaded_file&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;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;We implement a condition to check if the user has uploaded a file and inputted a question:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;uploaded_file&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;question&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;We read the file and process what the user uploaded:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;document&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;uploaded_file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;We initialize the messages and pass them to our OpenAI chat completions endpoint:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&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="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="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Here&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s a document: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s"&gt;---&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;question&lt;/span&gt;&lt;span class="si"&gt;}&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="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# Generate an answer using the OpenAI API.
&lt;/span&gt;&lt;span class="n"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;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-3.5-turbo&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="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&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;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Finally, using &lt;code&gt;write_stream&lt;/code&gt;, we stream the output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&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;write_stream&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Setting Up the Project Locally on your machine 🏗️
&lt;/h2&gt;

&lt;p&gt;Clone the repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone git@github.com:CyprianTinasheAarons/document-qa.git
&lt;span class="nb"&gt;cd &lt;/span&gt;document-qa/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a virtual environment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Activate the environment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source &lt;/span&gt;venv/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install the requirements found in &lt;code&gt;requirements.txt&lt;/code&gt;:&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; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yay!! Now we can run our code:&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 streamlit_app.py
&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%2Frmangq05uqqwygcbsmz8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmangq05uqqwygcbsmz8.png" alt="Image description" width="723" height="161"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;We navigate to our local URL and add our OpenAI key:&lt;/p&gt;

&lt;p&gt;Get your API key here: &lt;a href="https://platform.openai.com/account/api-keys" rel="noopener noreferrer"&gt;OpenAI API Keys&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%2Fucsa67wjogz50t7m1js1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fucsa67wjogz50t7m1js1.png" alt="Image description" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

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




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

&lt;p&gt;Congratulations on getting this far! Now you can go and launch great AI solutions that will make the world better! 🎊&lt;/p&gt;

&lt;p&gt;Feel free to follow me on &lt;a href="https://twitter.com/cyprianaarons" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; for more updates and projects. Also, check out my website &lt;a href="https://cyprianaarons.com" rel="noopener noreferrer"&gt;here&lt;/a&gt;. 🌐✨&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://streamlit.io/gallery" rel="noopener noreferrer"&gt;Streamlit Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://streamlit.io/cloud" rel="noopener noreferrer"&gt;Streamlit Cloud&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://streamlit.io/components" rel="noopener noreferrer"&gt;Streamlit Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://streamlit.io/generative-ai" rel="noopener noreferrer"&gt;Streamlit Generative AI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;🚀 &lt;strong&gt;Ready to Level Up Your Tech Insights?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hi there! 🤗&lt;br&gt;&lt;br&gt;
I’m &lt;strong&gt;Cyprian Aarons&lt;/strong&gt;, a Senior Software Engineer specializing in AI.&lt;br&gt;&lt;br&gt;
Join me on &lt;a href="https://x.com/cyprianaarons" rel="noopener noreferrer"&gt;🐦 Twitter&lt;/a&gt; for daily deep-dives into cutting-edge tech, behind-the-scenes looks at innovative projects, and strategies to help you thrive in the digital era.  &lt;/p&gt;

&lt;p&gt;✨ &lt;strong&gt;Stay Connected &amp;amp; Informed!&lt;/strong&gt; ✨&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://x.com/cyprianaarons" rel="noopener noreferrer"&gt;📢 Follow me on Twitter&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://cyprianxyz.beehiiv.com/subscribe" rel="noopener noreferrer"&gt;📰 Subscribe to my Newsletter&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🌟 Why Follow or Subscribe?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔍 In-Depth Analysis:&lt;/strong&gt; Get detailed insights into the latest AI and tech trends.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎥 Exclusive Content:&lt;/strong&gt; Access behind-the-scenes content and project updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💡 Actionable Strategies:&lt;/strong&gt; Learn strategies to excel in the digital landscape.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📬 Regular Updates:&lt;/strong&gt; Receive newsletters packed with valuable information straight to your inbox.&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>python</category>
      <category>rag</category>
      <category>langchain</category>
      <category>streamlit</category>
    </item>
  </channel>
</rss>
