Scaling Django to 500 apps
summary
Claims managing ~500 Django apps and ~400k lines of Python by treating each feature as a small app, exposing a public API via api.py public API, enforcing file roles (models.py, views.py, urls.py), and using tooling like auto-discovery of reports, custom test runner to exclude uninstalled apps, and a custom url include that checks INSTALLED_APPS. The white‑labeling approach of swapping INSTALLED_APPS works in practice after building those utilities; nested app naming and import ripples remain pain points.
AI-written summary · about
chapters (19)
- 0:00Scaling Django apps
- 1:00Why Django apps matter
- 3:49Microservices vs Django trade-offs
- 5:12Django apps structure
- 7:17Patterns for new apps
- 9:22Nested app organization
- 11:30Consistent app structure
- 13:16Templates and namespacing
- 14:20Managing app imports
- 16:05App dependency guidelines
- 17:53App configs and utilities
- 19:18App configs for metadata
- 20:01Auto-discovery for reports
- 21:04White-labeling with toggles
- 22:26Optional app handling
- 23:08Alternatives for scaling
- 24:53Future Django improvements
- 27:18Conclusion and takeaways
- 28:20Q&A
related talks
23mThree Django Apps in a Trenchcoat: Writing an event management website with not a lot of time
32mContinuous Deployment and Release of Django Apps
19mPackaging Django Apps for Distribution on PyPI
31mThis Old Pony: Working With Legacy Django Apps
26mDjango at
22mLearnt lessons in a big Django Project
28mThe promised Django Land; the tale of one team’s epic journey...
53mDjango productivity tips and tricks
