Adam Johnson
@adamj.eu
🐴 @djangoproject.com blogger and contributor
✍️ Author of three books on Django and Git
🍕 Django London co-organizer
🇬🇧 London / 🇵🇹 Lisbon
✍️ Author of three books on Django and Git
🍕 Django London co-organizer
🇬🇧 London / 🇵🇹 Lisbon
Pinned
Adam Johnson
@adamj.eu
· Jan 28
Boost Your Git DX second update out now - Adam Johnson
Today I have released the second update to Boost Your Git DX, my book of developer experience (DX) recommendations for using Git. Since the last update (2024-04-04), it has grown again by 28 pages, fo...
adamj.eu
🎉 Wahoo, I updated my Git book!
This is a free update for all readers, as always, and a good reason to become one if you’re not.
There’s a new chapter, “init and clone”, many extra sections, and it’s updated for the latest Git. 28 new pages for a total of 391!
#Git
adamj.eu/tech/2025/01...
This is a free update for all readers, as always, and a good reason to become one if you’re not.
There’s a new chapter, “init and clone”, many extra sections, and it’s updated for the latest Git. 28 new pages for a total of 391!
#Git
adamj.eu/tech/2025/01...
htmx v4 is in alpha!
I said there would never be an htmx 3.0
but I never said anything about an htmx 4.0
htmx.org/essays/the-f...
but I never said anything about an htmx 4.0
htmx.org/essays/the-f...
</> htmx ~ The fetch()ening
You know, technically, I never said anything about a version *four*
htmx.org
November 4, 2025 at 11:27 AM
htmx v4 is in alpha!
Huge news!
Lazy Imports are coming to #Python! This is huge for CLIs written in Python :)
discuss.python.org/t/pep-810-ex...
discuss.python.org/t/pep-810-ex...
PEP 810: Explicit lazy imports
Dear PEP 810 authors. The Steering Council is happy to unanimously[1] accept “PEP 810, Explicit lazy imports”. Congratulations! We appreciate the way you were able to build on and improve the previ...
discuss.python.org
November 3, 2025 at 7:59 PM
Huge news!
Reposted by Adam Johnson
Biome v2.3 is out!
👨👨👦👦 Full support for @vuejs.org, @svelte.dev and @astro.build
‼️ New ignore syntax
🌬️ Tailwind v4 support
⌨️ New CLI flags and reporters
biomejs.dev/blog/biome-v...
👨👨👦👦 Full support for @vuejs.org, @svelte.dev and @astro.build
‼️ New ignore syntax
🌬️ Tailwind v4 support
⌨️ New CLI flags and reporters
biomejs.dev/blog/biome-v...
October 24, 2025 at 1:02 PM
Biome v2.3 is out!
👨👨👦👦 Full support for @vuejs.org, @svelte.dev and @astro.build
‼️ New ignore syntax
🌬️ Tailwind v4 support
⌨️ New CLI flags and reporters
biomejs.dev/blog/biome-v...
👨👨👦👦 Full support for @vuejs.org, @svelte.dev and @astro.build
‼️ New ignore syntax
🌬️ Tailwind v4 support
⌨️ New CLI flags and reporters
biomejs.dev/blog/biome-v...
TIL Django has a collection of old school website badges to show off that you use it!
"POWERED BY DJANGO"
www.djangoproject.com/community/ba...
#Django
"POWERED BY DJANGO"
www.djangoproject.com/community/ba...
#Django
Django badges
Building the Django Community. Come join us!
www.djangoproject.com
October 29, 2025 at 11:04 PM
TIL Django has a collection of old school website badges to show off that you use it!
"POWERED BY DJANGO"
www.djangoproject.com/community/ba...
#Django
"POWERED BY DJANGO"
www.djangoproject.com/community/ba...
#Django
Reposted by Adam Johnson
TLDR; The PSF has made the decision to put our community and our shared diversity, equity, and inclusion values ahead of seeking $1.5M in new revenue. Please read and share. pyfound.blogspot.com/2025/10/NSF-...
🧵
🧵
The official home of the Python Programming Language
www.python.org
October 27, 2025 at 2:47 PM
TLDR; The PSF has made the decision to put our community and our shared diversity, equity, and inclusion values ahead of seeking $1.5M in new revenue. Please read and share. pyfound.blogspot.com/2025/10/NSF-...
🧵
🧵
🚀 Yesterday, I released version 1.2.0 of my new package, django-http-compression.
It includes a big change to only apply compression to known-compressible content types, like HTML or JSON, copying the behaviour of servers like Caddy or CloudFlare.
github.com/adamchainz/d...
#Django
It includes a big change to only apply compression to known-compressible content types, like HTML or JSON, copying the behaviour of servers like Caddy or CloudFlare.
github.com/adamchainz/d...
#Django
django-http-compression/CHANGELOG.rst at main · adamchainz/django-http-compression
Django middleware for compressing HTTP responses with Zstandard, Brotli, or Gzip. - adamchainz/django-http-compression
github.com
October 27, 2025 at 2:51 PM
🚀 Yesterday, I released version 1.2.0 of my new package, django-http-compression.
It includes a big change to only apply compression to known-compressible content types, like HTML or JSON, copying the behaviour of servers like Caddy or CloudFlare.
github.com/adamchainz/d...
#Django
It includes a big change to only apply compression to known-compressible content types, like HTML or JSON, copying the behaviour of servers like Caddy or CloudFlare.
github.com/adamchainz/d...
#Django
Reposted by Adam Johnson
MariaDB users – take 10min to share your experience in their annual survey! mariadb.typeform.com/survey-2025...
#Django #MariaDB
#Django #MariaDB
State of MariaDB 2025 Survey
Turn data collection into an experience with Typeform. Create beautiful online forms, surveys, quizzes, and so much more. Try it for FREE.
mariadb.typeform.com
October 24, 2025 at 8:13 AM
MariaDB users – take 10min to share your experience in their annual survey! mariadb.typeform.com/survey-2025...
#Django #MariaDB
#Django #MariaDB
Reposted by Adam Johnson
ripgrep 15 is out! Mostly a host of bug fixes, particularly around gitignore. Some minor perf improvements. A couple small features. And (partial) Jujutsu support for gitignore.
github.com/BurntSushi/r...
github.com/BurntSushi/r...
Release 15.0.0 · BurntSushi/ripgrep
Sponsorship is appreciated!
ripgrep 15 is a new major version release of ripgrep that mostly has bug fixes,
some minor performance improvements and minor new features.
In case you haven't heard of...
github.com
October 16, 2025 at 3:33 AM
ripgrep 15 is out! Mostly a host of bug fixes, particularly around gitignore. Some minor perf improvements. A couple small features. And (partial) Jujutsu support for gitignore.
github.com/BurntSushi/r...
github.com/BurntSushi/r...
This is a banger post from Haki Benita, well worth the investment towards improving your Django and PostgreSQL migration skills.
hakibenita.com/django-forei...
#Django
hakibenita.com/django-forei...
#Django
How to Get Foreign Keys Horribly Wrong
Common Pitfalls and Potential Optimizations in Django
hakibenita.com
October 12, 2025 at 9:48 PM
This is a banger post from Haki Benita, well worth the investment towards improving your Django and PostgreSQL migration skills.
hakibenita.com/django-forei...
#Django
hakibenita.com/django-forei...
#Django
Give this a go to help guide the future of the web!
As an experiment, we (the Firefox team) wanted to try a new way to get feedback on which Interop proposals matter most.
So, here's a web app where you can rank the proposals you care about, giving us data we can use when reviewing which ones to champion.
interop-rank.jakearchibald.com
So, here's a web app where you can rank the proposals you care about, giving us data we can use when reviewing which ones to champion.
interop-rank.jakearchibald.com
Interop Feature Ranking
Rank the web platform features you care most about
interop-rank.jakearchibald.com
October 11, 2025 at 6:35 AM
Give this a go to help guide the future of the web!
Yay, well done Tim, much deserved!
Congratulations Tim Schilling, who has been awarded our
2025 Malcolm Tredinnick Memorial Prize! www.djangoproject.com/weblog/2025/...
2025 Malcolm Tredinnick Memorial Prize! www.djangoproject.com/weblog/2025/...
2025 Malcolm Tredinnick Memorial Prize awarded to Tim Schilling
Posted by Sarah Abderemane & Thibaud Colas on Oct. 10, 2025
www.djangoproject.com
October 10, 2025 at 4:56 PM
Yay, well done Tim, much deserved!
✍️ New post announcing my package django-http-compression.
This is a drop-in replacement for Django's GZipMiddleware, supporting the modern compression algorithms Brotli and Zstandard (Python 3.14+).
adamj.eu/tech/2025/10...
#Django
This is a drop-in replacement for Django's GZipMiddleware, supporting the modern compression algorithms Brotli and Zstandard (Python 3.14+).
adamj.eu/tech/2025/10...
#Django
Django: Introducing django-http-compression - Adam Johnson
HTTP supports response compression, which can significantly reduce the size of responses, thereby decreasing bandwidth usage and load times for users. It’s a cheap and valuable technique for improving...
adamj.eu
October 10, 2025 at 4:11 PM
✍️ New post announcing my package django-http-compression.
This is a drop-in replacement for Django's GZipMiddleware, supporting the modern compression algorithms Brotli and Zstandard (Python 3.14+).
adamj.eu/tech/2025/10...
#Django
This is a drop-in replacement for Django's GZipMiddleware, supporting the modern compression algorithms Brotli and Zstandard (Python 3.14+).
adamj.eu/tech/2025/10...
#Django
This afternoon, I opened a ticket on Django and later closed it as "wontfix", all by myself.
What looked like a regression turned out to be extra protection alerting me to some missing foreign key constraints.
code.djangoproject.com/ticket/36645
#Django
What looked like a regression turned out to be extra protection alerting me to some missing foreign key constraints.
code.djangoproject.com/ticket/36645
#Django
#36645 (PostgreSQL migration regression: `InternalError: cannot drop column id of table ... because other objects depend on it`)
– Django
code.djangoproject.com
October 7, 2025 at 4:14 PM
This afternoon, I opened a ticket on Django and later closed it as "wontfix", all by myself.
What looked like a regression turned out to be extra protection alerting me to some missing foreign key constraints.
code.djangoproject.com/ticket/36645
#Django
What looked like a regression turned out to be extra protection alerting me to some missing foreign key constraints.
code.djangoproject.com/ticket/36645
#Django
Reposted by Adam Johnson
Bringing back hope.
Leader Zack Polanski makes a powerful case for taxing wealth not work in the Green Party's new party political broadcast.
Leader Zack Polanski makes a powerful case for taxing wealth not work in the Green Party's new party political broadcast.
Let's Make Hope Normal Again - Green Party Political Broadcast
YouTube video by Green Party of England & Wales
youtu.be
October 6, 2025 at 6:11 PM
Bringing back hope.
Leader Zack Polanski makes a powerful case for taxing wealth not work in the Green Party's new party political broadcast.
Leader Zack Polanski makes a powerful case for taxing wealth not work in the Green Party's new party political broadcast.
Reposted by Adam Johnson
Just released! 🚀
Please install and enjoy Python 3.14! 🥧
discuss.python.org/t/python-3-1...
#Python #Python314 #release
Please install and enjoy Python 3.14! 🥧
discuss.python.org/t/python-3-1...
#Python #Python314 #release
October 7, 2025 at 2:29 PM
Just released! 🚀
Please install and enjoy Python 3.14! 🥧
discuss.python.org/t/python-3-1...
#Python #Python314 #release
Please install and enjoy Python 3.14! 🥧
discuss.python.org/t/python-3-1...
#Python #Python314 #release
Reposted by Adam Johnson
Python 3.14.0, the first stable release, is out!
And it comes with a spiffy logo! discuss.python.org/t/python-3-1...
I'm probably biased, but many of the features in 3.14 seem huge to the future of the language:
free-threading stable, subinterpreters, zstandard, too many others to list!
#python
And it comes with a spiffy logo! discuss.python.org/t/python-3-1...
I'm probably biased, but many of the features in 3.14 seem huge to the future of the language:
free-threading stable, subinterpreters, zstandard, too many others to list!
#python
Python 3.14.0 (final) is here!
Python 3.14.0 is now available This is the stable release of Python 3.14.0 Python 3.14.0 is the newest major release of the Python programming language, and it contains many new features and optimis...
discuss.python.org
October 7, 2025 at 2:44 PM
Python 3.14.0, the first stable release, is out!
And it comes with a spiffy logo! discuss.python.org/t/python-3-1...
I'm probably biased, but many of the features in 3.14 seem huge to the future of the language:
free-threading stable, subinterpreters, zstandard, too many others to list!
#python
And it comes with a spiffy logo! discuss.python.org/t/python-3-1...
I'm probably biased, but many of the features in 3.14 seem huge to the future of the language:
free-threading stable, subinterpreters, zstandard, too many others to list!
#python
Reposted by Adam Johnson
See you this evening! Remember to bring your laptop 😉
🚨 Django London is back — Hacktoberfest edition!
🗓️ Oct 7
📍 Kraken Tech (London)
🍕 Free food, no talks — just open source!
No experience needed, just bring your laptop & curiosity.
RSVP: bit.ly/4pEVuXR
#django #python #opensource #hacktoberfest
🗓️ Oct 7
📍 Kraken Tech (London)
🍕 Free food, no talks — just open source!
No experience needed, just bring your laptop & curiosity.
RSVP: bit.ly/4pEVuXR
#django #python #opensource #hacktoberfest
Django London Meetup October, Tue, Oct 7, 2025, 6:15 PM | Meetup
**October edition!**
This month we are going to have a **Hacktoberfest edition**!
Our key concepts will be:
* Encourage people to contribute to open source.
* Increase th
www.meetup.com
October 7, 2025 at 8:00 AM
See you this evening! Remember to bring your laptop 😉
🚀 django-upgrade 1.29.0 is out!
It ships 4 new fixers for Django 6.0, to help ease the upgrade for this new version expected in December.
Test out Django 6.0 alpha today and use django-upgrade to automatically update some of your code!
django-upgrade.readthedocs.io/en/latest/ch...
#Django
It ships 4 new fixers for Django 6.0, to help ease the upgrade for this new version expected in December.
Test out Django 6.0 alpha today and use django-upgrade to automatically update some of your code!
django-upgrade.readthedocs.io/en/latest/ch...
#Django
Changelog - django-upgrade 1.29.0 documentation
django-upgrade.readthedocs.io
October 7, 2025 at 10:17 AM
🚀 django-upgrade 1.29.0 is out!
It ships 4 new fixers for Django 6.0, to help ease the upgrade for this new version expected in December.
Test out Django 6.0 alpha today and use django-upgrade to automatically update some of your code!
django-upgrade.readthedocs.io/en/latest/ch...
#Django
It ships 4 new fixers for Django 6.0, to help ease the upgrade for this new version expected in December.
Test out Django 6.0 alpha today and use django-upgrade to automatically update some of your code!
django-upgrade.readthedocs.io/en/latest/ch...
#Django
🏁 django-stubs 5.2.6 is out!
Little by little, Django gets easier to type check, thanks to some pretty dedicated and fearless contributors.
github.com/typeddjango/...
#Django
Little by little, Django gets easier to type check, thanks to some pretty dedicated and fearless contributors.
github.com/typeddjango/...
#Django
Releases · typeddjango/django-stubs
PEP-484 stubs for Django. Contribute to typeddjango/django-stubs development by creating an account on GitHub.
github.com
October 5, 2025 at 11:05 PM
🏁 django-stubs 5.2.6 is out!
Little by little, Django gets easier to type check, thanks to some pretty dedicated and fearless contributors.
github.com/typeddjango/...
#Django
Little by little, Django gets easier to type check, thanks to some pretty dedicated and fearless contributors.
github.com/typeddjango/...
#Django
Huge PEP
Let me post a *non*-subskeet for once... We made a thing!
discuss.python.org/t/pep-810-ex...
#Python #PEP
discuss.python.org/t/pep-810-ex...
#Python #PEP
PEP 810: Explicit lazy imports
👋 Hi everyone, We are very exited to share with you PEP 810: Explicit lazy imports: We’re proposing an opt-in lazy import syntax that defers module loading until first use, aiming for faster startup,...
discuss.python.org
October 3, 2025 at 12:50 PM
Huge PEP
Reposted by Adam Johnson
Ep186 with Django Fellow Jacob Walls is live!
We talk about his background, transitioning from music to programming, what to expect in Django 6.0 this December, and more.
djangochat.com/episodes/dja...
Also available on YouTube if you prefer: youtu.be/P-D7DtGJqzY?...
We talk about his background, transitioning from music to programming, what to expect in Django 6.0 this December, and more.
djangochat.com/episodes/dja...
Also available on YouTube if you prefer: youtu.be/P-D7DtGJqzY?...
October 1, 2025 at 2:44 PM
Ep186 with Django Fellow Jacob Walls is live!
We talk about his background, transitioning from music to programming, what to expect in Django 6.0 this December, and more.
djangochat.com/episodes/dja...
Also available on YouTube if you prefer: youtu.be/P-D7DtGJqzY?...
We talk about his background, transitioning from music to programming, what to expect in Django 6.0 this December, and more.
djangochat.com/episodes/dja...
Also available on YouTube if you prefer: youtu.be/P-D7DtGJqzY?...
You can now read and search the Django 6.0 documentation offline with DevDocs!
devdocs.io/django~6.0/
#Django
devdocs.io/django~6.0/
#Django
DevDocs — Django 6.0 documentation
Django 6.0 API documentation with instant search, offline support, keyboard shortcuts, mobile version, and more.
devdocs.io
September 27, 2025 at 6:29 AM
You can now read and search the Django 6.0 documentation offline with DevDocs!
devdocs.io/django~6.0/
#Django
devdocs.io/django~6.0/
#Django
Reposted by Adam Johnson
I'll be giving a talk about Free-threaded Python at the #01 - Python Lisbon Meetup next week (Oct 2)! 🎉
Hope to see you there!
www.meetup.com/python-lisb...
Hope to see you there!
www.meetup.com/python-lisb...
#01 - PyLM Meetup at Técnico 🎓🐍, Thu, Oct 2, 2025, 7:00 PM | Meetup
🇵🇹
Vamos encontrar-nos no dia **2 de outubro às 19:00 no IST, Pavilhão de Matemática, sala 3.10**!
Desta vez teremos uma sala com projetor, por isso preparem-se para uma
www.meetup.com
September 24, 2025 at 6:23 PM
I'll be giving a talk about Free-threaded Python at the #01 - Python Lisbon Meetup next week (Oct 2)! 🎉
Hope to see you there!
www.meetup.com/python-lisb...
Hope to see you there!
www.meetup.com/python-lisb...
✍️ New post introducing django-watchfiles, a package to make Django’s runserver autoreloading more efficient.
adamj.eu/tech/2025/09...
#Django #Python
adamj.eu/tech/2025/09...
#Django #Python
Django: Introducing django-watchfiles, for more efficient runserver autoreloading - Adam Johnson
Django’s runserver automatically reloads when you change Python files. Without this autoreloading feature, you’d need to manually restart the server every time you made a code change.
adamj.eu
September 22, 2025 at 6:06 PM
✍️ New post introducing django-watchfiles, a package to make Django’s runserver autoreloading more efficient.
adamj.eu/tech/2025/09...
#Django #Python
adamj.eu/tech/2025/09...
#Django #Python
🚀 Django 6.0 alpha 1 is out, so let's start testing against it!
I’ve just released versions of these 17 packages with Django 6.0 support:
django-auto-prefetch, django-browser-reload, django-cors-headers, django-harlequin, django-htmx, django-linear-migrations, …
Enjoy!
#Django #Python
I’ve just released versions of these 17 packages with Django 6.0 support:
django-auto-prefetch, django-browser-reload, django-cors-headers, django-harlequin, django-htmx, django-linear-migrations, …
Enjoy!
#Django #Python
September 18, 2025 at 11:48 AM