<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
  <title>String Utility Belt</title>
  <link>https://stringutilitybelt.com/</link>
  <description>New blog posts and releases from String Utility Belt.</description>
  <language>en-us</language>
  <item>
    <title>Release 1.17.2</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.17.2</guid>
    <pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate>
    <description>Changed The site loads less code up front. The pipeline editor&apos;s step list (its step cards, settings editors and drag-to-reorder) now loads when you first click or press a key, or straight away when you open a pipeline that has steps, rather than on every page. The code a page loads before it starts is about a quarter smaller.</description>
  </item>
  <item>
    <title>Release 1.17.1</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.17.1</guid>
    <pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate>
    <description>Changed The site counts when the pipeline editor is opened. At most once per visit, the site&apos;s own server now counts that the editor was shown, and whether it was the page you loaded or a link on the site led there, so editor runs can be compared with editor opens. Search-engine crawlers and headless browsers are no longer counted at all; your browser checks this itself and sends nothing about it…</description>
  </item>
  <item>
    <title>Release 1.17.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.17.0</guid>
    <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added dst check finds missing and repeated local times across a date range in an IANA time zone, including standard-time changes, midnight transitions, half-hour shifts and skipped days. Supports weekly schedules, exact UTC instants, and text or JSON output.</description>
  </item>
  <item>
    <title>Release 1.16.5</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.16.5</guid>
    <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
    <description>Changed The site counts how the pipeline editor is used. Alongside sponsor, tool and preset clicks, the site&apos;s own server now counts each utility added to a pipeline (by its id, and whether it came from the picker, the command palette, Magic or a suggestion) and, at most once per visit, that the editor produced a result after you changed something (whether the pipeline was your own or a shared li…</description>
  </item>
  <item>
    <title>Release 1.16.4</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.16.4</guid>
    <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added Blog posts end with where to discuss them. A post that is also on DEV, Reddit or Hacker News links to those threads at its end, and every post has a &quot;Spotted a mistake? Send feedback&quot; link that opens the feedback form over the post.</description>
  </item>
  <item>
    <title>eval() in a straitjacket: sandboxing JavaScript under CSP</title>
    <link>https://stringutilitybelt.com/blog/eval-in-a-straitjacket/</link>
    <guid isPermaLink="true">https://stringutilitybelt.com/blog/eval-in-a-straitjacket/</guid>
    <pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate>
    <description>How I let people run their own JavaScript on a site where they paste secrets, with no unsafe-inline, no server, and nowhere for their data to go.</description>
  </item>
  <item>
    <title>Release 1.16.3</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.16.3</guid>
    <pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate>
    <description>Changed Blog posts have their own link preview. Shared on Reddit, X, LinkedIn, Slack or Discord, a post now shows a card with its title and summary, or a cover image of its own, instead of the site&apos;s generic card.</description>
  </item>
  <item>
    <title>Release 1.16.2</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.16.2</guid>
    <pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added Blog post: eval() in a straitjacket (/blog/eval-in-a-straitjacket/): how the custom JavaScript step runs your code in a sandbox with no way onto the network, under the site&apos;s strict Content-Security-Policy, and how the sandbox checks that before it runs anything. The custom JavaScript page links to it. Changed The VS Code extension uses the current icon: the &quot;sub&quot; keycap on the orange tile,…</description>
  </item>
  <item>
    <title>Release 1.16.1</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.16.1</guid>
    <pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate>
    <description>Security The custom JavaScript sandbox checks that it is cut off from the network before it runs your code. Its Worker already refused to run where nothing stopped it loading a script; now it also tries a request to this site, which the site&apos;s own policy allows and only the sandbox&apos;s policy blocks, and refuses to run unless that request is blocked too. In the browsers we test, the sandbox&apos;s polic…</description>
  </item>
  <item>
    <title>Release 1.16.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.16.0</guid>
    <pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added A Claude plugin for the MCP server (plugins/string-utility-belt/): it starts the server in Claude Code and in Cowork on your computer, pinned to the version released with it, and says what it runs and that nothing is sent anywhere. Install it in Claude Code with /plugin install string-utility-belt --marketplace String-Utility-Belt/string-utility-belt; it is also ready for Anthropic&apos;s plugin…</description>
  </item>
  <item>
    <title>Release 1.15.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.15.0</guid>
    <pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added json to powershell request (powershell_request_build): turns the JSON that curl command to json produces into a runnable PowerShell Invoke-RestMethod (or Invoke-WebRequest) command. Headers, body, Basic and challenge auth, form uploads and the curl flags with a PowerShell counterpart (-k, --max-time, -o, --proxy, …) carry over; every value is quoted so PowerShell sends it unchanged; long re…</description>
  </item>
  <item>
    <title>Release 1.13.2</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.13.2</guid>
    <pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate>
    <description>Changed Fonts are served by the site itself. Instrument Sans and JetBrains Mono now load from stringutilitybelt.com instead of Google Fonts, so a page view no longer contacts Google. The privacy policy says so, and the Content-Security-Policy now allows fonts and stylesheets from the site only. Utility pages are headed by the tool&apos;s name as people search for it (&quot;Base64 Encode&quot;, &quot;SHA-256 Hash Gen…</description>
  </item>
  <item>
    <title>Release 1.13.1</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.13.1</guid>
    <pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added A &quot;Featured on DevHunt&quot; badge in the site footer, light or dark with the theme. It is served by the site itself, so showing it sends DevHunt nothing.</description>
  </item>
  <item>
    <title>Release 1.13.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.13.0</guid>
    <pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added Sponsor on GitHub. The site&apos;s footer and the about page link to the project&apos;s GitHub Sponsors page, for anyone who wants to support its development.</description>
  </item>
  <item>
    <title>Release 1.12.3</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.12.3</guid>
    <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
    <description>Fixed Inputs that froze a run. normalize line endings with CRLF output and &quot;remove final newline&quot; hung on text with a few dozen blank lines in a row, extract (HTML tags) on an unclosed tag full of = signs, and output-type detection on a long run of unclosed HTML comments (which a shared link&apos;s input could trigger on opening). Each now runs in linear time. Reading a share link in the CLI, MCP serv…</description>
  </item>
  <item>
    <title>Release 1.12.2</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.12.2</guid>
    <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
    <description>Removed Google Analytics. The site sets no cookies and loads no tracking script: Cloudflare Web Analytics counts page views without cookies or identifiers, and never sees what you paste. The site itself counts only clicks on sponsor links, links to our tools and presets loaded into the editor, by id and with nothing about the visitor. The privacy policy, the about page and the README say so.</description>
  </item>
  <item>
    <title>Release 1.12.1</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.12.1</guid>
    <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
    <description>Changed Recipes are now called presets. The pages moved from /recipes/ to /presets/, and the editor&apos;s Recipes button, the header link and the command palette&apos;s &quot;Start from a preset&quot; follow. Old /recipes/… links redirect permanently to the same page, and #/recipes links still open it.</description>
  </item>
  <item>
    <title>Release 1.12.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.12.0</guid>
    <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added Recipes in the editor. The editor&apos;s Presets button is now Recipes: it lists every published recipe by category, &quot;Try it&quot; loads the recipe&apos;s steps and worked example, and &quot;How it works&quot; opens its page. The command palette&apos;s &quot;Start from a recipe&quot; opens the same list. New recipes: Extract unique email addresses from text and Clean up text pasted from Microsoft Word. Removed The separate preset…</description>
  </item>
  <item>
    <title>Release 1.11.2</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.11.2</guid>
    <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
    <description>Changed One promo per page. Utility, recipe and blog pages show only their sponsor slot (one of our own tools while it is unbooked), without the extra banner and side-column card; index and reading pages show one of our tools, and the strip under the header is gone. The about page and the README say plainly what the site measures: Google Analytics (without cookies in the EEA, the UK and Switzerla…</description>
  </item>
  <item>
    <title>Release 1.11.1</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.11.1</guid>
    <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
    <description>Fixed Cloudflare Web Analytics counts visits again: the site&apos;s Content-Security-Policy blocked the script Cloudflare adds to each page. The privacy policy now describes what it collects.</description>
  </item>
  <item>
    <title>Release 1.11.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.11.0</guid>
    <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
    <description>Changed New icons in the new brand: the &quot;sub&quot; keycap on an orange tile, for the site (browser tab, home-screen and installed-app icons, with a sharp 32 px favicon) and the browser extension&apos;s toolbar. At 16 px the toolbar icon is a bold &quot;s&quot; key, so it stays legible. Share cards in the new design: the preview image a page shows when it&apos;s shared (Slack, X, LinkedIn and the like) uses the site&apos;s war…</description>
  </item>
  <item>
    <title>Release 1.10.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.10.0</guid>
    <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
    <description>Changed New look across the whole site. Warm, flat surfaces with a single orange accent, Instrument Sans for text and JetBrains Mono for data, in light and dark. The header now has a search box for the command palette, icon links to the extensions, CLI and MCP server, and a keyboard shortcuts button. Every page and the pipeline editor were rebuilt in the new style; every feature works as before.…</description>
  </item>
  <item>
    <title>Release 1.9.1</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.9.1</guid>
    <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
    <description>Changed The privacy policy says how long Google Analytics data is kept (14 months) and that a copy is exported to Google BigQuery in our own Google Cloud project, where it is also deleted after 14 months.</description>
  </item>
  <item>
    <title>Release 1.8.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.8.0</guid>
    <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added &quot;Run it from your terminal or AI agent&quot; on every utility page that the CLI and MCP server can run: the exact npx subelt … command for what the page&apos;s playground just did (updating as you type or change a parameter), the one-line MCP install for Claude Code, and the run_utility arguments an agent would send — each with a copy button. Seven recipes built on run on each: turn a .env file into…</description>
  </item>
  <item>
    <title>Release 1.7.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.7.0</guid>
    <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added Advertise page (/advertise/, linked from the footer): who the site is for, the sponsorship formats on offer, what sponsors may and may not do, and how to book. Sponsor block on utility, recipe and blog pages: while a sponsorship is booked, the sponsor&apos;s logo, name, one line of text and a plain link, labelled &quot;Sponsor&quot; — served by this site, with no script, pixel or cookie. Until then it int…</description>
  </item>
  <item>
    <title>Release 1.6.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.6.0</guid>
    <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added Recipes in the browser extension — every recipe page offers &quot;Save to extension&quot; when the String Utility Belt extension is installed, saving the recipe under its name to the right-click menu in one click. In a desktop Chrome, Edge or other Chromium browser without it, the page links to the extension&apos;s Chrome Web Store listing instead; other browsers and phones, which can&apos;t install it, see ne…</description>
  </item>
  <item>
    <title>Release 1.5.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.5.0</guid>
    <pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added Recipes — ready-made multi-step pipelines for real tasks, each with its own page at /recipes/&lt;slug&gt;/ (index at /recipes/, linked from the header, the home page and the pages of the utilities they use). A page opens with the worked example running live, shows every step&apos;s output and why it is there, what leaving each step out does, then a guide; &quot;Open in the editor&quot; loads the steps and your…</description>
  </item>
  <item>
    <title>Release 1.4.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.4.0</guid>
    <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
    <description>Added 210 new utilities, bringing the registry to 246 across 16 categories (counts from src/utilities/_generated/manifest.ts): Data Formats (37), String Ops (29), Encoding (25), Formatting (25), Decoding (23), Analysis (21), Web &amp; Dev (15), Generators (13), Ciphers (12), Hashing (11), Lines (10), Numbers (8), Compression (7), Date &amp; Time (4), URL &amp; JSON (4), Color (2). Every utility ships colocat…</description>
  </item>
  <item>
    <title>How to Encode and Decode Base64 (JavaScript, Python, CLI)</title>
    <link>https://stringutilitybelt.com/blog/base64-encode-decode-online/</link>
    <guid isPermaLink="true">https://stringutilitybelt.com/blog/base64-encode-decode-online/</guid>
    <pubDate>Thu, 18 Sep 2025 00:00:00 GMT</pubDate>
    <description>Encode and decode Base64 correctly in JavaScript, Node.js, Python, and the command line, with UTF-8 handling, Base64url, and common error fixes.</description>
  </item>
  <item>
    <title>Why MD5 Is Insecure (But Still Useful for Developers)</title>
    <link>https://stringutilitybelt.com/blog/md5-insecure-but-useful/</link>
    <guid isPermaLink="true">https://stringutilitybelt.com/blog/md5-insecure-but-useful/</guid>
    <pubDate>Thu, 18 Sep 2025 00:00:00 GMT</pubDate>
    <description>MD5 is broken for collisions but still fine for checksums and cache keys. Learn what it&apos;s safe for, what it isn&apos;t, and which hash to use instead.</description>
  </item>
  <item>
    <title>Release 1.3.0</title>
    <link>https://stringutilitybelt.com/changelog/</link>
    <guid isPermaLink="false">tag:stringutilitybelt.com,2025:changelog/1.3.0</guid>
    <description>Added The baseline this changelog starts from: 36 string utilities chained into visual pipelines with live previews — base64 encode/decode, case, count, diacritics, escape_html/unescape_html, format_case, get_bytes, hash (SHA-256/384), hex_encode/decode, json_escape/unescape/minify/pretty, length, line_dedupe, line_sort, md5, normalize, number_lines, pad, regex_extract, remove_blank_lines, repeat…</description>
  </item>
</channel>
</rss>
