<?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: Azam Akram</title>
    <description>The latest articles on DEV Community by Azam Akram (@azam-akram).</description>
    <link>https://dev.to/azam-akram</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%2F3974919%2Fe4b398b8-3571-4282-b0f4-2d73a6e38962.jpg</url>
      <title>DEV Community: Azam Akram</title>
      <link>https://dev.to/azam-akram</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/azam-akram"/>
    <language>en</language>
    <item>
      <title>SQL Formatter</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Fri, 03 Jul 2026 15:47:45 +0000</pubDate>
      <link>https://dev.to/azam-akram/sql-formatter-2gbj</link>
      <guid>https://dev.to/azam-akram/sql-formatter-2gbj</guid>
      <description>&lt;p&gt;&lt;a href="https://www.solutiontoolkit.com/tools/sql-formatter" rel="noopener noreferrer"&gt;SQL formatter&lt;/a&gt; instantly formats and beautifies the SQL queries for any database. It supports MySQL, PostgreSQL, T-SQL, SQLite, BigQuery, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Formatting options explained
&lt;/h2&gt;

&lt;p&gt;Dialect: Controls dialect-specific syntax rules. For example, PostgreSQL supports :: casting, T-SQL uses TOP instead of LIMIT, and BigQuery uses backtick identifiers.&lt;br&gt;
Keywords UPPERCASE: The most common SQL style guide convention. Makes reserved words like SELECT, FROM, and WHERE visually distinct from column and table names.&lt;br&gt;
Commas before: Places commas at the start of each line (,column_name). Popular in data warehousing teams and dbt style guides - easier to comment out a column without breaking the query.&lt;br&gt;
Commas after: Standard convention in most SQL editors and ORMs (column_name,).&lt;/p&gt;

&lt;h2&gt;
  
  
  Common use cases
&lt;/h2&gt;

&lt;p&gt;Readable queries from ORMs, query builders, or database console output.&lt;br&gt;
Enforce a consistent style across team SQL files before committing.&lt;br&gt;
Unminify hand-written one-liners for debugging in production logs.&lt;br&gt;
Format EXPLAIN queries before sharing with a teammate.&lt;br&gt;
Prepare SQL snippets for documentation, blog posts, or code review.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Use This SQL Formatter
&lt;/h2&gt;

&lt;p&gt;SQL formatter is designed for quick browser-based work when you need to format sql for 10+ database dialects. Paste or select your input in the tool area above, run the conversion or formatting step, then review the result before copying it into code, documentation, tickets, test data, or an API client.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example input&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;select id,name from users where active=true order by created_at desc&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example output&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;SELECT id, name&lt;br&gt;
FROM users&lt;br&gt;
WHERE active = true&lt;br&gt;
ORDER BY created_at DESC&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  When to Use This Tool
&lt;/h2&gt;

&lt;p&gt;Make a long query readable before code review&lt;br&gt;
Normalize copied SQL from logs or dashboards&lt;br&gt;
Prepare database examples for docs, tickets, or migration notes&lt;/p&gt;

&lt;h2&gt;
  
  
  Accepted Input Formats
&lt;/h2&gt;

&lt;p&gt;SQL queries from MySQL, PostgreSQL, SQLite, BigQuery, T-SQL, and similar dialects&lt;br&gt;
Single statements, multi-statement scripts, and copied query logs&lt;br&gt;
Minified SQL that needs consistent indentation and keyword casing&lt;/p&gt;

&lt;h2&gt;
  
  
  Output Details
&lt;/h2&gt;

&lt;p&gt;The output keeps the same query logic while improving layout&lt;br&gt;
Keyword case and indentation follow the options selected in the tool&lt;/p&gt;

&lt;p&gt;Related Tools&lt;br&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/javascript-beautifier" rel="noopener noreferrer"&gt;JavaScript Beautifier and Formatter&lt;/a&gt;&lt;br&gt;
Beautify or format JavaScript online instantly. Paste minified or messy JS and get clean, readable, indented code. Free JS beautifier and formatter, no sign-up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.solutiontoolkit.com/tools/css-beautifier" rel="noopener noreferrer"&gt;CSS Beautifier and Formatter&lt;/a&gt;&lt;br&gt;
Beautify, format, or prettify CSS online for free. Unminify compressed stylesheets into clean, readable code. Free CSS beautifier and formatter, no sign-up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.solutiontoolkit.com/tools/yaml-formatter" rel="noopener noreferrer"&gt;YAML Formatter &amp;amp; Validator&lt;/a&gt;&lt;br&gt;
Format, beautify, and validate YAML online. Supports Kubernetes, Docker Compose, GitHub Actions, Ansible, and Helm. Syntax errors reported with line and column numbers.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>sql</category>
      <category>database</category>
    </item>
    <item>
      <title>Legacy system needs XML but you're living in JSON world? One paste, done. https://www.solutiontoolkit.com/tools/json-to-xml-converter
#xml #json #validate</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Tue, 30 Jun 2026 19:55:58 +0000</pubDate>
      <link>https://dev.to/azam-akram/legacy-system-needs-xml-but-youre-living-in-json-world-one-paste-done-40pd</link>
      <guid>https://dev.to/azam-akram/legacy-system-needs-xml-but-youre-living-in-json-world-one-paste-done-40pd</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.solutiontoolkit.com/tools/json-to-xml-converter" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;solutiontoolkit.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>xml</category>
      <category>json</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Gzip Base64 encoder / decoder</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Sun, 28 Jun 2026 15:44:55 +0000</pubDate>
      <link>https://dev.to/azam-akram/gzip-base64-encoder-decoder-12hc</link>
      <guid>https://dev.to/azam-akram/gzip-base64-encoder-decoder-12hc</guid>
      <description>&lt;p&gt;Compress text with Gzip and encode the result as Base64 in a single step — or go the other way and decode then decompress a Base64 payload back to the original string. Everything runs in your browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.solutiontoolkit.com/tools/gzip-base64-encoder-decoder" rel="noopener noreferrer"&gt;https://www.solutiontoolkit.com/tools/gzip-base64-encoder-decoder&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  When is this useful?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;API payloads: some services accept compressed, Base64-encoded bodies to reduce bandwidth. Decode them here to inspect the original JSON or XML.&lt;/li&gt;
&lt;li&gt;Environment variables: large config blobs are often Gzip+Base64 encoded before being stored as env vars or Kubernetes secrets.&lt;/li&gt;
&lt;li&gt;CloudWatch / logging: AWS Lambda logs shipped via Kinesis are Gzip+Base64 encoded. Paste the payload here to read the raw log lines.&lt;/li&gt;
&lt;li&gt;Cookie compression: session cookies containing JSON are sometimes compressed to stay under browser size limits.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Compress &amp;amp; Encode: runs Gzip compression on your text using the pako library, then encodes the binary output as a Base64 string safe for transport in JSON, URLs, and headers.&lt;/li&gt;
&lt;li&gt;Decompress &amp;amp; Decode: validates the Base64 format, decodes the bytes, then runs Gzip inflate to recover the original text.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Short strings often produce a larger Base64 output than the original because Gzip's header and Base64 expansion (x1.33) outweigh the compression gain. Gzip shines on repetitive text over ~1 KB.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Use This Gzip Base64 Decoder and Encoder
&lt;/h2&gt;

&lt;p&gt;gzip base64 decode is designed for quick browser-based work when you need to gzip compress text. Paste or select your input in the tool area above, run the conversion or formatting step, then review the result before copying it into code, documentation, tickets, test data, or an API client.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example input:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Gzip-compressed Base64 API payload&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example output:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;H4sIAAAAAAAAA3OvyizQTc7PLShKLS5OTVFwSixONTNRcAzwVChIrMzJT0wBAOnU+sEiAAAA&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common Issues to Check&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A normal Base64 string will not decompress unless the decoded bytes are gzip data&lt;/li&gt;
&lt;li&gt;Copied payloads can fail when quotes, escaping, or whitespace are included&lt;/li&gt;
&lt;li&gt;Very large payloads can take longer because compression happens in the browser&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gzip</category>
      <category>webdev</category>
      <category>base64</category>
      <category>encode</category>
    </item>
    <item>
      <title>Stop rewriting configs by hand. Paste JSON, get YAML (or the other way around) in one click. 

https://www.solutiontoolkit.com/tools/json-yaml-converter

#json #yaml</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Sun, 28 Jun 2026 15:36:03 +0000</pubDate>
      <link>https://dev.to/azam-akram/stop-rewriting-configs-by-hand-paste-json-get-yaml-or-the-other-way-around-in-one-click-407a</link>
      <guid>https://dev.to/azam-akram/stop-rewriting-configs-by-hand-paste-json-get-yaml-or-the-other-way-around-in-one-click-407a</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.solutiontoolkit.com/tools/json-yaml-converter" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;solutiontoolkit.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Your API wants JSON. Your config is YAML. Convert it here, no signup needed. https://www.solutiontoolkit.com/tools/yaml-to-json-converter
#json #yaml</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Sat, 27 Jun 2026 23:42:12 +0000</pubDate>
      <link>https://dev.to/azam-akram/your-api-wants-json-your-config-is-yaml-convert-it-here-no-signup-needed-3n9m</link>
      <guid>https://dev.to/azam-akram/your-api-wants-json-your-config-is-yaml-convert-it-here-no-signup-needed-3n9m</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.solutiontoolkit.com/tools/yaml-to-json-converter" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;solutiontoolkit.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Stop rewriting configs by hand. Paste JSON, get YAML (or the other way around) in one click. https://www.solutiontoolkit.com/tools/json-yaml-converter
#json #yaml #converter</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Sat, 27 Jun 2026 23:40:03 +0000</pubDate>
      <link>https://dev.to/azam-akram/stop-rewriting-configs-by-hand-paste-json-get-yaml-or-the-other-way-around-in-one-click-31d</link>
      <guid>https://dev.to/azam-akram/stop-rewriting-configs-by-hand-paste-json-get-yaml-or-the-other-way-around-in-one-click-31d</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.solutiontoolkit.com/tools/json-yaml-converter" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;solutiontoolkit.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Tired of pasting JSON into random sites? Here's a free in-browser validator - nothing leaves your machine. 
https://www.solutiontoolkit.com/tools/validate-and-prettify-json
#json #pretty #validate</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Sat, 27 Jun 2026 23:37:58 +0000</pubDate>
      <link>https://dev.to/azam-akram/tired-of-pasting-json-into-random-sites-heres-a-free-in-browser-validator-nothing-leaves-your-1fc6</link>
      <guid>https://dev.to/azam-akram/tired-of-pasting-json-into-random-sites-heres-a-free-in-browser-validator-nothing-leaves-your-1fc6</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.solutiontoolkit.com/tools/validate-and-prettify-json" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;solutiontoolkit.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Check live scores, full group stage schedule, and knockout fixtures all in one place: 
👉 https://www.solutiontoolkit.com/world-cup-2026/schedule
#WorldCup2026 #FIFA2026 #NextJS #SolutionToolkit #WebDev #Football</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Thu, 25 Jun 2026 23:18:46 +0000</pubDate>
      <link>https://dev.to/azam-akram/check-live-scores-full-group-stage-schedule-and-knockout-fixtures-all-in-one-place-1jb8</link>
      <guid>https://dev.to/azam-akram/check-live-scores-full-group-stage-schedule-and-knockout-fixtures-all-in-one-place-1jb8</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.solutiontoolkit.com/world-cup-2026/schedule" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;solutiontoolkit.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Debugging GZip Base64 compressed payloads from AWS API Gateway / Lambda</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Mon, 22 Jun 2026 17:40:12 +0000</pubDate>
      <link>https://dev.to/azam-akram/debugging-gzip-base64-compressed-payloads-from-aws-api-gateway-lambda-3ehm</link>
      <guid>https://dev.to/azam-akram/debugging-gzip-base64-compressed-payloads-from-aws-api-gateway-lambda-3ehm</guid>
      <description>&lt;p&gt;You call an API. The response comes back and one of the fields looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;H4sIAAAAAAAAE6tWKkktLlGyUlIqS04sLknMSwUAAAD//wMAAAD//w==
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you have ever looked at something like that wondering what is hiding inside, you are looking at a GZip-compressed payload encoded in Base64.&lt;/p&gt;

&lt;p&gt;This pattern appears more often than you might expect — in AWS, Azure, Kafka, webhook systems, and internal microservices. Understanding why it exists and how to quickly decode it will save you time every time you hit it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Just need to decode one now?&lt;/strong&gt; Paste the string into the &lt;a href="https://www.solutiontoolkit.com/tools/gzip-base64-encoder-decoder" rel="noopener noreferrer"&gt;GZip Base64 Encoder / Decoder&lt;/a&gt; and get the result instantly — no terminal required.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem: Binary Data in Text Channels
&lt;/h2&gt;

&lt;p&gt;GZip compression produces binary output — raw bytes that can include any value from 0 to 255. Most text-based protocols (HTTP headers, JSON fields, environment variables, message queues) are designed for printable characters. If you try to embed raw binary bytes into a JSON string, you will get parsing errors or silent data corruption.&lt;/p&gt;

&lt;p&gt;Base64 solves this by converting binary data into a safe alphabet of 64 printable ASCII characters. The trade-off is a roughly 33% increase in size — but after GZip compression, the total payload is still significantly smaller than the original.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why APIs Combine GZip and Base64
&lt;/h2&gt;

&lt;p&gt;The two techniques solve different problems and work well together:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GZip&lt;/strong&gt; reduces size. For repetitive, structured data like JSON or XML, GZip typically achieves 60–80% compression. A 100 KB JSON payload can compress to 15–20 KB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Base64&lt;/strong&gt; makes binary data safe to transport. It guarantees the compressed bytes can be embedded in a JSON field, stored in a database column, passed through an environment variable, or included in a URL query string without corruption.&lt;/p&gt;

&lt;p&gt;Together they allow a system to transmit large, structured payloads efficiently through channels that only support text.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-World Examples
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS Lambda and API Gateway&lt;/strong&gt; — response bodies larger than a certain threshold can be returned as Base64-encoded compressed content, with a flag telling the client to decompress&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kafka messages&lt;/strong&gt; — event payloads are often GZip + Base64 encoded before publishing so they fit within message size limits and serialize cleanly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Webhook events&lt;/strong&gt; — third-party services sometimes send compressed event data to reduce egress costs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Distributed tracing / logging&lt;/strong&gt; — trace context or structured log data embedded in HTTP headers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Debug a Compressed Payload
&lt;/h2&gt;

&lt;p&gt;When you encounter one of these strings during development or debugging, the workflow is straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Copy the encoded string from the API response, log line, or message payload&lt;/li&gt;
&lt;li&gt;Decode the Base64 layer to recover the GZip binary&lt;/li&gt;
&lt;li&gt;Decompress the GZip to recover the original data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In a terminal you can do this with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"H4sIAAAAAAAAE6tWKkktLlGyUlIqS04sLknMSwUAAAD//wMAAAD//w=="&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | &lt;span class="nb"&gt;base64&lt;/span&gt; &lt;span class="nt"&gt;--decode&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | &lt;span class="nb"&gt;gunzip&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That works fine in a Linux or macOS shell. On Windows, or when you just want a quick result without opening a terminal, an online tool is faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decode It Instantly
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://www.solutiontoolkit.com/tools/gzip-base64-encoder-decoder" rel="noopener noreferrer"&gt;GZip Base64 Encoder / Decoder&lt;/a&gt; tool on this site handles both directions — paste your encoded string to decode it, or paste plain text and JSON to compress and encode it. No installation, no terminal, works in the browser with no data leaving your machine.&lt;/p&gt;

&lt;p&gt;It is useful when you need to inspect a payload quickly during an incident, verify what a service is actually sending before writing decoding logic in your application, or compress test data to embed in a config or environment variable.&lt;/p&gt;

&lt;p&gt;The next time you hit an unreadable string in an API response, you will know exactly what it is and how to open it up.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>devops</category>
      <category>api</category>
      <category>aws</category>
    </item>
    <item>
      <title>Generate MD5, SHA-1, SHA-256, and SHA-512 Hashes Instantly in Your Browser</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Thu, 18 Jun 2026 17:32:40 +0000</pubDate>
      <link>https://dev.to/azam-akram/generate-md5-sha-1-sha-256-and-sha-512-hashes-instantly-in-your-browser-2o10</link>
      <guid>https://dev.to/azam-akram/generate-md5-sha-1-sha-256-and-sha-512-hashes-instantly-in-your-browser-2o10</guid>
      <description>&lt;p&gt;A free, client-side tool for hashing text — no installation, no account, no server.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is a Hash and When Do You Need One?
&lt;/h2&gt;

&lt;p&gt;A hash function takes any input — a word, a sentence, a JSON blob — and produces a fixed-length string of characters. The same input always produces the same output. Change even a single character and the output changes completely.&lt;/p&gt;

&lt;p&gt;Developers reach for hashing in a surprisingly wide range of situations:&lt;/p&gt;

&lt;p&gt;Verifying data integrity — confirm a file or string has not been tampered with&lt;br&gt;
Checksums — compare two pieces of data without storing or transmitting the originals&lt;br&gt;
Password storage — store a hash instead of a plaintext password (with a proper algorithm)&lt;br&gt;
Caching and deduplication — use a hash as a unique key for a piece of content&lt;br&gt;
Debugging — quickly fingerprint a string to check if two values are identical across environments&lt;br&gt;
The &lt;a href="https://www.solutiontoolkit.com/tools/text-hash-generator" rel="noopener noreferrer"&gt;Text Hash Generator&lt;/a&gt; lets you generate hashes across all four commonly used algorithms in one step, directly in your browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Four Algorithms
&lt;/h2&gt;

&lt;p&gt;MD5–128-bit MD5 is fast and widely recognised. It is no longer considered cryptographically secure for security-sensitive use cases, but remains practical for checksums, non-security fingerprinting, and working with legacy systems that expect MD5 output.&lt;/p&gt;

&lt;p&gt;SHA-1–160-bit SHA-1 is similarly deprecated for security use but still appears in older protocols, version control systems, and certificate chains. Useful when you need to match or verify a SHA-1 value produced by another system.&lt;/p&gt;

&lt;p&gt;SHA-256–256-bit SHA-256 is the workhorse of modern cryptography. It is part of the SHA-2 family and is widely used in TLS certificates, code signing, blockchain, and general-purpose integrity verification. When in doubt, use SHA-256.&lt;/p&gt;

&lt;p&gt;SHA-512–512-bit SHA-512 produces a longer digest and offers a higher security margin. It is preferred in high-security contexts and, on 64-bit processors, can actually be faster than SHA-256 due to how modern CPUs handle 64-bit operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Tool Does
&lt;/h2&gt;

&lt;p&gt;Open the &lt;a href="https://www.solutiontoolkit.com/tools/text-hash-generator" rel="noopener noreferrer"&gt;Text Hash Generator&lt;/a&gt;, type or paste any text, and click Generate Hashes (or press Ctrl+Enter). All four hashes are computed and displayed simultaneously.&lt;/p&gt;

&lt;p&gt;Uppercase toggle Switch between lowercase and uppercase hex output with a single checkbox. Some systems expect uppercase hash strings — this saves you a manual conversion step.&lt;/p&gt;

&lt;p&gt;Copy individual or all Each hash has its own Copy button. There is also a Copy all hashes option that puts all four results on the clipboard in a labelled format, ready to paste into documentation or a ticket.&lt;/p&gt;

&lt;p&gt;Character count The input field shows a live character count as you type, useful when you need to know the exact length of the string you are hashing.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;SHA-1, SHA-256, and SHA-512 are computed using the browser’s built-in Web Crypto API via crypto.subtle.digest. MD5 is handled by the js-md5 library, since MD5 is not included in the Web Crypto API (intentionally — browsers do not endorse it for cryptographic use). All four run client-side. Open DevTools, go to the Network tab, type some text, and generate — you will see zero outbound requests.&lt;/p&gt;

&lt;p&gt;Try It&lt;br&gt;
Open the &lt;a href="https://www.solutiontoolkit.com/tools/text-hash-generator" rel="noopener noreferrer"&gt;Text Hash Generator&lt;/a&gt; — paste any text and get all four hashes in one click.&lt;/p&gt;

&lt;p&gt;The Text Hash Generator is one of several developer tools at &lt;a href="https://www.solutiontoolkit.com/" rel="noopener noreferrer"&gt;SolutionToolkit&lt;/a&gt;. All tools run client-side with no server-side processing.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>security</category>
      <category>web</category>
      <category>browser</category>
    </item>
    <item>
      <title>A Client-Side JWT Debugger That Runs Entirely in Your Browser</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Thu, 18 Jun 2026 13:08:27 +0000</pubDate>
      <link>https://dev.to/azam-akram/a-client-side-jwt-debugger-that-runs-entirely-in-your-browser-4ha4</link>
      <guid>https://dev.to/azam-akram/a-client-side-jwt-debugger-that-runs-entirely-in-your-browser-4ha4</guid>
      <description>&lt;p&gt;Why Another JWT Tool?&lt;br&gt;
Most JWT debugging workflows involve copying a token into an online tool, inspecting the payload, and moving on. That works fine for simple use cases, but falls short when you need to do more — sign a token with a specific algorithm, verify a signature against a public key, or quickly check whether a token has expired.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.solutiontoolkit.com/tools/jwt-debugger" rel="noopener noreferrer"&gt;JWT Debugger&lt;/a&gt; is a free, browser-based tool that covers the full JWT workflow: decode, inspect, sign, and verify — all in one place, with no installation and no account required.&lt;br&gt;
What It Does&lt;/p&gt;

&lt;p&gt;Decode and inspect Paste any JWT and the tool splits it into header, payload, and signature — colour-coded so each part is visually distinct. Timestamp claims (iat, exp, nbf) are automatically converted to human-readable dates with a relative time display ("expires in 2h", "3 days ago").&lt;/p&gt;

&lt;p&gt;Status at a glance A badge shows whether the token is Active, Expired, or has No Expiry set. If a token is expired, you see exactly how long ago — no manual Unix timestamp conversion needed.&lt;/p&gt;

&lt;p&gt;Sign tokens Build a header and payload from scratch and sign them. All twelve standard algorithms are supported:&lt;/p&gt;

&lt;p&gt;FamilyAlgorithmsHMACHS256, HS384, HS512RSA PKCS#1RS256, RS384, RS512RSA-PSSPS256, PS384, PS512ECDSAES256, ES384, ES512&lt;/p&gt;

&lt;p&gt;For HMAC algorithms, enter your shared secret. For asymmetric algorithms, paste your PKCS#8 private key. The tool signs the token locally using crypto.subtle.sign and gives you the complete JWT.&lt;/p&gt;

&lt;p&gt;Verify signatures Paste a JWT and your key, click Verify, and the tool confirms whether the signature is valid. For RSA and ECDSA, paste the public key in SPKI PEM format. Verification runs entirely in crypto.subtle.verify.&lt;/p&gt;

&lt;p&gt;Edit and re-encode Modify the header or payload JSON and the encoded token updates in real time. Useful for quickly testing how a claim change affects the token structure, or for building a test token before signing it.&lt;/p&gt;

&lt;p&gt;How It Works Under the Hood&lt;br&gt;
The tool is built on the Web Crypto API — a browser-native cryptography interface available in all modern browsers. There are no third-party cryptography libraries. Every signing and verification operation calls crypto.subtle directly.&lt;/p&gt;

&lt;p&gt;Base64url encoding and decoding are handled with TextEncoder and atob/btoa. PEM keys are stripped of their headers and decoded from base64 before being passed to crypto.subtle.importKey. The signing input follows the JWT spec — base64url(header) + "." + base64url(payload) — and the resulting signature bytes are base64url-encoded and appended as the third segment.&lt;/p&gt;

&lt;p&gt;If you want to verify the behaviour yourself: open DevTools, go to the Network tab, and paste a token. You will see zero outbound requests.&lt;/p&gt;

&lt;p&gt;Try It&lt;br&gt;
Open the &lt;a href="https://www.solutiontoolkit.com/tools/jwt-debugger" rel="noopener noreferrer"&gt;JWT Debugger&lt;/a&gt; and paste any JWT into the top field. The decoded header and payload appear immediately. No account, no signup.&lt;/p&gt;

&lt;p&gt;If you want to understand the theory behind what you are looking at — how the header, payload, and signature fit together, what RS256 means, and how the private/public key split works — the companion article JWT Shared Secret: How JWTs are Signed and Shared Across Services covers the fundamentals.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.solutiontoolkit.com/tools/jwt-debugger" rel="noopener noreferrer"&gt;JWT Debugger&lt;/a&gt; is one of several developer tools at &lt;a href="https://www.solutiontoolkit.com" rel="noopener noreferrer"&gt;SolutionToolkit&lt;/a&gt;. All tools run client-side with no server-side processing.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>security</category>
      <category>web</category>
      <category>jwt</category>
    </item>
    <item>
      <title>I Built a Collection of 50+ Free Developer Tools That Run Entirely in the Browser</title>
      <dc:creator>Azam Akram</dc:creator>
      <pubDate>Tue, 09 Jun 2026 00:01:16 +0000</pubDate>
      <link>https://dev.to/azam-akram/i-built-a-collection-of-100-free-developer-tools-that-run-entirely-in-the-browser-4421</link>
      <guid>https://dev.to/azam-akram/i-built-a-collection-of-100-free-developer-tools-that-run-entirely-in-the-browser-4421</guid>
      <description>&lt;h1&gt;
  
  
  I Built a Collection of 50+ Free Developer Tools That Run Entirely in the Browser
&lt;/h1&gt;

&lt;p&gt;Every developer has that one folder of bookmarks: a JSON formatter here, a Base64 decoder there, a JWT debugger you found on Google three years ago and still trust more than the newer ones. I got tired of juggling a dozen different sites for tasks that take five seconds each, so I built my own collection and put it all in one place.&lt;/p&gt;

&lt;p&gt;It's called &lt;strong&gt;&lt;a href="https://www.solutiontoolkit.com" rel="noopener noreferrer"&gt;Solution Toolkit&lt;/a&gt;&lt;/strong&gt;, and it's grown into more than 50 free, browser-based tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;None of this needed to be complicated. Formatting JSON, decoding a JWT, converting a timestamp - none of that needs a backend, an account, or a subscription. It just needs a page that loads fast and does the one thing you asked it to do.&lt;/p&gt;

&lt;p&gt;So that's what I aimed for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Free, no sign-up wall&lt;/li&gt;
&lt;li&gt;Privacy-first - most tools run entirely in your browser, so your data never gets uploaded anywhere&lt;/li&gt;
&lt;li&gt;Fast enough that you paste something in and you're done before the page even finishes settling&lt;/li&gt;
&lt;li&gt;Actually useful enough that you'd bookmark it and come back&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point mattered most. A lot of tools out there are covered in ads, push you through a "premium" upsell for basic functionality, or quietly send whatever you paste off to a server you know nothing about. I wanted the opposite - free, boring, and trustworthy.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's in it
&lt;/h2&gt;

&lt;p&gt;Here's the full list, grouped the way I use it myself.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/gzip-base64-encoder-decoder" rel="noopener noreferrer"&gt;GZip Base64 Encoder&lt;/a&gt; - compress or decompress Base64 strings with GZip&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/base64-encoder-decoder" rel="noopener noreferrer"&gt;Base64 Encoder / Decoder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/url-encoder-decoder" rel="noopener noreferrer"&gt;URL Encoder / Decoder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/html-encoder-decoder" rel="noopener noreferrer"&gt;HTML Encoder / Decoder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/ascii-utf8-converter" rel="noopener noreferrer"&gt;ASCII to UTF-8 Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/ascii-hex-converter" rel="noopener noreferrer"&gt;ASCII to Hex Converter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  JSON Tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/validate-and-prettify-json" rel="noopener noreferrer"&gt;JSON Formatter &amp;amp; Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/csv-to-json-converter" rel="noopener noreferrer"&gt;CSV to JSON Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/json-to-csv-converter" rel="noopener noreferrer"&gt;JSON to CSV Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/json-yaml-converter" rel="noopener noreferrer"&gt;JSON to YAML Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/yaml-to-json-converter" rel="noopener noreferrer"&gt;YAML to JSON Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/json-to-xml-converter" rel="noopener noreferrer"&gt;JSON to XML Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/xml-to-json-converter" rel="noopener noreferrer"&gt;XML to JSON Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/json-escape-unescape" rel="noopener noreferrer"&gt;JSON Escape / Unescape&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Text &amp;amp; File Tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/file-size-calculator" rel="noopener noreferrer"&gt;File Size Calculator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/text-comparison-tool" rel="noopener noreferrer"&gt;Text Comparison Tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/word-frequency-counter" rel="noopener noreferrer"&gt;Word Frequency Counter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/various-string-utilities" rel="noopener noreferrer"&gt;Text Case Converter&lt;/a&gt; - camelCase, snake_case, kebab-case, Title Case, and more&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Formatters &amp;amp; Minifiers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/sql-formatter" rel="noopener noreferrer"&gt;SQL Formatter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/yaml-formatter" rel="noopener noreferrer"&gt;YAML Formatter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/xml-validator" rel="noopener noreferrer"&gt;XML Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/css-minifier" rel="noopener noreferrer"&gt;CSS Minifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/css-beautifier" rel="noopener noreferrer"&gt;CSS Beautifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/javascript-minifier" rel="noopener noreferrer"&gt;JavaScript Minifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/javascript-beautifier" rel="noopener noreferrer"&gt;JavaScript Beautifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/html-minifier" rel="noopener noreferrer"&gt;HTML Minifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/html-beautifier" rel="noopener noreferrer"&gt;HTML Beautifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/markdown-previewer" rel="noopener noreferrer"&gt;Markdown Previewer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Security &amp;amp; Hashing
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/jwt-debugger" rel="noopener noreferrer"&gt;JWT Debugger&lt;/a&gt; - decode and inspect a token without sending it to a third party&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/text-hash-generator" rel="noopener noreferrer"&gt;Text Hash Generator&lt;/a&gt; - MD5, SHA-1, SHA-256, SHA-512&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/file-hash-generator" rel="noopener noreferrer"&gt;File Hash Generator&lt;/a&gt; - same hashes, but for files, computed locally&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Converters
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/timestamp-converter" rel="noopener noreferrer"&gt;Epoch / Timestamp Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/cron-expression-builder" rel="noopener noreferrer"&gt;Cron Expression Builder&lt;/a&gt; - build and understand cron syntax visually&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/numeral-system-converter" rel="noopener noreferrer"&gt;Numeral System Converter&lt;/a&gt; - decimal, binary, octal, hex&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/color-converter" rel="noopener noreferrer"&gt;Color Converter&lt;/a&gt; - HEX, RGB, HSL&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/uuid-generator" rel="noopener noreferrer"&gt;UUID Generator &amp;amp; Inspector&lt;/a&gt; - v4 and v7, with timestamp inspection&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/sql-data-generator" rel="noopener noreferrer"&gt;Mock SQL Data Generator&lt;/a&gt; - realistic fake INSERT statements from a schema you define&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/qr-code-generator" rel="noopener noreferrer"&gt;QR Code Generator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Image Optimizers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/image-resizer" rel="noopener noreferrer"&gt;Image Resizer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/image-compressor" rel="noopener noreferrer"&gt;Image Compressor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Image Converters
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/png-to-webp-converter" rel="noopener noreferrer"&gt;PNG to WebP Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/webp-to-png-converter" rel="noopener noreferrer"&gt;WebP to PNG Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/png-to-jpg-jpeg-converter" rel="noopener noreferrer"&gt;PNG to JPG Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/jpg-jpeg-to-png-converter" rel="noopener noreferrer"&gt;JPG to PNG Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/jpg-to-webp-converter" rel="noopener noreferrer"&gt;JPG to WebP Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/webp-to-jpg-converter" rel="noopener noreferrer"&gt;WebP to JPG Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/jpg-jpeg-to-svg-converter" rel="noopener noreferrer"&gt;JPG to SVG Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/png-to-svg-converter" rel="noopener noreferrer"&gt;PNG to SVG Converter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.solutiontoolkit.com/tools/webp-to-svg-converter" rel="noopener noreferrer"&gt;WebP to SVG Converter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Go Language Tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/json-to-go-struct" rel="noopener noreferrer"&gt;JSON to Go Struct&lt;/a&gt; - paste JSON, get a typed struct back&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/go-dynamo-code-generator" rel="noopener noreferrer"&gt;Go DynamoDB Code Generator&lt;/a&gt; - CRUD code generated from your table schema&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Python Utilities
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/python-array-code-generator" rel="noopener noreferrer"&gt;Visual Table to Python Code&lt;/a&gt; - build a table, get a Python list-of-lists back&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.solutiontoolkit.com/tools/python-array-to-table-generator" rel="noopener noreferrer"&gt;Visualize Python Table&lt;/a&gt; - paste array code, see it as an editable table&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's 53 tools as of today, and I'm not done adding to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What surprised me building this
&lt;/h2&gt;

&lt;p&gt;A few things I didn't expect going in:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;People care about privacy more than I assumed&lt;/strong&gt;, even for tools that seem low-stakes. The ones that process everything client-side, with nothing ever touching a server, consistently get better feedback than the ones that don't.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The browser can do far more than I gave it credit for.&lt;/strong&gt; Hashing, image conversion, even SVG generation - all of it runs entirely client-side with the right APIs. No backend required for most of this.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Small utilities get used way more often than big features do.&lt;/strong&gt; Nobody opens a JSON formatter once a month out of curiosity. People open it five times a day without even thinking about it.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  I'd like your input
&lt;/h2&gt;

&lt;p&gt;I'm still actively building this out. If there's a browser-based tool you keep wishing existed, or something you find yourself Googling for every few weeks, let me know in the comments. That's usually exactly the kind of thing that ends up on the list next.&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://www.solutiontoolkit.com" rel="noopener noreferrer"&gt;Solution Toolkit&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>showdev</category>
      <category>tooling</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
