<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DevSnap guides</title>
    <link>https://devsnap.cc/guides/</link>
    <description>Longer explanations of the concepts behind the tools: JSON, regex, time zones, diffs, tokens and the rest.</description>
    <language>en</language>
    <atom:link href="https://devsnap.cc/guides/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Common JSON Errors and How to Fix Them</title>
      <link>https://devsnap.cc/guides/common-json-errors/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/common-json-errors/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <description>The six JSON mistakes behind almost every parse error: trailing commas, single quotes, unquoted keys, comments, smart quotes and truncation.</description>
    </item>
    <item>
      <title>Base64 Is Not Encryption</title>
      <link>https://devsnap.cc/guides/base64-is-not-encryption/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/base64-is-not-encryption/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <description>What Base64 actually does, why it is not a security measure, when it is the right tool, and the three cases where people reach for it by mistake.</description>
    </item>
    <item>
      <title>Cache-Control and ETag, Explained</title>
      <link>https://devsnap.cc/guides/http-cache-headers/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/http-cache-headers/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <description>How HTTP caching works: what Cache-Control directives mean, what an ETag is, what Vary does, and how a misconfigured header serves the wrong page.</description>
    </item>
    <item>
      <title>Designing API Error Responses</title>
      <link>https://devsnap.cc/guides/api-error-responses/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/api-error-responses/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <description>What an API error body should contain, which status code to use, and how to keep errors debuggable without leaking internals.</description>
    </item>
    <item>
      <title>How Webhook Signature Verification Works</title>
      <link>https://devsnap.cc/guides/webhook-signatures/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/webhook-signatures/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <description>How to verify that a webhook really came from the provider: HMAC signatures, the raw body requirement, replay protection and constant-time comparison.</description>
    </item>
    <item>
      <title>Quoting and Escaping in Shell Commands</title>
      <link>https://devsnap.cc/guides/shell-quoting-and-escaping/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/shell-quoting-and-escaping/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <description>Why unquoted variables break, the difference between single and double quotes, and how to pass a value to another command safely.</description>
    </item>
    <item>
      <title>UUIDs, ULIDs and Snowflake IDs</title>
      <link>https://devsnap.cc/guides/id-strategies/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/id-strategies/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <description>How to choose an identifier: random UUIDv4, time-ordered UUIDv7, ULID, Snowflake and auto-increment, with the index and privacy trade-offs.</description>
    </item>
    <item>
      <title>How SQL Injection Works, and How to Prevent It</title>
      <link>https://devsnap.cc/guides/sql-injection-explained/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/sql-injection-explained/</guid>
      <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
      <description>What SQL injection is, how string concatenation creates it, why parameterised queries fix it, and the cases where the danger is not the database at all.</description>
    </item>
    <item>
      <title>Twelve Regular Expressions Worth Knowing by Heart</title>
      <link>https://devsnap.cc/guides/regex-patterns-worth-knowing/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/regex-patterns-worth-knowing/</guid>
      <pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate>
      <description>Twelve regular expressions for the tasks that come up in every project: email, URL, dates, UUIDs, semantic versions and log levels, with the caveats.</description>
    </item>
    <item>
      <title>How to Read a JSON Web Token (JWT)</title>
      <link>https://devsnap.cc/guides/how-to-read-a-json-web-token/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/how-to-read-a-json-web-token/</guid>
      <pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate>
      <description>A practical guide to reading a JSON Web Token: what the header and payload contain, why the payload is readable by anyone, and how to check expiry.</description>
    </item>
    <item>
      <title>Cron Expressions: A Cheat Sheet and Its Traps</title>
      <link>https://devsnap.cc/guides/cron-expressions-cheat-sheet/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/cron-expressions-cheat-sheet/</guid>
      <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
      <description>The five fields of a Unix cron expression, the day-of-month and day-of-week rule that catches everybody, and the equivalents for AWS, Quartz and GitHub.</description>
    </item>
    <item>
      <title>WCAG Contrast Ratios for Developers</title>
      <link>https://devsnap.cc/guides/wcag-contrast-for-developers/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/wcag-contrast-for-developers/</guid>
      <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
      <description>What the contrast requirements actually are, which ones apply to your UI, and how to fix a failing pair without redesigning the brand palette.</description>
    </item>
    <item>
      <title>UTC vs Local Time: The Bugs It Causes</title>
      <link>https://devsnap.cc/guides/utc-versus-local-time/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/utc-versus-local-time/</guid>
      <pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate>
      <description>Why storing local time is a bug waiting to happen, how daylight saving breaks naive date arithmetic, and the formats you should use.</description>
    </item>
    <item>
      <title>What a Useful Diff Looks Like</title>
      <link>https://devsnap.cc/guides/what-a-good-diff-looks-like/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/what-a-good-diff-looks-like/</guid>
      <pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate>
      <description>Why line diffs are too coarse, when word-level highlighting helps, and how structural comparison changes the way you read a payload that changed shape.</description>
    </item>
    <item>
      <title>A Naming Convention for UTM Parameters</title>
      <link>https://devsnap.cc/guides/utm-parameter-naming/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/utm-parameter-naming/</guid>
      <pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate>
      <description>How to pick UTM source, medium and campaign values that produce a readable report, and why the casing decides whether a campaign is one row or five.</description>
    </item>
    <item>
      <title>Handling Environment Variables Safely</title>
      <link>https://devsnap.cc/guides/environment-variables-safely/</link>
      <guid isPermaLink="true">https://devsnap.cc/guides/environment-variables-safely/</guid>
      <pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate>
      <description>How to keep credentials out of version control and out of your shell history, and how to debug a variable that is not being picked up.</description>
    </item>
  </channel>
</rss>
