<?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: Awais</title>
    <description>The latest articles on DEV Community by Awais (@iamawaisyounas).</description>
    <link>https://dev.to/iamawaisyounas</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%2F4123484%2F1400bb74-1c94-4114-aeaf-6f778ede5111.png</url>
      <title>DEV Community: Awais</title>
      <link>https://dev.to/iamawaisyounas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iamawaisyounas"/>
    <language>en</language>
    <item>
      <title>A repeatable image export check before publishing a web page</title>
      <dc:creator>Awais</dc:creator>
      <pubDate>Sun, 11 Oct 2026 14:42:38 +0000</pubDate>
      <link>https://dev.to/iamawaisyounas/a-repeatable-image-export-check-before-publishing-a-web-page-2lb0</link>
      <guid>https://dev.to/iamawaisyounas/a-repeatable-image-export-check-before-publishing-a-web-page-2lb0</guid>
      <description>&lt;p&gt;An image can look fine in an editor and become unreadable in an article. The useful comparison is the exported file at the width where readers will see it.&lt;/p&gt;

&lt;p&gt;This is a practical workflow for web builders preparing photos and screenshots. It proposes a repeatable method; it does not report a compression benchmark.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I am affiliated with TinyImage, HEIC to PNG, HEIC to JPEG and DR Checker. This article includes competing tools and was prepared with AI assistance. Product-page details were checked on 11 October 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the layout
&lt;/h2&gt;

&lt;p&gt;Write down the content width before opening a compressor. A screenshot displayed in an 800-pixel article column has different requirements from a full-width photograph.&lt;/p&gt;

&lt;p&gt;Keep the original privately. Crop a working copy to the useful subject, then create candidate sizes. Compare those candidates at the actual article width. If a screenshot's labels need zooming, a tighter crop or two separate screenshots may communicate more clearly than a larger download.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose an output for the content
&lt;/h2&gt;

&lt;p&gt;For a photograph, start with JPEG and compare WebP or AVIF when the publishing stack supports them. For interface screenshots, start with PNG or a lossless alternative and inspect fine text. For an existing vector logo, consider retaining SVG.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Media/Guides/Formats/Image_types" rel="noopener noreferrer"&gt;MDN image format guide&lt;/a&gt; explains the tradeoffs. There is no format that is smallest and most appropriate for every image.&lt;/p&gt;

&lt;p&gt;If a CMS rejects a phone's HEIC file, conversion is a compatibility step. &lt;a href="https://heictojpeg.io/" rel="noopener noreferrer"&gt;HEIC to JPEG&lt;/a&gt; offers a direct photographic output; &lt;a href="https://heictopng.io/" rel="noopener noreferrer"&gt;HEIC to PNG&lt;/a&gt; offers a PNG intermediate for subsequent editing. Both describe browser-local conversion and omission of EXIF. Preserve the original if capture metadata matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compare exports with the same dimensions
&lt;/h2&gt;

&lt;p&gt;Use &lt;a href="https://squoosh.app/" rel="noopener noreferrer"&gt;Squoosh&lt;/a&gt; for an interactive local comparison, your CMS's image pipeline, or a hosted tool such as &lt;a href="https://tinyimage.io/" rel="noopener noreferrer"&gt;TinyImage&lt;/a&gt;. Choose the processing model that fits the image and your workflow.&lt;/p&gt;

&lt;p&gt;TinyImage documents 250 successful website conversions per month. Its API allowance is a separate one-time trial. Compression and conversion can use temporary server storage; consult its &lt;a href="https://tinyimage.io/privacy" rel="noopener noreferrer"&gt;privacy policy&lt;/a&gt; before uploading sensitive media.&lt;/p&gt;

&lt;p&gt;For a fair first comparison, keep dimensions and output format constant. If one output is half the width, the size difference cannot be attributed to compression alone. Quality slider values from different encoders also need not be equivalent.&lt;/p&gt;

&lt;p&gt;Record actual file bytes. Then calculate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;savings_percent = 100 * (original_bytes - output_bytes) / original_bytes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keep negative values. An export that grows is a useful observation, not a result to discard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give the browser appropriate candidates
&lt;/h2&gt;

&lt;p&gt;Here is an illustrative example, not a tested production configuration. Generate the files and adapt the layout values before using it:&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/workbench-800.jpg"&lt;/span&gt;
  &lt;span class="na"&gt;srcset=&lt;/span&gt;&lt;span class="s"&gt;"/images/workbench-800.jpg 800w,
          /images/workbench-1600.jpg 1600w"&lt;/span&gt;
  &lt;span class="na"&gt;sizes=&lt;/span&gt;&lt;span class="s"&gt;"(max-width: 840px) calc(100vw - 32px), 800px"&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;"1000"&lt;/span&gt;
  &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Woodworking tools arranged on a workbench"&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;The &lt;code&gt;sizes&lt;/code&gt; value should match the CSS layout. The dimensions should match the actual aspect ratio. Check the final rendered page rather than assuming the CMS preserves the markup exactly.&lt;/p&gt;

&lt;p&gt;Google's &lt;a href="https://developers.google.com/search/docs/appearance/google-images" rel="noopener noreferrer"&gt;image guidance&lt;/a&gt; is a useful primary reference for discoverable image elements and descriptive context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep a small evidence log
&lt;/h2&gt;

&lt;p&gt;For each candidate, record source hash, date, tool, browser, output format, dimensions, quality setting, original bytes, output bytes and visual notes. Inspect at article width and at 100% pixel view. Look for halos, unreadable labels, changed colors and broken transparency.&lt;/p&gt;

&lt;p&gt;If you time the process, define the start and end events and repeat the run. A single stopwatch result mixes too many variables to support a general claim that one service is faster.&lt;/p&gt;

&lt;p&gt;Finally, open the published URL on a narrow screen and a desktop. Check the image, caption, alternative text and download behavior. The goal is a page readers can use comfortably, with measurements that another editor can reproduce.&lt;/p&gt;

&lt;p&gt;The expanded &lt;a href="https://github.com/iamawaisyounas/practical-image-workflows" rel="noopener noreferrer"&gt;Practical Image Workflows resource&lt;/a&gt; includes tool-limit tables, metadata considerations and a comparison protocol.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tools</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built a Free SEO Tool With One API and a Lot of Vibes: Here's Everything I Learned</title>
      <dc:creator>Awais</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:36:00 +0000</pubDate>
      <link>https://dev.to/iamawaisyounas/i-built-a-free-seo-tool-with-one-api-and-a-lot-of-vibes-heres-everything-i-learned-i98</link>
      <guid>https://dev.to/iamawaisyounas/i-built-a-free-seo-tool-with-one-api-and-a-lot-of-vibes-heres-everything-i-learned-i98</guid>
      <description>&lt;p&gt;I've spent years in SEO. And if there's one thing that has never stopped annoying me, it's this:&lt;/p&gt;

&lt;p&gt;Simple SEO questions require way too many steps to answer.&lt;/p&gt;

&lt;p&gt;You want to check a domain before pitching for a guest post or backlink. Sounds simple, right?&lt;/p&gt;

&lt;p&gt;Not really. Here's what that "simple" check actually looks like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open one tool to check Domain Rating.&lt;/li&gt;
&lt;li&gt;Open another tool (or tab) to check Domain Authority.&lt;/li&gt;
&lt;li&gt;Open a third tool to check referring domains.&lt;/li&gt;
&lt;li&gt;Manually look up the domain age.&lt;/li&gt;
&lt;li&gt;Run a SERP check to see who's actually ranking.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Five tools. Five tabs. Five logins. For one decision: is this domain worth my time?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I got tired of tab-switching just to make a five-second judgment call. So I built DR Checker — a free tool that answers all of that in one place.&lt;/p&gt;

&lt;p&gt;This post is the story of how I built it, what I learned building it fast with AI-assisted ("vibe") coding, and — more importantly — why the tool itself was never really the point.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Real Problem Wasn't "I Need a DR Checker"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here's something I want you to sit with for a second: the API is not the product.&lt;/p&gt;

&lt;p&gt;Anyone with a credit card can subscribe to Ahrefs, Moz, or a dozen other SEO data providers. The data is available to almost anyone willing to pay for it. That's not a moat. That's a commodity.&lt;/p&gt;

&lt;p&gt;What is scarce is this: knowing exactly which five steps a person goes through to solve a problem, and then ruthlessly cutting that down to one.&lt;/p&gt;

&lt;p&gt;That's the actual insight behind DR Checker. I didn't set out to build "a domain rating tool." I set out to remove steps from a workflow I personally repeat dozens of times a week — vetting domains for backlink and guest post opportunities.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Key takeaway: if you're building a tool right now, stop asking "what can I build with this API?" Start asking "what am I doing manually, five times a day, that could be one click?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why I Used Vibe Coding (And Why It Actually Matters Here)
&lt;/h2&gt;

&lt;p&gt;Before I get into what DR Checker does, I want to talk about how I built it — because this is the part that changed my thinking more than the tool itself did.&lt;/p&gt;

&lt;p&gt;Historically, building even a small utility like this meant weeks of dev time. Backend setup. Frontend. API integration. Hosting. Deployment pipeline. By the time you ship, you've already sunk 40+ hours into something that might get zero traction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vibe coding flips that math entirely.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://dr-checker.com/" rel="noopener noreferrer"&gt;DR Checker&lt;/a&gt; on Vercel, using the Ahrefs API as the data backbone, and leaned on AI-assisted coding to write the plumbing — the domain input handling, the API calls, the UI to render the score cleanly. The first version wasn't fancy. It did exactly one thing:&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Enter a domain&lt;/li&gt;
&lt;li&gt;Get the Domain Rating&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it. No accounts. No paywall. No unnecessary friction.&lt;/p&gt;

&lt;p&gt;The shift here isn't "AI writes code faster." The real shift is in how you're allowed to think about product development:&lt;/p&gt;

&lt;p&gt;Before: Think for weeks, plan the full feature set, then build.&lt;br&gt;
Now: Build the smallest possible version in a day, put it in front of real use cases, and let usage tell you what to build next.&lt;/p&gt;

&lt;p&gt;That second model is just a better way to build small, focused tools — regardless of who or what is writing the code.&lt;/p&gt;
&lt;h2&gt;
  
  
  What DR Checker Actually Does Today
&lt;/h2&gt;

&lt;p&gt;The tool didn't stay a single-metric checker for long. Once real usage started, the gaps became obvious fast. Today, DR Checker is a bundled domain research tool that checks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Domain Rating (DR) — via the Ahrefs API&lt;/li&gt;
&lt;li&gt;Domain Authority (DA) — via Open PageRank&lt;/li&gt;
&lt;li&gt;Domain Age — via RDAP lookups&lt;/li&gt;
&lt;li&gt;Referring Domains — to gauge link profile strength&lt;/li&gt;
&lt;li&gt;SERP Preview — to see how a domain's pages actually show up in search&lt;/li&gt;
&lt;li&gt;Bulk domain checking — for anyone vetting a list of prospects instead of one at a time&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each one of those was added because it removed a specific extra tab someone doing link-building or guest-posting research would otherwise have to open.&lt;/p&gt;

&lt;p&gt;This is the part most tool-builders skip: they ship the MVP, then keep adding features because features feel like progress. I added features because each one mapped to a real step in a real workflow I could point to.&lt;/p&gt;

&lt;p&gt;The Math That Makes This Worth Using&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's the part that actually gets people to switch tools: cost.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Subscribing to Ahrefs and Moz individually, just to get DR and DA on the same domain, can run you $200–$300 a month — before you've even looked at referring domains or run a single SERP check.&lt;/p&gt;

&lt;p&gt;DR Checker bundles four of those metrics into one free lookup. For anyone doing outreach or link-building at volume, that's not a nice-to-have. That's a meaningful chunk of budget freed up every single month.&lt;/p&gt;

&lt;p&gt;That's the pitch I lead with in every piece of content I write about the tool now, because it's the one thing that actually moves people from "interesting" to "I'm switching."&lt;/p&gt;
&lt;h2&gt;
  
  
  Where I Got It Wrong (And the Traffic Lesson That Followed)
&lt;/h2&gt;

&lt;p&gt;I want to be honest about the part of this story that didn't go smoothly, because that's usually the more useful part.&lt;/p&gt;

&lt;p&gt;After launch, I did the content work you'd expect — wrote comparison posts, built out a keyword-targeted blog, positioned DR Checker against the other "free domain checker" tools out there. Then I hit a stretch where traffic actually dropped.&lt;/p&gt;

&lt;p&gt;When I went back into Ahrefs to figure out why, the keyword data told a clear story:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"domain rating checker" — 4,200 monthly searches, 56 difficulty, ~69,000 traffic potential. This was the real prize, and I was sitting at positions 14–22 for it — capturing maybe 50 visits a month against a 69K ceiling.
"domain age checker" — 4,000 monthly searches, 49 difficulty. Lower competition, faster potential win.
"bulk DR checker" — only ~50 searches a month. Useful as a feature to mention, not worth targeting as a standalone keyword.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The lesson here: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I had been treating my content strategy like I had five different tools to promote, instead of one dominant pillar with supporting posts underneath it. Scattering authority across a dozen loosely related keyword targets instead of building depth around one or two high-value terms is a mistake I see constantly in SEO — and I was making it myself.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The fix going forward is a tighter structure: a Tier 1 pillar built entirely around "domain rating checker" (the term with real volume and real traffic potential), a Tier 2 supporting cluster around "domain age checker" for the faster win, and everything else — the bulk checker, the SERP simulator — folded in as features and internal links rather than standalone keyword bets.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd Tell Anyone Trying to Build a Small SEO Tool
&lt;/h2&gt;

&lt;p&gt;If you're sitting on API access and wondering whether it's worth building something small around it, here's what I'd tell you, in order:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Don't start with the API. Start with your own repeated frustration. The tool that gets used is the one that removes a step you personally hate repeating.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ship the one-metric version first. DR Checker's first version did one thing. That was enough to learn whether anyone cared.&lt;br&gt;
Let usage — not your roadmap — decide the next feature. Every metric I added existed because I watched people (myself included) reach for a second or third tool right after using the first.&lt;/p&gt;

&lt;p&gt;Price your tool against the stack it replaces, not against a single competitor. "$200–300/month saved" is a stronger hook than any feature comparison.&lt;/p&gt;

&lt;p&gt;Pick one keyword to actually win before you spread across ten. Traffic potential means nothing if you're ranking at position 18 for it.&lt;br&gt;
The Bigger Point&lt;/p&gt;

&lt;p&gt;I'm not trying to build the next Ahrefs or Moz. That's not the goal, and it was never the goal.&lt;/p&gt;

&lt;p&gt;The goal is smaller and, I think, more useful: find one annoying, repeated workflow, strip out the unnecessary steps, and ship it fast enough to find out if anyone else was annoyed by the same thing.&lt;/p&gt;

&lt;p&gt;Vibe coding didn't hand me a business. It just removed the excuse to spend six weeks planning before I found out if the idea worked at all.&lt;/p&gt;

&lt;p&gt;I'm still building more of these — small, focused tools around problems I run into myself while doing actual SEO work, not hypothetical ones. If you're an SEO or a builder sitting on API access and a recurring annoyance, that's usually all you need to get started.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>api</category>
    </item>
  </channel>
</rss>
