<?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: Inamullah Khan</title>
    <description>The latest articles on DEV Community by Inamullah Khan (@inamullah_khan_3e940969fe).</description>
    <link>https://dev.to/inamullah_khan_3e940969fe</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%2F3944876%2F12b92821-d9af-427b-84bf-4aba63bea469.png</url>
      <title>DEV Community: Inamullah Khan</title>
      <link>https://dev.to/inamullah_khan_3e940969fe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/inamullah_khan_3e940969fe"/>
    <language>en</language>
    <item>
      <title>Local-First Browser Tools: What You Should Not Upload Online</title>
      <dc:creator>Inamullah Khan</dc:creator>
      <pubDate>Fri, 22 May 2026 23:08:04 +0000</pubDate>
      <link>https://dev.to/inamullah_khan_3e940969fe/local-first-browser-tools-what-you-should-not-upload-online-28a8</link>
      <guid>https://dev.to/inamullah_khan_3e940969fe/local-first-browser-tools-what-you-should-not-upload-online-28a8</guid>
      <description>&lt;p&gt;Online tools are useful.&lt;/p&gt;

&lt;p&gt;You paste JSON, format code, convert files, clean text, test an API, or compress an image without installing anything.&lt;/p&gt;

&lt;p&gt;But there is one habit developers should avoid:&lt;/p&gt;

&lt;p&gt;Pasting or uploading sensitive data into random tools.&lt;/p&gt;

&lt;p&gt;The problem&lt;/p&gt;

&lt;p&gt;A simple debugging task can accidentally expose private data.&lt;/p&gt;

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

&lt;p&gt;API keys in config JSON&lt;br&gt;
JWTs in request headers&lt;br&gt;
Customer emails in logs&lt;br&gt;
Private source code&lt;br&gt;
Bank details in PDFs&lt;br&gt;
Internal IDs in CSV files&lt;br&gt;
Hidden metadata inside images&lt;/p&gt;

&lt;p&gt;The issue is not that online tools are always bad.&lt;/p&gt;

&lt;p&gt;The issue is that not every task needs an upload.&lt;/p&gt;

&lt;p&gt;What local-first means&lt;/p&gt;

&lt;p&gt;A local-first browser tool tries to process your input directly in your browser.&lt;/p&gt;

&lt;p&gt;Good candidates:&lt;/p&gt;

&lt;p&gt;JSON formatting&lt;br&gt;
JSON validation&lt;br&gt;
URL encoding&lt;br&gt;
UUID generation&lt;br&gt;
Text cleanup&lt;br&gt;
Code formatting&lt;br&gt;
CSV/JSON previewing&lt;br&gt;
Simple data conversion&lt;/p&gt;

&lt;p&gt;For these tasks, you often do not need to send data to a server.&lt;/p&gt;

&lt;p&gt;What not to paste or upload&lt;/p&gt;

&lt;p&gt;Avoid putting these into unknown online tools:&lt;/p&gt;

&lt;p&gt;API keys&lt;br&gt;
Access tokens&lt;br&gt;
Refresh tokens&lt;br&gt;
JWTs&lt;br&gt;
Private keys&lt;br&gt;
Customer data&lt;br&gt;
Internal logs&lt;br&gt;
Payroll files&lt;br&gt;
Contracts&lt;br&gt;
Bank statements&lt;br&gt;
Private PDFs&lt;br&gt;
Private repository code&lt;/p&gt;

&lt;p&gt;A good rule:&lt;/p&gt;

&lt;p&gt;If the data would be painful to leak, do not paste it casually.&lt;/p&gt;

&lt;p&gt;Safer workflow&lt;/p&gt;

&lt;p&gt;Before using a formatter, converter, or viewer:&lt;/p&gt;

&lt;p&gt;Classify the data.&lt;br&gt;
Remove real secrets.&lt;br&gt;
Replace customer values with placeholders.&lt;br&gt;
Use local/browser-based tools where possible.&lt;br&gt;
Only upload files when the task truly requires it.&lt;br&gt;
Use trusted services for sensitive work.&lt;br&gt;
Clear local history if the tool stores previous inputs.&lt;br&gt;
ToolsFam workflow&lt;/p&gt;

&lt;p&gt;For common browser utility tasks, we are building ToolsFam around fast and clean workflows:&lt;/p&gt;

&lt;p&gt;JSON tools&lt;br&gt;
API tools&lt;br&gt;
PDF tools&lt;br&gt;
Image tools&lt;br&gt;
SEO tools&lt;br&gt;
Security tools&lt;br&gt;
Text tools&lt;br&gt;
Data converters&lt;/p&gt;

&lt;p&gt;ToolsFam tools: &lt;a href="https://www.toolsfam.com/tools" rel="noopener noreferrer"&gt;https://www.toolsfam.com/tools&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, if your API response has a JSON syntax issue, start by formatting and validating a sanitized version instead of pasting real production data.&lt;/p&gt;

&lt;p&gt;Takeaway&lt;/p&gt;

&lt;p&gt;Online tools are useful. The safer habit is knowing what should stay local.&lt;/p&gt;

&lt;p&gt;If the task is simple, prefer browser-based processing.&lt;br&gt;
If the data is sensitive, sanitize it first.&lt;br&gt;
If upload is required, use a service you trust.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>privacy</category>
      <category>productivity</category>
      <category>tooling</category>
    </item>
    <item>
      <title>How to Fix Invalid JSON Errors Online</title>
      <dc:creator>Inamullah Khan</dc:creator>
      <pubDate>Thu, 21 May 2026 22:37:19 +0000</pubDate>
      <link>https://dev.to/inamullah_khan_3e940969fe/how-to-fix-invalid-json-errors-online-37d9</link>
      <guid>https://dev.to/inamullah_khan_3e940969fe/how-to-fix-invalid-json-errors-online-37d9</guid>
      <description>&lt;h1&gt;
  
  
  How to Fix Invalid JSON Errors Online
&lt;/h1&gt;

&lt;p&gt;Invalid JSON usually comes from small syntax mistakes.&lt;/p&gt;

&lt;p&gt;The most common ones are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;trailing commas&lt;/li&gt;
&lt;li&gt;single quotes instead of double quotes&lt;/li&gt;
&lt;li&gt;missing quotes around object keys&lt;/li&gt;
&lt;li&gt;unclosed brackets&lt;/li&gt;
&lt;li&gt;comments inside JSON&lt;/li&gt;
&lt;li&gt;extra commas&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Example of invalid JSON
&lt;/h2&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="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ToolsFam"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Browser tools"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The problem is the trailing comma after the last property.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fixed version
&lt;/h2&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="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ToolsFam"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Browser tools"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another common mistake is using JavaScript object syntax instead of JSON:&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="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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ToolsFam&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Valid JSON requires double quotes around keys:&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="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ToolsFam"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Simple workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Paste your JSON into a validator.&lt;/li&gt;
&lt;li&gt;Check the line where the error appears.&lt;/li&gt;
&lt;li&gt;Fix quotes, commas, brackets, or comments.&lt;/li&gt;
&lt;li&gt;Format the JSON after it becomes valid.&lt;/li&gt;
&lt;li&gt;Test it again before using it in an API request.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;&lt;a href="https://www.toolsfam.com/blog/how-to-fix-invalid-json-errors-online" rel="noopener noreferrer"&gt;How to Fix Invalid JSON Errors Online&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful tools
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.toolsfam.com/tools/json-validator" rel="noopener noreferrer"&gt;JSON Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.toolsfam.com/tools/json-formatter" rel="noopener noreferrer"&gt;JSON Formatter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
