<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Faraz Shah - Blog</title>
    <link>https://faraz-shah.vercel.app/blogs</link>
    <description>Notes on building with React, Next.js, TypeScript, and AI-driven products.</description>
    <language>en</language>
    <atom:link href="https://faraz-shah.vercel.app/feed.xml" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sat, 25 Jul 2026 09:00:00 GMT</lastBuildDate>
    
    <item>
      <title>Structuring FastAPI Services That Survive Past the Prototype</title>
      <link>https://faraz-shah.vercel.app/blogs/structuring-fastapi-services-that-survive-past-the-prototype</link>
      <description>FastAPI makes it trivially easy to ship a working endpoint in ten minutes. Keeping that codebase sane six months and thirty endpoints later takes a bit more structure.</description>
      <dc:creator>Faraz Shah</dc:creator>
      <pubDate>Sat, 25 Jul 2026 09:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://faraz-shah.vercel.app/blogs/structuring-fastapi-services-that-survive-past-the-prototype</guid>
      <category>FastAPI</category>
    </item>
    <item>
      <title>Python Project Structure That Scales Past a Single Script</title>
      <link>https://faraz-shah.vercel.app/blogs/python-project-structure-that-scales-past-a-single-script</link>
      <description>Most Python projects start as one file and stay that way far longer than they should. Notes on the project layout, dependency, and typing decisions that actually pay off as a codebase grows.</description>
      <dc:creator>Faraz Shah</dc:creator>
      <pubDate>Mon, 15 Jun 2026 09:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://faraz-shah.vercel.app/blogs/python-project-structure-that-scales-past-a-single-script</guid>
      <category>Python</category>
    </item>
    <item>
      <title>What Shipping AI Features in Production Actually Takes</title>
      <link>https://faraz-shah.vercel.app/blogs/what-shipping-ai-features-in-production-actually-takes</link>
      <description>Prompting a model in a playground and shipping an AI feature real users depend on are two different jobs. Notes on evals, latency, cost, and the failure modes that only show up in production.</description>
      <dc:creator>Faraz Shah</dc:creator>
      <pubDate>Fri, 24 Jul 2026 09:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://faraz-shah.vercel.app/blogs/what-shipping-ai-features-in-production-actually-takes</guid>
      <category>AI</category>
    </item>
    <item>
      <title>Building a Support Chatbot That Doesn&apos;t Feel Like One</title>
      <link>https://faraz-shah.vercel.app/blogs/building-a-support-chatbot-that-doesnt-feel-like-one</link>
      <description>Most chatbots fail on tone and scope, not technology. Lessons from building conversational assistants that actually resolve issues instead of frustrating the person typing.</description>
      <dc:creator>Faraz Shah</dc:creator>
      <pubDate>Fri, 17 Jul 2026 09:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://faraz-shah.vercel.app/blogs/building-a-support-chatbot-that-doesnt-feel-like-one</guid>
      <category>Chatbots</category>
    </item>
    <item>
      <title>Scoping an MVP Without Killing the Idea</title>
      <link>https://faraz-shah.vercel.app/blogs/scoping-an-mvp-without-killing-the-idea</link>
      <description>The line between a lean MVP and a broken one is thinner than most teams think. What actually belongs in a first release, and what&apos;s safe to cut without gutting the product&apos;s reason for existing.</description>
      <dc:creator>Faraz Shah</dc:creator>
      <pubDate>Sun, 05 Jul 2026 09:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://faraz-shah.vercel.app/blogs/scoping-an-mvp-without-killing-the-idea</guid>
      <category>Product</category>
    </item>
    <item>
      <title>Migrating a Vite + React Portfolio to Next.js 15</title>
      <link>https://faraz-shah.vercel.app/blogs/migrating-a-vite-react-portfolio-to-nextjs-15</link>
      <description>Notes from moving this exact site from Vite/CRA-style tooling to the Next.js App Router — feature folders, Tailwind v4, and the React Three Fiber gotchas along the way.</description>
      <dc:creator>Faraz Shah</dc:creator>
      <pubDate>Mon, 20 Jul 2026 09:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://faraz-shah.vercel.app/blogs/migrating-a-vite-react-portfolio-to-nextjs-15</guid>
      <category>Next.js</category>
    </item>
    <item>
      <title>Building 3D Portfolios with React Three Fiber</title>
      <link>https://faraz-shah.vercel.app/blogs/building-3d-portfolios-with-react-three-fiber</link>
      <description>How the animated starfield background and interactive 3D scenes on this site are built with @react-three/fiber and drei, and what actually matters for performance.</description>
      <dc:creator>Faraz Shah</dc:creator>
      <pubDate>Fri, 10 Jul 2026 09:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://faraz-shah.vercel.app/blogs/building-3d-portfolios-with-react-three-fiber</guid>
      <category>React</category>
    </item>
    <item>
      <title>TypeScript Patterns I Actually Use in Production</title>
      <link>https://faraz-shah.vercel.app/blogs/typescript-patterns-i-actually-use</link>
      <description>A short list of TypeScript patterns that consistently pay off in real projects — discriminated unions for content blocks, typed motion variants, and narrow prop types over &apos;any&apos;.</description>
      <dc:creator>Faraz Shah</dc:creator>
      <pubDate>Sun, 28 Jun 2026 09:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://faraz-shah.vercel.app/blogs/typescript-patterns-i-actually-use</guid>
      <category>TypeScript</category>
    </item>
  </channel>
</rss>