<?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: Alexey Nikitchenko</title>
    <description>The latest articles on Forem by Alexey Nikitchenko (@inventoris).</description>
    <link>https://forem.com/inventoris</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%2F3209603%2F81fed25e-5fe8-4b6b-a475-a5cfdfb0262e.jpeg</url>
      <title>Forem: Alexey Nikitchenko</title>
      <link>https://forem.com/inventoris</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/inventoris"/>
    <language>en</language>
    <item>
      <title>I built a language-guessing game</title>
      <dc:creator>Alexey Nikitchenko</dc:creator>
      <pubDate>Wed, 10 Dec 2025 17:28:56 +0000</pubDate>
      <link>https://forem.com/inventoris/i-built-a-simple-language-guessing-game-3h20</link>
      <guid>https://forem.com/inventoris/i-built-a-simple-language-guessing-game-3h20</guid>
      <description>&lt;p&gt;The idea came from playing GeoGuessr with my girlfriend — sometimes you can figure out the country only by the language you see on signs.&lt;br&gt;
So I decided to make a small game where you see an image and choose from four possible languages.&lt;/p&gt;

&lt;p&gt;All images were gathered by hand from Google Street View, and the game now includes 40+ languages.&lt;/p&gt;

&lt;p&gt;If you want to have some fun or train your skills, check out the game: &lt;a href="https://whatlang.fun/" rel="noopener noreferrer"&gt;whatlang.fun&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you like it, feel free to drop a ⭐ on the repo — it will make my day :)&lt;br&gt;
&lt;a href="https://github.com/Inventoris/whatlang" rel="noopener noreferrer"&gt;Repo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>What the Heck Is a Viewport?</title>
      <dc:creator>Alexey Nikitchenko</dc:creator>
      <pubDate>Sat, 14 Jun 2025 20:09:06 +0000</pubDate>
      <link>https://forem.com/inventoris/what-the-heck-is-a-viewport-453h</link>
      <guid>https://forem.com/inventoris/what-the-heck-is-a-viewport-453h</guid>
      <description>&lt;p&gt;A lot of web developers (and designers too) don’t really get what the viewport is. Like, why does my &lt;em&gt;1920 × 1080&lt;/em&gt; monitor suddenly turn into something like &lt;em&gt;1746 × 852&lt;/em&gt; on a web page? What the heck, right? Let me break it down in a few short paragraphs.&lt;/p&gt;

&lt;p&gt;First 1️⃣. One physical screen pixel hasn’t been equal to one CSS pixel for a while now. This is called &lt;em&gt;Device Pixel Ratio (DPR)&lt;/em&gt;. Why do we need it? So that layouts render correctly on high-density displays.&lt;/p&gt;

&lt;p&gt;Look: iPhone 14 has &lt;em&gt;1170 × 2532&lt;/em&gt; pixels, but the browser sees it and gives us an equivalent of &lt;em&gt;390 × 844&lt;/em&gt; — that’s 3 times smaller. &lt;em&gt;DPR = 3x&lt;/em&gt;. So in CSS we’re seeing a mobile screen, and the familiar mobile web loads up, even though the actual width was &lt;em&gt;1170&lt;/em&gt;. Get it?&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.amazonaws.com%2Fuploads%2Farticles%2Fjbc0prg5zron7c9ecswh.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.amazonaws.com%2Fuploads%2Farticles%2Fjbc0prg5zron7c9ecswh.png" alt="DPR illustration" width="800" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Second 2️⃣. After all that pixel magic, some of the screen space gets eaten up — nom nom — by system stuff, browser UI, etc. From all sides.&lt;br&gt;
And what’s left — that’s the viewport! That’s why it doesn’t match what your device specs say =) That’s the deal.&lt;/p&gt;

&lt;p&gt;And finally, I’m sure you’ve seen the magical line: &lt;code&gt;&amp;lt;meta name="viewport" content="width=device-width"&amp;gt;&lt;/code&gt;. Super important stuff. That code gives the command: the viewport width should match the device’s CSS width. Whoosh — and they’re connected 🪄.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I tried to explain everything as briefly and to the point as possible.&lt;br&gt;
Just a few paragraphs, like I promised.&lt;br&gt;
Anyway, if you’re curious for more, check out the &lt;a href="https://github.com/Inventoris/understanding-viewport" rel="noopener noreferrer"&gt;understanding-viewport repo on GitHub&lt;/a&gt; — I’ve added more info and some homemade illustrations there.&lt;/p&gt;
&lt;/blockquote&gt;

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