<?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>Forem: Alex Mercer</title>
    <description>The latest articles on Forem by Alex Mercer (@alex_mercer_22).</description>
    <link>https://forem.com/alex_mercer_22</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3887028%2Fb9b17991-49ea-4fe9-b6d1-319420b905ce.jpg</url>
      <title>Forem: Alex Mercer</title>
      <link>https://forem.com/alex_mercer_22</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/alex_mercer_22"/>
    <language>en</language>
    <item>
      <title>I Built a Free Screen Resolution Checker — Here's What I Learned</title>
      <dc:creator>Alex Mercer</dc:creator>
      <pubDate>Sun, 19 Apr 2026 07:20:12 +0000</pubDate>
      <link>https://forem.com/alex_mercer_22/i-built-a-free-screen-resolution-checker-heres-what-i-learned-3736</link>
      <guid>https://forem.com/alex_mercer_22/i-built-a-free-screen-resolution-checker-heres-what-i-learned-3736</guid>
      <description>&lt;p&gt;I kept googling "what is my screen resolution" and landing on the same ad-heavy sites with tiny tools buried under popups and cookie banners. So I built my own.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.my-screen-resolution.com" rel="noopener noreferrer"&gt;My Screen Resolution&lt;/a&gt; instantly detects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Screen resolution&lt;/strong&gt; (e.g. 1920×1080)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Viewport size&lt;/strong&gt; (the actual browser window)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Device pixel ratio&lt;/strong&gt; (1x, 2x, 3x for Retina)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Color depth&lt;/strong&gt; (24-bit, 30-bit, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No install, no ads, works in any browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 15&lt;/strong&gt; with App Router&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailwind CSS 4&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framer Motion&lt;/strong&gt; for animations&lt;/li&gt;
&lt;li&gt;Server-rendered SEO content with client-side detection island&lt;/li&gt;
&lt;li&gt;Static generation for 130+ pages&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The detection is simple
&lt;/h2&gt;

&lt;p&gt;The core logic is just a few lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;screenWidth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;screen&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;screenHeight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;screen&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;viewportWidth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerWidth&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;viewportHeight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHeight&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;dpr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;devicePixelRatio&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;colorDepth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;screen&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;colorDepth&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 tricky part is making it update live — when users resize the browser, connect an external monitor, or change their display scaling. I listen to both &lt;code&gt;resize&lt;/code&gt; events and &lt;code&gt;matchMedia&lt;/code&gt; changes for the pixel ratio.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I added beyond the tool
&lt;/h2&gt;

&lt;p&gt;A bare tool page doesn't rank on Google. So I built out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Resolution guides&lt;/strong&gt; — dedicated pages for 20+ resolutions (1080p, 1440p, 4K, 5K, 8K) with specs, compatible devices, FAQs, and JSON-LD structured data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comparison pages&lt;/strong&gt; — 1080p vs 1440p, 1080p vs 4K, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;100 blog articles&lt;/strong&gt; — covering everything from "best resolution for coding" to "why does my screen look blurry"&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Lessons learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Google doesn't index new sites fast.&lt;/strong&gt; I had 125 pages in my sitemap and Google only indexed 17 after a month. Backlinks matter more than content volume for new domains.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Server rendering matters for SEO.&lt;/strong&gt; My homepage was originally a &lt;code&gt;"use client"&lt;/code&gt; component — Google saw an empty shell. Splitting it into a server component with a client island fixed it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CTR is everything.&lt;/strong&gt; I was getting 21,000 impressions but only 33 clicks (0.16% CTR). Rewriting title tags and meta descriptions is the highest-ROI SEO task.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mobile navigation is not optional.&lt;/strong&gt; My nav was &lt;code&gt;hidden sm:flex&lt;/code&gt; with no hamburger menu. 14% of my traffic is mobile and they literally couldn't navigate the site.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Check it out
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.my-screen-resolution.com" rel="noopener noreferrer"&gt;my-screen-resolution.com&lt;/a&gt; — the tool&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://urlslugify.com" rel="noopener noreferrer"&gt;URL Slug Generator&lt;/a&gt; — another free tool I built&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're building micro SaaS tools, I'd love to hear what you've learned about getting them indexed and ranked. Drop a comment!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
