Django

2025


cover.jpg

Behind the Curtain as a Conference Chair

This post is the first in a three-part series reflecting on DjangoCon US 2025 — In this post, I’m taking you behind the scenes of DjangoCon US 2025 to share what it taught me about leadership, community, and the power of holding space for others.

cover.png

Hitting Limits and Noticing Clues in Graphs

Editor’s Note: This post was updated November 11, 2025 to correct the graphs that are linked to the text in the blog.

cover.png

Accessible Traffic Stop Data with NC CopWatch

Forward Justice partnered with Caktus to transform North Carolina’s 32 million+ inaccessible traffic stop records into an open-source public resource. This tool empowers communities and advocates to analyze law enforcement data and drive data-driven policy reform.

Don't Let Search Take You Down

Twice in the last few months we’ve had to deal with Django production site issues caused by inefficient search queries.

djangocon-cover.png

DjangoCon US 2025: A Celebration of Community, Code and 20 Years of Django

Group photo at DjangoCon US 2025

Celebrating 20 years of Django

DjangoCon US 2025 was a milestone year for the community, as we gathered in Chicago to celebrate 20 years of Django. Attendees from around the world came together to learn about the latest developments, share their work, and strengthen the bonds that make DjangoCon such a special event. Caktus was well-represented once again, with our team contributing as organizers, speakers, and active participants throughout the week.

cover.png

How to migrate from pip-tools to uv

At Caktus, many of our projects use pip-tools for dependency management. Following Tobias’ post How to Migrate your Python & Django Projects to uv, we were looking to migrate other projects to uv, but the path seemed less clear with existing pip-tools setups. Our requirements are often spread across multiple files, like this:

Why Open Source Makes Sense For Your Business Web Projects

What Is Open Source?

Open source software is publicly available code that anyone can use, modify, and improve. It’s the foundation of much of the modern internet and it’s trusted by global enterprises, startups, nonprofits, and government agencies alike.

cover-happy-20th-birthday-django.png

Happy 20th Birthday Django!

This Tuesday (tomorrow!), August 12th, we’re teaming up with TriPython to host an informal Django Birthday event at Boxyard RTP in Durham.

Avoiding Timezone Traps: Correctly Extracting Date/Time Subfields in Django with PostgreSQL

Working with timezones can sometimes lead to confusing results, especially when combining Django's ORM, raw SQL for performance (like in PostgreSQL materialized views), and specific timezone requirements. I recently had an issue while aggregating traffic stop data by year, where all yearly calculations needed to reflect the 'America/New_York' (EST/EDT) timezone, even though our original data contained timestamp with time zone fields. We were using django-pgviews-redux to manage materialized views, and I mistakenly attempted to apply timezone logic to a date field that had no time or timezone information.

How to Migrate your Python & Django Projects to uv

Editor’s note: This post was updated on July 17th, 2025, to use the PATH_add hook for direnv and to recommend including uv sync --locked in your .envrc file.