<?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: Zero</title>
    <description>The latest articles on DEV Community by Zero (@zeroiou).</description>
    <link>https://dev.to/zeroiou</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%2F3334671%2Fdf1a8b4e-3d6b-4ecc-baaa-ef545de4ecc6.jpeg</url>
      <title>DEV Community: Zero</title>
      <link>https://dev.to/zeroiou</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zeroiou"/>
    <language>en</language>
    <item>
      <title>A practical AI image workflow for landing-page assets</title>
      <dc:creator>Zero</dc:creator>
      <pubDate>Sat, 07 Nov 2026 15:36:30 +0000</pubDate>
      <link>https://dev.to/zeroiou/a-practical-ai-image-workflow-for-landing-page-assets-475b</link>
      <guid>https://dev.to/zeroiou/a-practical-ai-image-workflow-for-landing-page-assets-475b</guid>
      <description>&lt;p&gt;A landing-page image can look good in isolation and still fail inside a real layout. The headline may cover the subject, a mobile crop may remove the important detail, or the exported file may be much larger than the page needs.&lt;/p&gt;

&lt;p&gt;Here is a practical workflow for turning an image idea into an asset you can actually use on a website.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project disclosure:&lt;/strong&gt; Nelo Image is my project. This article uses it as an example, but the layout and export checks apply to other image tools too. This post was generated with an AI agent and has not been independently edited by a human.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Start with the image slot
&lt;/h2&gt;

&lt;p&gt;Before generating an image, define its job:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where will it appear: hero, feature card, or article header?&lt;/li&gt;
&lt;li&gt;What aspect ratio does the layout need?&lt;/li&gt;
&lt;li&gt;Will text sit beside it or over it?&lt;/li&gt;
&lt;li&gt;Which part must remain visible on a narrow screen?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a hero with a headline on the left, ask for the main subject on the right and uncluttered space on the left. Generating first and deciding on a layout later often means throwing useful work away.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Write a composition brief
&lt;/h2&gt;

&lt;p&gt;A useful prompt describes the subject, setting, composition, lighting, and exclusions. For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An unbranded amber glass bottle on a pale stone surface, warm afternoon light, soft shadows, minimal background, bottle positioned in the right third, open space on the left for a website headline, landscape composition, no lettering, no logo.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Keep interface text in HTML rather than baking it into the image. That makes it easier to translate, edit, and display accessibly.&lt;/p&gt;

&lt;p&gt;Change one thing at a time when iterating. If the composition works but the lighting does not, revise the lighting instruction instead of rewriting the whole brief.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Choose a starting point
&lt;/h2&gt;

&lt;p&gt;Text-to-image is useful when you need a new visual concept. Image-to-image is useful when you already have a reference and want to explore a different setting or style.&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://neloimage.com/" rel="noopener noreferrer"&gt;Nelo Image&lt;/a&gt;, you can start with a written prompt or upload a reference photo, choose a style and aspect ratio, and download the result as a PNG. The browser workflow avoids having to set up a local generation environment.&lt;/p&gt;

&lt;p&gt;For an existing product photo, be explicit about the details to retain. Inspect the output carefully: a generative edit can change labels, edges, proportions, or small features. Use an accurate original whenever a generated change would misrepresent the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Prepare the image for delivery
&lt;/h2&gt;

&lt;p&gt;Treat the downloaded PNG as a source asset. Keep that original, then create delivery versions sized for your layout. Compare WebP or AVIF with the original at the intended display size; choose a format and quality setting based on the actual result.&lt;/p&gt;

&lt;p&gt;If you export two landscape versions with the same proportions, a responsive image setup can look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt;
  &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"/images/bottle-hero-960.webp"&lt;/span&gt;
  &lt;span class="na"&gt;srcset=&lt;/span&gt;&lt;span class="s"&gt;"/images/bottle-hero-960.webp 960w,
          /images/bottle-hero-1600.webp 1600w"&lt;/span&gt;
  &lt;span class="na"&gt;sizes=&lt;/span&gt;&lt;span class="s"&gt;"(max-width: 768px) 100vw, 60vw"&lt;/span&gt;
  &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"1600"&lt;/span&gt;
  &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"900"&lt;/span&gt;
  &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Amber glass bottle in warm light on a stone surface"&lt;/span&gt;
&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adjust the sizes value to match your CSS layout. The width and height reserve space before loading; both source images should share that aspect ratio. If the image is purely decorative and nearby text already conveys its meaning, use an empty alt attribute instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Check it inside the page
&lt;/h2&gt;

&lt;p&gt;Preview the actual page at desktop and mobile widths. Check the crop, text contrast, download size, and whether the asset communicates the intended idea. A full-resolution preview in an image editor cannot tell you how the image behaves in the finished interface.&lt;/p&gt;

&lt;p&gt;The deliverable is a working page asset: the composition fits, important details survive the crop, and the file is appropriate for the device receiving it.&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>A practical checklist for choosing Claude Code extensions</title>
      <dc:creator>Zero</dc:creator>
      <pubDate>Wed, 07 Oct 2026 02:36:37 +0000</pubDate>
      <link>https://dev.to/zeroiou/a-practical-checklist-for-choosing-claude-code-extensions-4i9a</link>
      <guid>https://dev.to/zeroiou/a-practical-checklist-for-choosing-claude-code-extensions-4i9a</guid>
      <description>&lt;p&gt;Claude Code's extension ecosystem is growing quickly, but a long list of options does not tell you which one belongs in your workflow. The useful first question is: what specific task am I trying to improve?&lt;/p&gt;

&lt;h2&gt;
  
  
  Match the extension to the job
&lt;/h2&gt;

&lt;p&gt;Different extension types solve different problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Skills&lt;/strong&gt; package reusable instructions or workflows. Start here when the main problem is making a repeatable task easier to invoke.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hooks&lt;/strong&gt; run actions around events. They suit deterministic checks or automation, but deserve a careful review because they can execute commands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP servers&lt;/strong&gt; connect Claude Code to external tools or data. Use one when the workflow actually needs that integration, and check what access it requests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agents and subagents&lt;/strong&gt; help divide a larger task into focused roles. Define the scope of each role before adding more moving parts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plugins&lt;/strong&gt; can bundle capabilities for distribution. Check what is inside the bundle rather than assuming every included component is needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, if you need a consistent review checklist, try a skill before adding a service integration. If you need to query an external system, a skill alone will not provide that connection.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspect before installing
&lt;/h2&gt;

&lt;p&gt;A short review can prevent most avoidable surprises:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Follow the link to the original source and read the setup instructions.&lt;/li&gt;
&lt;li&gt;Identify the commands, files, network calls, and credentials the extension needs.&lt;/li&gt;
&lt;li&gt;Check whether the project is maintained and whether its behavior is clear from the documentation.&lt;/li&gt;
&lt;li&gt;Note how to disable or remove it if the trial does not help.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Avoid giving an extension production credentials merely to see what it does. For hooks and integrations in particular, inspect the actual behavior before enabling them in a daily workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trial one change at a time
&lt;/h2&gt;

&lt;p&gt;Try the candidate in a small project with a concrete task. Compare the output and effort with your existing workflow, and keep a note of any extra permissions or maintenance it introduces. Adding several extensions at once makes it hard to tell which one helped.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://codemodshub.com/" rel="noopener noreferrer"&gt;Code Mods Hub&lt;/a&gt; as a bilingual directory for browsing Claude Code mods, skills, plugins, hooks, MCP servers, and related projects. Listings point back to original sources, so the directory can help you shortlist candidates while the source remains the place to verify setup and behavior.&lt;/p&gt;

&lt;p&gt;The goal is not to install the largest collection. It is to find the smallest set that improves a task you actually perform.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>devtools</category>
      <category>ai</category>
    </item>
    <item>
      <title>Why SVG exports look blurry: a practical PNG checklist</title>
      <dc:creator>Zero</dc:creator>
      <pubDate>Thu, 24 Sep 2026 01:39:04 +0000</pubDate>
      <link>https://dev.to/zeroiou/why-svg-exports-look-blurry-a-practical-png-checklist-3f59</link>
      <guid>https://dev.to/zeroiou/why-svg-exports-look-blurry-a-practical-png-checklist-3f59</guid>
      <description>&lt;p&gt;SVG is resolution-independent, but the PNG you export from it is not. If an icon looks soft in a slide, email, or app store screenshot, the problem is often the export size rather than the SVG file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the final display size
&lt;/h2&gt;

&lt;p&gt;Decide where the PNG will appear before converting. A 24 × 24 icon displayed at 48 × 48 pixels will be stretched. Export at the actual display dimensions, or at 2× for a high-density screen. Avoid enlarging an already exported PNG.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check the SVG canvas
&lt;/h2&gt;

&lt;p&gt;Look at the &lt;code&gt;viewBox&lt;/code&gt;, width, and height. A large empty viewBox can make the artwork appear tiny even when the PNG dimensions are correct. If the art touches the edges, allow a little padding so strokes do not get clipped.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose the background intentionally
&lt;/h2&gt;

&lt;p&gt;Transparency is useful for UI icons and overlays. For documents and social images, a solid background may be safer because some viewers show transparent areas as black or gray. Check white artwork on both light and dark backgrounds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test at the destination size
&lt;/h2&gt;

&lt;p&gt;Open the exported PNG at 100% and place it in the real destination. Thin strokes and small text may need adjustment in the SVG itself. Exporting a huge PNG cannot fix a design that becomes unreadable when displayed at 16 pixels.&lt;/p&gt;

&lt;p&gt;For a quick browser workflow, &lt;a href="https://svgconvert.org/" rel="noopener noreferrer"&gt;SVGConvert&lt;/a&gt; lets you set output dimensions and choose a transparent or solid background. It also has a &lt;a href="https://svgconvert.org/batch-svg-to-png" rel="noopener noreferrer"&gt;batch converter&lt;/a&gt; for sets of SVG files. For files that need manual editing first, a desktop vector editor is usually the better starting point.&lt;/p&gt;

&lt;p&gt;My export checklist: final pixel size, viewBox and padding, background, then a 100% preview in the target app. That catches most blurry or clipped results before delivery.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
    </item>
  </channel>
</rss>
