<?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: Fox leo</title>
    <description>The latest articles on DEV Community by Fox leo (@fox_leo_acebe670f82ef3e4b).</description>
    <link>https://dev.to/fox_leo_acebe670f82ef3e4b</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%2F2061408%2F54c9912a-d044-4b4d-8867-9b13d3198f7f.jpg</url>
      <title>DEV Community: Fox leo</title>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fox_leo_acebe670f82ef3e4b"/>
    <language>en</language>
    <item>
      <title>A pre-upload image dimension checklist for social and website assets</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Wed, 29 Jul 2026 02:26:12 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/a-pre-upload-image-dimension-checklist-for-social-and-website-assets-4afc</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/a-pre-upload-image-dimension-checklist-for-social-and-website-assets-4afc</guid>
      <description>&lt;p&gt;Image upload bugs often look like platform bugs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the YouTube thumbnail looks soft,&lt;/li&gt;
&lt;li&gt;the LinkedIn banner crops the logo,&lt;/li&gt;
&lt;li&gt;the Open Graph preview shows the wrong shape,&lt;/li&gt;
&lt;li&gt;the Instagram cover frame hides the title,&lt;/li&gt;
&lt;li&gt;or a marketplace image gets rejected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice, many of these issues start with the exported file. The design may look correct in Figma, Canva, Photoshop, or a mobile editor, but the final file can still have the wrong pixel dimensions, ratio, format, or compression.&lt;/p&gt;

&lt;p&gt;This is the checklist I use before publishing a visual asset.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Check the exported file, not the design canvas
&lt;/h2&gt;

&lt;p&gt;Do not assume the design canvas and the downloaded image are identical.&lt;/p&gt;

&lt;p&gt;Export settings, compression tools, CMS uploads, screenshots, and file sharing apps can change the real image. Before uploading, confirm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;width,&lt;/li&gt;
&lt;li&gt;height,&lt;/li&gt;
&lt;li&gt;aspect ratio,&lt;/li&gt;
&lt;li&gt;file size,&lt;/li&gt;
&lt;li&gt;image format,&lt;/li&gt;
&lt;li&gt;and whether the file is portrait, landscape, square, or wide.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For this first check, use ImageSizeKit's browser-based image checker:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/image-dimension-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/image-dimension-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The point is not only to read the dimensions. The point is to decide which publishing path the image belongs to.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Match the image to a real destination
&lt;/h2&gt;

&lt;p&gt;An image that is "large enough" can still be wrong for the surface.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;1280 x 720&lt;/code&gt; usually fits a 16:9 thumbnail workflow.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;1080 x 1920&lt;/code&gt; is a vertical-cover workflow.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;1200 x 630&lt;/code&gt; is usually an Open Graph or link preview workflow.&lt;/li&gt;
&lt;li&gt;a very wide image is more likely a banner or profile header workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the checker gives you the raw facts, route the file to the right next check.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Use a second check for platform behavior
&lt;/h2&gt;

&lt;p&gt;Dimension checks answer: "What is this file?"&lt;/p&gt;

&lt;p&gt;Platform checks answer: "Will this file survive the destination?"&lt;/p&gt;

&lt;p&gt;That second question includes crop behavior, small-screen readability, safe areas, compression, and upload limits.&lt;/p&gt;

&lt;p&gt;Useful next routes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YouTube thumbnail check: &lt;a href="https://imagesizekit.com/youtube-thumbnail-size/" rel="noopener noreferrer"&gt;https://imagesizekit.com/youtube-thumbnail-size/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Social media image check: &lt;a href="https://imagesizekit.com/social-media-image-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/social-media-image-checker/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Banner and cover check: &lt;a href="https://imagesizekit.com/banner-size-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/banner-size-checker/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Open Graph preview check: &lt;a href="https://imagesizekit.com/open-graph-preview-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/open-graph-preview-checker/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Do not reuse one export everywhere
&lt;/h2&gt;

&lt;p&gt;One master design can create multiple final exports. One final export should not usually be used everywhere.&lt;/p&gt;

&lt;p&gt;For example, a wide hero image might be adapted into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a YouTube thumbnail,&lt;/li&gt;
&lt;li&gt;a LinkedIn banner,&lt;/li&gt;
&lt;li&gt;an Open Graph preview,&lt;/li&gt;
&lt;li&gt;a blog cover,&lt;/li&gt;
&lt;li&gt;and a vertical social cover.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are different files, even if they come from the same design system.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Final pre-upload checklist
&lt;/h2&gt;

&lt;p&gt;Before publishing an important image, check:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The final file's pixel dimensions.&lt;/li&gt;
&lt;li&gt;The aspect ratio.&lt;/li&gt;
&lt;li&gt;The destination platform.&lt;/li&gt;
&lt;li&gt;Whether text stays readable at feed size.&lt;/li&gt;
&lt;li&gt;Whether key content is away from risky crop edges.&lt;/li&gt;
&lt;li&gt;File size and format.&lt;/li&gt;
&lt;li&gt;Whether a separate export is needed for another platform.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This takes a minute and prevents a surprisingly large number of upload, preview, and crop issues.&lt;/p&gt;

&lt;p&gt;ImageSizeKit is an independent tool library for image size checks and publishing references. It is not affiliated with YouTube, Instagram, LinkedIn, Facebook, or Open Graph platforms.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A pre-upload image dimension checklist for social and website assets</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Wed, 29 Jul 2026 02:18:24 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/a-pre-upload-image-dimension-checklist-for-social-and-website-assets-dd4</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/a-pre-upload-image-dimension-checklist-for-social-and-website-assets-dd4</guid>
      <description>&lt;p&gt;Image upload bugs often look like platform bugs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the YouTube thumbnail looks soft,&lt;/li&gt;
&lt;li&gt;the LinkedIn banner crops the logo,&lt;/li&gt;
&lt;li&gt;the Open Graph preview shows the wrong shape,&lt;/li&gt;
&lt;li&gt;the Instagram cover frame hides the title,&lt;/li&gt;
&lt;li&gt;or a marketplace image gets rejected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice, many of these issues start with the exported file. The design may look correct in Figma, Canva, Photoshop, or a mobile editor, but the final file can still have the wrong pixel dimensions, ratio, format, or compression.&lt;/p&gt;

&lt;p&gt;This is the checklist I use before publishing a visual asset.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Check the exported file, not the design canvas
&lt;/h2&gt;

&lt;p&gt;Do not assume the design canvas and the downloaded image are identical.&lt;/p&gt;

&lt;p&gt;Export settings, compression tools, CMS uploads, screenshots, and file sharing apps can change the real image. Before uploading, confirm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;width,&lt;/li&gt;
&lt;li&gt;height,&lt;/li&gt;
&lt;li&gt;aspect ratio,&lt;/li&gt;
&lt;li&gt;file size,&lt;/li&gt;
&lt;li&gt;image format,&lt;/li&gt;
&lt;li&gt;and whether the file is portrait, landscape, square, or wide.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For this first check, use ImageSizeKit's browser-based image checker:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/image-dimension-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/image-dimension-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The point is not only to read the dimensions. The point is to decide which publishing path the image belongs to.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Match the image to a real destination
&lt;/h2&gt;

&lt;p&gt;An image that is "large enough" can still be wrong for the surface.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;1280 x 720&lt;/code&gt; usually fits a 16:9 thumbnail workflow.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;1080 x 1920&lt;/code&gt; is a vertical-cover workflow.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;1200 x 630&lt;/code&gt; is usually an Open Graph or link preview workflow.&lt;/li&gt;
&lt;li&gt;a very wide image is more likely a banner or profile header workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the checker gives you the raw facts, route the file to the right next check.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Use a second check for platform behavior
&lt;/h2&gt;

&lt;p&gt;Dimension checks answer: "What is this file?"&lt;/p&gt;

&lt;p&gt;Platform checks answer: "Will this file survive the destination?"&lt;/p&gt;

&lt;p&gt;That second question includes crop behavior, small-screen readability, safe areas, compression, and upload limits.&lt;/p&gt;

&lt;p&gt;Useful next routes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YouTube thumbnail check: &lt;a href="https://imagesizekit.com/youtube-thumbnail-size/" rel="noopener noreferrer"&gt;https://imagesizekit.com/youtube-thumbnail-size/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Social media image check: &lt;a href="https://imagesizekit.com/social-media-image-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/social-media-image-checker/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Banner and cover check: &lt;a href="https://imagesizekit.com/banner-size-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/banner-size-checker/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Open Graph preview check: &lt;a href="https://imagesizekit.com/open-graph-preview-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/open-graph-preview-checker/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Do not reuse one export everywhere
&lt;/h2&gt;

&lt;p&gt;One master design can create multiple final exports. One final export should not usually be used everywhere.&lt;/p&gt;

&lt;p&gt;For example, a wide hero image might be adapted into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a YouTube thumbnail,&lt;/li&gt;
&lt;li&gt;a LinkedIn banner,&lt;/li&gt;
&lt;li&gt;an Open Graph preview,&lt;/li&gt;
&lt;li&gt;a blog cover,&lt;/li&gt;
&lt;li&gt;and a vertical social cover.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are different files, even if they come from the same design system.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Final pre-upload checklist
&lt;/h2&gt;

&lt;p&gt;Before publishing an important image, check:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The final file's pixel dimensions.&lt;/li&gt;
&lt;li&gt;The aspect ratio.&lt;/li&gt;
&lt;li&gt;The destination platform.&lt;/li&gt;
&lt;li&gt;Whether text stays readable at feed size.&lt;/li&gt;
&lt;li&gt;Whether key content is away from risky crop edges.&lt;/li&gt;
&lt;li&gt;File size and format.&lt;/li&gt;
&lt;li&gt;Whether a separate export is needed for another platform.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This takes a minute and prevents a surprisingly large number of upload, preview, and crop issues.&lt;/p&gt;

&lt;p&gt;ImageSizeKit is an independent tool library for image size checks and publishing references. It is not affiliated with YouTube, Instagram, LinkedIn, Facebook, or Open Graph platforms.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to check banner image size before publishing a profile header or channel cover</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Wed, 29 Jul 2026 00:54:15 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/how-to-check-banner-image-size-before-publishing-a-profile-header-or-channel-cover-hk3</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/how-to-check-banner-image-size-before-publishing-a-profile-header-or-channel-cover-hk3</guid>
      <description>&lt;p&gt;Banner images are easy to get wrong because they are wide, reused often, and cropped differently by different platforms.&lt;/p&gt;

&lt;p&gt;A banner can pass a simple pixel check and still fail in production:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the profile photo covers the logo,&lt;/li&gt;
&lt;li&gt;the channel banner title is outside the safe area,&lt;/li&gt;
&lt;li&gt;the mobile crop cuts off the call to action,&lt;/li&gt;
&lt;li&gt;the image is wide enough but too short,&lt;/li&gt;
&lt;li&gt;or the same export is reused for LinkedIn, YouTube, Facebook, and a website hero without checking each placement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a simple workflow for catching those issues before upload.&lt;/p&gt;

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

&lt;p&gt;Check the exported file, not only the design template.&lt;/p&gt;

&lt;p&gt;A template name like "LinkedIn banner" or "YouTube channel art" is not proof that the final file still matches that size. Exports can be resized, compressed, or downloaded at a different scale.&lt;/p&gt;

&lt;p&gt;Use ImageSizeKit's Banner Size Checker:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/banner-size-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/banner-size-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It helps route wide images toward the right platform workflow instead of treating every wide rectangle as interchangeable.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Separate dimension fit from crop safety
&lt;/h2&gt;

&lt;p&gt;Banner checks have two layers.&lt;/p&gt;

&lt;p&gt;First, the image needs the right basic shape:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;width,&lt;/li&gt;
&lt;li&gt;height,&lt;/li&gt;
&lt;li&gt;aspect ratio,&lt;/li&gt;
&lt;li&gt;and enough resolution for the surface.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Second, the important content needs to sit in a safe area.&lt;/p&gt;

&lt;p&gt;That second layer matters because banners are shown inside different containers: desktop header, mobile header, search preview, profile page, channel page, app view, and sometimes embedded cards.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Use platform-specific guidance after the broad check
&lt;/h2&gt;

&lt;p&gt;If the file is meant for a YouTube channel, check the YouTube banner guide and safe-area reference:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imagesizekit.com/youtube-banner-size/" rel="noopener noreferrer"&gt;https://imagesizekit.com/youtube-banner-size/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imagesizekit.com/youtube-banner-safe-area/" rel="noopener noreferrer"&gt;https://imagesizekit.com/youtube-banner-safe-area/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the file is meant for LinkedIn, check the LinkedIn banner guide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imagesizekit.com/linkedin-banner-size/" rel="noopener noreferrer"&gt;https://imagesizekit.com/linkedin-banner-size/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the file is meant for Facebook, check the cover photo guide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imagesizekit.com/facebook-cover-photo-size/" rel="noopener noreferrer"&gt;https://imagesizekit.com/facebook-cover-photo-size/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the file is really a website link preview, it may not be a banner at all. Use the Open Graph workflow instead:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imagesizekit.com/open-graph-preview-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/open-graph-preview-checker/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Design for the smallest real view
&lt;/h2&gt;

&lt;p&gt;Banner images are usually designed on a large screen and judged later on mobile.&lt;/p&gt;

&lt;p&gt;Before publishing, zoom out and check whether the key content still works when the image is narrow or cropped.&lt;/p&gt;

&lt;p&gt;Keep these elements away from dangerous edges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;logo,&lt;/li&gt;
&lt;li&gt;headline,&lt;/li&gt;
&lt;li&gt;face,&lt;/li&gt;
&lt;li&gt;product screenshot,&lt;/li&gt;
&lt;li&gt;key date,&lt;/li&gt;
&lt;li&gt;call to action,&lt;/li&gt;
&lt;li&gt;QR code,&lt;/li&gt;
&lt;li&gt;or any text that must be read.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Final banner upload checklist
&lt;/h2&gt;

&lt;p&gt;Before upload, confirm:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The checked file is the final export.&lt;/li&gt;
&lt;li&gt;The dimensions match the intended platform.&lt;/li&gt;
&lt;li&gt;The aspect ratio is close to the target surface.&lt;/li&gt;
&lt;li&gt;Important content is inside the safe visual area.&lt;/li&gt;
&lt;li&gt;Text is readable on mobile.&lt;/li&gt;
&lt;li&gt;The banner is not being reused blindly across multiple platforms.&lt;/li&gt;
&lt;li&gt;A separate export exists for each major crop.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A wide image is not automatically a safe banner. Check the file first, then check the platform crop.&lt;/p&gt;

&lt;p&gt;ImageSizeKit is an independent image size checker and guide library. It is not affiliated with YouTube, LinkedIn, Facebook, or other platforms mentioned here.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Check Social Media Image Sizes Before Publishing</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Fri, 24 Jul 2026 23:56:12 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/how-to-check-social-media-image-sizes-before-publishing-4ch4</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/how-to-check-social-media-image-sizes-before-publishing-4ch4</guid>
      <description>&lt;p&gt;Most social image mistakes are not design mistakes. They are export and crop mistakes.&lt;/p&gt;

&lt;p&gt;The image looks clean in Canva, Figma, Photoshop, or a mobile editor. Then it goes live and something changes: an Instagram Reel cover crops the title, a LinkedIn banner hides the headline behind the profile photo, a Facebook cover looks different on desktop and mobile, a YouTube banner loses important text, or a website link preview uses the wrong Open Graph image.&lt;/p&gt;

&lt;p&gt;Before redesigning the artwork, check the exported image file itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pre-upload workflow
&lt;/h2&gt;

&lt;p&gt;Use this sequence before publishing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Export the final image from your design tool.&lt;/li&gt;
&lt;li&gt;Check the real pixel width and height of the exported file.&lt;/li&gt;
&lt;li&gt;Check the aspect ratio.&lt;/li&gt;
&lt;li&gt;Check the file format and file size.&lt;/li&gt;
&lt;li&gt;Match the image to the publishing surface.&lt;/li&gt;
&lt;li&gt;Check crop-sensitive areas before uploading.&lt;/li&gt;
&lt;li&gt;Re-export separate versions when one image cannot fit every surface.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The important habit is simple: check the downloaded file, not only the design canvas.&lt;/p&gt;

&lt;h2&gt;
  
  
  A quick size reference
&lt;/h2&gt;

&lt;p&gt;There is no single best social media image size. The right size depends on where the image will be displayed.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Surface&lt;/th&gt;
&lt;th&gt;Common target&lt;/th&gt;
&lt;th&gt;Main risk&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Instagram Reel cover&lt;/td&gt;
&lt;td&gt;Vertical 9:16&lt;/td&gt;
&lt;td&gt;Title or face too close to UI areas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedIn profile banner&lt;/td&gt;
&lt;td&gt;Wide horizontal&lt;/td&gt;
&lt;td&gt;Profile photo and mobile crop hide text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Facebook cover&lt;/td&gt;
&lt;td&gt;Wide horizontal&lt;/td&gt;
&lt;td&gt;Desktop and mobile crops differ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YouTube channel banner&lt;/td&gt;
&lt;td&gt;Wide with safe area&lt;/td&gt;
&lt;td&gt;Text outside the center safe area disappears&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Graph image&lt;/td&gt;
&lt;td&gt;Usually around 1.91:1&lt;/td&gt;
&lt;td&gt;Link preview crops small text or uses an old cached image&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Product or marketplace image&lt;/td&gt;
&lt;td&gt;Often square or high resolution&lt;/td&gt;
&lt;td&gt;Too-small source image looks soft in previews&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a broader platform-by-platform reference, start with this social media image sizes guide:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/social-media-image-sizes/" rel="noopener noreferrer"&gt;https://imagesizekit.com/social-media-image-sizes/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Check the local file first
&lt;/h2&gt;

&lt;p&gt;If you already exported the image, start by checking the file locally:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/social-media-image-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/social-media-image-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This answers the basic questions first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the real width?&lt;/li&gt;
&lt;li&gt;What is the real height?&lt;/li&gt;
&lt;li&gt;What is the aspect ratio?&lt;/li&gt;
&lt;li&gt;What file type did I export?&lt;/li&gt;
&lt;li&gt;Is this file closer to a feed image, banner, link preview, or product image workflow?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For sensitive drafts, browser-side checks are useful because the image does not need to be uploaded just to read basic dimensions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat banners as their own workflow
&lt;/h2&gt;

&lt;p&gt;Banner images are easy to get wrong because matching the canvas size is not enough. A banner can be technically wide enough and still fail if the important content sits near a crop-prone edge.&lt;/p&gt;

&lt;p&gt;For social headers, profile banners, and cover images, use a banner-specific check:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/banner-size-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/banner-size-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then compare the result with the surface-specific guide you need, such as LinkedIn banner size or YouTube banner safe area.&lt;/p&gt;

&lt;p&gt;The practical rule: keep identity, headline, logo, and call-to-action content near the stable center area.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat Open Graph images as website assets
&lt;/h2&gt;

&lt;p&gt;Open Graph images are not just social images. They are website metadata assets.&lt;/p&gt;

&lt;p&gt;A practical default for many web pages is 1200 x 630 pixels, about a 1.91:1 ratio. But the file can still fail if the source image is too small, the ratio is off, text is too close to the edges, the page still points to an old &lt;code&gt;og:image&lt;/code&gt;, or a social platform has cached the previous preview.&lt;/p&gt;

&lt;p&gt;For the size guide, use:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/open-graph-image-size/" rel="noopener noreferrer"&gt;https://imagesizekit.com/open-graph-image-size/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the preview-oriented check, use:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/open-graph-preview-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/open-graph-preview-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the image file looks right, update the page metadata and refresh the relevant platform preview cache.&lt;/p&gt;

&lt;h2&gt;
  
  
  My final checklist
&lt;/h2&gt;

&lt;p&gt;Before publishing, I check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the exported file match the intended surface?&lt;/li&gt;
&lt;li&gt;Is the width and height large enough for a sharp preview?&lt;/li&gt;
&lt;li&gt;Is the aspect ratio close to the target surface?&lt;/li&gt;
&lt;li&gt;Is important text away from crop-prone edges?&lt;/li&gt;
&lt;li&gt;Is the file size reasonable for the platform?&lt;/li&gt;
&lt;li&gt;Am I forcing one image into surfaces that need different crops?&lt;/li&gt;
&lt;li&gt;Did I update website metadata when the image is for a link preview?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If one image has to work across feed, banner, and link preview contexts, I usually export separate versions. It takes a few extra minutes and prevents avoidable publishing issues.&lt;/p&gt;

&lt;p&gt;ImageSizeKit is an independent browser-based image size checker and guide library. It is not affiliated with Instagram, Facebook, LinkedIn, YouTube, Shopify, Etsy, or Open Graph platforms.&lt;/p&gt;

&lt;p&gt;The fastest publishing habit is boring but effective: check the exported file before upload.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Check Social Media Image Sizes Before Publishing</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Fri, 24 Jul 2026 12:16:28 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/how-to-check-social-media-image-sizes-before-publishing-232n</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/how-to-check-social-media-image-sizes-before-publishing-232n</guid>
      <description>&lt;p&gt;Most social image mistakes are not design mistakes. They are export and crop mistakes.&lt;/p&gt;

&lt;p&gt;The image looks clean in Canva, Figma, Photoshop, or a mobile editor. Then it goes live and something changes: an Instagram Reel cover crops the title, a LinkedIn banner hides the headline behind the profile photo, a Facebook cover looks different on desktop and mobile, a YouTube banner loses important text, or a website link preview uses the wrong Open Graph image.&lt;/p&gt;

&lt;p&gt;Before redesigning the artwork, check the exported image file itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pre-upload workflow
&lt;/h2&gt;

&lt;p&gt;Use this sequence before publishing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Export the final image from your design tool.&lt;/li&gt;
&lt;li&gt;Check the real pixel width and height of the exported file.&lt;/li&gt;
&lt;li&gt;Check the aspect ratio.&lt;/li&gt;
&lt;li&gt;Check the file format and file size.&lt;/li&gt;
&lt;li&gt;Match the image to the publishing surface.&lt;/li&gt;
&lt;li&gt;Check crop-sensitive areas before uploading.&lt;/li&gt;
&lt;li&gt;Re-export separate versions when one image cannot fit every surface.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The important habit is simple: check the downloaded file, not only the design canvas.&lt;/p&gt;

&lt;h2&gt;
  
  
  A quick size reference
&lt;/h2&gt;

&lt;p&gt;There is no single best social media image size. The right size depends on where the image will be displayed.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Surface&lt;/th&gt;
&lt;th&gt;Common target&lt;/th&gt;
&lt;th&gt;Main risk&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Instagram Reel cover&lt;/td&gt;
&lt;td&gt;Vertical 9:16&lt;/td&gt;
&lt;td&gt;Title or face too close to UI areas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedIn profile banner&lt;/td&gt;
&lt;td&gt;Wide horizontal&lt;/td&gt;
&lt;td&gt;Profile photo and mobile crop hide text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Facebook cover&lt;/td&gt;
&lt;td&gt;Wide horizontal&lt;/td&gt;
&lt;td&gt;Desktop and mobile crops differ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YouTube channel banner&lt;/td&gt;
&lt;td&gt;Wide with safe area&lt;/td&gt;
&lt;td&gt;Text outside the center safe area disappears&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Graph image&lt;/td&gt;
&lt;td&gt;Usually around 1.91:1&lt;/td&gt;
&lt;td&gt;Link preview crops small text or uses an old cached image&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Product or marketplace image&lt;/td&gt;
&lt;td&gt;Often square or high resolution&lt;/td&gt;
&lt;td&gt;Too-small source image looks soft in previews&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a broader platform-by-platform reference, start with this social media image sizes guide:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/social-media-image-sizes/" rel="noopener noreferrer"&gt;https://imagesizekit.com/social-media-image-sizes/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Check the local file first
&lt;/h2&gt;

&lt;p&gt;If you already exported the image, start by checking the file locally:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/social-media-image-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/social-media-image-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This answers the basic questions first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the real width?&lt;/li&gt;
&lt;li&gt;What is the real height?&lt;/li&gt;
&lt;li&gt;What is the aspect ratio?&lt;/li&gt;
&lt;li&gt;What file type did I export?&lt;/li&gt;
&lt;li&gt;Is this file closer to a feed image, banner, link preview, or product image workflow?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For sensitive drafts, browser-side checks are useful because the image does not need to be uploaded just to read basic dimensions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat banners as their own workflow
&lt;/h2&gt;

&lt;p&gt;Banner images are easy to get wrong because matching the canvas size is not enough. A banner can be technically wide enough and still fail if the important content sits near a crop-prone edge.&lt;/p&gt;

&lt;p&gt;For social headers, profile banners, and cover images, use a banner-specific check:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/banner-size-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/banner-size-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then compare the result with the surface-specific guide you need, such as LinkedIn banner size or YouTube banner safe area.&lt;/p&gt;

&lt;p&gt;The practical rule: keep identity, headline, logo, and call-to-action content near the stable center area.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat Open Graph images as website assets
&lt;/h2&gt;

&lt;p&gt;Open Graph images are not just social images. They are website metadata assets.&lt;/p&gt;

&lt;p&gt;A practical default for many web pages is 1200 x 630 pixels, about a 1.91:1 ratio. But the file can still fail if the source image is too small, the ratio is off, text is too close to the edges, the page still points to an old &lt;code&gt;og:image&lt;/code&gt;, or a social platform has cached the previous preview.&lt;/p&gt;

&lt;p&gt;For the size guide, use:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/open-graph-image-size/" rel="noopener noreferrer"&gt;https://imagesizekit.com/open-graph-image-size/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the preview-oriented check, use:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/open-graph-preview-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/open-graph-preview-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the image file looks right, update the page metadata and refresh the relevant platform preview cache.&lt;/p&gt;

&lt;h2&gt;
  
  
  My final checklist
&lt;/h2&gt;

&lt;p&gt;Before publishing, I check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the exported file match the intended surface?&lt;/li&gt;
&lt;li&gt;Is the width and height large enough for a sharp preview?&lt;/li&gt;
&lt;li&gt;Is the aspect ratio close to the target surface?&lt;/li&gt;
&lt;li&gt;Is important text away from crop-prone edges?&lt;/li&gt;
&lt;li&gt;Is the file size reasonable for the platform?&lt;/li&gt;
&lt;li&gt;Am I forcing one image into surfaces that need different crops?&lt;/li&gt;
&lt;li&gt;Did I update website metadata when the image is for a link preview?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If one image has to work across feed, banner, and link preview contexts, I usually export separate versions. It takes a few extra minutes and prevents avoidable publishing issues.&lt;/p&gt;

&lt;p&gt;ImageSizeKit is an independent browser-based image size checker and guide library. It is not affiliated with Instagram, Facebook, LinkedIn, YouTube, Shopify, Etsy, or Open Graph platforms.&lt;/p&gt;

&lt;p&gt;The fastest publishing habit is boring but effective: check the exported file before upload.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>seo</category>
      <category>design</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to Check Social Media Image Sizes Before Publishing</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Thu, 16 Jul 2026 05:46:33 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/how-to-check-social-media-image-sizes-before-publishing-32fa</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/how-to-check-social-media-image-sizes-before-publishing-32fa</guid>
      <description>&lt;p&gt;Most social image mistakes are not design mistakes. They are export and crop mistakes.&lt;/p&gt;

&lt;p&gt;The image looks clean in Canva, Figma, Photoshop, or a mobile editor. Then it goes live and something changes: an Instagram Reel cover crops the title, a LinkedIn banner hides the headline behind the profile photo, a Facebook cover looks different on desktop and mobile, a YouTube banner loses important text, or a website link preview uses the wrong Open Graph image.&lt;/p&gt;

&lt;p&gt;Before redesigning the artwork, check the exported image file itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pre-upload workflow
&lt;/h2&gt;

&lt;p&gt;Use this sequence before publishing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Export the final image from your design tool.&lt;/li&gt;
&lt;li&gt;Check the real pixel width and height of the exported file.&lt;/li&gt;
&lt;li&gt;Check the aspect ratio.&lt;/li&gt;
&lt;li&gt;Check the file format and file size.&lt;/li&gt;
&lt;li&gt;Match the image to the publishing surface.&lt;/li&gt;
&lt;li&gt;Check crop-sensitive areas before uploading.&lt;/li&gt;
&lt;li&gt;Re-export separate versions when one image cannot fit every surface.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The important habit is simple: check the downloaded file, not only the design canvas.&lt;/p&gt;

&lt;h2&gt;
  
  
  A quick size reference
&lt;/h2&gt;

&lt;p&gt;There is no single best social media image size. The right size depends on where the image will be displayed.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Surface&lt;/th&gt;
&lt;th&gt;Common target&lt;/th&gt;
&lt;th&gt;Main risk&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Instagram Reel cover&lt;/td&gt;
&lt;td&gt;Vertical 9:16&lt;/td&gt;
&lt;td&gt;Title or face too close to UI areas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedIn profile banner&lt;/td&gt;
&lt;td&gt;Wide horizontal&lt;/td&gt;
&lt;td&gt;Profile photo and mobile crop hide text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Facebook cover&lt;/td&gt;
&lt;td&gt;Wide horizontal&lt;/td&gt;
&lt;td&gt;Desktop and mobile crops differ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YouTube channel banner&lt;/td&gt;
&lt;td&gt;Wide with safe area&lt;/td&gt;
&lt;td&gt;Text outside the center safe area disappears&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Graph image&lt;/td&gt;
&lt;td&gt;Usually around 1.91:1&lt;/td&gt;
&lt;td&gt;Link preview crops small text or uses an old cached image&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Product or marketplace image&lt;/td&gt;
&lt;td&gt;Often square or high resolution&lt;/td&gt;
&lt;td&gt;Too-small source image looks soft in previews&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a broader platform-by-platform reference, start with this social media image sizes guide:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/social-media-image-sizes/" rel="noopener noreferrer"&gt;https://imagesizekit.com/social-media-image-sizes/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Check the local file first
&lt;/h2&gt;

&lt;p&gt;If you already exported the image, start by checking the file locally:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/social-media-image-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/social-media-image-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This answers the basic questions first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the real width?&lt;/li&gt;
&lt;li&gt;What is the real height?&lt;/li&gt;
&lt;li&gt;What is the aspect ratio?&lt;/li&gt;
&lt;li&gt;What file type did I export?&lt;/li&gt;
&lt;li&gt;Is this file closer to a feed image, banner, link preview, or product image workflow?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For sensitive drafts, browser-side checks are useful because the image does not need to be uploaded just to read basic dimensions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat banners as their own workflow
&lt;/h2&gt;

&lt;p&gt;Banner images are easy to get wrong because matching the canvas size is not enough. A banner can be technically wide enough and still fail if the important content sits near a crop-prone edge.&lt;/p&gt;

&lt;p&gt;For social headers, profile banners, and cover images, use a banner-specific check:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/banner-size-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/banner-size-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then compare the result with the surface-specific guide you need, such as LinkedIn banner size or YouTube banner safe area.&lt;/p&gt;

&lt;p&gt;The practical rule: keep identity, headline, logo, and call-to-action content near the stable center area.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat Open Graph images as website assets
&lt;/h2&gt;

&lt;p&gt;Open Graph images are not just social images. They are website metadata assets.&lt;/p&gt;

&lt;p&gt;A practical default for many web pages is 1200 x 630 pixels, about a 1.91:1 ratio. But the file can still fail if the source image is too small, the ratio is off, text is too close to the edges, the page still points to an old Open Graph image, or a social platform has cached the previous preview.&lt;/p&gt;

&lt;p&gt;For the size guide, use:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/open-graph-image-size/" rel="noopener noreferrer"&gt;https://imagesizekit.com/open-graph-image-size/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the preview-oriented check, use:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/open-graph-preview-checker/" rel="noopener noreferrer"&gt;https://imagesizekit.com/open-graph-preview-checker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the image file looks right, update the page metadata and refresh the relevant platform preview cache.&lt;/p&gt;

&lt;h2&gt;
  
  
  My final checklist
&lt;/h2&gt;

&lt;p&gt;Before publishing, I check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the exported file match the intended surface?&lt;/li&gt;
&lt;li&gt;Is the width and height large enough for a sharp preview?&lt;/li&gt;
&lt;li&gt;Is the aspect ratio close to the target surface?&lt;/li&gt;
&lt;li&gt;Is important text away from crop-prone edges?&lt;/li&gt;
&lt;li&gt;Is the file size reasonable for the platform?&lt;/li&gt;
&lt;li&gt;Am I forcing one image into surfaces that need different crops?&lt;/li&gt;
&lt;li&gt;Did I update website metadata when the image is for a link preview?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If one image has to work across feed, banner, and link preview contexts, I usually export separate versions. It takes a few extra minutes and prevents avoidable publishing issues.&lt;/p&gt;

&lt;p&gt;ImageSizeKit is an independent browser-based image size checker and guide library. It is not affiliated with Instagram, Facebook, LinkedIn, YouTube, Shopify, Etsy, or Open Graph platforms.&lt;/p&gt;

&lt;p&gt;The fastest publishing habit is boring but effective: check the exported file before upload.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How I write product-safe AI image prompts for ecommerce</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Wed, 15 Jul 2026 22:41:42 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/how-i-write-product-safe-ai-image-prompts-for-ecommerce-434j</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/how-i-write-product-safe-ai-image-prompts-for-ecommerce-434j</guid>
      <description>&lt;p&gt;AI image prompts for ecommerce should not start with style.&lt;/p&gt;

&lt;p&gt;They should start with product truth.&lt;/p&gt;

&lt;p&gt;The failure mode I worry about is not an ugly image. It is a polished image that quietly changes what the buyer thinks they will receive.&lt;/p&gt;

&lt;p&gt;A label gets rewritten. A logo shifts. A material becomes glossier. The product looks bigger than it is. A fake rating or certification appears because the model has learned the visual language of ads.&lt;/p&gt;

&lt;p&gt;So I use this rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Product facts are fixed. The scene is editable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The prompt order
&lt;/h2&gt;

&lt;p&gt;For ecommerce images, I usually write prompts in this order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Source product photo&lt;/li&gt;
&lt;li&gt;Publishing channel&lt;/li&gt;
&lt;li&gt;Editable scene or background&lt;/li&gt;
&lt;li&gt;Must-keep product facts&lt;/li&gt;
&lt;li&gt;Quality gate before publishing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That order matters.&lt;/p&gt;

&lt;p&gt;If the prompt starts with "cinematic", "premium", or "high-converting", the model may optimize for the mood and treat product details as flexible.&lt;/p&gt;

&lt;p&gt;If the prompt starts with the approved source product and the details that must not change, the output is easier to review.&lt;/p&gt;

&lt;h2&gt;
  
  
  A reusable product image prompt
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use the uploaded product photo as the fixed source of truth. Create an ecommerce product image for [channel: Shopify listing / marketplace / landing page / ad] with [background or scene direction]. Preserve product shape, proportions, label text, logo placement, color, material, texture, edges, contact shadow, and visible claims. Change only the background, lighting, surface, crop, and composition. Do not invent badges, ratings, certifications, discounts, accessories, or product features.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important phrases are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fixed source of truth&lt;/li&gt;
&lt;li&gt;preserve product shape, label text, logo, color, material, and claims&lt;/li&gt;
&lt;li&gt;change only background, lighting, surface, crop, and composition&lt;/li&gt;
&lt;li&gt;do not invent badges, ratings, certifications, discounts, accessories, or features&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Background prompt
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Replace only the background of the uploaded product photo. Keep the product pixels, silhouette, label text, logo placement, color, material, texture, edges, proportions, and contact points unchanged. Create a clean ecommerce background with realistic surface contact, soft shadow, simple depth, and enough negative space for [listing / store hero / ad layout]. Do not alter the product, add text, add unsupported props, or create fake product claims.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is useful when the product itself is already correct and the only job is to improve the scene.&lt;/p&gt;

&lt;h2&gt;
  
  
  Product repair prompt
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Repair only the broken product details in the uploaded image: [warped label / distorted logo / broken edge / wrong shadow / color drift / damaged texture]. Preserve every accurate feature from the source product photo, including shape, proportions, label text, logo placement, color, material, and visible claims. Do not redesign the packaging, rewrite text, change the product color, add accessories, or alter the background beyond the repair area.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is useful when an output is close, but one area failed.&lt;/p&gt;

&lt;p&gt;Do not regenerate the whole image if only one label edge or shadow needs repair.&lt;/p&gt;

&lt;h2&gt;
  
  
  Review prompt
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Review this AI-generated product image against the approved source product photo. Check product identity, variant, pack size, shape, proportions, label text, logo placement, material, color, texture, transparency, scale, included accessories, visible claims, badges, prices, and contact shadows. List every difference that could mislead a buyer. Mark each issue as pass, needs repair, or reject before the image is published.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the prompt I use after generation.&lt;/p&gt;

&lt;p&gt;It changes the job from "make another pretty image" to "decide if this image is safe to publish."&lt;/p&gt;

&lt;h2&gt;
  
  
  My quick review gate
&lt;/h2&gt;

&lt;p&gt;Before publishing, I check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;same product identity and variant&lt;/li&gt;
&lt;li&gt;same silhouette and proportions&lt;/li&gt;
&lt;li&gt;faithful label text and logo placement&lt;/li&gt;
&lt;li&gt;truthful color, material, finish, and texture&lt;/li&gt;
&lt;li&gt;believable scale against props or hands&lt;/li&gt;
&lt;li&gt;no fake claims, badges, certifications, discounts, reviews, or endorsements&lt;/li&gt;
&lt;li&gt;no marketplace or ad-policy risk&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the buyer would receive something different from what the image implies, I reject or repair the output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I do not start with tool choice
&lt;/h2&gt;

&lt;p&gt;The "best" AI product image tool depends on the job.&lt;/p&gt;

&lt;p&gt;A background replacement task, a product repair task, an ad variant task, and a listing review task do not need the same workflow.&lt;/p&gt;

&lt;p&gt;So I choose the workflow first, then the tool.&lt;/p&gt;

&lt;p&gt;I turned this into a copyable ecommerce prompt pack here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://visualskillkit.com/ai-image-prompt-examples" rel="noopener noreferrer"&gt;https://visualskillkit.com/ai-image-prompt-examples&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the scorecard I use before publishing is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://visualskillkit.com/product-truth-scorecard" rel="noopener noreferrer"&gt;https://visualskillkit.com/product-truth-scorecard&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How I write product-safe AI image prompts for ecommerce</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Tue, 07 Jul 2026 01:19:04 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/how-i-write-product-safe-ai-image-prompts-for-ecommerce-19k8</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/how-i-write-product-safe-ai-image-prompts-for-ecommerce-19k8</guid>
      <description>&lt;p&gt;AI image prompts for ecommerce should not start with style.&lt;/p&gt;

&lt;p&gt;They should start with product truth.&lt;/p&gt;

&lt;p&gt;The failure mode I worry about is not an ugly image. It is a polished image that quietly changes what the buyer thinks they will receive.&lt;/p&gt;

&lt;p&gt;A label gets rewritten. A logo shifts. A material becomes glossier. The product looks bigger than it is. A fake rating or certification appears because the model has learned the visual language of ads.&lt;/p&gt;

&lt;p&gt;So I use this rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Product facts are fixed. The scene is editable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The prompt order
&lt;/h2&gt;

&lt;p&gt;For ecommerce images, I usually write prompts in this order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Source product photo&lt;/li&gt;
&lt;li&gt;Publishing channel&lt;/li&gt;
&lt;li&gt;Editable scene or background&lt;/li&gt;
&lt;li&gt;Must-keep product facts&lt;/li&gt;
&lt;li&gt;Quality gate before publishing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That order matters.&lt;/p&gt;

&lt;p&gt;If the prompt starts with "cinematic", "premium", or "high-converting", the model may optimize for the mood and treat product details as flexible.&lt;/p&gt;

&lt;p&gt;If the prompt starts with the approved source product and the details that must not change, the output is easier to review.&lt;/p&gt;

&lt;h2&gt;
  
  
  A reusable product image prompt
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use the uploaded product photo as the fixed source of truth. Create an ecommerce product image for [channel: Shopify listing / marketplace / landing page / ad] with [background or scene direction]. Preserve product shape, proportions, label text, logo placement, color, material, texture, edges, contact shadow, and visible claims. Change only the background, lighting, surface, crop, and composition. Do not invent badges, ratings, certifications, discounts, accessories, or product features.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important phrases are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fixed source of truth&lt;/li&gt;
&lt;li&gt;preserve product shape, label text, logo, color, material, and claims&lt;/li&gt;
&lt;li&gt;change only background, lighting, surface, crop, and composition&lt;/li&gt;
&lt;li&gt;do not invent badges, ratings, certifications, discounts, accessories, or features&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Background prompt
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Replace only the background of the uploaded product photo. Keep the product pixels, silhouette, label text, logo placement, color, material, texture, edges, proportions, and contact points unchanged. Create a clean ecommerce background with realistic surface contact, soft shadow, simple depth, and enough negative space for [listing / store hero / ad layout]. Do not alter the product, add text, add unsupported props, or create fake product claims.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is useful when the product itself is already correct and the only job is to improve the scene.&lt;/p&gt;

&lt;h2&gt;
  
  
  Product repair prompt
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Repair only the broken product details in the uploaded image: [warped label / distorted logo / broken edge / wrong shadow / color drift / damaged texture]. Preserve every accurate feature from the source product photo, including shape, proportions, label text, logo placement, color, material, and visible claims. Do not redesign the packaging, rewrite text, change the product color, add accessories, or alter the background beyond the repair area.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is useful when an output is close, but one area failed.&lt;/p&gt;

&lt;p&gt;Do not regenerate the whole image if only one label edge or shadow needs repair.&lt;/p&gt;

&lt;h2&gt;
  
  
  Review prompt
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Review this AI-generated product image against the approved source product photo. Check product identity, variant, pack size, shape, proportions, label text, logo placement, material, color, texture, transparency, scale, included accessories, visible claims, badges, prices, and contact shadows. List every difference that could mislead a buyer. Mark each issue as pass, needs repair, or reject before the image is published.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the prompt I use after generation.&lt;/p&gt;

&lt;p&gt;It changes the job from "make another pretty image" to "decide if this image is safe to publish."&lt;/p&gt;

&lt;h2&gt;
  
  
  My quick review gate
&lt;/h2&gt;

&lt;p&gt;Before publishing, I check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;same product identity and variant&lt;/li&gt;
&lt;li&gt;same silhouette and proportions&lt;/li&gt;
&lt;li&gt;faithful label text and logo placement&lt;/li&gt;
&lt;li&gt;truthful color, material, finish, and texture&lt;/li&gt;
&lt;li&gt;believable scale against props or hands&lt;/li&gt;
&lt;li&gt;no fake claims, badges, certifications, discounts, reviews, or endorsements&lt;/li&gt;
&lt;li&gt;no marketplace or ad-policy risk&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the buyer would receive something different from what the image implies, I reject or repair the output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I do not start with tool choice
&lt;/h2&gt;

&lt;p&gt;The "best" AI product image tool depends on the job.&lt;/p&gt;

&lt;p&gt;A background replacement task, a product repair task, an ad variant task, and a listing review task do not need the same workflow.&lt;/p&gt;

&lt;p&gt;So I choose the workflow first, then the tool.&lt;/p&gt;

&lt;p&gt;I turned this into a copyable ecommerce prompt pack here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://visualskillkit.com/ai-image-prompt-examples" rel="noopener noreferrer"&gt;AI image prompt examples for ecommerce&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the scorecard I use before publishing is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://visualskillkit.com/product-truth-scorecard" rel="noopener noreferrer"&gt;Product Truth Scorecard for AI product images&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>ecommerce</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Building a transparent Roblox value calculator workflow without pretending live prices</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Mon, 06 Jul 2026 06:40:19 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/building-a-transparent-roblox-value-calculator-workflow-without-pretending-live-prices-1k9n</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/building-a-transparent-roblox-value-calculator-workflow-without-pretending-live-prices-1k9n</guid>
      <description>&lt;p&gt;I have been building &lt;a href="https://getlootkit.com/" rel="noopener noreferrer"&gt;LootKit&lt;/a&gt;, a small unofficial Roblox utility site for value references, W/F/L checks, mutation calculator workflows, and theme tools.&lt;/p&gt;

&lt;p&gt;The most interesting technical problem was not the UI. It was deciding what &lt;em&gt;not&lt;/em&gt; to promise.&lt;/p&gt;

&lt;p&gt;For fast-moving game economies, a value page can become misleading very quickly if it pretends to be exact. A calculator can also create false confidence if it hides where the numbers came from, when they were updated, or how much uncertainty is involved.&lt;/p&gt;

&lt;p&gt;So the first version of LootKit uses a different pattern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;value references instead of live prices&lt;/li&gt;
&lt;li&gt;confidence labels instead of fake precision&lt;/li&gt;
&lt;li&gt;update notes instead of silent edits&lt;/li&gt;
&lt;li&gt;calculator handoffs instead of one magic number&lt;/li&gt;
&lt;li&gt;clear unofficial disclaimers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This post breaks down the workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with game value tools
&lt;/h2&gt;

&lt;p&gt;Players usually arrive with a practical question:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this trade W/F/L?&lt;/li&gt;
&lt;li&gt;What is this pet or item worth?&lt;/li&gt;
&lt;li&gt;Does a mutation change the estimate?&lt;/li&gt;
&lt;li&gt;Why do two value lists disagree?&lt;/li&gt;
&lt;li&gt;Can I use a calculator for this, or do I need a rough reference?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tempting product answer is: show one number.&lt;/p&gt;

&lt;p&gt;The better product answer is: show a decision path.&lt;/p&gt;

&lt;p&gt;That matters because a game item is rarely defined by one field. For a Roblox value tool, the useful estimate often depends on a mix of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;base value&lt;/li&gt;
&lt;li&gt;rarity&lt;/li&gt;
&lt;li&gt;availability&lt;/li&gt;
&lt;li&gt;mutation or trait modifiers&lt;/li&gt;
&lt;li&gt;current demand&lt;/li&gt;
&lt;li&gt;source confidence&lt;/li&gt;
&lt;li&gt;last checked date&lt;/li&gt;
&lt;li&gt;whether the user wants a reference value or a W/F/L decision&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a page collapses all of that into one “exact” number, it looks clean but becomes fragile.&lt;/p&gt;

&lt;h2&gt;
  
  
  The data model
&lt;/h2&gt;

&lt;p&gt;I prefer treating each value row as a small evidence object rather than a price.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Confidence&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;low&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;medium&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;high&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;ValueReference&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;game&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;grow-a-garden&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;steal-a-brainrot&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;itemName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;category&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pet&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mutation&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;brainrot&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;trait&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;item&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;baseValueLabel&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;rarity&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;availability&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;common&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;limited&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;event&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;unknown&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;modifiers&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;effect&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;confidence&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Confidence&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;confidence&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Confidence&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;lastChecked&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;notes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&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;/div&gt;



&lt;p&gt;The key field is not &lt;code&gt;baseValueLabel&lt;/code&gt;. It is &lt;code&gt;confidence&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The UI should make it obvious when a row is a stable reference, a rough estimate, or a placeholder that needs more evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why confidence labels belong in the interface
&lt;/h2&gt;

&lt;p&gt;Confidence labels prevent two bad outcomes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Users treat stale data as final.&lt;/li&gt;
&lt;li&gt;Search engines see a page that looks complete but offers no evidence boundary.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On LootKit, the goal is to separate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what the page can answer now&lt;/li&gt;
&lt;li&gt;what it cannot answer yet&lt;/li&gt;
&lt;li&gt;what depends on user context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, a Grow a Garden calculator page can handle a structured workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;base value
-&amp;gt; mutation multiplier
-&amp;gt; quantity
-&amp;gt; pet or item context
-&amp;gt; rough W/F/L read
-&amp;gt; confidence note
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is more useful than saying “this is worth X” without explaining the path.&lt;/p&gt;

&lt;h2&gt;
  
  
  The calculator should not replace the reference page
&lt;/h2&gt;

&lt;p&gt;A value list and a calculator solve different problems.&lt;/p&gt;

&lt;p&gt;A value list helps users identify the object and its current reference context.&lt;/p&gt;

&lt;p&gt;A calculator helps users apply modifiers and compare trade scenarios.&lt;/p&gt;

&lt;p&gt;For that reason, I usually design the page flow like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;query intent
-&amp;gt; shortcut answer
-&amp;gt; reference table
-&amp;gt; worked example
-&amp;gt; calculator handoff
-&amp;gt; FAQ for edge cases
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The worked example is important because it shows the rules in action.&lt;/p&gt;

&lt;p&gt;For &lt;a href="https://getlootkit.com/grow-a-garden-calculator/" rel="noopener noreferrer"&gt;Grow a Garden calculator&lt;/a&gt;, that means showing how a user should think through a mutation or pet context before calling something W/F/L.&lt;/p&gt;

&lt;p&gt;For &lt;a href="https://getlootkit.com/steal-a-brainrot-values/" rel="noopener noreferrer"&gt;Steal a Brainrot values&lt;/a&gt;, that means separating cost, income, rarity, mutation or trait, availability, and demand instead of pretending a single list can answer every trade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Update notes are part of the product
&lt;/h2&gt;

&lt;p&gt;If the underlying game changes often, the update log is not decoration. It is part of the user experience.&lt;/p&gt;

&lt;p&gt;A simple update object can be enough:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;PageUpdate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;page&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;changedSections&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;
  &lt;span class="nl"&gt;reason&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;new-query&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;community-question&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;data-refresh&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;content-fix&lt;/span&gt;&lt;span class="dl"&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;/div&gt;



&lt;p&gt;This makes the page easier to maintain and easier to trust.&lt;/p&gt;

&lt;p&gt;It also helps avoid a common SEO mistake: changing pages silently and losing the thread of why the page exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  SEO benefit: answer the uncertainty directly
&lt;/h2&gt;

&lt;p&gt;A lot of small SEO pages try to rank by repeating the query.&lt;/p&gt;

&lt;p&gt;For utility pages, I think the stronger move is to answer the uncertainty behind the query.&lt;/p&gt;

&lt;p&gt;Someone searching “value calculator” is not only asking for a tool. They are asking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what inputs matter?&lt;/li&gt;
&lt;li&gt;can I trust this number?&lt;/li&gt;
&lt;li&gt;when should I use a list instead?&lt;/li&gt;
&lt;li&gt;what does the calculator ignore?&lt;/li&gt;
&lt;li&gt;how do I avoid a bad trade decision?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why the page needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a direct answer block&lt;/li&gt;
&lt;li&gt;a visible calculation workflow&lt;/li&gt;
&lt;li&gt;examples&lt;/li&gt;
&lt;li&gt;confidence notes&lt;/li&gt;
&lt;li&gt;FAQ sections&lt;/li&gt;
&lt;li&gt;internal links to related value pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This structure is useful for readers, search engines, and AI answer systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule I now use
&lt;/h2&gt;

&lt;p&gt;If a value page cannot prove live accuracy, it should not look like a live market.&lt;/p&gt;

&lt;p&gt;It should look like a transparent decision aid.&lt;/p&gt;

&lt;p&gt;That is the design principle behind the current LootKit pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unofficial&lt;/li&gt;
&lt;li&gt;practical&lt;/li&gt;
&lt;li&gt;clear about uncertainty&lt;/li&gt;
&lt;li&gt;structured enough to update&lt;/li&gt;
&lt;li&gt;helpful before it is perfect&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point matters. A small tool does not need perfect data on day one. It needs honest boundaries and a workflow users can actually apply.&lt;/p&gt;

&lt;p&gt;You can see the early version here: &lt;a href="https://getlootkit.com/" rel="noopener noreferrer"&gt;LootKit&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>gamedev</category>
      <category>seo</category>
    </item>
    <item>
      <title>A quick pre-upload checklist for YouTube thumbnails</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Mon, 06 Jul 2026 03:24:44 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/a-quick-pre-upload-checklist-for-youtube-thumbnails-5bmo</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/a-quick-pre-upload-checklist-for-youtube-thumbnails-5bmo</guid>
      <description>&lt;p&gt;I kept seeing the same small YouTube thumbnail mistakes show up before upload:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the file is the wrong shape,&lt;/li&gt;
&lt;li&gt;the image is smaller than expected,&lt;/li&gt;
&lt;li&gt;the file size is too large,&lt;/li&gt;
&lt;li&gt;the format is not what the upload flow expects,&lt;/li&gt;
&lt;li&gt;or the text is only readable inside the design tool, not in a small preview.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fix is not complicated. Before uploading, check the file itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  The checklist
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;th&gt;What to verify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pixel dimensions&lt;/td&gt;
&lt;td&gt;Use a 16:9 canvas. For serious uploads, avoid going below 1280 x 720.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aspect ratio&lt;/td&gt;
&lt;td&gt;Confirm the image is close to 16:9 before upload.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File size&lt;/td&gt;
&lt;td&gt;Check megabytes separately from pixel dimensions.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Format&lt;/td&gt;
&lt;td&gt;JPG and PNG are usually the practical defaults.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Small preview&lt;/td&gt;
&lt;td&gt;Zoom out and make sure the main text still reads quickly.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  A fast workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Export the thumbnail from your design tool.&lt;/li&gt;
&lt;li&gt;Check width and height.&lt;/li&gt;
&lt;li&gt;Confirm the aspect ratio is 16:9.&lt;/li&gt;
&lt;li&gt;Check file format and file size.&lt;/li&gt;
&lt;li&gt;Preview it small enough to mimic a mobile feed.&lt;/li&gt;
&lt;li&gt;Fix the export settings and check the final file again.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The easy mistake is to treat dimensions and file size as the same thing. They are different checks. A thumbnail can be the right 16:9 shape but still be too large to upload. It can also be a small file but too low-resolution to look good.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I prefer local checking
&lt;/h2&gt;

&lt;p&gt;For draft thumbnails, I usually only need the browser to read basic file metadata: width, height, file type, and file size. The image does not need to leave the device just to answer those questions.&lt;/p&gt;

&lt;p&gt;I wrote the full checklist here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://imagesizekit.com/check-youtube-thumbnail-size-before-uploading/" rel="noopener noreferrer"&gt;https://imagesizekit.com/check-youtube-thumbnail-size-before-uploading/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It also links to a local checker for inspecting thumbnail dimensions, ratio, format, and file size before upload.&lt;/p&gt;

&lt;h2&gt;
  
  
  One caveat about Shorts
&lt;/h2&gt;

&lt;p&gt;Do not mix standard YouTube thumbnails and Shorts covers. A normal video thumbnail is usually planned as a 16:9 image. Shorts are vertical and can behave differently across surfaces, so they need a separate export check.&lt;/p&gt;

</description>
      <category>youtube</category>
      <category>productivity</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A Product-Truth Check for AI Product Photography</title>
      <dc:creator>Fox leo</dc:creator>
      <pubDate>Mon, 06 Jul 2026 03:04:46 +0000</pubDate>
      <link>https://dev.to/fox_leo_acebe670f82ef3e4b/a-product-truth-check-for-ai-product-photography-4o6g</link>
      <guid>https://dev.to/fox_leo_acebe670f82ef3e4b/a-product-truth-check-for-ai-product-photography-4o6g</guid>
      <description>&lt;p&gt;AI product photography is useful, but the risky part is easy to miss.&lt;/p&gt;

&lt;p&gt;The output may look polished while quietly changing the product.&lt;/p&gt;

&lt;p&gt;A label gets rewritten. A logo shifts. A material becomes glossier. A product looks larger than it really is. A fake badge or rating appears because the model has learned what product ads often look like.&lt;/p&gt;

&lt;p&gt;That is why I prefer to review AI product images with a simple rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Product facts are fixed. The scene is editable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The safe split
&lt;/h2&gt;

&lt;p&gt;Fixed product facts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;product identity&lt;/li&gt;
&lt;li&gt;variant, pack size, and included accessories&lt;/li&gt;
&lt;li&gt;shape, geometry, and proportions&lt;/li&gt;
&lt;li&gt;label text and logo placement&lt;/li&gt;
&lt;li&gt;material, color, texture, transparency, and finish&lt;/li&gt;
&lt;li&gt;visible claims, badges, certifications, prices, and offer details&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Editable layer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;background&lt;/li&gt;
&lt;li&gt;surface&lt;/li&gt;
&lt;li&gt;lighting&lt;/li&gt;
&lt;li&gt;crop&lt;/li&gt;
&lt;li&gt;composition&lt;/li&gt;
&lt;li&gt;negative space&lt;/li&gt;
&lt;li&gt;campaign mood&lt;/li&gt;
&lt;li&gt;channel layout&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The background can change. The product the buyer receives cannot.&lt;/p&gt;

&lt;h2&gt;
  
  
  A quick product-truth scorecard
&lt;/h2&gt;

&lt;p&gt;Before publishing an AI-generated product image, compare the output against the approved source image at full size.&lt;/p&gt;

&lt;p&gt;Score each item:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;2&lt;/code&gt; = pass&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;1&lt;/code&gt; = needs repair&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;0&lt;/code&gt; = reject&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Test&lt;/th&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Identity&lt;/td&gt;
&lt;td&gt;Would the buyer recognize the exact same product and variant?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shape&lt;/td&gt;
&lt;td&gt;Are proportions, silhouette, edges, and visible parts unchanged?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Label&lt;/td&gt;
&lt;td&gt;Are label words, typography, and placement still faithful?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logo&lt;/td&gt;
&lt;td&gt;Is logo geometry, color, and placement unchanged?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Material&lt;/td&gt;
&lt;td&gt;Does the finish still match the real product?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Color&lt;/td&gt;
&lt;td&gt;Are color, variant, transparency, and texture truthful?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scale&lt;/td&gt;
&lt;td&gt;Does the product scale make sense against props or hands?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shadow&lt;/td&gt;
&lt;td&gt;Do contact shadows and reflections support the product instead of deforming it?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claims&lt;/td&gt;
&lt;td&gt;Were no fake claims, badges, reviews, discounts, or certifications added?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Channel&lt;/td&gt;
&lt;td&gt;Would the image pass store, marketplace, ad, or landing-page review?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Decision rule
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Total&lt;/th&gt;
&lt;th&gt;Decision&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;18-20&lt;/td&gt;
&lt;td&gt;Publish after final channel review&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14-17&lt;/td&gt;
&lt;td&gt;Repair the failed details before publishing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0-13&lt;/td&gt;
&lt;td&gt;Reject or regenerate with narrower edit scope&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I also use a few automatic reject rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;product variant changed&lt;/li&gt;
&lt;li&gt;label or logo was rewritten&lt;/li&gt;
&lt;li&gt;fake certification, rating, price, claim, endorsement, or marketplace badge was added&lt;/li&gt;
&lt;li&gt;product size, included accessories, or material was misrepresented&lt;/li&gt;
&lt;li&gt;the image implies a buyer will receive something different&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prompt starter
&lt;/h2&gt;

&lt;p&gt;Here is the kind of prompt I start from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use the uploaded product photo as the fixed source of truth. Create an ecommerce product image for [channel] with [background or scene direction]. Preserve product shape, proportions, label text, logo placement, color, material, texture, edges, contact shadow, and visible claims. Change only the background, lighting, surface, crop, and composition. Do not invent badges, ratings, certifications, discounts, accessories, or product features.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is not the wording. It is the order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;start from the source product&lt;/li&gt;
&lt;li&gt;name the publishing channel&lt;/li&gt;
&lt;li&gt;define the editable scene&lt;/li&gt;
&lt;li&gt;protect product facts before style words&lt;/li&gt;
&lt;li&gt;inspect the output before publishing&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;AI product photography can reduce iteration time for ecommerce teams.&lt;/p&gt;

&lt;p&gt;But the cost saving disappears if the image creates returns, rejected marketplace listings, customer complaints, or inaccurate advertising.&lt;/p&gt;

&lt;p&gt;So I do not treat this as a model benchmark. I treat it as a workflow review protocol.&lt;/p&gt;

&lt;p&gt;If the buyer would receive something different from what the image implies, reject or repair the output.&lt;/p&gt;

&lt;p&gt;I turned the checklist into a simple Markdown scorecard here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://visualskillkit.com/resources/ai-product-photography-product-truth-scorecard.md" rel="noopener noreferrer"&gt;https://visualskillkit.com/resources/ai-product-photography-product-truth-scorecard.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the longer workflow page is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://visualskillkit.com/ai-product-photography" rel="noopener noreferrer"&gt;https://visualskillkit.com/ai-product-photography&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
