<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>FormatStack</title>
    <link>https://formatstack.tech/blog/</link>
    <description>Build notes, opinions and practical security writing on developer tooling.</description>
    <language>en</language>
    <atom:link href="https://formatstack.tech/feed.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Mon, 21 Sep 2026 00:00:00 GMT</lastBuildDate>

    <item>
      <title>Where Developer Data Actually Leaks</title>
      <link>https://formatstack.tech/blog/where-developer-data-leaks/</link>
      <guid isPermaLink="true">https://formatstack.tech/blog/where-developer-data-leaks/</guid>
      <pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate>
      <description>Production data rarely escapes through a breach. It escapes through pastebins, online formatters, AI chat windows, screenshots, error trackers and git history. Nine channels, what makes each one invisible, and how to close it.</description>
    </item>

    <item>
      <title>Client-Side Tools Are a Security Decision, Not a Performance One</title>
      <link>https://formatstack.tech/blog/client-side-is-a-security-decision/</link>
      <guid isPermaLink="true">https://formatstack.tech/blog/client-side-is-a-security-decision/</guid>
      <pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate>
      <description>Pasting an API response into an online formatter is a data disclosure, not a convenience. How to verify what a tool really does, and the honest limits of the client-side claim.</description>
    </item>

    <item>
      <title>Building a JSONPath Tester That Does One Thing Differently</title>
      <link>https://formatstack.tech/blog/building-a-jsonpath-tester/</link>
      <guid isPermaLink="true">https://formatstack.tech/blog/building-a-jsonpath-tester/</guid>
      <pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate>
      <description>Why every result carries the path it was found at, why the filters refuse to coerce types, and the recursive-descent bug that took longer to find than the parser took to write.</description>
    </item>
  </channel>
</rss>
