Caktus Blog

Insights and strategies from a team recognized at Python and Django conferences worldwide since 2009. The Caktus Blog is your space for practical how-to’s, real-world solutions, and expert advice on building better user experiences, strengthening quality assurance, solving deep and complex Python/Django problems, and managing projects that deliver impact. Whether you’re refining a UI or prepping for launch, join us to learn, level up, and lead with confidence.

2025


cover-choosing-a-voice-for-speech-synthesis.jpg

Choosing a Voice for Speech Synthesis

Recently we’ve been adding read-aloud support to a Django website. The tech stack for this site is Django with a bit of jQuery on the front end. The website is used exclusively in the United States, its content is offered in English and Spanish, and the read-aloud support is wanted for forms on the site. So where the site offered, for example:

A Helpful Guide to Solving Common Poetry Issues

We don't often use Poetry, the Python packaging and dependency management tool, but when we do, we usually look up and re-learn the same things repeatedly. This post is a quick reference for some of the recent issues we encountered when using Poetry.

cover-chicago-local.jpg

Chicago Like A Local

Chicago Like a Local: Things to Do During DjangoCon US 2025 (Part 1)

DjangoCon US 2025 is coming to Chicago, and while you’ll be busy soaking in all things Django, there’s no reason you can’t experience the city like a local while you’re here. Whether you’re looking for great food, cultural spots, or just a cool place to unwind, here are some top recommendations from a Chicago native.

Understanding Pricing in Custom Software Development

If you’re in the early stages of a software project and researching a technology partner, I can guess your top two questions:

How to Deploy Selectively to Production

Sometimes, it’s necessary to deploy a set of features and/or bug fixes to production before part of the current “testing” branch has been tested completely in a Q/A or staging environment.

cover-deleting-django-application-multi-site-kubernetes-cluster.jpg

Deleting a Django Application from a Multi-Site Kubernetes Cluster

Recently, a client requested that we delete a website that was no longer used. The Kubernetes cluster was managed by an engineer who is no longer with the company, making the cluster feel like a concealed box. All I had was the website’s name. Since we use Ingress Nginx and Nginx as a web server, I figured the answer to my query could be found there. So I ran:

How to fix factory_boy post-generation deprecation warnings

We use factory_boy for bootstrapping test data on many Python and Django projects at Caktus. Recently, we encountered a deprecation warning on an older project that had been using factory_boy for some time:

2024


cover-reflections-djangocon-us-2024-highlights-takeaways-and-community-connections.jpg

Reflections on DjangoCon US 2024: Highlights, Takeaways, and Community Connections

DjangoCon 2024 was a resounding success for the community, with attendees from all over the world gathering to learn about the latest developments in Django and to connect with the Django community. Caktus was well-represented at the conference, with six of our team members attending. In this blog post, we share our experiences at DjangoCon 2024, including our favorite talks, the people we met, and the things we learned. We also offer some tips for future attendees on how to get the most out of DjangoCon.

cover-getting-started-dagster.png

Getting Started with Dagster

Recently, Caktus has been using Tailscale to manage VPN connections between Android tablets and a central server. We wanted to report on the devices connected to the network using the Tailscale API. While we could use tools like Celery to fetch data from the API and load it into a database—given its widespread use in the Django ecosystem—we also wanted to explore other options.

2023


cover-upgrade-postgresql-client-15.jpg

Upgrading PostgreSQL From v11 to v15 in Your Django Application

In the ever-evolving world of data management, staying up-to-date with the latest technologies and best practices is imperative. One crucial aspect of this is ensuring your PostgreSQL version remains current. On November 9, 2023, PostgreSQL 11 reaches end of life (EOL).