Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Boost Your GitHub DX - Adam Johnson
🔗 Links Adam's Books Introducing tprof Introducing icu4py Carlton's keynote at DjangoCon Europe Recent trends in the work of the Django Security Team 📦 Projects dj-urls-panel Hornbeam Tachyon 📚 Books The Coming Wave by Mustafa Suleyman The BEAM Book: Understanding the Erlang Runtime — Erik Stenman The Fabric of Civilization by Virginia Postrel 🎥 YouTube YouTube Channel: @djangochat Sponsor This episode is brought to you by Six Feet Up, the Python, Django, and AI experts who solve hard software problems. Whether it’s scaling an application, deriving insights from data, or getting results from AI, Six Feet Up helps you move forward faster. See what’s possible at https://sixfeetup.com/. -
How to Generate SEO Descriptions for Your Entire Wagtail Site at Once
Recently, I've used Wagtail AI internals to mass-generate SEO descriptions for my blog posts. 150+ pages, done in minutes — way faster than clicking through the admin UI one page at a time. Wagtail AI package provides you with a solid set of AI tools that help with text … Read now -
Django News - Balancing the AI Flood in Django - Mar 27th 2026
News Calling for research participants from Django, Laravel, Ruby on Rails, Next.js and Spring Boot communities Former DSF President and researcher Anna Makarudze is seeking Django developers to share insights on dependency vulnerabilities and supply chain risks in open source. pychronicles.com Djangonaut Space News Djangonaut Space Financial Report 2025 Djangonaut Space’s 2025 report highlights a community-powered year of $2.2k in donations funding tools and conference access, while setting sights on sending contributors to even more events in 2026. djangonaut.space Djangonaut diaries, week 3 - Working on an ORM issue A deep dive into Django’s ManyToMany indexes reveals an unnecessary extra index, showing how databases already optimize with composite indexes and setting the stage for a cleaner ORM fix. dev.to Wagtail CMS News Wagtail Routable Pages and Layout Configuration Build flexible Wagtail routable pages that use StreamField layouts to dynamically control how Django model data renders on detail views. djangotricks.com Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 18 pull requests merged into Django by 15 different contributors - including 4 first-time contributors! Congratulations to Juho Hautala, Huwaiza, (James) Kanin Kearpimy 🚀 and Praful Gulani for having their first commits … -
Balancing the AI Flood in Django
News Calling for research participants from Django, Laravel, Ruby on Rails, Next.js and Spring Boot communities Former DSF President and researcher Anna Makarudze is seeking Django developers to share insights on dependency vulnerabilities and supply chain risks in open source. Djangonaut Space News Djangonaut Space Financial Report 2025 Djangonaut Space’s 2025 report highlights a community-powered year of $2.2k in donations funding tools and conference access, while setting sights on sending contributors to even more events in 2026. Djangonaut diaries, week 3 - Working on an ORM issue A deep dive into Django’s ManyToMany indexes reveals an unnecessary extra index, showing how databases already optimize with composite indexes and setting the stage for a cleaner ORM fix. Wagtail CMS News Wagtail Routable Pages and Layout Configuration Build flexible Wagtail routable pages that use StreamField layouts to dynamically control how Django model data renders on detail views. Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 18 pull requests merged into Django by 15 different contributors - including 4 first-time contributors! Congratulations to Juho Hautala, Huwaiza, (James) Kanin Kearpimy 🚀 and Praful Gulani for having their first commits merged into Django - … -
LLMs for Open Source maintenance: a cautious case
LLMs for Open Source maintenance: a cautious case When ChatGPT appeared on the scene I was very annoyed at all the hype surrounding it. Since I’m working in the fast moving and low margin business of communication and campaigning agencies I’m surrounded by people eager to jump on the hype train when a tool promises to lessen the workload and take stuff from everyone’s plate. These discussions coupled with the fact that the training of these tools required unfathomable amounts of stealing were the reason for a big reluctance on my part when trying them out. I’m using the word stealing here on purpose, since that’s exactly the crime Aaron Swartz was accused of by the attorney’s office of the district of Massachusetts. It’s frustrating that some people can get away with the same crime when it is so much bigger. For example, OpenAI and Anthropic downloaded much more data than Aaron ever did. A somewhat related thing happened with the too-big-to-fail banks: There, the people at the top were even compensated with golden parachutes at the end. LLM companies seem to be above accountability too. Despite all this, I have slowly started integrating these tools into my workflows. I … -
Building modern Django apps with Alpine AJAX, revisited
About nine months ago I wrote an article about my quest to simplify my web development stack. How I went from SvelteKit on the frontend and Django on the backend, to an all-Django stack for a new project, using Alpine AJAX to enable partial page updates. I’ve now been using this new stack for a while, and my approach -as well as my opinion- has changed significantly. Let’s get into what works, what doesn’t, and where I ended up. A quick recap Alpine AJAX is a lightweight alternative to htmx, which you can use to enhance server-side rendered HTML with a few attributes, turning <a> and <form> tags into AJAX-powered versions. No more full page refreshes when you submit a form. The key mechanic: when a form has x-target="comments", Alpine AJAX submits the form via AJAX, finds the element with that ID in the response, and swaps it into the page. The server returns HTML, not JSON. In the original article I used django-template-partials (since merged into Django itself) to mark sections of a template as named partials using {% partialdef %}. Combined with a custom AlpineTemplateResponse the view could automatically return just the targeted partial when the request came … -
Built with Django — Weekly Roundup (Mar 16–Mar 23, 2026)
Hey, Happy Monday! Why are you getting this: *You signed up to receive this newsletter on Built with Django. I promised to send you the latest projects and jobs on the site as well as any other interesting Django content I encountered during the month. If you don't want to receive this newsletter, feel free to unsubscribe anytime. Sponsor This issue is sponsored by TuxSEO — your AI content team on auto-pilot. Plan and ship SEO content faster Generate practical, publish-ready drafts Keep your content pipeline moving every week Projects Reckot - Speak and We make it, event management reinvent. Your Cloud Hub - YourCloudHub.ai is a technology and digital solutions company offering IT staffing and outsourcing services along with software development, website development, digital marketing. From the Community Django Apps vs Projects Explained: A Complete Production Guide - DEV Community Building a Seamless JWT Onboarding Flow with React Router v7 and Django - DEV Community How to Show a Waitlist Until Your Wagtail Site Is Ready Support You can support this project by using one of the affiliate links below. These are always going to be projects I use and love! No "Bluehost" crap here! Buttondown - Email newsletter … -
Human.json
I have seen more and more people talk about human.json lately and I think it is a pretty neat idea. From what I can tell it checks all the boxes I would expect from a protocol like this. The fact that it relies on browser extensions right now makes sense, but might become a limiting factor in future. Or the number of extensions needs to go up beyond the two easy ones and come to mobile as well. I am not sure this will be going anywhere beyond a few enthusiastic people, but you never know. Implementing the protocol was not much work, which is expected considering it only consists of two required values and an optional list of two more values. If you want to add it to your Django based site, I packaged everything up and you can find it on PyPI. Should you use the package? Eh, that is not an easy question. From a supply chain perspective I would say "no". It is only a few lines of code. But you never know how the protocol will evolve, so things might look more complicated in a month. I will do my best to keep up with … -
Wagtail Routable Pages and Layout Configuration
If you are familiar with Wagtail CMS for Django, you know that you can create Wagtail pages and control their content and layout with blocks inside of stream fields. But what if you have entries coming from normal Django models through a routable page? In this article, I will explore how you can control the dynamic layout of a detail view in a routable page. Routable pages in Wagtail are dynamic pages of your CMS page tree that can have their own URL subpaths and views. You can use them for filtered list and detail views, multi-step forms, multiple formats for the same data, etc. Here I will show you a routable ArticleIndexPage with a list and detail views for Article instances rendering the detail views based on the block layout in a detail_layout stream field. 1. Project Setup Create a Wagtail project myproject and articles app: pip install wagtail wagtail start myproject cd myproject python manage.py startapp articles Add to INSTALLED_APPS in your Django project settings: INSTALLED_APPS = [ ... "wagtail.contrib.routable_page", # required for RoutablePage "myproject.apps.articles", ] 2. File Structure The articles app: myproject/apps/articles/ ├── __init__.py ├── apps.py ├── models.py # Article, Category, ArticleIndexPage ├── blocks.py # All StreamField … -
How to Show a Waitlist Until Your Wagtail Site Is Ready
This year, I want to bring my centralized gamified donation platform www.make-impact.org to life (at least technically). Earlier I had the version I was developing separate from the waiting list, but I decided to merge them and have a switch between the waitlist and an early preview. This allows me to have no data duplication, the possibility to create user accounts immediately, and saves hosting and maintenance costs. This guide walks through a pattern that lets you ship a temporary waitlist page while your Wagtail site is still being built, with the ability to show your progress to chosen people. If you are building a Software as a Service (SaaS) or a web platform with Django, this article is for you. The Concept A custom start page view will check for a specific cookie value. If it is unset, the visitor will be redirected to a waitlist form at /waitlist/. If it is set, the visitor will be served the Wagtail home page. All views under development will have a decorator that checks the cookie value and redirects to the start page if it is unset. There will be a special view at /preview-access/ with a passphrase form that allows … -
Django News - Sunsetting Jazzband - Mar 20th 2026
News Sunsetting Jazzband After more than a decade maintaining 80+ Python projects, Jazzband is winding down as AI-generated spam and long-standing sustainability challenges make its open, shared-maintenance model no longer viable. jazzband.co Astral to join OpenAI Astral, creators of Ruff and uv, are joining OpenAI’s Codex team to push the future of AI-powered Python development while continuing to support their open source tools. astral.sh Wagtail CMS News Wagtail Security team no longer accepts GPG-encrypted emails Wagtail’s security team has dropped GPG-encrypted email support, citing zero real-world use and modern encryption making it unnecessary while simplifying their workflow. wagtail.org Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 18 pull requests merged into Django by 15 different contributors - including a first-time contributor! Congratulations to dcsid for having their first commits merged into Django - welcome on board! The undocumented get_placeholder method of Field is deprecated in favor of the newly introduced get_placeholder_sql method, which has the same input signature but is expected to return a two-elements tuple composed of an SQL format string and a tuple of associated parameters. This method should now expect to be provided expressions meant to … -
Sunsetting Jazzband
News Sunsetting Jazzband After more than a decade maintaining 80+ Python projects, Jazzband is winding down as AI-generated spam and long-standing sustainability challenges make its open, shared-maintenance model no longer viable. Astral to join OpenAI Astral, creators of Ruff and uv, are joining OpenAI’s Codex team to push the future of AI-powered Python development while continuing to support their open source tools. Wagtail CMS News Wagtail Security team no longer accepts GPG-encrypted emails Wagtail’s security team has dropped GPG-encrypted email support, citing zero real-world use and modern encryption making it unnecessary while simplifying their workflow. Updates to Django Today, "Updates to Django" is presented by Raffaella from Djangonaut Space! 🚀 Last week we had 18 pull requests merged into Django by 15 different contributors - including a first-time contributor! Congratulations to dcsid for having their first commits merged into Django - welcome on board! The undocumented get_placeholder method of Field is deprecated in favor of the newly introduced get_placeholder_sql method, which has the same input signature but is expected to return a two-elements tuple composed of an SQL format string and a tuple of associated parameters. This method should now expect to be provided expressions meant to be compiled via … -
OpenAI Acquiring Astral: A 4th Option for Funding Open Source
Thoughts on the recent acquisition and what it portends for open source software. -
PyCon US 2026 - Elaine Wong & Jon Banafato
🔗 Links PyCon US website Volunteer mailing list Elaine on LinkedIn and Jon's personal site 🎥 YouTube YouTube Channel: @djangochat Sponsor This episode is brought to you by Six Feet Up, the Python, Django, and AI experts who solve hard software problems. Whether it’s scaling an application, deriving insights from data, or getting results from AI, Six Feet Up helps you move forward faster. See what’s possible at sixfeetup.com. -
Tombi, pre-commit, prek and uv.lock
In almost all my Python projects, I'm using pre-commit to handle/check formatting and linting. The advantage: pre-commit is the only tool you need to install. Pre-commit itself reads its config file and installs the formatters and linters you defined in there. Here's a typical .pre-commit-config.yaml: default_language_version: python: python3 repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml args: [--allow-multiple-documents] - id: check-toml - id: check-added-large-files - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. rev: v0.15.6 hooks: # Run the linter. - id: ruff args: ["--fix"] # Run the formatter. - id: ruff-format - repo: https://github.com/tombi-toml/tombi-pre-commit rev: v0.9.6 hooks: - id: tombi-format args: ["--offline"] - id: tombi-lint args: ["--offline"] The "tombi" at the end might be a bit curious. There's already the build-in "check-toml" toml syntax checker, right? Well, tombi also does formatting and schema validation. And in a recent project, I handled configuration through toml files. It was for a Django website where several geographical maps were shown, each with its own title, description, legend yes/no, etcetera. I made up a .toml configuration format so that a colleague could configure all those maps without needing to deal with the python code. I created a json … -
Built with Django — Weekly Roundup (Mar 09–Mar 16, 2026)
Hey, Happy Monday! Why are you getting this: *You signed up to receive this newsletter on Built with Django. I promised to send you the latest projects and jobs on the site as well as any other interesting Django content I encountered during the month. If you don't want to receive this newsletter, feel free to unsubscribe anytime. Sponsor This issue is sponsored by TuxSEO — your AI content team on auto-pilot. Plan and ship SEO content faster Generate practical, publish-ready drafts Keep your content pipeline moving every week Projects Table of Contents Generator - Generate a clickable Table of Contents for any PDF in seconds. Free, private, no account required. Works with reports, eBooks, manuals, and papers. Jobs Senior Frontend Engineer at Weave Bio From the Community Django Admin: Building a Production-Ready Back Office Without Starting From Scratch | Medium by Anas Issath Beginner's Guide to Open Source Contribution | Djangonaut Space 2026 - DEV Community Django Tutorial - GeeksforGeeks Support You can support this project by using one of the affiliate links below. These are always going to be projects I use and love! No "Bluehost" crap here! Buttondown - Email newsletter tool I use to send you … -
How I deploy my projects to a single VPS with Gitea, NGINX and Docker
Hello everyone 👋 A few weeks ago, the team behind Jmail (a Gmail-styled interface for browsing the publicly released Epstein files) shared that they had racked up a $46,485 bill on Vercel The site had gone viral with ~450 million pageviews, and Vercel’s pricing structure turned that into a five-figure invoice. Vercel’s CEO ended up covering the bill personally, which is nice, but not exactly a scalable solution 😅 When I saw that story, my first thought was: this is an efficiency problem. Jmail is essentially a search interface on top of mostly static content. An SRE on Hacker News mentioned they handle 200x Jmail’s request load on just two Hetzner servers. The whole thing could have been served from a moderately sized VPS for a fraction of the cost. That got me thinking about my own setup. I run everything on a single VPS: my blog, my side projects, my git server, analytics, a wiki, a forum, a secret sharing tool, and more. The whole thing is held together by NGINX, Gitea, some bash scripts, and Docker. No Kubernetes, no Terraform, no CI/CD platform with a $500/month bill. Just a cheap VPS, some config files, and a deployment flow … -
10 Years of Jazzband
Jazzband is sunsetting. Before moving on, here’s a look at what 10 years of cooperative coding actually looked like. By the numbers Five years in, we had about 1,350 members and 55 projects. Here’s where things stand now: Members 3,135 total members over the years 2,133 members currently – a 68% retention rate over 10 years New members every year, peaking at 424 in 2022 Members who left stayed an average of 510 days Based on GitHub profiles (only ~28% of members list a location), members from at least 56 countries across every continent but Antarctica – 36% Europe, 30% Asia, 22% North America, 7% South America, 3% Africa, 1% Oceania. Real numbers are likely higher. And given how widely Python is used in research, someone on Antarctica has probably pip-installed a Jazzband project at some point Projects 84 projects total, 71 still active 13 projects left again over the years ~93,000 GitHub stars across all projects ~16,000 forks Activity ~43,800 commits across all repositories ~15,600 pull requests ~12,200 issues Releases 1,429 package uploads via Jazzband’s release pipeline 1,312 releases to PyPI across 56 projects and 390 versions 281 MB of release artifacts total First upload in November 2017, most … -
Wind-Down Plan
This post outlines the plan for winding down Jazzband. If you haven’t read them yet, see the sunsetting announcement for context on why this is happening, and the 10-year retrospective for the full story. Timeline The wind-down will happen in phases over the course of 2026. Phase 1: Announcement (March 2026) New member signups are disabled immediately This announcement and wind-down plan are published Existing members retain access to the GitHub organization and all repositories Phase 2: Outreach (March – May 2026) All 80 project leads will be contacted via email to discuss transferring their projects The goal is to have initial conversations with every lead before PyCon US 2026 (May 13–19 in Long Beach, CA) Leads who don’t respond will be followed up with at PyCon US and through other channels Phase 3: Project Transfers (June – December 2026) Projects will be transferred out of the Jazzband GitHub organization to their new homes – whether that’s a lead’s personal account, a new organization, or another collaborative group For each project, the transfer includes: GitHub repository: transferred to the new owner PyPI package ownership: existing maintainers added, Jazzband credentials removed CI/CD configuration: updated to work outside Jazzband Projects without an … -
Sunsetting Jazzband
Over 10 years ago, Jazzband started as a cooperative experiment to reduce the stress of maintaining Open Source software projects. The idea was simple – everyone who joins gets access to push code, triage issues, merge pull requests. “We are all part of this.” It had a good run. More than 10 years, actually. But it’s time to wind things down. What happened There’s a short answer and a long answer. The slopocalypse GitHub’s slopocalypse – the flood of AI-generated spam PRs and issues – has made Jazzband’s model of open membership and shared push access untenable. Jazzband was designed for a world where the worst case was someone accidentally merging the wrong PR. In a world where only 1 in 10 AI-generated PRs meets project standards, where curl had to shut down its bug bounty because confirmation rates dropped below 5%, and where GitHub’s own response was a kill switch to disable pull requests entirely – an organization that gives push access to everyone who joins simply can’t operate safely anymore. The one-roadie problem But honestly, the cracks have been showing for much longer than that. Jazzband was always a one-roadie operation. People asked for more roadies and offered … -
Django News - 21 PRs in One Week to Django Core! - Mar 13th 2026
News The Call for Proposals for DjangoCon US 2026 has been extended one week! DjangoCon US 2026 has extended its Call for Proposals deadline by one week to March 23 at 11 AM CDT, giving prospective speakers a little more time to submit their talk ideas. djangocon.us CPython: 36 Years of Source Code An analysis of the growth of CPython's codebase from its first commits to the present day python.org Releases Python 3.15.0 alpha 7 Python 3.15.0 alpha 7 introduces explicit lazy imports, a new frozendict type, improved profiling tools, and JIT upgrades that deliver modest performance gains while development continues toward the upcoming beta. python.org Django Software Foundation DSF member of the month - Theresa Seyram Agbenyegah Theresa Seyram Agbenyegah features as DSF member of the month for March 2026, highlighting her Django community leadership and PyCon organization work. djangoproject.com Updates to Django Today, "Updates to Django" is presented by Johanan from Djangonaut Space! 🚀 Last week we had 21 pull requests merged into Django by 11 different contributors - including 2 first-time contributors! Congratulations to KhadyotTakale and Lakshya Prasad for having their first commits merged into Django - welcome on board! This week's Django highlights: Fixed TypeError in … -
21 PRs in One Week to Django Core!
News The Call for Proposals for DjangoCon US 2026 has been extended one week! DjangoCon US 2026 has extended its Call for Proposals deadline by one week to March 23 at 11 AM CDT, giving prospective speakers a little more time to submit their talk ideas. CPython: 36 Years of Source Code An analysis of the growth of CPython's codebase from its first commits to the present day Releases Python 3.15.0 alpha 7 Python 3.15.0 alpha 7 introduces explicit lazy imports, a new frozendict type, improved profiling tools, and JIT upgrades that deliver modest performance gains while development continues toward the upcoming beta. Django Software Foundation DSF member of the month - Theresa Seyram Agbenyegah Theresa Seyram Agbenyegah features as DSF member of the month for March 2026, highlighting her Django community leadership and PyCon organization work. Updates to Django Today, "Updates to Django" is presented by Johanan from Djangonaut Space! 🚀 Last week we had 21 pull requests merged into Django by 11 different contributors - including 2 first-time contributors! Congratulations to KhadyotTakale and Lakshya Prasad for having their first commits merged into Django - welcome on board! This week's Django highlights: Fixed TypeError in deprecation warnings if Django … -
Weeknotes (2026 week 11)
Weeknotes (2026 week 11) Last time I wrote that I seem to be publishing weeknotes monthly. Now, a quarter of a year has passed since the last entry. I do enjoy the fact that I have published more posts focused on a single topic. That said, what has been going on in open source land is certainly interesting too. LLMs in Open Source I have started a longer piece to think about my stance regarding using LLMs in Open Source. The argument I’m thinking about is that there’s a balance between LLMs having ingested all of my published open source code and myself using them now to help myself and others again. The happenings in the last two weeks (think Pentagon, Iran, and the bombings of schools) have again brought to the foreground the perils of using those tools. I therefore haven’t been motivated to pursue this train of thought for the moment. When the upsides are somewhat questionable and tentative and the downsides are so clear and impossible to miss, it’s hard to use my voice to speak in favor of these tools. That said, all the shaming when someone uses an LLM that I see in my Mastodon … -
From Kenya to London with Django - Velda Kiara
🔗 Links Velda at RevSys Velda’s Substack: The Storyteller's Byte Tales Velda on GitHub Optimal Performance Over Basic as a Perfectionist with Deadlines More about me Neapolitan 📦 Projects django-linkcheck adamghill/django-lsp django-debug-toolbar 📚 Books A History of the Bible by John Barton Python Mastery, a course from David Beazley Kite Runner by Khaled Hosseini 🎥 YouTube YouTube Sponsor This episode was brought to you by Buttondown, the easiest way to start, send, and grow your email newsletter. New customers can save 50% off their first year with Buttondown using the coupon code DJANGO. -
The highs and lows of running a business
The past few weeks have been both amazing and frustrating. If you listen/read to my weekly in‑progress reports have already I mentioned some of this. In the last week of February, I appeared on the Django Chat podcast, which was released to positive feedback. I considered that a personal win for my career, it was fun to chat with Will and Carlton and hope to do more like this in future. However, two days after the episode aired, I recieved news that a client had passed away, causing that income source to vanish overnight. My condolences go to their family and I was also in shock, personally and then from the perspecive of my business. This was especially frustrating because I thought my cashflow for 2026 was solid, and I expected to be salaried before the end of year once Hamilton Rock secures funding, which we plan on doing this year. Generally from a business perspective, income can vanish overnight, and I accept this. This risk is inherent in running a business, unlike an employed job in the UK, which offers protections in this regard. The risk and potential downside has a counter of greater flexibility. I can work where …