<?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: CatsSayMEOW</title>
    <description>The latest articles on DEV Community by CatsSayMEOW (@catssaymeow).</description>
    <link>https://dev.to/catssaymeow</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%2F429030%2F47ee7c45-e31c-486e-838f-100f26fee0df.jpeg</url>
      <title>DEV Community: CatsSayMEOW</title>
      <link>https://dev.to/catssaymeow</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/catssaymeow"/>
    <language>en</language>
    <item>
      <title>I built 10 client-side dev tools that hand off to each other</title>
      <dc:creator>CatsSayMEOW</dc:creator>
      <pubDate>Thu, 02 Jul 2026 14:28:56 +0000</pubDate>
      <link>https://dev.to/catssaymeow/i-built-10-client-side-dev-tools-that-hand-off-to-each-other-53lf</link>
      <guid>https://dev.to/catssaymeow/i-built-10-client-side-dev-tools-that-hand-off-to-each-other-53lf</guid>
      <description>&lt;p&gt;Every developer has the same graveyard of browser tabs: one sketchy site to decode a JWT, another to pretty-print JSON, a third to encode Base64 for an auth header, a fourth to diff two blobs of text. Half of them are covered in ads, most of them quietly send whatever gets pasted in to a server, and none of them talk to each other. So the day becomes a loop of copy, switch tab, paste, copy again.&lt;/p&gt;

&lt;p&gt;I got tired of that loop and built CatsSayMeow Toolkit to fix two things at once: keep the work local where it can be, and let the tools pass data between each other so the copy-paste shuffle mostly goes away.&lt;/p&gt;

&lt;p&gt;Here is the whole set, grouped the way the work actually flows.&lt;/p&gt;

&lt;h2&gt;
  
  
  The auth and API debugging cluster
&lt;/h2&gt;

&lt;p&gt;This is the part I use most, and it is where the handoffs matter.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkkjwkz6u7fmzcj1rbwpw.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkkjwkz6u7fmzcj1rbwpw.png" alt="JWT Encoder &amp;amp; Decoder" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The JWT Encoder &amp;amp; Decoder reads a token and lays out the header, payload, claims, and expiry, all in the browser. It also encodes: sign a fresh test token with HS256, HS384, or HS512 when a valid one is needed for an experiment. Once a token looks right, one action sends it straight into the API Client as an auth header. No copy-paste, no losing it between tabs.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fht4th6rxos10sry9ilvl.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fht4th6rxos10sry9ilvl.png" alt="Online API Client" width="800" height="578"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The API Client sends real HTTP requests: pick the method, set headers, add a body, and read the full response with status code, timing, headers, and body. No browser extension required. If there is no endpoint handy to poke at, it ships with a built-in Practice API, a small mock REST API that runs client-side, so every method has something to hit while learning the tool.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F026vkg4r9emr3qya3els.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F026vkg4r9emr3qya3els.png" alt="JSON Formatter" width="800" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The JSON Formatter &amp;amp; Visualizer is the other feeder into the API Client. It formats, validates, and minifies, and when JSON is invalid it points at the exact line and column instead of just saying "invalid." Beyond formatting, it explores nested payloads as a tree, a graph, or a table, and filters by path, key, type, or value, which is how you actually find the one field that matters in a large response. It can generate sample records too, and send clean JSON on to the API Client as a request body.&lt;/p&gt;

&lt;p&gt;Rounding out the cluster: Base64 Encoder &amp;amp; Decoder for auth headers and binary-to-text work, and URL Encoder &amp;amp; Decoder for percent-encoding query params, reserved characters, and non-ASCII symbols correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The writing and comparison cluster
&lt;/h2&gt;

&lt;p&gt;The Word Counter tracks words, characters with and without spaces, sentences, paragraphs, and lines as you type, updating live. When a quick count turns into real writing, it sends the text straight to the Editor instead of leaving it stranded.&lt;/p&gt;

&lt;p&gt;The Editor &amp;amp; Markdown Viewer renders Markdown live next to the note you are editing. It keeps up to five browser-local notes, each with its own autosave, plus inline rename, a cheatsheet drawer, formatting shortcuts, and Find &amp;amp; Replace. Text handed over from the Word Counter appends into the active note.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F93348okknhff300n65oj.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F93348okknhff300n65oj.png" alt="Editor &amp;amp; Markdown Viewer" width="800" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Text Diff Checker compares two blocks of text line by line, with an optional word-level view for spotting the single character that changed. After a comparison it can collapse the inputs for a cleaner workspace, and send either the original or modified side over to the Word Counter.&lt;/p&gt;

&lt;p&gt;Read those three together and the pattern is the same as the API cluster: Text Diff feeds Word Counter, Word Counter feeds the Editor. The data follows the work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generators and Color Explorer
&lt;/h2&gt;

&lt;p&gt;The Generators tool covers the test-data basics: UUIDs (v1, v4, v7, v5), secure passwords, cryptographic hashes (MD5, SHA-1, SHA-256, SHA-512, SHA3-256, BLAKE2b, BLAKE2s), and IMEI numbers. It uses the crypto API for randomness, not Math.random(), which matters the moment a generated value ends up anywhere real.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhayak7vokt2f57xdvob5.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhayak7vokt2f57xdvob5.png" alt="UUID, Password &amp;amp; Hash Generator" width="800" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Color Explorer is the deepest of the ten. It converts a single color across HEX, RGB, HSL, and OKLCH, and builds a 100 to 900 scale for design tokens. The part I am proud of is contrast: it checks role-aware WCAG contrast for body text, large text, and the 3:1 non-text threshold for borders and icons, against a light, dark, or custom surface. It shows the classic WCAG 2 ratio next to the APCA Lc perceptual reading from the draft WCAG 3, and when a pairing falls short it names the nearest scale step that clears it. A theme-pair check tells you whether a color passes on both a light and a dark theme at once, since most colors only pass on one. There is a full contrast matrix, color-blindness simulation for deuteranopia, protanopia, and tritanopia, token export as CSS custom properties, a Tailwind color object, or JSON, and a shareable link that round-trips the color and its settings.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8pnv1jbenffr03zct273.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8pnv1jbenffr03zct273.png" alt="Color Explorer" width="800" height="589"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest part about privacy
&lt;/h2&gt;

&lt;p&gt;A lot of tools claim to run "entirely in your browser." Most of these genuinely do: the JWT decoder, JSON formatter, Base64, URL, generators, counter, editor, diff, and color work all run as client-side JavaScript, and there is a Data Backup tool to export and re-import local notes and settings as a file.&lt;/p&gt;

&lt;p&gt;The exception is the API Client. To send a real cross-origin HTTP request, the browser cannot do it alone, so that one proxies through a server with a stack of SSRF protections in front of it. I would rather say that plainly than pretend every byte stays local when it does not.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack, for the curious
&lt;/h2&gt;

&lt;p&gt;No frontend framework. It is Django templates with vanilla JavaScript, IBM Plex for type, and a design-token CSS system. The tools are independent Django apps that do not import from each other, which keeps each one easy to reason about. Given how much this space defaults to a React app plus a pile of dependencies, building it as boring, fast server-rendered pages with a little JS was a deliberate choice, and it loads instantly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;It is free, no signup, light and dark themes, and installable as a PWA with an offline fallback. It lives at &lt;a href="https://catssaymeow.org/" rel="noopener noreferrer"&gt;catssaymeow.org&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you try it, I would genuinely like to hear what breaks or what is missing. The handoffs between tools are the idea I care about most, and there is plenty of room to add more of them.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>tooling</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A website to save you from messy browser tabs</title>
      <dc:creator>CatsSayMEOW</dc:creator>
      <pubDate>Mon, 25 May 2026 13:15:42 +0000</pubDate>
      <link>https://dev.to/catssaymeow/a-website-to-save-you-from-messy-browser-tabs-41eo</link>
      <guid>https://dev.to/catssaymeow/a-website-to-save-you-from-messy-browser-tabs-41eo</guid>
      <description>&lt;p&gt;I saw some posts where people complained about having too many tabs open and constantly switching between basic tools like JWT decoder, Base64 encoder/decoder, data generators, API client, editor, and so on.&lt;/p&gt;

&lt;p&gt;I can relate, because that’s exactly what I was dealing with a few months ago. So I started building an all-in-one toolkit for my daily work:&lt;br&gt;
&lt;a href="https://catssaymeow.org" rel="noopener noreferrer"&gt;https://catssaymeow.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It has a cyber-noir + cat theme, with dark mode by default.&lt;br&gt;
There are 9 tools in total, but two I think are worth calling out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON Formatter: supports custom nested levels and a visualizer
&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%2Fdslgdh4bkunydu6dcp8w.png" alt=" " width="800" height="746"&gt;
&lt;/li&gt;
&lt;li&gt;Markdown Editor: GitHub-like features, plus a bit more
&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%2F870pz0g4tw3ycy1y22w4.png" alt=" " width="800" height="746"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also optimized it to work better on mobile. Yes! I really did have to debug a JSON payload while traveling at night on my tiny iPhone, so mobile support became personal.&lt;/p&gt;

&lt;p&gt;Hope you find it useful. If not, that’s fine. My cat-themed nonsense will continue existing either way.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Free online Markdown editor tool with cheatsheet</title>
      <dc:creator>CatsSayMEOW</dc:creator>
      <pubDate>Thu, 14 May 2026 12:58:49 +0000</pubDate>
      <link>https://dev.to/catssaymeow/free-online-markdown-editor-tool-with-cheatsheet-1ddl</link>
      <guid>https://dev.to/catssaymeow/free-online-markdown-editor-tool-with-cheatsheet-1ddl</guid>
      <description></description>
      <category>productivity</category>
      <category>showdev</category>
      <category>tooling</category>
      <category>writing</category>
    </item>
    <item>
      <title>Are non-AI dev tools becoming irrelevant?</title>
      <dc:creator>CatsSayMEOW</dc:creator>
      <pubDate>Thu, 07 May 2026 01:35:14 +0000</pubDate>
      <link>https://dev.to/catssaymeow/are-non-ai-dev-tools-becoming-irrelevant-poh</link>
      <guid>https://dev.to/catssaymeow/are-non-ai-dev-tools-becoming-irrelevant-poh</guid>
      <description>&lt;p&gt;I’m a software engineer, and a big part of my day is debugging issues reported by other teams.&lt;/p&gt;

&lt;p&gt;Most of the time I’m:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;checking tokens&lt;/li&gt;
&lt;li&gt;calling APIs&lt;/li&gt;
&lt;li&gt;comparing JSON responses and traces&lt;/li&gt;
&lt;li&gt;writing docs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I kept jumping between different tools for all of this, and it always felt clunky.&lt;/p&gt;

&lt;p&gt;I tried finding a lightweight toolkit with a clean UI and smooth workflow, but most tools either felt outdated or started adding AI features that didn’t really make sense to me — especially for workflows involving sensitive tokens or internal data.&lt;/p&gt;

&lt;p&gt;So I ended up building a small toolkit for myself: &lt;a href="https://qautils.catssaymeow.org/" rel="noopener noreferrer"&gt;https://qautils.catssaymeow.org/&lt;/a&gt;&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%2F5ysms941bgvzvhfmp94r.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%2F5ysms941bgvzvhfmp94r.png" alt=" " width="800" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What surprised me was that when I showed it to teammates, some of them immediately asked:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why doesn’t it have AI support?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Personally, I don’t really see the need for AI in tools like JSON formatting, token inspection, API calls, etc.&lt;/p&gt;

&lt;p&gt;Do simple dev tools actually benefit from AI, or are we just expecting AI everywhere now?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
