Django 6.0 is out. The headline for me is that a problem people used to solve by adding Celery now has an answer in the box.

Background tasks are built in
Sending mail, resizing images, calling a slow third-party API — there is always work you don't want happening inside the request. Until now the standard move was to add Celery and Redis, or RQ.
Django 6.0 ships a common interface for this in core. Defining a task and putting it on a queue now has one shape, and the backend behind it can be swapped out.
Worth being clear about what this isn't: it doesn't replace the worker itself. If you're processing serious volume in production, you still choose an execution backend. What got standardised is the application-side interface, and that's what makes the backend swappable.
For smaller apps, it should mean fewer occasions where you stand up extra infrastructure just to send an email.
Should you move?
If Celery is already working in your project, there's no urgency. The gain is one fewer dependency, and whether that's worth disturbing something that works depends on your scale.
For a new project that hasn't picked a queue yet, starting with the built-in interface and moving outward when you outgrow it is the straightforward path.
Before you upgrade
Django 6.0 raises the minimum Python version. Check that your interpreter and your main third-party packages are ready before you start. There are changes around the ORM and templates as well, so reading the official release notes and the deprecation list first is the faster route in the end.