<?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: Abir Hossain</title>
    <description>The latest articles on DEV Community by Abir Hossain (@abir_hossain_b9f515ea2c48).</description>
    <link>https://dev.to/abir_hossain_b9f515ea2c48</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%2F4106015%2Fd60be6bd-2f39-4fcb-a943-51271f727f33.png</url>
      <title>DEV Community: Abir Hossain</title>
      <link>https://dev.to/abir_hossain_b9f515ea2c48</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abir_hossain_b9f515ea2c48"/>
    <language>en</language>
    <item>
      <title>Try this free repo for your designs and agency. I am sure you will love it</title>
      <dc:creator>Abir Hossain</dc:creator>
      <pubDate>Wed, 02 Sep 2026 11:07:38 +0000</pubDate>
      <link>https://dev.to/abir_hossain_b9f515ea2c48/try-this-free-repo-for-your-designs-and-agency-i-am-sure-you-will-love-it-2c6n</link>
      <guid>https://dev.to/abir_hossain_b9f515ea2c48/try-this-free-repo-for-your-designs-and-agency-i-am-sure-you-will-love-it-2c6n</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/abir_hossain_b9f515ea2c48/i-got-sick-of-regenerating-ai-ads-over-one-typo-so-i-made-this-1ml4" class="crayons-story__hidden-navigation-link"&gt;I got sick of regenerating AI ads over one typo, so I made this&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="/abir_hossain_b9f515ea2c48" 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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4106015%2Fd60be6bd-2f39-4fcb-a943-51271f727f33.png" alt="abir_hossain_b9f515ea2c48 profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/abir_hossain_b9f515ea2c48" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Abir Hossain
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Abir Hossain
                
                
              
              &lt;div id="story-author-preview-content-4555337" 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="/abir_hossain_b9f515ea2c48" 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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4106015%2Fd60be6bd-2f39-4fcb-a943-51271f727f33.png" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Abir Hossain&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/abir_hossain_b9f515ea2c48/i-got-sick-of-regenerating-ai-ads-over-one-typo-so-i-made-this-1ml4" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 2&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/abir_hossain_b9f515ea2c48/i-got-sick-of-regenerating-ai-ads-over-one-typo-so-i-made-this-1ml4" id="article-link-4555337"&gt;
          I got sick of regenerating AI ads over one typo, so I made this
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/testing"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;testing&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/abir_hossain_b9f515ea2c48/i-got-sick-of-regenerating-ai-ads-over-one-typo-so-i-made-this-1ml4#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

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

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>I got sick of regenerating AI ads over one typo, so I made this</title>
      <dc:creator>Abir Hossain</dc:creator>
      <pubDate>Wed, 02 Sep 2026 11:04:40 +0000</pubDate>
      <link>https://dev.to/abir_hossain_b9f515ea2c48/i-got-sick-of-regenerating-ai-ads-over-one-typo-so-i-made-this-1ml4</link>
      <guid>https://dev.to/abir_hossain_b9f515ea2c48/i-got-sick-of-regenerating-ai-ads-over-one-typo-so-i-made-this-1ml4</guid>
      <description>&lt;p&gt;While making social media creatives for clients. AI tools design them fine now, but the output is one flat image. So when there's a typo or a wrong price (there's always something), you can't fix it. You regenerate and hope the good parts survive. I got sick of this.&lt;/p&gt;

&lt;p&gt;So I made this. Please try it- &lt;a href="https://github.com/Abirhossainzozo/layerly-creatives" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's a skill for Claude / ChatGPT / Codex / Cursor / Gemini. The model doesn't output an image, it outputs a layout file. A Python script renders each element to its own layer and checks for overlapping text, bad contrast, stuff going off canvas. Then a Node script (vendored ag-psd) writes an actual PSD with editable text layers, masks, shadows, folders. Opens in Photoshop or Photopea.&lt;/p&gt;

&lt;p&gt;The messy part was rebuilding existing flat images as layers. You can't un-merge a JPG. So it keeps people as one layer, removes loose objects with generative fill, regenerates those as cutouts, and has to show me a sheet of every cutout on grey before it's allowed to deliver. Added that after it kept lying to me about "clean" cutouts.&lt;/p&gt;

&lt;p&gt;There are before/after examples in the repo from my actual client work, PSDs included, so you can open them and check the layers yourself.&lt;/p&gt;

&lt;p&gt;About the license since HN cares: free for personal use (PolyForm Noncommercial), paid for business use. So source-available, not open source.&lt;/p&gt;

&lt;p&gt;I'm not an expert. I just kept hitting this problem. Tell me what breaks, criticism welcome.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>beginners</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
