<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Django on Joel Hanson</title>
    <link>https://joelhanson.com/tags/django/</link>
    <description>Recent content in Django on Joel Hanson</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>joelhanson025@gmail.com (Joel Hanson)</managingEditor>
    <webMaster>joelhanson025@gmail.com (Joel Hanson)</webMaster>
    <copyright>&amp;copy; Joel Hanson</copyright>
    <lastBuildDate>Sun, 16 Nov 2025 17:00:00 +0530</lastBuildDate><atom:link href="https://joelhanson.com/tags/django/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Convert Your Django DRF Project to MCP in 5 Minutes</title>
      <link>https://joelhanson.com/posts/20-convert-your-django-drf-project-to-mcp-in-5-minutes/</link>
      <pubDate>Sun, 03 Aug 2025 15:20:06 +0530</pubDate>
      <author>joelhanson025@gmail.com (Joel Hanson)</author>
      <guid>https://joelhanson.com/posts/20-convert-your-django-drf-project-to-mcp-in-5-minutes/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;The Problem: When APIs Meet AI Assistants&#xA;    &lt;div id=&#34;the-problem-when-apis-meet-ai-assistants&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#the-problem-when-apis-meet-ai-assistants&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;A few weeks ago, I was experimenting with &lt;a href=&#34;https://modelcontextprotocol.io/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Model Context Protocol (MCP)&lt;/a&gt; for a &lt;a href=&#34;https://joelhanson.com/posts/16-breaking-kafka-walls-building-an-mcp-server-for-your-kafka-cluster/&#34; &gt;Kafka integration project&lt;/a&gt;. The experience was eye-opening - being able to interact with complex systems through natural language felt like a glimpse into the future of development workflows.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Django DRF → MCP</title>
      <link>https://joelhanson.com/projects/django-drf-mcp/</link>
      <pubDate>Sun, 03 Aug 2025 00:00:00 +0000</pubDate>
      <author>joelhanson025@gmail.com (Joel Hanson)</author>
      <guid>https://joelhanson.com/projects/django-drf-mcp/</guid>
      <description>Turn an existing Django REST Framework project into MCP tools for AI assistants in minutes.</description>
      
    </item>
    
    <item>
      <title>Django Celery → Restate</title>
      <link>https://joelhanson.com/projects/django-celery-restate/</link>
      <pubDate>Mon, 15 Sep 2025 00:00:00 +0000</pubDate>
      <author>joelhanson025@gmail.com (Joel Hanson)</author>
      <guid>https://joelhanson.com/projects/django-celery-restate/</guid>
      <description>Compare Celery-style async tasks in Django with Restate durable execution on the same workload.</description>
      
    </item>
    
    <item>
      <title>From Celery to Restate: Rethinking Async Tasks in Django</title>
      <link>https://joelhanson.com/posts/24-from-celery-to-restate-rethinking-async-tasks-in-django/</link>
      <pubDate>Sun, 16 Nov 2025 17:00:00 +0530</pubDate>
      <author>joelhanson025@gmail.com (Joel Hanson)</author>
      <guid>https://joelhanson.com/posts/24-from-celery-to-restate-rethinking-async-tasks-in-django/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;The Celery Question&#xA;    &lt;div id=&#34;the-celery-question&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#the-celery-question&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;For years, when someone asked &amp;ldquo;How do I handle background tasks in Django?&amp;rdquo;, the answer was almost always &amp;ldquo;Use Celery&amp;rdquo;. And for good reason. Celery is mature, battle-tested, and has solved async task processing for countless Django applications. It has extensive documentation, a large ecosystem of plugins, and most Django developers have at least some experience with it.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
