Django CMS Fellows & Community Annual Report 2025: A Year of Extraordinary Contributions
December 03, 2025
The Django CMS Fellowship Program continues to drive the development and maintenance of one of the most powerful open-source content management systems in the Python ecosystem. This report covers the contributions made by the two Django CMS Fellows—Vinit Kumar and Fabian Braun—from January 1, 2025, to December 3, 2025.
About the Django CMS Fellowship Program
The Django CMS Fellowship Program supports dedicated developers who work on maintaining, improving, and evolving the Django CMS ecosystem. Fellows contribute across multiple repositories, handling everything from critical bug fixes to major feature implementations, code reviews, issue triage, and community support.
This year marks another exceptional period of growth and stability for Django CMS, with significant milestones including the release of Django CMS 5.0, Django 6.0 compatibility work, and continued modernization of the entire ecosystem.
🌟 Community Collaboration: The Heart of Open Source
While the Fellows provide dedicated maintenance, Django CMS thrives because of its vibrant community. This year, 37 community contributors submitted 89 pull requests alongside the Fellows’ work, demonstrating the collaborative spirit that makes open source powerful.
Top Community Contributors
| Contributor | PRs | Key Areas |
|---|---|---|
| @mrbazzan | 16 | djangocms-transfer, quickstart, frontend, badges |
| @wfehr | 11 | 4-migration, stories, core bug fixes |
| @metaforx | 9 | djangocms-rest API, OpenAPI schemas |
| @pierreben | 3 | djangocms-form-builder improvements |
| @marbru | 3 | Frontend image plugin, documentation |
| @stefanw | 3 | Multi-site support, menu fixes |
| @Vincent-Ngobeh | 3 | Core CMS fixes, apphook handling |
Highlighted Community Contributions
API & Headless Development (@metaforx)
- feat: Add page search schema extension
- feat: add OpenAPI support for “preview” query parameter
- docs: init - Documentation initialization
Transfer & Migration Tools (@mrbazzan)
- feat: Add management command to load demo content
- fix: Update the pks for internal child plugins
- chore: Introduce dynamic badges
Migration Customization (@wfehr)
- feat: added 2 settings to provide custom functions for processing data
- added another custom-function-point to run after cleanup is completed
- fix: avoid stringifying None-values in page attribute template tag
Multi-Site & Core Improvements (@stefanw)
- feat: Refactor site handling, and allow single-instance multi-site configurations
- feat: Allow “View on Site” for objects not on the current site
Form Builder Enhancements (@pierreben)
- feat: Add required class to form widget div attributes
- fix: Strip email subject to remove new lines chars
Frontend & Documentation (@marbru)
- feat: Image plugin refactored for simpler size control
- docs: Deduplication and clarity in the tutorials
All Community Contributors
We extend our heartfelt thanks to everyone who contributed code in 2025:
🐛 Community Issue Reporting
Issue reporting is vital to the health of any open-source project. Community members reported 177 issues this year, helping identify bugs, request features, and improve documentation across the ecosystem.
Top Issue Reporters
| Reporter | Issues | Key Areas |
|---|---|---|
| @metaforx | 16 | djangocms-rest API improvements |
| @mrbazzan | 11 | Transfer, frontend, testing |
| @stefan6419846 | 10 | License compliance, attribution |
| @wfehr | 9 | Core CMS, migrations, stories |
| @MacLake | 8 | Text editor, stories, templates |
| @corentinbettiol | 5 | Form builder, alias, stories |
| @jrief | 5 | Security, versioning, core |
| @stefanw | 5 | CSP compliance, multi-site, menus |
Notable Issues That Drove Improvements
Security & Compliance
- Remove inline scripts to make templates work with best practice CSP - Led to CSP compliance in django-filer
- [BUG] Never trust user input - Security hardening
Core Functionality
- [BUG] Copying between langs not handling missing placeholders - Fixed cross-language copying
- [BUG] Method
CMSPlugin.get_ancestors()is missing - API enhancement - [BUG] django-cms 4.1.5 is incompatible with django 5.2 - Django 5.2 compatibility
Ecosystem Packages
- GridRowPlugin: Columns per Row are not saved - Frontend fix
- django management command “create_versions” is gone - Versioning tool restored
- Missing migration in djangocms-link 5.0.0 - Migration fix
Documentation & UX
- Help menu on CMS5 - UX improvement
- [DOC] Fix broken links in CONTRIBUTING - Documentation fix
- Django 5.2.x LTS support? - Version support clarification
All Community Issue Reporters
79 unique users reported issues in 2025, including:
Community Statistics Summary
| Metric | Count |
|---|---|
| Community PRs (Human Contributors) | 89 |
| Unique Code Contributors | 37 |
| Community Issues Reported | 177 |
| Unique Issue Reporters | 79 |
| Automated PRs (Bots) | 181 |
| Total Community + Bot PRs | 270 |
The combination of dedicated Fellowship work and enthusiastic community participation creates a sustainable model for open-source development. Every contribution—whether a major feature, a bug report, or a typo fix—strengthens Django CMS.
Fellow Contributions
Vinit Kumar (@vinitkumar)
Vinit Kumar brings extensive experience in Python, Django, and open-source development to the Fellowship. His contributions this year focused on strategic improvements, CI/CD optimization, and ensuring the ecosystem stays current with the latest Python and Django versions.
| Metric | Count |
|---|---|
| Pull Requests Created | 16 |
| Pull Requests Reviewed | 136 |
| Issues Opened | 2 |
| Issues Commented On | 3 |
Key Contributions
Python 3.14 and Django 6.0 Readiness
Vinit spearheaded efforts to ensure Django CMS and its ecosystem packages are ready for upcoming Python and Django versions:
- Added Django 5.2 support to the core test matrix
- Implemented Python 3.14 compatibility across multiple packages including
djangocms-alias,djangocms-versioning, anddjangocms-frontend - Updated CI matrices to include Django 6.0 testing for
djangocms-rest,djangocms-versioning, anddjangocms-modules
CI/CD Optimization
One of Vinit’s significant contributions was optimizing the continuous integration infrastructure:
- Implemented conditional database testing and nightly runs to reduce CI costs while maintaining test coverage
- Fixed issues with deprecated GitHub Actions for publishing packages
- Improved coverage file uploads and reporting
Ecosystem Maintenance
Vinit contributed to maintaining package quality across the ecosystem:
- Prepared release 3.3.3 for django-filer
- Added Django 5.2 to the Django CMS core test matrix
- Matched test matrices across
djangocms-frontendand Django CMS core - Created and maintained the
djangocms-react-projrepository for React integration
Code Reviews
With 136 pull requests reviewed, Vinit played a crucial role in maintaining code quality across the Django CMS ecosystem. His reviews covered:
- Major feature implementations in Django CMS core
- Bug fixes across multiple ecosystem packages
- Documentation improvements
- CI/CD pipeline updates
- Security-related changes
Notable Pull Requests
- feat: optimize CI with conditional database testing and nightly runs
- Modernize Python and Django support: Drop Python 3.9, add Python 3.14 and Django 6.0
- feat: add django 5.2 to the test matrix
- feat: match django-cms core test matrix
Fabian Braun (@fsbraun)
Fabian Braun serves as the lead maintainer of Django CMS and brings deep expertise in the CMS architecture. His extraordinary output this year demonstrates unwavering commitment to the project’s success.
| Metric | Count |
|---|---|
| Pull Requests Created | 393 |
| Pull Requests Reviewed | 471 |
| Issues Opened | 24 |
| Issues Commented On | 129 |
Key Contributions
Django CMS 5.0 Release
Fabian led the monumental effort of releasing Django CMS 5.0, which included:
- Complete djangocms-frontend JavaScript rewrite removing jQuery dependencies
- New design language implementation for Django CMS 5.1
- CSP (Content Security Policy) compliance across the board
- Improved editor response times through global caching of plugin restrictions
- Better database query optimization for edit and structure endpoints
Core Architecture Improvements
- Merged the
PageandTreeNodemodels with backwards migration support by @jrief - Implemented async support and middleware updates for Django CMS 5.0+
- Added placeholder-level error handling
- Created the
CMS_ALWAYS_REFRESH_CONTENTsetting for better UX - Implemented the new Django CMS design language
JavaScript Modernization
A significant portion of Fabian’s work focused on modernizing the JavaScript infrastructure:
- Upgraded JS build pipeline across Django CMS core
- Bundled JS files and removed jQuery dependencies from django-filer
- Modernized JS build and removed jQuery bundle from djangocms-versioning
- Ensured CSP compliance by removing inline scripts
Ecosystem Package Development
Fabian maintained and improved numerous packages:
- djangocms-text: Added Tiptap editor support, markdown pasting, configurable block styles
- djangocms-frontend: Template components, simpler configuration, inline editing support
- djangocms-versioning: Version locking, permission improvements, language menu fixes
- djangocms-alias: Static aliases in structure board, CSP-compliant data bridge
- djangocms-rest: Menu endpoints, page search, OpenAPI support
- djangocms-stories: Complete rewrite and testing infrastructure
- djangocms-transfer: Django CMS 5.0 compatibility
Release Management
Fabian orchestrated multiple releases across the ecosystem:
- Django CMS 5.0.0, 5.0.1, 5.0.2, 5.0.3, 5.0.4, 5.0.5
- Django CMS 4.1.5, 4.1.6, 4.1.7, 4.1.8, 4.1.9
- Django CMS 3.11.10
- Multiple releases for djangocms-versioning, djangocms-alias, djangocms-text, django-filer, and other packages
Documentation and Community
- Updated LTS definitions per board decisions
- Improved coding style documentation
- Added documentation for toolbar methods
- Autogenerated LTS table and core plugin list from ecosystem repository
Notable Pull Requests
- feat: Implement new Django CMS design language for Django CMS 5.1
- feat: Django 6 compatibility (July 2025)
- feat: Allow for CSP - remove inline scripts from edit endpoint markup
- feat: Better editor turn-around times
- feat: Optimize DB queries for edit and structure endpoints
- feat: Add template components
Repositories Impacted
The Fellows’ contributions span the entire Django CMS ecosystem:
Core Packages:
- django-cms
- djangocms-versioning
- djangocms-alias
- djangocms-moderation
Frontend & UI:
- djangocms-frontend
- djangocms-admin-style
- djangocms-text
- djangocms-text-ckeditor5
Content Plugins:
- djangocms-link
- djangocms-picture
- djangocms-snippet
- djangocms-file
- djangocms-video
- djangocms-style
- djangocms-icon
API & Headless:
- djangocms-rest
Utilities:
- django-filer
- django-sekizai
- django-classy-tags
- djangocms-attributes-field
- djangocms-transfer
Migration & Tooling:
- djangocms-4-migration
- cms-template
- django-cms-quickstart
Major Milestones in 2025
Django CMS 5.0 Release
The release of Django CMS 5.0 marked a significant milestone:
- Complete JavaScript modernization - Removed jQuery dependencies, adopted modern build tooling
- CSP compliance - Removed inline scripts across the entire platform
- Performance improvements - Optimized database queries and caching strategies
- New design language - Fresh, modern UI for the editing experience
- Async support - Middleware updates for Django’s async capabilities
Django 6.0 Compatibility
Both Fellows worked extensively on ensuring Django 6.0 compatibility:
- Updated deprecated Django APIs
- Added Django 6.0 to test matrices across all packages
- Fixed compatibility issues early, before Django 6.0’s stable release
Python 3.14 Support
Forward-looking work to ensure Python 3.14 compatibility:
- Updated package dependencies
- Fixed deprecation warnings
- Updated CI/CD pipelines to test against Python 3.14 alphas
The Impact of the Fellowship Program
The Fellowship Program enables sustained, focused development that would be difficult to achieve through volunteer contributions alone. The numbers tell a compelling story:
- 409 pull requests created - Nearly every day of 2025 saw new code contributed
- 607 code reviews - Ensuring high-quality contributions from the broader community
- 132 issues addressed - Responsive support for users and developers
Beyond the numbers, the Fellows have:
- Maintained backward compatibility while pushing the platform forward
- Ensured security through proactive updates and CSP compliance
- Improved developer experience with better documentation and tooling
- Supported the community through issue triage and discussions
Looking Ahead
As we close 2025, Django CMS stands stronger than ever:
- Django CMS 5.x provides a modern, performant foundation
- Django 6.0 compatibility ensures users can adopt the latest Django LTS
- Python 3.14 readiness future-proofs the ecosystem
- Improved headless capabilities with djangocms-rest opens new use cases
The Fellowship Program continues to prove its value in maintaining one of Python’s most important open-source projects. The dedication shown by Vinit Kumar and Fabian Braun throughout 2025 exemplifies the spirit of open-source contribution.
Supporting Django CMS
If you or your organization benefits from Django CMS, consider supporting the project:
- Contribute code - PRs are always welcome
- Report issues - Help identify bugs and improvements
- Sponsor the Fellowship - Enable continued dedicated development
- Spread the word - Share your Django CMS success stories
Visit django-cms.org to learn more about supporting the project.
This report was compiled using contribution data from the django-cms GitHub organization. All statistics reflect contributions made between January 1, 2025, and December 3, 2025.
Thank you to Vinit Kumar and Fabian Braun for their exceptional dedication to Django CMS.