diff --git a/djangocon-us-2025/category.json b/djangocon-us-2025/category.json new file mode 100644 index 000000000..5133c9a18 --- /dev/null +++ b/djangocon-us-2025/category.json @@ -0,0 +1,3 @@ +{ + "title": "DjangoCon US 2025" +} \ No newline at end of file diff --git a/djangocon-us-2025/videos/a-i-modest-proposal.json b/djangocon-us-2025/videos/a-i-modest-proposal.json new file mode 100644 index 000000000..fcb8b7654 --- /dev/null +++ b/djangocon-us-2025/videos/a-i-modest-proposal.json @@ -0,0 +1,26 @@ +{ + "description": "In 1729, Jonathan Swift presented an elegant and well thought-out solution to the problem of homelessness and poverty plaguing Ireland. He argued that his solution would result in a much more productive and fulfilling society. While not many could digest the meat of his proposal, it was still effective in exposing a widening gap of social inequality and abuse. \n\nIs it possible that Swift's proposal can be applied within our technosphere? Did he provide us with a recipe for success, or at least little nuggets of wisdom to chew on? \n\nMany attending this conference may be keenly aware of the dichotomy between open source and big tech. There is a relationship that always seems to be at risk of imploding. Should we be encouraging new (and existing) engineers to participate in open source, in spite of this tenuous relationship? If this topic whets your appetite, you'll definitely want to come to see what's cooking.", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/a-i-modest-proposal/" + } + ], + "speakers": [ + "Mario Munoz" + ], + "thumbnail_url": "https://i.ytimg.com/vi/Ws9lNrrK8dw/maxresdefault.jpg", + "title": "A(i) Modest Proposal", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=Ws9lNrrK8dw" + } + ] +} diff --git a/djangocon-us-2025/videos/automating-initial-deployments-with-django-simple-deploy.json b/djangocon-us-2025/videos/automating-initial-deployments-with-django-simple-deploy.json new file mode 100644 index 000000000..597cb91d2 --- /dev/null +++ b/djangocon-us-2025/videos/automating-initial-deployments-with-django-simple-deploy.json @@ -0,0 +1,26 @@ +{ + "description": "Deployment has been a sticking point for many Django developers as long as the framework has existed. With the 1.0 release of `django-simple-deploy`, that should no longer be the case. This release signifies a stable API, and most importantly a stable platform for building plugins.\n\nIf you haven't seen `django-simple-deploy` in action, it lets you deploy a project in three steps. Assuming you have the target platform's CLI installed, here's what that looks like:\n\n```\n$ pip install django-simple-deploy[]\n# Add django_simple_deploy to INSTALLED_APPS.\n$ python manage.py deploy --automate-all\n```\n\nThis currently works for Platform.sh, Fly.io, and Heroku. If you want a bit more control, you can separate out the configuration and deployment steps.\n\nThe plugin ecosystem\n---\n\nThe core `django-simple-deploy` library only does a little work. It inspects your system and your project, and then hands off to an external plugin (such as `dsd-platformsh`) to take care of platform-specific configuration and deployment work. It should be possible to write a plugin for just about any hosting platform that can be configured to support Django.\n\nEach PAAS provider needs its own plugin. However, a single plugin, `dsd-vps`, can be used to deploy to *any* VPS host: Digital Ocean, Linode, Hetzner, and many more.\n\nThis talk will discuss the following:\n\n- Why does the Django community need a deployment library?\n- What kinds of deployments can `django-simple-deploy` handle today?\n- What is the full range of use cases and benefits of this tool?\n- How can you contribute to the plugin ecosystem?\n\nJust about everyone in the community is affected by Django's deployment story. If you'd like Django to have a much simpler initial deployment story, this talk is for you.", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/automating-initial-deployments-with-django-simple-deploy/" + } + ], + "speakers": [ + "Eric Matthes" + ], + "thumbnail_url": "https://i.ytimg.com/vi/GpHxaxnMAi4/maxresdefault.jpg", + "title": "Automating initial deployments with django-simple-deploy", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=GpHxaxnMAi4" + } + ] +} diff --git a/djangocon-us-2025/videos/beyond-filters-modern-search-and-more-with-vectors-in-django.json b/djangocon-us-2025/videos/beyond-filters-modern-search-and-more-with-vectors-in-django.json new file mode 100644 index 000000000..716089ef4 --- /dev/null +++ b/djangocon-us-2025/videos/beyond-filters-modern-search-and-more-with-vectors-in-django.json @@ -0,0 +1,26 @@ +{ + "description": "Traditional search in Django apps, typically powered by **queryset filters or keyword search, often fails to capture user intent**. It matches exact words but misses meaning. Vector search solves this by representing the \"meaning\" of data (text, images, audio, video, etc) as high-dimensional vectors generated with ML models, enabling more relevant, personalized, and faster results. \n\nIn this talk, you'll learn:\n- When traditional search with Postgres or Elasticsearch falls short\n- What vectors are, how vector search works, and when vector databases help\n- How to **integrate vector databases into your Django models** using django-semantic-search\n- A **demo of \"More products like this\" feature with vectors in a Django e-commerce app**\n- Brief understanding of **use cases beyond text search**: multi-modal search, recommendations, content discovery, clustering, anomaly detection, and retrieval-augmented generation (RAG)\n- The **trade-offs and limitations of vector search** \u2014 when it helps and when it doesn't\n\n### Who Should Attend\nThis session is for **intermediate Django developers** familiar with models, views, and basic querying. Vector search is becoming a high demand skill so everyone is welcome. But if you've built search features with filters or keyword search and are curious about taking them to the next level with vectors, this talk is definitely for you! \n\n### Prerequisites\n- Familiarity with Django ORM and basic database concepts\n- Exposure to search implementation using Postgres or Elasticsearch is helpful but not required\n- **Basic understanding of machine learning is helpful but not required**", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/beyond-filters-modern-search-and-more-with-vectors-in-django/" + } + ], + "speakers": [ + "Kumar Shivendu" + ], + "thumbnail_url": "https://i.ytimg.com/vi/GvEkCBvvA_g/maxresdefault.jpg", + "title": "Beyond Filters: Modern Search (and more) with Vectors in Django", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=GvEkCBvvA_g" + } + ] +} diff --git a/djangocon-us-2025/videos/beyond-rate-limiting-building-an-active-learning-defense-system-in-django.json b/djangocon-us-2025/videos/beyond-rate-limiting-building-an-active-learning-defense-system-in-django.json new file mode 100644 index 000000000..93f0d7f76 --- /dev/null +++ b/djangocon-us-2025/videos/beyond-rate-limiting-building-an-active-learning-defense-system-in-django.json @@ -0,0 +1,26 @@ +{ + "description": "What if your Django app could defend itself and get smarter over time? In this talk, we'll dive into AIWAF, an open-source, Django-native firewall that learns from real web traffic to catch suspicious behavior like 404 floods, probing attacks, and UUID tampering. You'll learn how easy it is to plug AIWAF into your project and build a self-adapting defense system without needing a full security team.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/beyond-rate-limiting-building-an-active-learning-defense-system-in-django/" + } + ], + "speakers": [ + "Aayush Gauba" + ], + "thumbnail_url": "https://i.ytimg.com/vi/PUPSRMUlvdw/maxresdefault.jpg", + "title": "Beyond Rate Limiting: Building an Active Learning Defense System in Django", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=PUPSRMUlvdw" + } + ] +} diff --git a/djangocon-us-2025/videos/beyond-the-orm-from-postgres-to-opensearch.json b/djangocon-us-2025/videos/beyond-the-orm-from-postgres-to-opensearch.json new file mode 100644 index 000000000..2dc6ab123 --- /dev/null +++ b/djangocon-us-2025/videos/beyond-the-orm-from-postgres-to-opensearch.json @@ -0,0 +1,26 @@ +{ + "description": "Our team at Energy Solutions spent a year building a robust data ingestion and query pipeline using OpenSearch to provide centralized data to a distributed suite of applications. Along the way, we learned to question and rethink a lot of our relational database assumptions and take fuzzy search customization and accuracy to the next level. Meanwhile, we implemented Pydantic wrappers around JSON responses so we could continue to handle responses like native Python objects (along with other benefits we\u2019ll discuss). We addressed long-standing challenges, such as:\n\n- Improving the performance of the per-row create/update/delete paradigm (in one case, leading to a ~9x faster data ingest + load!)\n- Putting OpenSearch \u201caliases\u201d to work to help track current vs archival data\n- Improving search relevancy\n- PII exposure reduction\n\nIn this presentation, we\u2019ll walk through the decisions that led us to moving to an OpenSearch-based solution that works within a traditional Django framework, how we tackled advanced topics like token analysis, and how we put OpenSearch aliases to work. We\u2019ll also cover some of the cost-benefit equations, summarize our next phase of work in the project, and include real-time demonstrations of some concepts.\n\n### Background on Energy Efficiency\n\nUtilities, which are often regulated, are responsible for generating a consistent supply of energy for their consumers at a stable price. Efficiency incentive programs that manage demand help insulate utilities from the costs associated with purchasing raw materials (coal, gas, etc.) and help reduce the need to build new power plants that are expensive to build, staff, insure, and supply with consumable, non-renewable resources. \n\nUtilities are also usually required by law to spend part of the budget they collect on customer bills on something to reduce the demand for energy in their territory. For instance, a utility might offer a $1,500 rebate (AKA incentive) for the sale of an industrial heat pump that is far more efficient than other industrial heat pumps, via an energy efficiency (EE) program. By incentivizing high efficiency equipment, utilities help move the market towards ever more efficient versions of equipment, thus locking in energy savings even after the EE programs end. In this way, we can help utilities and their customers save energy and move the needle away from climate change.\n\n#### Cosmos Project Background\nWhat Cosmos is, a service for our other projects to access larger datasets such as locations and equipment, and why we needed a new service.\n\n#### Motivations for moving from Postgres\n- Elimininate redundancy\n- Reduce PII storage\n- Improve load speed\n- Faster, more accurate fuzzy search\n\n#### Why OpenSearch?\n- Super-fast, built on Lucene\n- Open source but supported by AWS\n- Features like aggregation, tokenization well-documented\n- Ranked results (hits sorted by _score)\n- Intuitive and flexible searching for addresses, equipment, etc\n- Performance trade-off between ingesting data and searching data (optimize query performance at the expense of slower indexing)\n\n#### Helper Tools\n- opensearch-py \n- Kibana\n\n#### Cost Breakdown\n- AWS cost vs our own standalone\n\n#### API access\n- Not presenting raw output - transformed for readability, consistency \n- Data passed through Pydantic models \n- Strict access controls for PII \n- \u201cSearch Helper\u201d for for non-tech staff\n\n#### Load and Query Demos\n- Comparison of a complex PG query vs equivalent OS query\n\n#### Django Integration\n- Pydantic models rather than Django models - consistency with old code \n- Validation, dot notation", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/beyond-the-orm-from-postgres-to-opensearch/" + } + ], + "speakers": [ + "Andrew Mshar" + ], + "thumbnail_url": "https://i.ytimg.com/vi/_iB7ET5rt7s/maxresdefault.jpg", + "title": "Beyond the ORM: from Postgres to OpenSearch", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=_iB7ET5rt7s" + } + ] +} diff --git a/djangocon-us-2025/videos/big-bad-world-of-postgres-dev-environments.json b/djangocon-us-2025/videos/big-bad-world-of-postgres-dev-environments.json new file mode 100644 index 000000000..66eb2b240 --- /dev/null +++ b/djangocon-us-2025/videos/big-bad-world-of-postgres-dev-environments.json @@ -0,0 +1,26 @@ +{ + "description": "You want to test against something as close to production as possible - but you don\u2019t want to expose client data or company secrets during your development process. Let\u2019s talk through the world of development environments for your Postgres database. From local options to using the cloud. We\u2019ll also cover what\u2019s available in terms of replication, copies, anonymizing data, and automation. Believe it or not, there\u2019s some Postgres tricks that can make this easier for your team. \n\nThis talk will be 75% talk and 25% audience participation - Let's talk about development environments in the real world, what is working for folks, and how to improve.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/big-bad-world-of-postgres-dev-environments/" + } + ], + "speakers": [ + "Elizabeth Garrett Christensen" + ], + "thumbnail_url": "https://i.ytimg.com/vi/xeYAfPZUw18/maxresdefault.jpg", + "title": "Big Bad World of Postgres Dev Environments", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=xeYAfPZUw18" + } + ] +} diff --git a/djangocon-us-2025/videos/building-a-wagtail-cms-experience-that-editors-love.json b/djangocon-us-2025/videos/building-a-wagtail-cms-experience-that-editors-love.json new file mode 100644 index 000000000..e7999a0db --- /dev/null +++ b/djangocon-us-2025/videos/building-a-wagtail-cms-experience-that-editors-love.json @@ -0,0 +1,26 @@ +{ + "description": "When a website redesign is on the horizon, frustrations with the existing content management system (CMS) are often a major driver. Yet in many cases, the root problem isn't the CMS itself; it's how it was implemented. \n\nWagtail CMS offers powerful tools for building rich, flexible content-driven websites, but without careful planning and thoughtful design, even the best technology can lead to editor frustration.\n\nIn this talk, we'll explore strategies and best practices for modeling content and design systems in Wagtail CMS that prioritize the needs of editors and content teams. You'll learn how to structure StreamFields, Pages, and Design Systems to create intuitive, flexible, and scalable editing experiences. We'll cover tips for creating governance and patterns that evolve with a site over time, so your Wagtail builds not only launch successfully but also thrive for years to come.\n\nWhether you're a Django developer new to Wagtail or an experienced Wagtail user looking to level up your implementation skills, this session will leave you with practical techniques for building CMS experiences that editors love and that support Wagtail and Django\u2019s continued success.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/building-a-wagtail-cms-experience-that-editors-love/" + } + ], + "speakers": [ + "Michael Trythall" + ], + "thumbnail_url": "https://i.ytimg.com/vi/47RsWpnB_JI/maxresdefault.jpg", + "title": "Building a Wagtail CMS Experience that Editors Love", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=47RsWpnB_JI" + } + ] +} diff --git a/djangocon-us-2025/videos/building-maintainable-django-projects-the-difficult-teenage-years.json b/djangocon-us-2025/videos/building-maintainable-django-projects-the-difficult-teenage-years.json new file mode 100644 index 000000000..28e1ad717 --- /dev/null +++ b/djangocon-us-2025/videos/building-maintainable-django-projects-the-difficult-teenage-years.json @@ -0,0 +1,26 @@ +{ + "description": "Rather than focusing on a single theme this talk touches on a range of real-world engineering problems and patterns, all centred around the challenges that arise in a mature codebase. Topics include:\n\n**1. Cross-Framework Harmony with Custom Events and `json_script`**\n\nStill stuck halfway through migrating to your new JavaScript framework 5 years later? (Just me?) I'll demonstrate a pattern which uses custom DOM events to keep things loosely coupled and how `json_script` can transmit structured data when you can't go all in on APIs.\n\n**2. Customising DRF for more consistent APIs and Observability**\n\nThe Django REST Framework is powerful, but building standard patterns around it makes it even better. I\u2019ll show how custom serializer fields and base viewsets can make data access consistent and enable things like automatic event tracking and monitoring endpoints.\n\n**3. Taming Long-Running Queries with Postgres Statement Timeouts**\n\nLong-running queries can kill user experience. By setting a `statement_timeout` in Postgres and pairing it with custom middleware and a database backend, we turn slow queries into graceful 503 responses that we can handle in the front-end.\n\n**4. Fine-Grained Permissions with Decorators and Feature Flags**\n\nWe'll look at how we can define flexible access rules per view or endpoint and how feature flags can provide gated access to beta features for specific user segments and internal use.\n\n**5. Better Logs with Middleware and Request Tracing**\n\nWe'll explore middleware patterns for injecting a shared `request_id` into logs, techniques for surfacing Django view names in nginx logs, and how to connect database monitoring to specific HTTP requests for a full trace through the stack.\n\nWhether you\u2019re wrangling a large project or trying to avoid turning your fresh greenfield into a mess, these tips aim to make your Django stack more predictable, observable, and maintainable.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/building-maintainable-django-projects-the-difficult-teenage-years/" + } + ], + "speakers": [ + "Alex Henman" + ], + "thumbnail_url": "https://i.ytimg.com/vi/J30ltoatmYo/maxresdefault.jpg", + "title": "Building maintainable Django projects: the difficult teenage years", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=J30ltoatmYo" + } + ] +} diff --git a/djangocon-us-2025/videos/closing-remarks.json b/djangocon-us-2025/videos/closing-remarks.json new file mode 100644 index 000000000..33bc3810c --- /dev/null +++ b/djangocon-us-2025/videos/closing-remarks.json @@ -0,0 +1,26 @@ +{ + "description": "", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/closing-remarks/" + } + ], + "speakers": [ + "Keanya Phelps" + ], + "thumbnail_url": "https://i.ytimg.com/vi/z0aZtG47GTA/maxresdefault.jpg", + "title": "Closing Remarks", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=z0aZtG47GTA" + } + ] +} diff --git a/djangocon-us-2025/videos/community-update-django-events-foundation-north-america.json b/djangocon-us-2025/videos/community-update-django-events-foundation-north-america.json new file mode 100644 index 000000000..1830d8f3f --- /dev/null +++ b/djangocon-us-2025/videos/community-update-django-events-foundation-north-america.json @@ -0,0 +1,26 @@ +{ + "description": "DEFNA President Peter Grandstaff will give an update on DEFNA's activities in the community, how you can help, and what the foundation is looking forward to in 2026.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/community-update-defna/" + } + ], + "speakers": [ + "Peter Grandstaff" + ], + "thumbnail_url": "https://i.ytimg.com/vi/MSH_hU6qG6I/maxresdefault.jpg", + "title": "Community Update: Django Events Foundation North America", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=MSH_hU6qG6I" + } + ] +} diff --git a/djangocon-us-2025/videos/community-update-django-software-foundation.json b/djangocon-us-2025/videos/community-update-django-software-foundation.json new file mode 100644 index 000000000..9d3c8a6de --- /dev/null +++ b/djangocon-us-2025/videos/community-update-django-software-foundation.json @@ -0,0 +1,26 @@ +{ + "description": "DSF President Thibaud Colas will give an update on the DSF's activities in the Django community, how you can help, what other conferences you should have on your radar, the upcoming board elections, and what the foundation is looking forward to in 2026.", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/community-update-dsf/" + } + ], + "speakers": [ + "Thibaud Colas" + ], + "thumbnail_url": "https://i.ytimg.com/vi/Sx3T6WrNefQ/maxresdefault.jpg", + "title": "Community Update: Django Software Foundation", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=Sx3T6WrNefQ" + } + ] +} diff --git a/djangocon-us-2025/videos/community-update-python-software-foundation.json b/djangocon-us-2025/videos/community-update-python-software-foundation.json new file mode 100644 index 000000000..a7d6e228c --- /dev/null +++ b/djangocon-us-2025/videos/community-update-python-software-foundation.json @@ -0,0 +1,26 @@ +{ + "description": "PSF President/Chair Dawn Wages will give an update on the PSF's activities in the community, how you can help, other conferences you should think of attending, and what the foundation is looking forward to in 2026.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/community-update-psf/" + } + ], + "speakers": [ + "Dawn Wages" + ], + "thumbnail_url": "https://i.ytimg.com/vi/RT1yd-sMs3Y/maxresdefault.jpg", + "title": "Community Update: Python Software Foundation", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=RT1yd-sMs3Y" + } + ] +} diff --git a/djangocon-us-2025/videos/cutting-latency-in-half-what-actually-worked-and-what-didnt.json b/djangocon-us-2025/videos/cutting-latency-in-half-what-actually-worked-and-what-didnt.json new file mode 100644 index 000000000..b239c4b67 --- /dev/null +++ b/djangocon-us-2025/videos/cutting-latency-in-half-what-actually-worked-and-what-didnt.json @@ -0,0 +1,26 @@ +{ + "description": "Join me as we dig into real-world Django performance challenges - from quick wins to stubborn bottlenecks that took multiple strategies to fix. Along the way, we\u2019ll explore how we identified what really needed improving - and what was a red herring. We\u2019ll walk through the code that caused the slowdowns, and examine the performance data to learn what actually made a difference.\n\nWe\u2019ll start with the often-overlooked topic of profiling, examining scenarios where our personal experience of the site didn\u2019t match what the performance metrics were telling us. We\u2019ll explore common mistakes in how performance is measured and why different goals require different metrics. Finally, we\u2019ll compare the strengths and weaknesses of various profiling tools available - so you can better understand where your real opportunities for improvement lie.\n\nFrom there, we\u2019ll learn what it means for querysets to be lazy, what an N+1 issue is, and the tools Django (and other third-party packages) provide to solve them. We\u2019ll explore why pagination can be slow, look at caching strategies to speed up your site, database indexes to speed up your queries, and examine common Django-specific bottlenecks - seeing in each case the difference these changes made in real life, not just in theory.\n\nWe\u2019ll also look at a few situations where the biggest improvements didn\u2019t come from deep ORM knowledge or database nuances, but from much simpler changes - and reflect on the lessons those experiences taught us.\n\nMaybe performance has always felt like a bit of a mystery to you, or maybe you\u2019re just curious how adding caching actually slowed our site down. Whether you\u2019re a beginner or a seasoned developer, this talk will equip you with practical tools, proven techniques, and guiding principles to make your Django apps faster and more efficient.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/cutting-latency-in-half-what-actually-worked-and-what-didnt/" + } + ], + "speakers": [ + "Timothy Mccurrach" + ], + "thumbnail_url": "https://i.ytimg.com/vi/jxk1BRTJsAY/maxresdefault.jpg", + "title": "Cutting latency in half: What actually worked\u2014and what didn\u2019t", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=jxk1BRTJsAY" + } + ] +} diff --git a/djangocon-us-2025/videos/deploy-django-gitops-kubernetes-made-easy.json b/djangocon-us-2025/videos/deploy-django-gitops-kubernetes-made-easy.json new file mode 100644 index 000000000..6ebf690d9 --- /dev/null +++ b/djangocon-us-2025/videos/deploy-django-gitops-kubernetes-made-easy.json @@ -0,0 +1,26 @@ +{ + "description": "This talk will show attendees how to streamline the day two operations of delivering and maintaining Python applications in production environments. It emphasizes GitOps principles, repeatable CI/CD workflows, and cloud-agnostic deployment using Kubernetes and Argo CD.\n\nDeploying code shouldn\u2019t be stressful. But too often, the journey from local dev to production is fragile, manual, and hard to debug. This talk is about building peace of mind into your pipeline \u2014 with GitOps, Kubernetes, and open source tools like Argo CD that make continuous delivery predictable, repeatable, and scalable from the very first release to the 50th.\n\nWe\u2019ll tackle the realities of \u201cday two\u201d DevOps \u2014 what happens after the first deploy. From managing rollbacks and coordinating releases to enforcing consistency across dev, staging, and production, you\u2019ll learn how to bring stability and scalability to your delivery pipeline.\n\nIn a live demo, we\u2019ll deploy a full stack Django app from GitHub to production using Argo CD and GitHub Actions \u2014 with observability, rollback strategies, and environment parity built in from the start.\n\n**You\u2019ll learn how to:**\n\n- Set up a GitOps-based CI/CD pipeline that works across all environments\n- Automate rollouts, rollbacks, and version control of infrastructure\n- Understand why Kubernetes is a future-proof platform for Django teams\n- Gain confidence in releasing updates safely, consistently, and at scale\n- Leverage open source tools to eliminate manual deployment headaches\n\nWhether you're writing the code or leading the team, you'll leave with a clear, practical blueprint for shipping faster \u2014 and with fewer surprises.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/deploy-djang-gitops-kubernetes-made-easy/" + } + ], + "speakers": [ + "Calvin Hendryx-Parker" + ], + "thumbnail_url": "https://i.ytimg.com/vi/tX0PxR0cnaE/maxresdefault.jpg", + "title": "Deploy Django: GitOps & Kubernetes Made Easy", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=tX0PxR0cnaE" + } + ] +} diff --git a/djangocon-us-2025/videos/django-as-a-database-documentation-tool-the-hidden-power-of-model-comments.json b/djangocon-us-2025/videos/django-as-a-database-documentation-tool-the-hidden-power-of-model-comments.json new file mode 100644 index 000000000..c7cbcf63d --- /dev/null +++ b/djangocon-us-2025/videos/django-as-a-database-documentation-tool-the-hidden-power-of-model-comments.json @@ -0,0 +1,26 @@ +{ + "description": "Documentation is often the neglected aspect of database design, leading to confusion, mistakes, and lost institutional knowledge. With Django 4.2's comment features, your models can now serve as both code and documentation, synchronizing automatically with your database.\n\nIn this practical session, I'll show you:\n- How to use Django's column and table comments effectively\n- Building unmanaged models to document existing databases\n- Creating custom management commands for documentation reports\n- Strategies for keeping documentation in sync across teams\n- Integrating model comments with data dictionaries and other tools\n- Using model introspection to generate documentation artifacts\n\nI'll demonstrate real-world examples of how these techniques have improved understanding of complex databases and reduced onboarding time for new team members. You'll leave with practical tools for improving your database documentation without maintaining separate documents.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/django-as-a-database-documentation-tool-the-hidden-power-of-model-comments/" + } + ], + "speakers": [ + "Ryan Cheley" + ], + "thumbnail_url": "https://i.ytimg.com/vi/aZwKCo5kwJU/maxresdefault.jpg", + "title": "Django as a Database Documentation Tool: The Hidden Power of Model Comments", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=aZwKCo5kwJU" + } + ] +} diff --git a/djangocon-us-2025/videos/django-for-ai-deploying-machine-learning-models-with-django.json b/djangocon-us-2025/videos/django-for-ai-deploying-machine-learning-models-with-django.json new file mode 100644 index 000000000..1bd64e0e0 --- /dev/null +++ b/djangocon-us-2025/videos/django-for-ai-deploying-machine-learning-models-with-django.json @@ -0,0 +1,26 @@ +{ + "description": "In this talk, we'll bridge the gap between AI/data science and web development by demonstrating how to first train and then deploy a machine learning model using Django. Starting with the classic Iris dataset, we'll walk through training a classification model with scikit-learn, covering key steps like data preprocessing, model selection, and evaluation. \n\nOnce the model is trained, we'll shift focus to Django, showcasing how to integrate the model into a web application that allows users to input flower measurements and receive real-time predictions of the Iris species.\n\nYou'll learn how to take a data science project from a Jupyter notebook to a fully functional Django web app in just a few steps. Whether you're a data scientist interested in web deployment or a Django developer exploring machine learning, this talk will equip you with the tools to bring machine learning models into production-ready applications.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/django-for-ai-deploying-machine-learning-models-with-django/" + } + ], + "speakers": [ + "Will Vincent" + ], + "thumbnail_url": "https://i.ytimg.com/vi/zIQZXr6XIU0/maxresdefault.jpg", + "title": "Django for AI: Deploying Machine Learning Models with Django", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=zIQZXr6XIU0" + } + ] +} diff --git a/djangocon-us-2025/videos/django-governance-growing-sustainable-open-source-communities-together.json b/djangocon-us-2025/videos/django-governance-growing-sustainable-open-source-communities-together.json new file mode 100644 index 000000000..3633f0ae8 --- /dev/null +++ b/djangocon-us-2025/videos/django-governance-growing-sustainable-open-source-communities-together.json @@ -0,0 +1,27 @@ +{ + "description": "\"Come for the language, stay for the community.\" This is a mantra of Python communities, including Django. It's clear how easy it is to forge a strong bond with people in our communities. But have you noticed when you solve one problem for the community, you're soon asked to help with two more problems? You might have even noticed that this phenomenon seems to never stop either. As long as you have time and energy, you're welcomed to do more and more for the community.\n\nOur communities and our contributors need boundaries. Open source software governance is one way to help raise those boundaries. Rachell and Tim want to share with you their lessons learned from their time as open source contributors and community organizers in various organizations in the Django community. Leaving this talk you will understand why governance is important to think about from the start, how to define a basic governance structure and how to integrate it into an existing community. Our goal is to raise awareness around the need for clearer expectations so people feel more confident contributing and feel less guilty when they can't.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/why-governance-in-open-source-is-important/" + } + ], + "speakers": [ + "Rachell Calhoun", + "Tim Schilling" + ], + "thumbnail_url": "https://i.ytimg.com/vi/aVhd0MZvSRw/maxresdefault.jpg", + "title": "Django Governance: \ud83c\udf31Growing Sustainable Open-Source Communities Together\ud83e\udd1d", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=aVhd0MZvSRw" + } + ] +} diff --git a/djangocon-us-2025/videos/django-s-generatedfield-by-example.json b/djangocon-us-2025/videos/django-s-generatedfield-by-example.json new file mode 100644 index 000000000..cdbc39d14 --- /dev/null +++ b/djangocon-us-2025/videos/django-s-generatedfield-by-example.json @@ -0,0 +1,26 @@ +{ + "description": "Database **generated columns** are a killer feature for Django and are now available in **Django 5.0** with the new `GeneratedField`.\n\nThe **value** of a `GeneratedField` is computed entirely by the **database** based on the other **fields** in the **model**, opening up very interesting usage scenarios.\n\nIn this talk, we will learn together how to use this field through various practical **examples**, using various Django supported **database backends**.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/django-s-generatedfield-by-example/" + } + ], + "speakers": [ + "Paolo Melchiorre" + ], + "thumbnail_url": "https://i.ytimg.com/vi/5Iv48N9_4M0/maxresdefault.jpg", + "title": "Django's GeneratedField by example", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=5Iv48N9_4M0" + } + ] +} diff --git a/djangocon-us-2025/videos/django-without-borders-a-10-year-journey-of-open-source-impact-in-namibia.json b/djangocon-us-2025/videos/django-without-borders-a-10-year-journey-of-open-source-impact-in-namibia.json new file mode 100644 index 000000000..50a2f2198 --- /dev/null +++ b/djangocon-us-2025/videos/django-without-borders-a-10-year-journey-of-open-source-impact-in-namibia.json @@ -0,0 +1,26 @@ +{ + "description": "In this talk, I\u2019ll share how we built one of Africa\u2019s most impactful Python and Django communities in Namibia, focusing on the strategies and challenges we overcame to create a thriving, inclusive open-source ecosystem in a region with limited tech infrastructure. Attendees will learn howto grow a sustainable community, empowering underrepresented groups, and using open-source tools like Django to address local challenges in real-world projects.\n\nThis talk is important because it highlights how communities in underserved regions can use open-source technologies to drive change, even without access to the infrastructure found in larger tech hubs. It\u2019s a story of resilience, innovation, and collaboration over the last 10 years of our community. This journey wasn\u2019t just about writing code; it was about changing the landscape of tech in Namibia, proving that with determination and the right support and tools like Django, anyone can participate and contribute meaningfully. If you\u2019re someone who\u2019s interested in creating meaningful impact with technology, especially in resource-constrained environments, this talk will provide you with the lessons and strategies to do so.\n\nI will discuss the following key points:\n\n1. **Building an Open-Source Community**: How we engaged local and global partners, hosted events like Django Day Namibia, and created a space for developers to grow.\n2. **Overcoming Challenges**: The unique obstacles we faced, from poor internet access to a lack of technical infrastructure, and how we found solutions that kept the community thriving for 10 years.\n3. **Empowering Underrepresented Groups**: Our approach to inclusivity, especially focusing on mentoring women and students in tech.\n4. **Real-World Impact**: Highlighting how we used Django in projects that addressed local issues like wildlife conservation, healthcare, and tourism.\n5. **Sustaining a Community**: How we keep people motivated, engaged, and connected even with limited resources, and why our collective effort has been the key to staying active and relevant for the last 10 years.\n\nThis talk isn\u2019t just for developers. It\u2019s for anyone who believes in the potential of technology to uplift lives and communities, regardless of circumstances. Whether you\u2019re a community organizer, a developer, or someone passionate about creating change, you\u2019ll leave this session with both the inspiration and practical insights to make a difference where it matters most.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/django-without-borders-a-10-year-journey-of-open-source-impact-in-namibia/" + } + ], + "speakers": [ + "Ngazetungue Muheue" + ], + "thumbnail_url": "https://i.ytimg.com/vi/GehnuLvpBq8/maxresdefault.jpg", + "title": "Django Without Borders: A 10-Year Journey of Open Source Impact in Namibia", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=GehnuLvpBq8" + } + ] +} diff --git a/djangocon-us-2025/videos/djangonaut-space-a-mentorship-program-for-open-source.json b/djangocon-us-2025/videos/djangonaut-space-a-mentorship-program-for-open-source.json new file mode 100644 index 000000000..cdb16d260 --- /dev/null +++ b/djangocon-us-2025/videos/djangonaut-space-a-mentorship-program-for-open-source.json @@ -0,0 +1,26 @@ +{ + "description": "Djangonaut Space is a mentorship program created to address the problem of sustainability for open source projects. It helps grow the community and bridge the gap between new contributors and long-time maintainers, ensuring the web framework and its eco-system continues to thrive and adapt to changing needs.\n\nI will share my experiences and insights about Djangonaut Space as a new contributor and session organizer. Whether you\u2019re new to open source, or a long-time maintainer, or a community leader, a mentorship program can have many benefits for your community. Learn how you can get involved, or how you might borrow ideas to create a successful mentorship program for your community.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/djangonaut-space-a-mentorship-program-for-open-source/" + } + ], + "speakers": [ + "Lilian" + ], + "thumbnail_url": "https://i.ytimg.com/vi/hs8sf-4ymZY/maxresdefault.jpg", + "title": "Djangonaut Space: A Mentorship Program For Open Source", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=hs8sf-4ymZY" + } + ] +} diff --git a/djangocon-us-2025/videos/easy-breezy-beautiful-django-unit-tests.json b/djangocon-us-2025/videos/easy-breezy-beautiful-django-unit-tests.json new file mode 100644 index 000000000..a5fd895e4 --- /dev/null +++ b/djangocon-us-2025/videos/easy-breezy-beautiful-django-unit-tests.json @@ -0,0 +1,26 @@ +{ + "description": "We\u2019ve all been in a situation where test coverage was lacking. And unless you\u2019ve been *very* lucky, we\u2019ve all seen a situation where that lack of coverage led to bugs sneaking into production. With the complex backend and full-stack systems of today, it is unrealistic to expect any programmer to know exactly how a code change will affect all parts of the project. And we don\u2019t have to! That\u2019s why we have testing. And unit tests are the most accessible form of testing throughout the entire development process \u2014 it\u2019s accessible right there in your terminal with a simple \u201cpytest\u201d or \u201cmake tests\u201d. Unit tests are the first line of defense against bugs and breaks \u2014 let\u2019s ensure you have a strong, reliable Alexander the Great of unit test suites and not a temperamental, vulnerable Achilles Heel!\n\nThis talk is divided into two parts.\n\nPart One: Unit Testing Why, What and How \u2014 These topics will be called back to in Part Two when we talk about Django specific unit testing features.\n\n1. Why is Unit Testing important?\n2. An abbreviated analysis of Testing Behavior vs Testing Implementation\n3. How to Mock? When to Mock? Why to Mock?\n4. setUp/Class and tearDown/Class\n\nPart Two: Write Tests WITH Django not AGAINST Django\n\n1. Save Space! Use a Model Factory \u2014 DjangoModelFactory and how to simply extend for your needs.\n2. @override_settings() and other decorators to keep your unittests happy across environments\n3. Django Specific Assertions \u2014 such as assertContains on querysets, assertFormFails, etc.\n4. Do you *reeeeeally* want to call your serializers? When to mock serializers and other Django automations when the format doesn\u2019t matter nearly as much as the function. Do you really want your test to break when a new model field is added?\n5. SetUpTestData to automate the busy work of testing ORM\n6. Extending TestCase and building the Base Test Case of your dreams\n7. Utilize manage.py test\u2019s parameters to invoke tests in a way that serves *your* needs.\n\nWriting Code is better when your testing is better. Do yourself a favor and send your unit test skills to bootcamp!", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/easy-breezy-beautiful-django-unit-tests/" + } + ], + "speakers": [ + "Colleen Dunlap" + ], + "thumbnail_url": "https://i.ytimg.com/vi/RAFB0J2AbGw/maxresdefault.jpg", + "title": "Easy, Breezy, Beautiful... Django Unit Tests", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=RAFB0J2AbGw" + } + ] +} diff --git a/djangocon-us-2025/videos/entering-the-world-of-cms-with-wagtail.json b/djangocon-us-2025/videos/entering-the-world-of-cms-with-wagtail.json new file mode 100644 index 000000000..9c694ae3e --- /dev/null +++ b/djangocon-us-2025/videos/entering-the-world-of-cms-with-wagtail.json @@ -0,0 +1,26 @@ +{ + "description": "Content Management Systems are a crucial element of any organization's online presence in a world where customers get their information online. Depending on the content management system, you may encounter different challenges in completely different aspects. Whether it's the developers having a headache, the content writers having difficulty working with the content management system, or the customers having issues, does it have to be this way? \n\nWhether you're a veteran Django programmer, a new user of the framework, or a CMS developer exploring alternatives, this talk is for you. We'll demonstrate how Django and Wagtail can be leveraged to create an elegant, custom-tailored Content Management System. You'll learn how to build a CMS that's both easy to maintain for developers and intuitive for content writers, with customization options that perfectly align with your specific requirements.\n\nAdditionally, we will talk about the common pitfalls we see with CMS sites that run into issues and how to best prepare your CMS for running at scale.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/entering-the-world-of-cms-with-wagtail/" + } + ], + "speakers": [ + "Michael Riley" + ], + "thumbnail_url": "https://i.ytimg.com/vi/sXNQcn6szRg/maxresdefault.jpg", + "title": "Entering the World of CMS with Wagtail", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=sXNQcn6szRg" + } + ] +} diff --git a/djangocon-us-2025/videos/evolving-django-what-we-learned-by-integrating-mongodb.json b/djangocon-us-2025/videos/evolving-django-what-we-learned-by-integrating-mongodb.json new file mode 100644 index 000000000..a62183e66 --- /dev/null +++ b/djangocon-us-2025/videos/evolving-django-what-we-learned-by-integrating-mongodb.json @@ -0,0 +1,26 @@ +{ + "description": "## History\n\nBuilding on the progress of the past, most notably django-mongodb-engine and django-nonrel, MongoDB has taken on the challenge of developing a production-ready Django database backend for MongoDB.\n\nEarly in 2024 with help from Django core developer Tim Graham, MongoDB has systematically developed and tested a database backend with the potential to be greater than the sum of its parts.\n\n## Present\nIn September 2024, I started working for MongoDB to help with this project and what I've seen so far is amazing! - Query support with MongoDB's aggregate function. - A custom model manager with raw_aggregate function to support MongoDB's QuerySet language - Many more amazing things to be added between now and presentation! - Released our beta we urge folks to try!\n\n## Future\nAs a long time Django developer and newcomer to MongoDB, I am excited about the possibilities. - An alternative to PostgreSQL and MySQL! - Deployments to MongoDB's Atlas cloud database service. - Many more exciting things to be added between now and presentation!\n\nThank you and please check out https://github.com/mongodb-labs/django-mongodb-backend or `pip install django-mongodb-backend`", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/evolving-django-what-we-learned-by-integrating-mongodb/" + } + ], + "speakers": [ + "Jeffrey A. Clark" + ], + "thumbnail_url": "https://i.ytimg.com/vi/MlXFBgUpcO0/maxresdefault.jpg", + "title": "Evolving Django: What We Learned by Integrating MongoDB", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=MlXFBgUpcO0" + } + ] +} diff --git a/djangocon-us-2025/videos/free-threaded-django.json b/djangocon-us-2025/videos/free-threaded-django.json new file mode 100644 index 000000000..b548d951f --- /dev/null +++ b/djangocon-us-2025/videos/free-threaded-django.json @@ -0,0 +1,26 @@ +{ + "description": "This talk will likely have three or four major sections. Some of this is subject to change when we get out to ~1 to ~2 months from the conference given changes/breakthroughs in the Python free threading world, and any additional changes that are projected to happen in Python 3.14. That being said, here is the current outline:\n\n1. What is the GIL, and what are the positive and negative consequences of free threading and removing the GIL. What does the GIL protect against? What kind of bugs are \"impossible\" with the GIL that are now possible without it? And, given all of that, what does removing the GIL enable?\n2. If Django was in free threading mode (without the GIL), what parts of it and dependencies of it would likely be thread safe? What parts might not be thread safe, or would need some additional to work to become thread safe? We'll dive into various Django internals and demonstrate places that might need attention. We'll also look at database adapters like psycopg and talk about how free threading impacts those. Finally, we'll talk about sync/async Django, and how free threading would impact both, from a thread safety angle and also from a performance angle.\n3. On the WSGI/ASGI broker side, we'll look at gunicorn, uvicorn, and granian, a newer option that provides free threaded support. We'll talk about if and how these can (or can't currently be) run in free threading mode. We'll then do a live demo profiling a Django application running with and without free threading, and look at both speed/performance and memory efficiency.\n4. Finally, we'll conclude with a summary of the current state of things. Can you run Django applications on Python 3.13 (or soon to come out 3.14) in free threaded mode? Should you do so in production (at your own risk)? And if not, what needs to happen, both on the Django side and related libraries, before free threaded mode is a viable production option for Django.", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/free-threaded-django/" + } + ], + "speakers": [ + "Micah Lyle" + ], + "thumbnail_url": "https://i.ytimg.com/vi/8VfX5z7zoas/maxresdefault.jpg", + "title": "Free Threaded Django", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=8VfX5z7zoas" + } + ] +} diff --git a/djangocon-us-2025/videos/hidden-dangers-of-ai-in-developer-workflows-navigating-security-risks-with-human-insight.json b/djangocon-us-2025/videos/hidden-dangers-of-ai-in-developer-workflows-navigating-security-risks-with-human-insight.json new file mode 100644 index 000000000..053263373 --- /dev/null +++ b/djangocon-us-2025/videos/hidden-dangers-of-ai-in-developer-workflows-navigating-security-risks-with-human-insight.json @@ -0,0 +1,26 @@ +{ + "description": "AI tools like ChatGPT and Copilot have become indispensable in developers' daily workflows. Whether it is for code samples and scaffolding, prototyping, or documentation, AI can help eliminate a lot of toil from the developer's day-to-day. \n\nThe hidden dangers that AI have introduced that are worth exploring.\n\nThis presentation will look at the critical security challenges associated with AI-enhanced development workflows and the essential role of human oversight in mitigating these risks. \n\nWe'll look into three major areas of concern:\n1. The AI told me to do it that way\u2026\n2. Hallucinations everywhere\n3. Where did my data go?\n\nJoin this talk to see some real examples of AI getting it wrong, but stay for a discussion on how you can leverage already existing tools to make the best use of the most valuable resource in the company\u2026your team's time. Expect to leave with a fresh perspective on how bright a future we can build as people fostering more secure and efficient development practices.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/hidden-dangers-of-ai-in-developer-workflows-navigating-security-risks-with-human-insight/" + } + ], + "speakers": [ + "Dwayne McDaniel" + ], + "thumbnail_url": "https://i.ytimg.com/vi/rDWLAPeQ4vc/maxresdefault.jpg", + "title": "Hidden Dangers Of AI In Developer Workflows: Navigating Security Risks with Human Insight", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=rDWLAPeQ4vc" + } + ] +} diff --git a/djangocon-us-2025/videos/high-performance-django-at-ten-old-tricks-new-picks.json b/djangocon-us-2025/videos/high-performance-django-at-ten-old-tricks-new-picks.json new file mode 100644 index 000000000..2cc3f81c7 --- /dev/null +++ b/djangocon-us-2025/videos/high-performance-django-at-ten-old-tricks-new-picks.json @@ -0,0 +1,26 @@ +{ + "description": "It\u2019s been over a decade since I co-authored _High Performance Django_. The book helped thousands of developers understand how to build faster, more scalable Django applications.\n\nThis talk will revisit the techniques we recommended to see what\u2019s aged like fine wine and what's aged like, well, milk. You\u2019ll get an inside look at how Lincoln Loop manages Django applications that handle hundreds of millions of requests per month.\n\nTopics covered will include:\n\n* Caching\n* Database Performance\n* Monitoring and Observability\n* Load Testing\n* Third-Party Dependencies\n* Infrastructure\n\nThis talk is best suited for intermediate to advanced Django developers who are already comfortable building their own apps and have a general understanding of deployments.", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/high-performance-django-at-ten-old-tricks-new-picks/" + } + ], + "speakers": [ + "Peter Baumgartner" + ], + "thumbnail_url": "https://i.ytimg.com/vi/Yq4gewWIPJc/maxresdefault.jpg", + "title": "High Performance Django at Ten: Old Tricks & New Picks", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=Yq4gewWIPJc" + } + ] +} diff --git a/djangocon-us-2025/videos/how-to-enjoy-debugging-in-production.json b/djangocon-us-2025/videos/how-to-enjoy-debugging-in-production.json new file mode 100644 index 000000000..1c8ccc37e --- /dev/null +++ b/djangocon-us-2025/videos/how-to-enjoy-debugging-in-production.json @@ -0,0 +1,26 @@ +{ + "description": "As developers, we go to great lengths to try to ensure our code is bug-free: automated code linters, code reviews, unit tests, and quality assurance testing on staging environments before production release. Despite our best efforts though, we still find bugs that only surface after release to production. In this talk, we'll draw on years of experience in supporting production sites to illustrate using real examples:\n\n- Common reasons for bugs appearing in production, including\n - Specifications at odds with reality\n - Differences between development/testing and production environments\n- Lessons learned from experience of encountering production bugs:\n - How to guard against \"quiet\" failures (i.e. things not happening when they should)\n - Methods / services to have in place to make debugging in production easier\n\nWith the information presented in this talk, we hope you can approach your next launch day with more anticipation than dread!", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/how-to-enjoy-debugging-in-production/" + } + ], + "speakers": [ + "Karen Tracey" + ], + "thumbnail_url": "https://i.ytimg.com/vi/OVvbatcjd14/maxresdefault.jpg", + "title": "How to Enjoy Debugging in Production", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=OVvbatcjd14" + } + ] +} diff --git a/djangocon-us-2025/videos/keynote-all-the-ways-to-use-django.json b/djangocon-us-2025/videos/keynote-all-the-ways-to-use-django.json new file mode 100644 index 000000000..6b6d9dab3 --- /dev/null +++ b/djangocon-us-2025/videos/keynote-all-the-ways-to-use-django.json @@ -0,0 +1,26 @@ +{ + "description": "Ever thought \"I love Django but I can't use it on this project because [REASON]\"? Let's take a second look. Django has lots of parts, and it can still do a lot even if you don't use all of them.\n\nWe're going to take Django apart and look at its pieces. In the process, we'll look at new ways to use Django that you may have discarded as infeasible, including the following:\n\n* When you have a lot of background and asynchronous tasks\n* When you are using JavaScript frameworks for your frontend\n* When you have a multi-service backend\n* When you are using a database other than PostgreSQL or MySQL\n* When you have no database\n* When you aren't building a website\n* When you have a lot of existing software not built in Django\n\nThroughout this talk, we'll look at how to use Django an appropriate amount for each situation, how Django can still be powerful even if you only use a few pieces of the framework, and things that could be added to Django for it to better address some of these use-cases.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/keynote-tuesday/" + } + ], + "speakers": [ + "Benjamin \"Zags\" Zagorsky" + ], + "thumbnail_url": "https://i.ytimg.com/vi/7SGqZcrUGSU/maxresdefault.jpg", + "title": "Keynote: All The Ways To Use Django", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=7SGqZcrUGSU" + } + ] +} diff --git a/djangocon-us-2025/videos/keynote-django-reimagined-for-the-age-of-ai.json b/djangocon-us-2025/videos/keynote-django-reimagined-for-the-age-of-ai.json new file mode 100644 index 000000000..3b95a2bc4 --- /dev/null +++ b/djangocon-us-2025/videos/keynote-django-reimagined-for-the-age-of-ai.json @@ -0,0 +1,26 @@ +{ + "description": "22 years ago Django, was created in a newsroom by two programmers, Simon Willison and Adrian Holovaty. Since then, it's been downloaded millions of times and has one of the most active open source communities in Python. At the same time, the software industry has changed a lot because of AI, leaving many of us feeling unsure about the future of web development. In this talk we'll look at some of the key ideas that made Django successful in its early days, and how we can apply them today to reimagine how we create web applications with AI.\n\nWe'll talk about what it means to be a perfectionist working with non-deterministic tools like LLMs, how we can avoid repeating ourselves in the age of stochastic parrots and experiment with some live demos.", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/keynote-wednesday/" + } + ], + "speakers": [ + "Marlene Mhangami" + ], + "thumbnail_url": "https://i.ytimg.com/vi/VwqFx9Tup0A/maxresdefault.jpg", + "title": "Keynote: Django Reimagined For The Age of AI", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=VwqFx9Tup0A" + } + ] +} diff --git a/djangocon-us-2025/videos/keynote-lateral-thinking-with-weathered-technology-how-the-nintendo-philosophy-applies-to-modern-web-development.json b/djangocon-us-2025/videos/keynote-lateral-thinking-with-weathered-technology-how-the-nintendo-philosophy-applies-to-modern-web-development.json new file mode 100644 index 000000000..cf2190daa --- /dev/null +++ b/djangocon-us-2025/videos/keynote-lateral-thinking-with-weathered-technology-how-the-nintendo-philosophy-applies-to-modern-web-development.json @@ -0,0 +1,26 @@ +{ + "description": "In this talk Carson Gross will explore a little known philosophy of Nintendo's Gunpei Yokoi: Lateral Thinking with Weathered (or Withered, or Seasoned) Technology. He will examine both django and htmx in terms of this philosophy and explore why these two technologies work together so well.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/keynote-monday/" + } + ], + "speakers": [ + "Carson Gross" + ], + "thumbnail_url": "https://i.ytimg.com/vi/ZLpCIw19lE0/maxresdefault.jpg", + "title": "Keynote: Lateral Thinking with Weathered Technology: How The Nintendo Philosophy Applies to Modern Web Development", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=ZLpCIw19lE0" + } + ] +} diff --git a/djangocon-us-2025/videos/level-up-your-django-frontend-integrate-web-components-into-django-templates-with-vue.json b/djangocon-us-2025/videos/level-up-your-django-frontend-integrate-web-components-into-django-templates-with-vue.json new file mode 100644 index 000000000..0418377ac --- /dev/null +++ b/djangocon-us-2025/videos/level-up-your-django-frontend-integrate-web-components-into-django-templates-with-vue.json @@ -0,0 +1,26 @@ +{ + "description": "Have you avoided heavyweight JavaScript frameworks because they're overwhelming, complicated, or difficult to integrate? \n\nHas your current JavaScript solution devolved into an unmaintainable, unscalable, and untestable mess? \n\nNeed to bring real interactivity to your Django app but reluctant to commit to a full API-driven SPA? \n\nThis talk is for you.\n\nIn this 45-minute deep dive, you\u2019ll learn how to bring modern frontend power to your Django app without giving up the simplicity of Django Templates. Starting with a simple Django-only dice-rolling app, I'll show you how to incrementally build and integrate interactive Web Components that bring the application to life.\n\nYou\u2019ll see how Vue 3.5, the Vite build tool, and Web Components make it fast and easy to add full-featured, maintainable interactivity to your template-driven Django apps.\n\nBy the end of the talk, you'll understand how to:\n\n * Create a new Vue project and configure the Vite build tool\n * Create Vue Single File Components (SFCs) and compile them into native Web Components\n * Use Web Components directly in Django Templates by custom tag name\n * Manage and persist JavaScript state across page loads with Pinia\n * Debug and inspect Web Components and state live in-page\n * Style your components using existing site styles and scoped component styles\n * Pass data from Django to Web Components via properties and injection\n * Include rendered template content and media in Web Components using slots\n * Break interactive content out of their containers and place them anywhere using Teleport\n * Send data from Web Components to Django views via AJAX or POST requests\n * Dynamically render Django responses inside Web Components\n * Deploy your application using your existing static files setup", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/unleash-your-django-frontend-integrate-web-components-into-django-templates-with-vue/" + } + ], + "speakers": [ + "Mike Hoolehan" + ], + "thumbnail_url": "https://i.ytimg.com/vi/PlK67x44u9o/maxresdefault.jpg", + "title": "Level Up Your Django Frontend: Integrate Web Components into Django Templates with Vue", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=PlK67x44u9o" + } + ] +} diff --git a/djangocon-us-2025/videos/lightning-talks-monday.json b/djangocon-us-2025/videos/lightning-talks-monday.json new file mode 100644 index 000000000..438afab4e --- /dev/null +++ b/djangocon-us-2025/videos/lightning-talks-monday.json @@ -0,0 +1,24 @@ +{ + "description": "", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/lightning-talks-monday/" + } + ], + "speakers": [], + "thumbnail_url": "https://i.ytimg.com/vi/gWEwPy9mjqQ/maxresdefault.jpg", + "title": "Lightning Talks (Monday)", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=gWEwPy9mjqQ" + } + ] +} diff --git a/djangocon-us-2025/videos/lightning-talks-tuesday.json b/djangocon-us-2025/videos/lightning-talks-tuesday.json new file mode 100644 index 000000000..cfc13f699 --- /dev/null +++ b/djangocon-us-2025/videos/lightning-talks-tuesday.json @@ -0,0 +1,24 @@ +{ + "description": "", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/lightning-talks-tuesday/" + } + ], + "speakers": [], + "thumbnail_url": "https://i.ytimg.com/vi/jn7NPmHyC8I/maxresdefault.jpg", + "title": "Lightning Talks (Tuesday)", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=jn7NPmHyC8I" + } + ] +} diff --git a/djangocon-us-2025/videos/lightning-talks-wednesday.json b/djangocon-us-2025/videos/lightning-talks-wednesday.json new file mode 100644 index 000000000..0c02df2ad --- /dev/null +++ b/djangocon-us-2025/videos/lightning-talks-wednesday.json @@ -0,0 +1,24 @@ +{ + "description": "", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/lightning-talks-wednesday/" + } + ], + "speakers": [], + "thumbnail_url": "https://i.ytimg.com/vi/dw8_s3DMdcA/maxresdefault.jpg", + "title": "Lightning Talks (Wednesday)", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=dw8_s3DMdcA" + } + ] +} diff --git a/djangocon-us-2025/videos/opening-remarks-monday.json b/djangocon-us-2025/videos/opening-remarks-monday.json new file mode 100644 index 000000000..449434226 --- /dev/null +++ b/djangocon-us-2025/videos/opening-remarks-monday.json @@ -0,0 +1,26 @@ +{ + "description": "", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/opening-remarks-monday/" + } + ], + "speakers": [ + "Keanya Phelps" + ], + "thumbnail_url": "https://i.ytimg.com/vi/BrfqJrDbBJg/maxresdefault.jpg", + "title": "Opening Remarks (Monday)", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=BrfqJrDbBJg" + } + ] +} diff --git a/djangocon-us-2025/videos/opening-remarks-tuesday.json b/djangocon-us-2025/videos/opening-remarks-tuesday.json new file mode 100644 index 000000000..71ac60105 --- /dev/null +++ b/djangocon-us-2025/videos/opening-remarks-tuesday.json @@ -0,0 +1,26 @@ +{ + "description": "", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/opening-remarks-tuesday/" + } + ], + "speakers": [ + "Peter Grandstaff" + ], + "thumbnail_url": "https://i.ytimg.com/vi/SsqRuDVoDBE/maxresdefault.jpg", + "title": "Opening Remarks (Tuesday)", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=SsqRuDVoDBE" + } + ] +} diff --git a/djangocon-us-2025/videos/opening-remarks-wednesday.json b/djangocon-us-2025/videos/opening-remarks-wednesday.json new file mode 100644 index 000000000..310724b4f --- /dev/null +++ b/djangocon-us-2025/videos/opening-remarks-wednesday.json @@ -0,0 +1,26 @@ +{ + "description": "", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/opening-remarks-wednesday/" + } + ], + "speakers": [ + "Abigail Afi Gbadago" + ], + "thumbnail_url": "https://i.ytimg.com/vi/AkEdiGIGm9U/maxresdefault.jpg", + "title": "Opening Remarks (Wednesday)", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=AkEdiGIGm9U" + } + ] +} diff --git a/djangocon-us-2025/videos/orientation.json b/djangocon-us-2025/videos/orientation.json new file mode 100644 index 000000000..c57fb2670 --- /dev/null +++ b/djangocon-us-2025/videos/orientation.json @@ -0,0 +1,26 @@ +{ + "description": "", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/orientation/" + } + ], + "speakers": [ + "Kojo Idrissa" + ], + "thumbnail_url": "https://i.ytimg.com/vi/a_ePPKwApSM/maxresdefault.jpg", + "title": "Orientation", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=a_ePPKwApSM" + } + ] +} diff --git a/djangocon-us-2025/videos/panel-discussion-two-decades-of-django-the-past-present-and-future.json b/djangocon-us-2025/videos/panel-discussion-two-decades-of-django-the-past-present-and-future.json new file mode 100644 index 000000000..671f60f74 --- /dev/null +++ b/djangocon-us-2025/videos/panel-discussion-two-decades-of-django-the-past-present-and-future.json @@ -0,0 +1,32 @@ +{ + "description": "This special anniversary panel will reflect on Django's evolution, from its early days to its global adoption and look into what's needed to sustain and grow the Django ecosystem into the future.\n\nThe conversation will explore:\n\n- The moments that defined Django's past and the ones shaping its future\n- Technical challenges and architectural choices ahead\n- What community health really looks like after 20 years\n- How different roles, from governance to grassroots organizing, work together to keep Django thriving\n- What we should let go of, and what we can't afford to lose\n\nOur panelists include:\n- **[Tim Schilling](https://www.linkedin.com/in/tim-schilling-5b365a15/)**,Co-Founder Djangonaut Space and Django Steering Council Member\n- **[Natalia Bidart](https://www.linkedin.com/in/nessita/)**, Django Fellow, maintaining and improving the framework every day\n- **[Rachell Calhoun](https://www.linkedin.com/in/rachell-calhoun-0793525a/)**, Co-Founder Djangonaut Space and Django Girls organizer\n- **[Peter Grandstaff](https://www.linkedin.com/in/petergrandstaff/)**, President of Django Events Foundation North America (DEFNA)\n- **[Jeff Triplett](https://www.linkedin.com/in/jefftriplett/)**, Django Software Foundation (DSF) Board Member\n- **[Dawn Wages](https://www.linkedin.com/in/dawnwages/)**, Chair Person, Board of Directors of the Python Software Foundation (PSF)", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/panel-discussion-details/" + } + ], + "speakers": [ + "Velda Kiara", + "Tim Schilling", + "Natalia Bidart", + "Rachell Calhoun", + "Peter Grandstaff", + "Jeff Triplett", + "Dawn Wages" + ], + "thumbnail_url": "https://i.ytimg.com/vi/uYN7cpxhuhE/maxresdefault.jpg", + "title": "Panel Discussion: Two Decades of Django: The Past, Present and Future", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=uYN7cpxhuhE" + } + ] +} diff --git a/djangocon-us-2025/videos/peaceful-django-migrations.json b/djangocon-us-2025/videos/peaceful-django-migrations.json new file mode 100644 index 000000000..6aa7052d9 --- /dev/null +++ b/djangocon-us-2025/videos/peaceful-django-migrations.json @@ -0,0 +1,26 @@ +{ + "description": "Django\u2019s migration framework is a powerful tool for evolving your database schema, but with great power comes great responsibility. In production systems, the wrong migration at the wrong time can introduce serious performance issues or even temporary outages.\n\nThis talk demystifies what actually happens during makemigrations, migrate, and sqlmigrate, explains how Django interacts with the database engine, and highlights the locking behavior that can impact availability. Through real-world examples, we\u2019ll explore schema changes that are especially risky\u2014such as adding columns with defaults or modifying indexes\u2014and how to spot them in advance using Django\u2019s tools and external linters like Squawk.\n\nAttendees will leave with a practical toolkit of strategies for minimizing risk, including safe migration patterns, multi-step deployment techniques, and tips for planning changes during low-traffic windows. Whether you're running a high-traffic SaaS product or a growing internal tool, you'll walk away ready to make database changes with confidence.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/peaceful-django-migrations/" + } + ], + "speakers": [ + "Efe Öge" + ], + "thumbnail_url": "https://i.ytimg.com/vi/5QbLbL7QSec/maxresdefault.jpg", + "title": "Peaceful Django Migrations", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=5QbLbL7QSec" + } + ] +} diff --git a/djangocon-us-2025/videos/postgresql-tuning-parameters-or-tuning-queries.json b/djangocon-us-2025/videos/postgresql-tuning-parameters-or-tuning-queries.json new file mode 100644 index 000000000..8bb0f14c6 --- /dev/null +++ b/djangocon-us-2025/videos/postgresql-tuning-parameters-or-tuning-queries.json @@ -0,0 +1,26 @@ +{ + "description": "When it comes to database performance tuning, most PostgreSQL practitioners focus on optimizing configuration parameters. It is often assumed that as soon as we choose the correct values for parameters and restart the database instance, all the world's problems will be solved. Indeed, due to configuration parameters tuning, we can observe database performance increase up to 10-20% and sometimes up to 50%. That might sound like impressive numbers, but individual query optimization routinely makes queries run several times faster, sometimes ten or more times faster. All of us might recall some examples of such drastic performance improvement, but it is not easy to quantify the impact. \nIn this talk, we will demonstrate the difference each approach can make with practical examples by using the Postgres_air database (https://github.com/hettie-d/postgres_air)- the largest publicly available PostgreSQL training DB. We will compare the impact of tuning different memory allocation parameters with the impact of creating missing indexes and, finally - with the impact of query rewrite. Hopefully, the numbers will speak for themselves.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/postgresql-tuning-parameters-or-tuning-queries/" + } + ], + "speakers": [ + "Henrietta Dombrovskaya" + ], + "thumbnail_url": "https://i.ytimg.com/vi/yKeSkDd5PYY/maxresdefault.jpg", + "title": "PostgreSQL: Tuning parameters or Tuning Queries?", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=yKeSkDd5PYY" + } + ] +} diff --git a/djangocon-us-2025/videos/python-for-planet-earth-climate-modeling-and-sustainability-in-action.json b/djangocon-us-2025/videos/python-for-planet-earth-climate-modeling-and-sustainability-in-action.json new file mode 100644 index 000000000..b3b96e841 --- /dev/null +++ b/djangocon-us-2025/videos/python-for-planet-earth-climate-modeling-and-sustainability-in-action.json @@ -0,0 +1,26 @@ +{ + "description": "In this talk, I'll delve into how Python is revolutionizing climate modeling and sustainability efforts. As the planet faces unprecedented environmental challenges, the need for precise data analysis and actionable insights has never been greater. Python, with its powerful libraries and tools, is at the forefront of this scientific revolution. \n\n \n\nI'll begin by exploring how Python is used in climate modeling, focusing on libraries like `netCDF4` and `xarray` to handle and analyze complex climate datasets. Attendees will see how these tools enable scientists to simulate climate systems, predict future scenarios, and assess potential impacts on global and regional scales. \n\n \n\nNext, I'll shift to environmental monitoring, where Python plays a crucial role in processing and visualizing geospatial data. Using tools like `Rasterio`, `GeoPandas`, and `PyProj`, I'll demonstrate how Python facilitates real-time monitoring of environmental changes, such as deforestation, air quality, and ocean health. \n\n \n\nFinally, I'll examine how Python supports sustainability projects, from renewable energy forecasting to resource management. By leveraging Python's data analysis capabilities, these projects are driving meaningful change in the pursuit of a more sustainable future. \n\n \n\nThroughout the talk, attendees will gain hands-on insights into key Python libraries, see real-world examples of their application, and understand how Python is empowering scientists, researchers, and developers to make a tangible impact on our planet's future. Whether attendees are involved in environmental science, data analysis, or just passionate about sustainability, this session will provide you with the knowledge and tools to contribute to the cause.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/python-for-planet-earth-climate-modeling-and-sustainability-in-action/" + } + ], + "speakers": [ + "Drishti Jain" + ], + "thumbnail_url": "https://i.ytimg.com/vi/kJprOBEZgto/maxresdefault.jpg", + "title": "Python for Planet Earth: Climate Modeling and Sustainability in Action", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=kJprOBEZgto" + } + ] +} diff --git a/djangocon-us-2025/videos/reverse-engineering-the-qr-code-generator-and-url-forwarder-service.json b/djangocon-us-2025/videos/reverse-engineering-the-qr-code-generator-and-url-forwarder-service.json new file mode 100644 index 000000000..280210b2d --- /dev/null +++ b/djangocon-us-2025/videos/reverse-engineering-the-qr-code-generator-and-url-forwarder-service.json @@ -0,0 +1,26 @@ +{ + "description": "Sharing urls using QR code is a common use case nowadays.\n\nYou might have seen restaurants sharing links to their menu or loyalty programs using QR code. A conference speaker might have lots of links to share during their talk, and it's not always practical to share long links in their presentation slides. Using QR code would help, but QR code creation is a mysterious process.\n\nThere are various websites and services that lets you generate QR codes. However, these services sometimes aren't free, or they might serve ads on the website. What's even worse, sometimes these services would mask your url with a their own url shortener or domain. Users will hesitate to scan your QR code if it is not clear where it's taking them to.\n\nLet's reverse engineer those services and see how we can build our own using Python and Django.\n\nYou can easily generate QR codes in Python using the `qrcode` Python library. It even lets you customize your QR code by adding colors and logo.\n\nAs you generate more QR codes yourself, you might find it tedious having to do it as a Python script. Wouldn't it be nice if you could do it in the browser?\n\nWhat if you need to change your URL after sharing the original QR code? For example, what if you've printed our the QR code in your promotional posters, and flyers? It's not always cost-efficient to re-print and re-distribute your materials just because you have a new URL. Therefore, you might have a need for a URL forwarder service.\n\nTake your Django knowledge to the next level by building a web service for QR code generation and url forwarder/shorterner.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/reverse-engineering-the-qr-code-generator-and-url-forwarder-service/" + } + ], + "speakers": [ + "Mariatta" + ], + "thumbnail_url": "https://i.ytimg.com/vi/7knxXLg4enA/maxresdefault.jpg", + "title": "Reverse engineering the QR code generator and URL forwarder service", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=7knxXLg4enA" + } + ] +} diff --git a/djangocon-us-2025/videos/the-source-of-change-bettering-online-open-source-communities-can-begin-with-you.json b/djangocon-us-2025/videos/the-source-of-change-bettering-online-open-source-communities-can-begin-with-you.json new file mode 100644 index 000000000..6dcc92a13 --- /dev/null +++ b/djangocon-us-2025/videos/the-source-of-change-bettering-online-open-source-communities-can-begin-with-you.json @@ -0,0 +1,26 @@ +{ + "description": "Participating in online open source communities can be a positive experience, but it isn't necessarily so for everyone. Stories abound of mistreatment of project maintainers and community contributors, including bullying, doxing, even acts of outright violence. But those negative experiences don't have to happen! Creating a safe and welcoming environment for open source development begins with you. Discover how you can affect positive change in your own project space and the spaces of others within the open source community through practical and achievable actions. You will gain a better understanding of the problem, and the changes necessary to begin addressing it. Unfortunately, there may always be those who are not interested in being a part of this solution. You will learn ways to ensure you are able to take care of yourself within this reality, while breaking the pattern of negativity within the spaces willing to accept a positive change. You play a critical role in building and maintaining communities that are welcoming, inclusive, and safe. Explore how you, and your communities, will benefit from changing things for the better.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/the-source-of-change-bettering-online-open-source-communities-can-begin-with-you/" + } + ], + "speakers": [ + "Kattni" + ], + "thumbnail_url": "https://i.ytimg.com/vi/FYxbVioCX1Q/maxresdefault.jpg", + "title": "The Source of Change: Bettering Online Open Source Communities Can Begin with You", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=FYxbVioCX1Q" + } + ] +} diff --git a/djangocon-us-2025/videos/the-xs-and-os-of-open-source-with-shotgeek.json b/djangocon-us-2025/videos/the-xs-and-os-of-open-source-with-shotgeek.json new file mode 100644 index 000000000..f5eb0fd9d --- /dev/null +++ b/djangocon-us-2025/videos/the-xs-and-os-of-open-source-with-shotgeek.json @@ -0,0 +1,26 @@ +{ + "description": "What happens when your coding skills and your passions collide? Sometimes, you get a project like ShotGeek\u2014and a whole lot of lessons along the way.\n\nIn this talk, I\u2019ll walk through the real story behind ShotGeek: how casual group text arguments about NBA stats turned into an open-source Django application for tracking and comparing the performances of both current and retired NBA players. I\u2019ll share:\n\n- How the project got started and how I translated a playful idea into a real Django application.\n\n- Technical challenges I faced (like designing flexible models for constantly evolving data).\n\n- Lessons learned from encouraging community contributions and balancing \u201cperfect code\u201d with \u201cgood enough to move forward.\u201d\n\n- Insights into what went well\u2014and what I wish I had done differently\u2014as the project grew.\n\n- How shared passions (in my case, basketball!) can create opportunities for real community and learning in open-source.\n\nThis talk is for anyone curious about starting a project outside of work or school, especially those wondering:\n\"Is my idea really worth building?\" \n\nAttendees will leave with a better understanding of:\n\n- How to scope a passion project realistically\n\n- Strategies for inviting and managing community contributions.\n\n- How to navigate the inevitable technical and emotional challenges along the way.\n\n- Why joy and authenticity can be powerful fuel for long-term open-source success.\n\nWhether you're a seasoned developer or just starting out, I hope to show that some of the most meaningful projects start with a spark of personal excitement\u2014and that Django can bring those sparks to life.", + "language": "eng", + "recorded": "2025-09-08", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/the-xs-and-os-of-open-source-with-shotgeek/" + } + ], + "speakers": [ + "Kudzayi Bamhare" + ], + "thumbnail_url": "https://i.ytimg.com/vi/-TCSzQMr9ng/maxresdefault.jpg", + "title": "The X\u2019s and O\u2019s of Open Source with ShotGeek", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=-TCSzQMr9ng" + } + ] +} diff --git a/djangocon-us-2025/videos/what-a-decade.json b/djangocon-us-2025/videos/what-a-decade.json new file mode 100644 index 000000000..c6a55e2c2 --- /dev/null +++ b/djangocon-us-2025/videos/what-a-decade.json @@ -0,0 +1,26 @@ +{ + "description": "*Content Warning*: This talk will dive into addiction and loss of friends due to addiction in the third section.\n\n2025 marks a decade that our team has been using Python and Django.\n\nIn the first part of the talk, I will explain the process we went through to select our new web framework and language of choice. We were meticulous, and developed a process called DevTAP, or Development Technology Assessment Process. We asked well over a hundred questions about each. What databases did the framework support? How much activity was there on Stack Overflow? What kind of CSV support was available? Each question was given a score of 0, 1, or 2: 0 for no support, 1 for support, or 2 for supports and excels. We found that our existing technology was definitely outdated, but that most of the frameworks we were looking at (Django, Rails, CodeIgniter, .NET) all shared most of the same features.\n\nIn the second part of the talk, I'll share why we were extremely lucky. While we had assessed our technology needs, we hadn't asked the most important questions. Does this web framework community support our morals? What is the governance model for the language and framework? Is it owned by a non-profit? Does it support our belief that diversity, equity, and inclusion are mandatory features of a community? Becoming part of the Python and Django communities forced us to acknowledge that we had been asking the wrong questions, and admit that we had gotten incredibly lucky with our choice.\n\nIn the third part, I will talk about my own journey in recovery. I attended my first PyCon US in 2015, and only the final day of that conference in Montreal, I saw Jacob Kaplan-Moss give a keynote. I had no idea at the time, but that would also be my first day clean and sober. Since then, my work colleagues, my Django family, the Python community at large, and my recovery family have been part of an amazing team that has filled my life with joy, support, knowledge, true friendship, education, and empathy.\n\nDjango is many things: a community, an ecosystem, and a web framework. I will spend a short time pointing out that no LLM coding assistant will ever be able to provide the most important part: the community.\n\nI'm incredibly lucky to be part of some incredible communities; to get to congregate yearly at DjangoCon US with some of my favorite humans on this rock; to have a yearly reminder that most people are good. That we don't just come together to build a better web framework, we come together to build a better planet.", + "language": "eng", + "recorded": "2025-09-10", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/what-a-decade/" + } + ], + "speakers": [ + "Timothy Allen" + ], + "thumbnail_url": "https://i.ytimg.com/vi/fuHkKQRoxBg/maxresdefault.jpg", + "title": "What a Decade!", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=fuHkKQRoxBg" + } + ] +} diff --git a/djangocon-us-2025/videos/what-would-the-django-of-data-pipelines-look-like.json b/djangocon-us-2025/videos/what-would-the-django-of-data-pipelines-look-like.json new file mode 100644 index 000000000..ec5e8aef1 --- /dev/null +++ b/djangocon-us-2025/videos/what-would-the-django-of-data-pipelines-look-like.json @@ -0,0 +1,26 @@ +{ + "description": "This talk will introduce the phaser open source library, but also teach principles that can help organizing data transformations and data pipelines. It's hard to carve out time to build your own utilities for a data pipeline and it's hard to even know what are effective patterns for modularizing once code gets complicated. Let's talk about why this investment is important and how the investment could be less costly. \n\nTopics will include \n* Organizing data pipelines into more phases than just ETL, and why\n* Using checkpoints and logging to be able to debug pipeline breakdowns after they occur\n* Making data transformation code testable and maintainable\n* Supporting a team or rotating contributors to data pipeline code", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/what-would-the-django-of-data-pipelines-look-like/" + } + ], + "speakers": [ + "Lisa Dusseault" + ], + "thumbnail_url": "https://i.ytimg.com/vi/ax61sii5wU8/maxresdefault.jpg", + "title": "What would the django of data pipelines look like?", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=ax61sii5wU8" + } + ] +} diff --git a/djangocon-us-2025/videos/winemaking-with-mutable-event-sourcing-in-django.json b/djangocon-us-2025/videos/winemaking-with-mutable-event-sourcing-in-django.json new file mode 100644 index 000000000..afb240f26 --- /dev/null +++ b/djangocon-us-2025/videos/winemaking-with-mutable-event-sourcing-in-django.json @@ -0,0 +1,26 @@ +{ + "description": "Event sourcing offers powerful advantages for traceability and domain modeling, but its strict immutability can become a constraint in domains where history needs revision. In this talk, we\u2019ll explore how the complexities of winemaking led us to design a mutable event sourcing system, built with Django, that lets users correct and update the past while preserving consistency across the system. You\u2019ll learn how we combined domain-driven design with a custom command model to add flexibility to an architecture that's traditionally rigid.", + "language": "eng", + "recorded": "2025-09-09", + "related_urls": [ + { + "label": "Conference Website", + "url": "https://2025.djangocon.us" + }, + { + "label": "Talk Webpage", + "url": "https://2025.djangocon.us/talks/winemaking-with-mutable-event-sourcing-in-django/" + } + ], + "speakers": [ + "Chris Muthig" + ], + "thumbnail_url": "https://i.ytimg.com/vi/uHJCje7QqXA/maxresdefault.jpg", + "title": "Winemaking with Mutable Event Sourcing in Django", + "videos": [ + { + "type": "youtube", + "url": "https://www.youtube.com/watch?v=uHJCje7QqXA" + } + ] +}