<?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: ARUN GOPAL</title>
    <description>The latest articles on DEV Community by ARUN GOPAL (@raag3arun).</description>
    <link>https://dev.to/raag3arun</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%2F3870506%2Fba6a19b4-ce2f-4e46-a83a-3d18d23adeb2.jpg</url>
      <title>DEV Community: ARUN GOPAL</title>
      <link>https://dev.to/raag3arun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/raag3arun"/>
    <language>en</language>
    <item>
      <title>I Built 15 Free Browser-Based Developer Tools — Here's What I Learned</title>
      <dc:creator>ARUN GOPAL</dc:creator>
      <pubDate>Thu, 09 Apr 2026 20:08:08 +0000</pubDate>
      <link>https://dev.to/raag3arun/i-built-15-free-browser-based-developer-tools-heres-what-i-learned-1dah</link>
      <guid>https://dev.to/raag3arun/i-built-15-free-browser-based-developer-tools-heres-what-i-learned-1dah</guid>
      <description>&lt;p&gt;Every developer has that moment: you need to quickly format some JSON, generate a UUID, or encode a string to Base64. You google it, click the first result, and get hit with cookie banners, newsletter popups, and a loading spinner while 3MB of JavaScript downloads to do something that takes 5 lines of code.&lt;/p&gt;

&lt;p&gt;I decided to fix this by building &lt;a href="https://toolpry.com" rel="noopener noreferrer"&gt;ToolPry&lt;/a&gt; — a collection of 15 developer tools that are fast, private, and free.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rules I Set for Myself
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Every tool must run 100% in the browser.&lt;/strong&gt; No server calls. No APIs. Your data never leaves your machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No frameworks.&lt;/strong&gt; Each tool is a single HTML file with inline CSS and JS. No React, no Tailwind, no build step.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No tracking.&lt;/strong&gt; No Google Analytics, no Hotjar, no cookies (except for ads).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No sign-up.&lt;/strong&gt; Every tool is fully functional for everyone, immediately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Must work offline.&lt;/strong&gt; Service worker caches everything after first visit.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The 15 Tools
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Data &amp;amp; Encoding
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/json-formatter" rel="noopener noreferrer"&gt;JSON Formatter &amp;amp; Validator&lt;/a&gt; — Format, validate, minify with tree view, CSV/YAML conversion, and drag-drop file support. Uses native &lt;code&gt;JSON.parse()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/base64" rel="noopener noreferrer"&gt;Base64 Encoder/Decoder&lt;/a&gt; — Full UTF-8 support plus file-to-data-URI conversion with image preview.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/url-encoder" rel="noopener noreferrer"&gt;URL Encoder/Decoder&lt;/a&gt; — Both &lt;code&gt;encodeURI&lt;/code&gt; and &lt;code&gt;encodeURIComponent&lt;/code&gt; modes.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/html-entities" rel="noopener noreferrer"&gt;HTML Entity Encoder&lt;/a&gt; — Prevents XSS by encoding &lt;code&gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;amp;&lt;/code&gt;, &lt;code&gt;"&lt;/code&gt;, &lt;code&gt;'&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Security
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/password-generator" rel="noopener noreferrer"&gt;Password Generator&lt;/a&gt; — Uses &lt;code&gt;crypto.getRandomValues()&lt;/code&gt;. Includes passphrase mode, time-to-crack estimate, and entropy display.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/hash-generator" rel="noopener noreferrer"&gt;Hash Generator&lt;/a&gt; — MD5, SHA-1, SHA-256, SHA-512. File hashing via drag-drop. Hash comparison tool.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Generators
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/uuid-generator" rel="noopener noreferrer"&gt;UUID Generator&lt;/a&gt; — RFC 4122 v4 UUIDs. Bulk generate up to 100.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/lorem-ipsum" rel="noopener noreferrer"&gt;Lorem Ipsum Generator&lt;/a&gt; — Paragraphs, sentences, or word count.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/qr-generator" rel="noopener noreferrer"&gt;QR Code Generator&lt;/a&gt; — Presets for WiFi, vCard, Email, and SMS. Download as PNG.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Text &amp;amp; Writing
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/word-counter" rel="noopener noreferrer"&gt;Word &amp;amp; Character Counter&lt;/a&gt; — Reading time, Flesch readability score, grade level, keyword density.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/markdown-preview" rel="noopener noreferrer"&gt;Markdown Preview&lt;/a&gt; — Live rendering with DOMPurify XSS protection.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Developer Utilities
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/regex-tester" rel="noopener noreferrer"&gt;Regex Tester&lt;/a&gt; — Real-time highlighting, pattern explanation, code generator for JS/Python/PHP. Unlike regex101, your data never leaves the browser.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/color-converter" rel="noopener noreferrer"&gt;Color Converter&lt;/a&gt; — Hex/RGB/HSL with WCAG contrast checker and palette generator.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/timestamp-converter" rel="noopener noreferrer"&gt;Timestamp Converter&lt;/a&gt; — Unix epoch to dates. Auto-detects seconds vs milliseconds.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://toolpry.com/css-gradient" rel="noopener noreferrer"&gt;CSS Gradient Generator&lt;/a&gt; — Linear/radial, 3 color stops, one-click CSS copy.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Privacy Angle
&lt;/h2&gt;

&lt;p&gt;Here's something most developers don't think about: when you paste JSON into an online formatter, regex patterns into a tester, or passwords into a strength checker — where does that data go?&lt;/p&gt;

&lt;p&gt;Most popular tools process on their servers. Regex101 sends every keystroke to their backend (check their privacy policy). Many JSON formatters upload your data for server-side processing.&lt;/p&gt;

&lt;p&gt;With ToolPry, everything runs in your browser. I can make this claim because there are literally zero &lt;code&gt;fetch()&lt;/code&gt; or &lt;code&gt;XMLHttpRequest&lt;/code&gt; calls in any tool's JavaScript. You can verify this yourself — open DevTools, paste sensitive data, and watch the Network tab. Nothing leaves your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Decisions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Why no framework?&lt;/strong&gt; Each tool is self-contained — a JSON formatter doesn't need React's virtual DOM. Keeping things vanilla means each page is 6-15KB, loads instantly, and has zero dependencies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Web Crypto API?&lt;/strong&gt; For passwords and hashes, &lt;code&gt;crypto.getRandomValues()&lt;/code&gt; provides the same quality of randomness used in TLS. &lt;code&gt;crypto.subtle.digest()&lt;/code&gt; is faster and more secure than JS hash implementations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why DOMPurify on Markdown?&lt;/strong&gt; The Markdown preview renders user input as HTML. Without sanitization, XSS is trivial. DOMPurify strips vectors before they reach the DOM.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd Love Feedback On
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Which tools do you use most often?&lt;/li&gt;
&lt;li&gt;What's missing from the collection?&lt;/li&gt;
&lt;li&gt;Any features you wish the existing tools had?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm planning to add a JWT decoder, diff checker, and CSV converter next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Site:&lt;/strong&gt; &lt;a href="https://toolpry.com" rel="noopener noreferrer"&gt;toolpry.com&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with vanilla HTML/JS. Hosted on Cloudflare Pages (free tier). Total monthly cost: one domain name.&lt;/em&gt;&lt;/p&gt;

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