{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "The Full Stack CISO",
  "home_page_url": "https://thefullstackciso.com/",
  "feed_url": "https://thefullstackciso.com/feed.json",
  "description": "The Full Stack CISO: essays on shipping secure software, from a security leader who still writes the code.",
  "authors": [
    {
      "name": "Rajat"
    }
  ],
  "language": "en-US",
  "items": [
    {
      "id": "https://thefullstackciso.com/posts/free-tier-trap/",
      "url": "https://thefullstackciso.com/posts/free-tier-trap/",
      "title": "The free-tier trap: the cache that almost DoS'd my own app",
      "summary": "I added a cache to save money. It nearly took the app down, and the alert looked like an attack. A postmortem on reading the fine print.",
      "date_published": "2026-06-28T00:00:00.000Z",
      "tags": [
        "Incident",
        "cloudflare",
        "postmortem",
        "cost",
        "kv"
      ]
    },
    {
      "id": "https://thefullstackciso.com/posts/captcha-is-free/",
      "url": "https://thefullstackciso.com/posts/captcha-is-free/",
      "title": "Your CAPTCHA is free (and other Cloudflare cost myths)",
      "summary": "Turnstile is genuinely unlimited and free. The catch isn’t the price — it’s knowing where your bill actually comes from.",
      "date_published": "2026-06-21T00:00:00.000Z",
      "tags": [
        "Strategy",
        "cloudflare",
        "turnstile",
        "cost",
        "bots"
      ]
    },
    {
      "id": "https://thefullstackciso.com/posts/defend-the-wallet/",
      "url": "https://thefullstackciso.com/posts/defend-the-wallet/",
      "title": "Defend the wallet, not just the data",
      "summary": "Cost is a security property. Map the surfaces that spend money, then cap every one of them — and prove the cap actually caps.",
      "date_published": "2026-06-14T00:00:00.000Z",
      "tags": [
        "Leadership",
        "cost",
        "rate-limiting",
        "abuse"
      ]
    },
    {
      "id": "https://thefullstackciso.com/posts/fixes-i-didnt-ship/",
      "url": "https://thefullstackciso.com/posts/fixes-i-didnt-ship/",
      "title": "The security fixes I deliberately did NOT ship",
      "summary": "Restraint is a senior skill nobody blogs about. Three hardening ideas that were correct in theory and would have broken production.",
      "date_published": "2026-06-07T00:00:00.000Z",
      "tags": [
        "Practice",
        "tradeoffs",
        "production",
        "restraint"
      ]
    },
    {
      "id": "https://thefullstackciso.com/posts/zero-dollar-siem/",
      "url": "https://thefullstackciso.com/posts/zero-dollar-siem/",
      "title": "A $0 SIEM-lite: pg_cron + Cloudflare GraphQL + Resend",
      "summary": "You do not need an enterprise logging tier to know when something is off. Three free parts, wired into a daily report and an hourly alarm.",
      "date_published": "2026-05-31T00:00:00.000Z",
      "tags": [
        "Engineering",
        "monitoring",
        "pg_cron",
        "cloudflare",
        "resend"
      ]
    },
    {
      "id": "https://thefullstackciso.com/posts/otp-only-auth/",
      "url": "https://thefullstackciso.com/posts/otp-only-auth/",
      "title": "OTP-only auth: when the email IS the identity",
      "summary": "A one-time code stops password theft. It does not stop disposable inboxes from farming accounts — each one with a fresh set of cost caps.",
      "date_published": "2026-05-24T00:00:00.000Z",
      "tags": [
        "Supply chain",
        "auth",
        "otp",
        "abuse",
        "fail-open"
      ]
    },
    {
      "id": "https://thefullstackciso.com/posts/defense-in-depth-nonprofit/",
      "url": "https://thefullstackciso.com/posts/defense-in-depth-nonprofit/",
      "title": "Defense in depth on a nonprofit budget",
      "summary": "The full free-tier security map — and the one architectural fact that reorders every priority on it.",
      "date_published": "2026-05-17T00:00:00.000Z",
      "tags": [
        "Leadership",
        "architecture",
        "defense-in-depth",
        "cloudflare",
        "supabase"
      ]
    }
  ]
}