<?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: Zeeshan Imdad</title>
    <description>The latest articles on DEV Community by Zeeshan Imdad (@zeeshan_imdad_c763729732e).</description>
    <link>https://dev.to/zeeshan_imdad_c763729732e</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%2F4079273%2F9c962747-2233-4dbd-b07f-fd28c394ca3d.png</url>
      <title>DEV Community: Zeeshan Imdad</title>
      <link>https://dev.to/zeeshan_imdad_c763729732e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zeeshan_imdad_c763729732e"/>
    <language>en</language>
    <item>
      <title>I pasted a production JWT into a random website. Then I read their privacy policy.</title>
      <dc:creator>Zeeshan Imdad</dc:creator>
      <pubDate>Sat, 15 Aug 2026 17:13:05 +0000</pubDate>
      <link>https://dev.to/zeeshan_imdad_c763729732e/i-got-tired-of-pasting-jwts-into-random-websites-so-i-built-my-own-tools-4hh5</link>
      <guid>https://dev.to/zeeshan_imdad_c763729732e/i-got-tired-of-pasting-jwts-into-random-websites-so-i-built-my-own-tools-4hh5</guid>
      <description>&lt;p&gt;I'd like to tell you this was a one-time lapse.&lt;/p&gt;

&lt;p&gt;It wasn't. I do it constantly. A JWT to check what's in the payload. A chunk of JSON to pretty-print because the API response came back on one line. A cron expression I inherited from a script written by someone who left the company two years ago.&lt;/p&gt;

&lt;p&gt;Every time, the same two seconds of hesitation before hitting submit: where is this actually going?&lt;/p&gt;

&lt;p&gt;Then I hit submit anyway, because I had a ticket to close.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that bothered me
&lt;/h2&gt;

&lt;p&gt;Most free online dev tools send whatever you paste to a server to do the work. For a JSON formatter, that's mildly wasteful. For a JWT decoder, it means your token — with whatever claims, user IDs, and issuer details it carries — just took a trip to someone else's backend.&lt;/p&gt;

&lt;p&gt;And the thing is, none of these tools need a server. atob() has been in browsers for two decades. JSON.parse runs fine in a tab. The server-side version exists because it's easier to build, not because the work requires it.&lt;/p&gt;

&lt;p&gt;So I built the version that doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  DevTools Hub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://devtools-hub-sigma.vercel.app" rel="noopener noreferrer"&gt;devtools-hub-sigma.vercel.app&lt;/a&gt; — eight tools, all running entirely in your browser. No account, no upload, no backend in the loop at all.&lt;/p&gt;

&lt;p&gt;Formatting — JSON Formatter, YAML ⇄ JSON Converter Encoding — Base64 Encoder/Decoder, JWT Decoder Generators — UUID Generator (v4, v7, nil) Text &amp;amp; Data — Timestamp Converter, Regex Tester, Cron Parser&lt;/p&gt;

&lt;p&gt;Nothing exotic. These are the eight things I personally reach for in a normal week. The bar for adding a tool was "did I need this and get annoyed at the alternatives," not "would this look good on a feature list."&lt;/p&gt;

&lt;h2&gt;
  
  
  Client-side isn't just a privacy pitch
&lt;/h2&gt;

&lt;p&gt;Three things fall out of the architecture for free:&lt;/p&gt;

&lt;p&gt;It's faster. No request/response cycle. Results update as you type, because the work is happening ten inches from your eyeballs instead of in us-east-1.&lt;/p&gt;

&lt;p&gt;It works offline. Load the page once, kill your wifi, keep working. Useful more often than you'd think — planes, hotel wifi, that one meeting room.&lt;/p&gt;

&lt;p&gt;There's nothing to log. Not "we promise not to log it." There is no server in the path that could log it. That's a different kind of guarantee.&lt;/p&gt;

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

&lt;p&gt;Next.js (App Router), TypeScript, Tailwind, shadcn/ui, deployed on Vercel.&lt;/p&gt;

&lt;p&gt;Every tool page also has a short explainer, worked examples, and an FAQ — partly for the person who lands there from Google typing "what does the asterisk mean in a cron expression," and partly because a tool that does the thing without explaining the thing feels like a missed opportunity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;Here's the question I actually want answered: what's the tool you use constantly and still hate?&lt;/p&gt;

&lt;p&gt;The one where you've memorized which of the five ad banners to scroll past. The one you keep bookmarked despite the interstitial. That's my roadmap — tell me in the comments and I'll build it.&lt;/p&gt;

&lt;p&gt;And if you try one of these and it breaks on some edge case I didn't think of, that's the most useful comment you could leave.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devtools-hub-sigma.vercel.app" rel="noopener noreferrer"&gt;devtools-hub-sigma.vercel.app&lt;/a&gt;&lt;/p&gt;

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