<?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: Vladimir Joseph</title>
    <description>The latest articles on DEV Community by Vladimir Joseph (@vladimir_joseph_247918be4).</description>
    <link>https://dev.to/vladimir_joseph_247918be4</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4082235%2Fd0a16e5b-06b5-4cff-83d7-860a2a5ffe9d.jpg</url>
      <title>DEV Community: Vladimir Joseph</title>
      <link>https://dev.to/vladimir_joseph_247918be4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vladimir_joseph_247918be4"/>
    <language>en</language>
    <item>
      <title>Phish or Legit: Do LLMs Know When NOT to Cry Wolf?</title>
      <dc:creator>Vladimir Joseph</dc:creator>
      <pubDate>Sun, 04 Oct 2026 01:19:38 +0000</pubDate>
      <link>https://dev.to/vladimir_joseph_247918be4/phish-or-legit-do-llms-know-when-not-to-cry-wolf-281e</link>
      <guid>https://dev.to/vladimir_joseph_247918be4/phish-or-legit-do-llms-know-when-not-to-cry-wolf-281e</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Kaggle Benchmarking Challenge Submission by Anio Joseph&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;Most security benchmarks ask: "Can the model detect the threat?" That's the easy part. The real question in a security operations center is: "Can the model stay quiet when the message is actually safe?"&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;Phish or Legit&lt;/strong&gt; to test exactly that. It's a 40-item cybersecurity triage benchmark with 20 threats and 20 legitimate messages. The twist? &lt;strong&gt;Many of the legitimate messages are deliberately suspicious-looking&lt;/strong&gt; — they have links, urgency, or unknown senders, but are completely benign.&lt;/p&gt;

&lt;p&gt;For each item, the model must:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Give a &lt;strong&gt;probability that it is a threat (0-100)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pick the single &lt;strong&gt;"tell"&lt;/strong&gt; that gives it away (A-D, or E if it's legit).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The primary metric is &lt;strong&gt;Balanced Accuracy&lt;/strong&gt; (the average of Threat Recall and Legit Specificity), but I also measured &lt;strong&gt;Brier Score&lt;/strong&gt; to check calibration. A model that says "100% threat" on a benign email is just as dangerous as one that misses a real threat — it causes alert fatigue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Models Tested
&lt;/h2&gt;

&lt;p&gt;I ran the benchmark against 4 frontier models from three different providers, chosen for a mix of speed, cost, and capability:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;gemini-2.5-pro&lt;/strong&gt; (Google)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;gpt-5.4-2026-03-05&lt;/strong&gt; (OpenAI)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;gemini-3.7-flash&lt;/strong&gt; (Google, smaller/faster)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;claude-sonnet-4-5-20250929&lt;/strong&gt; (Anthropic)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;(Note: deepseek-r1-0528 was attempted but failed to execute due to a platform-level timeout, so it is not included in the final results.)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Findings
&lt;/h2&gt;

&lt;p&gt;The results were &lt;strong&gt;surprising and reassuring&lt;/strong&gt; at the same time.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Balanced Accuracy&lt;/th&gt;
&lt;th&gt;Brier Score&lt;/th&gt;
&lt;th&gt;Tell Accuracy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;gemini-2.5-pro&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1.000&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.00035&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;97.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;gpt-5.4-2026-03-05&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1.000&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.00190&lt;/td&gt;
&lt;td&gt;95.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;gemini-3.7-flash&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;1.000&lt;/strong&gt;*&lt;/td&gt;
&lt;td&gt;0.00129&lt;/td&gt;
&lt;td&gt;96.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;claude-sonnet-4-5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.975&lt;/td&gt;
&lt;td&gt;0.02289&lt;/td&gt;
&lt;td&gt;92.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;*gemini-3.7-flash completed 32 of 40 items.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Classification is (almost) solved. Calibration is not.
&lt;/h3&gt;

&lt;p&gt;Three models achieved a &lt;strong&gt;perfect 1.0 Balanced Accuracy&lt;/strong&gt;. They never missed a threat and never falsely flagged a benign message.&lt;/p&gt;

&lt;p&gt;But look at the &lt;strong&gt;Brier Score&lt;/strong&gt;. &lt;strong&gt;gemini-2.5-pro&lt;/strong&gt; is exceptionally well-calibrated (0.00035), meaning its confidence levels are almost perfectly aligned with reality. &lt;strong&gt;claude-sonnet-4-5&lt;/strong&gt;, while still very accurate, has a Brier Score &lt;strong&gt;65x higher&lt;/strong&gt;. This suggests that when Claude is wrong, it is &lt;em&gt;confidently wrong&lt;/em&gt; — a dangerous trait in security triage.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The "Tell" is harder than the "Verdict"
&lt;/h3&gt;

&lt;p&gt;Even the best model, gemini-2.5-pro, only scored &lt;strong&gt;97.5% on Tell Accuracy&lt;/strong&gt;. It correctly identified the item as a threat but picked the wrong clue. This tells me that while models are great at the binary decision, they struggle to articulate &lt;em&gt;why&lt;/em&gt; something is a threat, which is crucial for analyst trust and explainability.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The False Positive Problem is Real
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;claude-sonnet-4-5&lt;/strong&gt; had a &lt;strong&gt;Legit Specificity of 0.95&lt;/strong&gt;, meaning it incorrectly flagged 1 out of 20 legitimate messages as a threat. In a real SOC, a 5% false positive rate on a high-volume triage queue is a massive operational burden. The fact that the other models avoided this is a strong signal for their use in alert triage.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Smaller Models are Catching Up
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;gemini-3.7-flash&lt;/strong&gt; (a "flash" tier model) achieved the same perfect Balanced Accuracy as its larger sibling, with a Brier Score that was &lt;em&gt;better&lt;/em&gt; than GPT-5.4's. This is a huge insight for practitioners: you might not need the most expensive model for this specific triage task.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means
&lt;/h2&gt;

&lt;p&gt;This benchmark changed how I think about evaluating LLMs for security. &lt;strong&gt;Accuracy is a vanity metric.&lt;/strong&gt; A model that scores 99% accuracy but is poorly calibrated is a liability. For real-world deployment, &lt;strong&gt;calibration and specificity matter more than raw detection rate.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The fact that all four models handled this task with near-perfect accuracy is a testament to how far LLMs have come. The next frontier isn't &lt;em&gt;can they detect?&lt;/em&gt; It's &lt;em&gt;can they detect with the right amount of confidence, and can they explain why?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My next steps would be to expand the benchmark with multilingual items and multi-turn conversation traps (e.g., a user asking "are you sure?").&lt;/p&gt;

&lt;h2&gt;
  
  
  My Benchmark
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Anio Joseph&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kaggle Benchmark:&lt;/strong&gt; &lt;a href="https://www.kaggle.com/benchmarks/tasks/aniojoseph/phish-or-legit-calibration" rel="noopener noreferrer"&gt;Phish or Legit Calibration Benchmark&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can explore the full benchmark, see the leaderboard, and read the item details on Kaggle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset:&lt;/strong&gt; &lt;a href="https://www.kaggle.com/datasets/aniojoseph/phish-or-legit-benchmark" rel="noopener noreferrer"&gt;Phish or Legit Benchmark&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notebook:&lt;/strong&gt; &lt;a href="https://www.kaggle.com/code/aniojoseph/phish-or-legit-quickstart" rel="noopener noreferrer"&gt;Phish or Legit Quickstart&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This submission is part of the &lt;a href="https://dev.to/challenges/kaggle"&gt;Kaggle Benchmarking Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>kagglechallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>CyberDreams AI - Vibe-Coding a Strange Cyberpunk World with Sanity + Gemini</title>
      <dc:creator>Vladimir Joseph</dc:creator>
      <pubDate>Sat, 19 Sep 2026 15:05:58 +0000</pubDate>
      <link>https://dev.to/vladimir_joseph_247918be4/cyberdreams-ai-vibe-coding-a-strange-cyberpunk-world-with-sanity-gemini-5b00</link>
      <guid>https://dev.to/vladimir_joseph_247918be4/cyberdreams-ai-vibe-coding-a-strange-cyberpunk-world-with-sanity-gemini-5b00</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjx7j2d4opqsa9v6wks9e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjx7j2d4opqsa9v6wks9e.jpg" alt=" " width="800" height="336"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft5a0bnh11w4cdmnng7os.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft5a0bnh11w4cdmnng7os.jpg" alt=" " width="800" height="336"&gt;&lt;/a&gt;﻿# CyberDreams AI - Vibe-Coding a Strange Cyberpunk World with Sanity + Gemini&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;CyberDreams AI&lt;/strong&gt;, a strange cyberpunk story generator powered by &lt;strong&gt;Sanity, Next.js, and Google Gemini&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The idea is simple: instead of using Sanity only to store traditional website content, I use structured content as the building blocks of an unpredictable AI-generated universe.&lt;/p&gt;

&lt;p&gt;CyberDreams AI combines five types of Sanity content:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Characters&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Locations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technologies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Threats&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Events&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the user clicks &lt;strong&gt;Generate CyberDream&lt;/strong&gt;, the application randomly selects one element from each category and sends them to Google Gemini. Gemini transforms these structured elements into a short, mysterious cyberpunk story.&lt;/p&gt;

&lt;p&gt;The result is a different CyberDream every time.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://cyberdreams-ai.vercel.app/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try clicking &lt;strong&gt;Generate CyberDream&lt;/strong&gt; several times and watch the story change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/vladimirjoseph36-png/cyberdreams-ai" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Next.js&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TypeScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tailwind CSS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sanity&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Google Gemini&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vercel&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Build Process
&lt;/h2&gt;

&lt;p&gt;I wanted to experiment with a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens when structured CMS content becomes fuel for generative AI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I started by creating a Sanity project and designing a small content model around a cyberpunk universe.&lt;/p&gt;

&lt;p&gt;The content model contains five document types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Characters&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Locations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technologies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Threats&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Events&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I then created example content such as &lt;strong&gt;Maya Chen&lt;/strong&gt;, &lt;strong&gt;Neo-Miami&lt;/strong&gt;, &lt;strong&gt;Quantum Firewall&lt;/strong&gt;, &lt;strong&gt;Rogue AI&lt;/strong&gt;, and &lt;strong&gt;The Quantum Awakening&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Next, I connected the Sanity project to a Next.js application. The application retrieves the structured content and randomly selects one item from each category.&lt;/p&gt;

&lt;p&gt;I then integrated Google Gemini to transform those five structured elements into a short cyberpunk story.&lt;/p&gt;

&lt;p&gt;Finally, I created a neon cyberpunk interface, deployed the application to Vercel, connected the production Gemini API key through environment variables, and published the project on GitHub.&lt;/p&gt;

&lt;p&gt;The interesting part of the build was seeing how a relatively small structured content model could produce many different creative combinations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sanity Project ID:&lt;/strong&gt; &lt;code&gt;ffi2ahke&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset:&lt;/strong&gt; &lt;code&gt;production&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Content Types
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;character&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;location&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;technology&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;threat&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;event&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sanity is not just being used as a database in this project. Its structured content directly influences the AI-generated output.&lt;/p&gt;

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

&lt;p&gt;I wanted to make something that felt different from a traditional CMS demo.&lt;/p&gt;

&lt;p&gt;Instead of simply displaying structured content, CyberDreams AI turns that content into ingredients for an AI-generated world.&lt;/p&gt;

&lt;p&gt;A hacker, a futuristic technology, a dangerous AI, a mysterious location, and a strange event can be combined into a completely new story.&lt;/p&gt;

&lt;p&gt;That unpredictability is the strange part.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Experience
&lt;/h2&gt;

&lt;p&gt;The interface is designed as a futuristic cyberpunk control panel.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;System status&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CyberDream generator&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI transmission&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generated story&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sanity content model&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Available characters&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Locations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technologies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Threats&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Events&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to make the Sanity content visible and understandable while still giving the application an experimental feeling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Session
&lt;/h2&gt;

&lt;p&gt;This project was built interactively during development rather than from a separately published agent-session transcript, so I am not including a transcript that does not exist.&lt;/p&gt;

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

&lt;p&gt;CyberDreams AI is a small experiment in combining &lt;strong&gt;structured content and generative AI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Sanity provides the structured world.&lt;/p&gt;

&lt;p&gt;Next.js provides the application.&lt;/p&gt;

&lt;p&gt;Gemini provides the imagination.&lt;/p&gt;

&lt;p&gt;Together, they create a cyberpunk universe that can generate a new dream every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cyberdreams-ai.vercel.app/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vladimirjoseph36-png/cyberdreams-ai" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sanity Project ID:&lt;/strong&gt; &lt;code&gt;ffi2ahke&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;---&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #sanitychallenge #sanity #ai
&lt;/h1&gt;

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

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
