<?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/"
     xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>WebbyFox Blog — Rizwan Mansuri</title>
    <link>https://www.webbyfox.com/blog/</link>
    <atom:link href="https://www.webbyfox.com/blog/feed.xml" rel="self" type="application/rss+xml" />
    <description>Practical articles on Django, Python, Wagtail, AI and web development — written from experience building production systems for UK Government, Gov.ie, HSBC and LSEG.</description>
    <language>en-gb</language>
    <copyright>© 2026 Rizwan Mansuri</copyright>
    <managingEditor>mr.mansuri@gmail.com (Rizwan Mansuri)</managingEditor>
    <webMaster>mr.mansuri@gmail.com (Rizwan Mansuri)</webMaster>
    <lastBuildDate>Tue, 12 May 2026 09:00:00 +0000</lastBuildDate>
    <pubDate>Tue, 12 May 2026 09:00:00 +0000</pubDate>
    <generator>webbyfox.com</generator>
    <docs>https://www.rssboard.org/rss-specification</docs>
    <ttl>1440</ttl>
    <image>
      <url>https://www.webbyfox.com/og-image.png</url>
      <title>WebbyFox Blog — Rizwan Mansuri</title>
      <link>https://www.webbyfox.com/blog/</link>
    </image>

    <item>
      <title>AI-Native Architecture: Designing Django Applications Built Around Intelligence</title>
      <link>https://www.webbyfox.com/blog/ai-native-architecture/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/ai-native-architecture/</guid>
      <pubDate>Tue, 12 May 2026 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Python</category>
      <category>Django</category>
      <category>AI</category>
      <category>Architecture</category>
      <description><![CDATA[Move beyond bolt-on AI. Design Django apps where intelligence is a load-bearing layer — async queues, token budgets, prompt registries, RAG, model routing, human-in-the-loop.]]></description>
    </item>

    <item>
      <title>Profiling Python for Energy Efficiency: Beyond Performance</title>
      <link>https://www.webbyfox.com/blog/profiling-python-energy-efficiency/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/profiling-python-energy-efficiency/</guid>
      <pubDate>Sat, 09 May 2026 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Python</category>
      <category>Performance</category>
      <description><![CDATA[Fast code isn't always green code. Measure CPU energy with pyRAPL, track CO₂ with CodeCarbon, fix the Django patterns silently burning the most power.]]></description>
    </item>

    <item>
      <title>Python 3.15: Every New Feature Worth Knowing</title>
      <link>https://www.webbyfox.com/blog/python-3-15-new-features/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/python-3-15-new-features/</guid>
      <pubDate>Fri, 08 May 2026 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Python</category>
      <category>Performance</category>
      <description><![CDATA[Lazy imports, frozendict, sentinel type, comprehension unpacking, UTF-8 default, Tachyon profiler, and an 8–9% JIT boost. Every production-relevant change with working code.]]></description>
    </item>

    <item>
      <title>Are Farming Robots Worth the Cost? A Practical ROI Analysis</title>
      <link>https://www.webbyfox.com/blog/are-farming-robots-worth-the-cost/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/are-farming-robots-worth-the-cost/</guid>
      <pubDate>Wed, 06 May 2026 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Robotics</category>
      <category>Python</category>
      <description><![CDATA[Hardware costs, labour savings, hidden costs, and a Python break-even calculator. Honest look at when commercial and DIY ag robots actually pay for themselves.]]></description>
    </item>

    <item>
      <title>AI-Powered Precision Farming Robots</title>
      <link>https://www.webbyfox.com/blog/ai-precision-farming-robots/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/ai-precision-farming-robots/</guid>
      <pubDate>Fri, 01 May 2026 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Python</category>
      <category>AI</category>
      <category>Robotics</category>
      <description><![CDATA[GPS waypoint missions over MQTT, on-device TFLite weed detection on Raspberry Pi, variable-rate sprayer control over GPIO PWM, nightly Claude crop advisor.]]></description>
    </item>

    <item>
      <title>Generative AI with Python: From API Calls to Production Patterns</title>
      <link>https://www.webbyfox.com/blog/genai-python-guide/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/genai-python-guide/</guid>
      <pubDate>Thu, 30 Apr 2026 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Python</category>
      <category>GenAI</category>
      <description><![CDATA[LLM mental models, token arithmetic, prompt engineering, structured output, tool use, embeddings, RAG, streaming, retries, prompt caching, cost tracking.]]></description>
    </item>

    <item>
      <title>AI Exposure by Occupation: Inside Karpathy's Job Market Visualizer</title>
      <link>https://www.webbyfox.com/blog/karpathy-ai-job-exposure-visualizer/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/karpathy-ai-job-exposure-visualizer/</guid>
      <pubDate>Fri, 24 Apr 2026 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>AI</category>
      <category>Python</category>
      <category>Django</category>
      <description><![CDATA[342 US occupations scored for AI exposure by an LLM pipeline. Software devs hit 8–9/10. What that means and how to build the scoring pipeline in Python and Django.]]></description>
    </item>

    <item>
      <title>Wagtail Custom Admin: Views, Menu Items, and ModelAdmin</title>
      <link>https://www.webbyfox.com/blog/wagtail-custom-admin/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/wagtail-custom-admin/</guid>
      <pubDate>Tue, 10 Mar 2026 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Wagtail</category>
      <category>Python</category>
      <category>Django</category>
      <description><![CDATA[Extend the Wagtail admin with snippets, SnippetViewSet, custom menu items, admin views, lifecycle hooks, dashboard panels, and permissions — with working code for each.]]></description>
    </item>

    <item>
      <title>Deploying Wagtail to Production: Docker, Nginx, and PostgreSQL</title>
      <link>https://www.webbyfox.com/blog/wagtail-production-deployment/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/wagtail-production-deployment/</guid>
      <pubDate>Sun, 18 Jan 2026 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Wagtail</category>
      <category>Django</category>
      <category>DevOps</category>
      <description><![CDATA[Full production setup: Dockerfile, docker-compose, Nginx, Gunicorn, PostgreSQL, Redis, WhiteNoise, volume-mounted media, SSL with Certbot, health checks.]]></description>
    </item>

    <item>
      <title>Build a Crypto Portfolio Tracker with Django and the CoinGecko API</title>
      <link>https://www.webbyfox.com/blog/crypto-portfolio-tracker-django-coingecko/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/crypto-portfolio-tracker-django-coingecko/</guid>
      <pubDate>Thu, 25 Dec 2025 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Django</category>
      <category>Python</category>
      <description><![CDATA[Live price updates over WebSocket, Celery Beat refreshing prices every five minutes, price alerts, and a full DRF API — all on the free CoinGecko tier, no API key required.]]></description>
    </item>

    <item>
      <title>Wagtail StreamField: A Deep Dive with Custom Blocks</title>
      <link>https://www.webbyfox.com/blog/wagtail-streamfield-custom-blocks/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/wagtail-streamfield-custom-blocks/</guid>
      <pubDate>Thu, 20 Nov 2025 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Wagtail</category>
      <category>Python</category>
      <description><![CDATA[Every block type, custom StructBlock, ListBlock, nested StreamBlock, ChooserBlocks, block templates, querying StreamField data, and handling rename migrations.]]></description>
    </item>

    <item>
      <title>RAG with Django: Chat Over Your Wagtail CMS Content</title>
      <link>https://www.webbyfox.com/blog/rag-django-wagtail-cms-chat/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/rag-django-wagtail-cms-chat/</guid>
      <pubDate>Wed, 12 Nov 2025 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Django</category>
      <category>Wagtail</category>
      <category>AI</category>
      <description><![CDATA[pgvector + OpenAI embeddings + Claude API — build a retrieval-augmented chat API for Wagtail with streaming responses and auto-indexing on page publish.]]></description>
    </item>

    <item>
      <title>Wagtail vs Django CMS: Technical Comparison and Editor Experience</title>
      <link>https://www.webbyfox.com/blog/wagtail-vs-django-cms/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/wagtail-vs-django-cms/</guid>
      <pubDate>Wed, 15 Oct 2025 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Wagtail</category>
      <category>Django</category>
      <description><![CDATA[StreamField vs placeholders, Wagtail admin vs frontend editing toolbar, plugin systems, multi-site, search, and headless. Hands-on breakdown of which CMS to pick and why.]]></description>
    </item>

    <item>
      <title>Wagtail Headless CMS with Next.js: A Practical Guide</title>
      <link>https://www.webbyfox.com/blog/wagtail-headless-cms-nextjs/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/wagtail-headless-cms-nextjs/</guid>
      <pubDate>Mon, 22 Sep 2025 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Wagtail</category>
      <category>Next.js</category>
      <description><![CDATA[Wagtail API v2, CORS, custom API fields, ISR, StreamField rendering in React, responsive image renditions, and draft preview mode — the complete headless guide.]]></description>
    </item>

    <item>
      <title>Automated Greenhouse Control with Python: MQTT, PID, Django Dashboard</title>
      <link>https://www.webbyfox.com/blog/greenhouse-automation-python-mqtt/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/greenhouse-automation-python-mqtt/</guid>
      <pubDate>Thu, 14 Aug 2025 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Python</category>
      <category>Django</category>
      <category>IoT</category>
      <description><![CDATA[Sensors publish over MQTT, a Python PID controller drives vents and irrigation, Django persists the time-series, Django Channels streams live data to a dashboard.]]></description>
    </item>

    <item>
      <title>How to Add an AI Chatbot to Any Django Site in a Weekend</title>
      <link>https://www.webbyfox.com/blog/django-ai-chatbot-weekend/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/django-ai-chatbot-weekend/</guid>
      <pubDate>Mon, 28 Jul 2025 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Django</category>
      <category>Python</category>
      <category>AI</category>
      <description><![CDATA[Build a streaming Claude chatbot in two days — Django model, SSE endpoint, session history, floating widget, rate limiting, and production checklist.]]></description>
    </item>

    <item>
      <title>Robotic Crop Monitoring with Python: Django + Computer Vision</title>
      <link>https://www.webbyfox.com/blog/robotic-farming-python-crop-monitoring/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/robotic-farming-python-crop-monitoring/</guid>
      <pubDate>Thu, 12 Jun 2025 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Python</category>
      <category>Django</category>
      <category>AI</category>
      <category>Robotics</category>
      <description><![CDATA[Raspberry Pi robot captures plant images, POSTs to a Django REST API, Celery analyses each image with Claude Vision, Django Channels pushes real-time disease alerts.]]></description>
    </item>

    <item>
      <title>Build a Blog with Wagtail: Complete Beginner Tutorial</title>
      <link>https://www.webbyfox.com/blog/build-blog-with-wagtail/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/build-blog-with-wagtail/</guid>
      <pubDate>Tue, 15 Apr 2025 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Wagtail</category>
      <category>Python</category>
      <category>Tutorial</category>
      <description><![CDATA[From pip install to a published post — page models, StreamField body, tag filtering, pagination, RSS feed, and SEO fields. The complete step-by-step Wagtail beginner guide.]]></description>
    </item>

    <item>
      <title>How to Set Up Wagtail with Elasticsearch</title>
      <link>https://www.webbyfox.com/blog/wagtail-elasticsearch-setup/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/wagtail-elasticsearch-setup/</guid>
      <pubDate>Wed, 05 Mar 2025 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Wagtail</category>
      <category>Django</category>
      <category>Elasticsearch</category>
      <description><![CDATA[Install the client, configure the backend, define search fields, add autocomplete, boost fields for relevance, filter results, index StreamField, zero-downtime reindexing.]]></description>
    </item>

    <item>
      <title>Django REST API + Celery: Async AI Tasks Without Blocking Your Workers</title>
      <link>https://www.webbyfox.com/blog/django-celery-async-ai-tasks/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/django-celery-async-ai-tasks/</guid>
      <pubDate>Thu, 03 Oct 2024 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Django</category>
      <category>Python</category>
      <category>Celery</category>
      <category>AI</category>
      <description><![CDATA[Stop blocking Django workers on slow LLM calls. Build a 202 Accepted → Celery task → poll pattern with AITask model, exponential backoff, SSE streaming, priority queues.]]></description>
    </item>

    <item>
      <title>Muslims in India: Data and Visual Evidence of Marginalization</title>
      <link>https://www.webbyfox.com/blog/muslims-india-marginalization-data/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/muslims-india-marginalization-data/</guid>
      <pubDate>Sat, 18 Nov 2023 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Data</category>
      <category>Policy</category>
      <description><![CDATA[Official government data — Sachar Report, Census 2011, NCRB, Election Commission — shows under-representation in every institution and below national-average development indicators.]]></description>
    </item>

    <item>
      <title>Django REST API Best Practices</title>
      <link>https://www.webbyfox.com/blog/django-rest-api-best-practices/</link>
      <guid isPermaLink="true">https://www.webbyfox.com/blog/django-rest-api-best-practices/</guid>
      <pubDate>Tue, 07 Nov 2023 09:00:00 +0000</pubDate>
      <dc:creator>Rizwan Mansuri</dc:creator>
      <category>Django</category>
      <category>Python</category>
      <category>DRF</category>
      <description><![CDATA[Production-proven patterns for structuring DRF projects — serializers, authentication, permissions, filtering, pagination, versioning, error handling, and testing.]]></description>
    </item>

  </channel>
</rss>
