<?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: Abisade Ogunwoolu (OVP)</title>
    <description>The latest articles on DEV Community by Abisade Ogunwoolu (OVP) (@aogunwoolu).</description>
    <link>https://dev.to/aogunwoolu</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%2F1317844%2F7dc17175-9a54-4b39-b1e3-a499f96300ef.png</url>
      <title>DEV Community: Abisade Ogunwoolu (OVP)</title>
      <link>https://dev.to/aogunwoolu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aogunwoolu"/>
    <language>en</language>
    <item>
      <title>I built the Ansible tool I wish I had: A visual debugger and "Limits" sandbox</title>
      <dc:creator>Abisade Ogunwoolu (OVP)</dc:creator>
      <pubDate>Sun, 19 Apr 2026 19:20:28 +0000</pubDate>
      <link>https://dev.to/aogunwoolu/i-built-the-ansible-tool-i-wish-i-had-a-visual-debugger-and-limits-sandbox-1jo8</link>
      <guid>https://dev.to/aogunwoolu/i-built-the-ansible-tool-i-wish-i-had-a-visual-debugger-and-limits-sandbox-1jo8</guid>
      <description>&lt;h2&gt;
  
  
  Why I built Ansible101
&lt;/h2&gt;

&lt;p&gt;Every DevOps engineer knows the "Ansible Loop of Doom":&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write a complex Jinja2 filter or a &lt;code&gt;--limit&lt;/code&gt; regex.&lt;/li&gt;
&lt;li&gt;Run the playbook.&lt;/li&gt;
&lt;li&gt;Wait for the connection... &lt;/li&gt;
&lt;li&gt;Watch it fail because of a syntax error or an empty host list.&lt;/li&gt;
&lt;li&gt;Repeat.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I got tired of the "trial-and-error" approach, so I built &lt;a href="https://ansible101.com" rel="noopener noreferrer"&gt;Ansible101&lt;/a&gt; — a browser-only, zero-config visualizer and sandbox.&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%2Fizf98qsyo0z9mgm0b80b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizf98qsyo0z9mgm0b80b.jpg" alt="Ansible 101" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 What it does
&lt;/h3&gt;

&lt;p&gt;I wanted to solve three specific problems:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. The "Tangled Web" Problem (Visual Flow)
&lt;/h4&gt;

&lt;p&gt;It renders raw YAML into an interactive &lt;strong&gt;execution graph&lt;/strong&gt; using ReactFlow. It includes a "Human-Speak" sidebar that translates technical modules into plain English one-liners.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. The "YOLO-Limit" Problem (Limits Lab)
&lt;/h4&gt;

&lt;p&gt;This is a dedicated sandbox where you can drop your inventory (INI/YAML/JSON) and test complex &lt;code&gt;--limit&lt;/code&gt; patterns. You see exactly which hosts are matched by intersections (&lt;code&gt;&amp;amp;&lt;/code&gt;), exclusions (&lt;code&gt;!&lt;/code&gt;), or regex before you touch your production terminal.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. The "Jinja2 Black Box" (Transformation Trace)
&lt;/h4&gt;

&lt;p&gt;A live trace that breaks down filter pipelines step-by-step. If your string is mangled, you can see exactly which filter in the pipe caused it.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔒 Privacy &amp;amp; Performance
&lt;/h3&gt;

&lt;p&gt;The tool is hosted on &lt;strong&gt;Cloudflare Pages&lt;/strong&gt; and is entirely client-side. No data ever leaves your browser, and it uses &lt;code&gt;LZ-string&lt;/code&gt; compression to let you share the entire state of your "Lab" via a single URL.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework:&lt;/strong&gt; React + Vite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Canvas:&lt;/strong&gt; ReactFlow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Editor:&lt;/strong&gt; Monaco Editor (VS Code engine)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check it out here: &lt;a href="https://ansible101.com" rel="noopener noreferrer"&gt;ansible101.com&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/aogunwoolu/ansible101" rel="noopener noreferrer"&gt;aogunwoolu/ansible101&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm looking for feedback! What Ansible modules should I add to the "Human-Speak" library next?&lt;/p&gt;

</description>
      <category>ansible</category>
      <category>devops</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
