The art of (not) redirecting
2024-09-23 , Junior Ballroom

URLs are meant to never change, but change is the only constant of thriving products. As web developers we have the duty to not only design our URLs in a way that they withstand the passage of time, but also to "never" break old URLs when, in the face of inevitable change, we are forced to re-design them in order to keep a consistent experience in our evolving products. Join me in this practical journey to master URL design and evolution.


The design of URLs in a web application is a great playground for putting the Zen of Python in practice. But that's easily said than done, especially when we assume the responsibility of crafting those URLs in away that they can "remain unmodified for centuries", as the creator of URLs themselves once said. Along comes the art of embracing change in URLs in a way that is also backwards compatible. Is it practical? Is it worth it?

This talk comes from my own experience leading a massive URL redesign in a product with hundreds of enterprise customers, without (major) hiccups. In this talk you will learn the principles we used to design meaningful and future-proof URLs, as well as how we leveraged the power of Django and HTTP in order to smoothly "transition" the old into the new.

Django user for almost 15 years. Co-creator and maintainer of django-pgschemas and django-unmigrate. Husband, father and fan of Zelda.