<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ayush — Blog</title>
    <link>https://synax.me/blogs</link>
    <description>Notes on building in public, the self-taught path, and application security.</description>
    <language>en</language>
    <lastBuildDate>Thu, 08 Oct 2026 11:55:15 GMT</lastBuildDate>
    <atom:link href="https://synax.me/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Starting a blog</title>
      <link>https://synax.me/blogs/starting-a-blog</link>
      <guid isPermaLink="true">https://synax.me/blogs/starting-a-blog</guid>
      <pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
      <description>Why this site now has a /blogs page, what I plan to write about, and how a post actually gets published.</description>
      <category>Meta</category>
      <category>Writing</category>
    </item>
    <item>
      <title>Rate-limiting a contact form without a database</title>
      <link>https://synax.me/blogs/rate-limiting-a-contact-form</link>
      <guid isPermaLink="true">https://synax.me/blogs/rate-limiting-a-contact-form</guid>
      <pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate>
      <description>A fixed-window limiter for a Next.js route handler — no Redis, no Upstash, just a Map and a prune.</description>
      <category>Next.js</category>
      <category>TypeScript</category>
      <category>Security</category>
    </item>
  </channel>
</rss>
