<?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: AZ Tech Era Tools</title>
    <description>The latest articles on DEV Community by AZ Tech Era Tools (@aztechtools).</description>
    <link>https://dev.to/aztechtools</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%2F4243753%2Fc0f6a173-513a-4740-ad11-0905dd387db5.png</url>
      <title>DEV Community: AZ Tech Era Tools</title>
      <link>https://dev.to/aztechtools</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aztechtools"/>
    <language>en</language>
    <item>
      <title>How to get a photo under 50 KB for an online form without ruining it</title>
      <dc:creator>AZ Tech Era Tools</dc:creator>
      <pubDate>Sat, 14 Nov 2026 12:54:59 +0000</pubDate>
      <link>https://dev.to/aztechtools/how-to-get-a-photo-under-50-kb-for-an-online-form-without-ruining-it-21l5</link>
      <guid>https://dev.to/aztechtools/how-to-get-a-photo-under-50-kb-for-an-online-form-without-ruining-it-21l5</guid>
      <description>&lt;p&gt;Many government and exam portals reject photos above 50 KB, while a phone photo is usually 2 to 5 MB. Here is a simple order of steps that keeps faces readable.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Crop first
&lt;/h2&gt;

&lt;p&gt;Crop to the aspect ratio the form asks for. Extra background wastes bytes.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Resize the pixel dimensions
&lt;/h2&gt;

&lt;p&gt;For most form photos something like 200 x 230 pixels is enough. Always check the exact numbers in the instructions, they differ per portal.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Compress last
&lt;/h2&gt;

&lt;p&gt;Lower the JPG quality slowly until the file is just under 50 KB. Jumping straight to heavy compression on a huge photo gives blocky faces.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Still too big?
&lt;/h2&gt;

&lt;p&gt;Reduce the dimensions a little more instead of lowering quality further, then check the preview before uploading.&lt;/p&gt;

&lt;h2&gt;
  
  
  Doing it in the browser
&lt;/h2&gt;

&lt;p&gt;We built a free tool for this. It runs fully in your browser, so the photo is not uploaded anywhere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pixelkaro.com/compress-image-20kb-to-50kb" rel="noopener noreferrer"&gt;https://pixelkaro.com/compress-image-20kb-to-50kb&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same idea for signatures: &lt;a href="https://pixelkaro.com/signature-resizer" rel="noopener noreferrer"&gt;https://pixelkaro.com/signature-resizer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I work on PixelKaro.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>images</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>5 reasons your JSON fails to parse (and how to fix each one)</title>
      <dc:creator>AZ Tech Era Tools</dc:creator>
      <pubDate>Sat, 14 Nov 2026 01:50:43 +0000</pubDate>
      <link>https://dev.to/aztechtools/5-reasons-your-json-fails-to-parse-and-how-to-fix-each-one-54b6</link>
      <guid>https://dev.to/aztechtools/5-reasons-your-json-fails-to-parse-and-how-to-fix-each-one-54b6</guid>
      <description>&lt;p&gt;If a parser throws &lt;code&gt;Unexpected token&lt;/code&gt;, the cause is almost always one of five things.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Trailing comma
&lt;/h2&gt;

&lt;p&gt;JSON does not allow a comma after the last item, even though JavaScript does.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"Ana"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&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;Remove the last comma.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Single quotes
&lt;/h2&gt;

&lt;p&gt;Keys and strings must use double quotes. &lt;code&gt;{'name': 'Ana'}&lt;/code&gt; is a JavaScript object, not valid JSON.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Unquoted keys
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;{name: "Ana"}&lt;/code&gt; fails. Every key needs double quotes.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Comments
&lt;/h2&gt;

&lt;p&gt;Standard JSON has no comment syntax. Remove &lt;code&gt;//&lt;/code&gt; and &lt;code&gt;/* */&lt;/code&gt; lines before parsing.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Invisible characters at the start
&lt;/h2&gt;

&lt;p&gt;A BOM or a pasted line number can break the first token. If the error points to position 0 and the file looks fine, check for this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding the exact spot
&lt;/h2&gt;

&lt;p&gt;Paste the data into a formatter that reports the line and column of the error, then fix that one place and re-check. If the data comes from a log or a Python &lt;code&gt;print&lt;/code&gt;, a repair step that fixes quotes and trailing commas saves a lot of manual editing.&lt;/p&gt;

&lt;p&gt;We built a free formatter and a repair tool for this. Both run in your browser, so your data is not uploaded:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Formatter: &lt;a href="https://snipferry.com/json/formatter" rel="noopener noreferrer"&gt;https://snipferry.com/json/formatter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Repair: &lt;a href="https://snipferry.com/json/repair" rel="noopener noreferrer"&gt;https://snipferry.com/json/repair&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I work on SnipFerry.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>json</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
