<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Dotpane blog</title>
    <link>https://dotpane.com/blog</link>
    <description>Guides for people who build their own dashboards: hiding API keys, fixing CORS errors, sandboxing untrusted code, and panes worth copying.</description>
    <language>en</language>
    <atom:link href="https://dotpane.com/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Wed, 11 Nov 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>CORS error on fetch: what causes it and how to fix it</title>
      <link>https://dotpane.com/blog/cors-error-fetch</link>
      <guid isPermaLink="true">https://dotpane.com/blog/cors-error-fetch</guid>
      <description>The browser, not the server, blocks your fetch. What the CORS error means, why no-cors doesn’t help, and which fix fits an API you own or one you don’t.</description>
      <pubDate>Wed, 11 Nov 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>How to hide an API key in frontend JavaScript</title>
      <link>https://dotpane.com/blog/hide-api-key-frontend-javascript</link>
      <guid isPermaLink="true">https://dotpane.com/blog/hide-api-key-frontend-javascript</guid>
      <description>You can’t hide an API key in frontend JavaScript: the browser has to send it. Here are the three ways to keep it on a server, and what each costs.</description>
      <pubDate>Wed, 11 Nov 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>SSRF protection for a fetch endpoint in Node.js</title>
      <link>https://dotpane.com/blog/ssrf-protection-fetch-endpoint</link>
      <guid isPermaLink="true">https://dotpane.com/blog/ssrf-protection-fetch-endpoint</guid>
      <description>How to stop a server that fetches URLs from reaching your private network: private ranges, DNS rebinding, redirects and IPv6, with working Node code.</description>
      <pubDate>Wed, 11 Nov 2026 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>
