--- id: django-waffle version: "5.0.0" license: BSD license_treatment: permissive maintenance: active --- # django-waffle — A feature flipper for Django. License: permissive · Maintenance: active · Downloads: 2.0M/mo ## What it is and what it does Django Waffle is a feature flag library for Django that lets you control feature availability at runtime without code changes. You define conditions (user-based, percentage-based, date-based, etc.) for when a flag should be active, then check those flags in your views, templates, or code to conditionally enable or disable functionality. It integrates directly into Django's admin interface and database, making it straightforward to toggle features on and off for testing, gradual rollouts, or A/B experiments. The package is production-stable, actively maintained, and widely used (1.9M+ monthly downloads). It requires only Django as a runtime dependency and supports current Python versions (3.9+) and recent Django versions (4.2 through 5.2). With no known security vulnerabilities and a permissive BSD license, it's a low-friction addition to any Django project. Use it for: - Gradually roll out new features to a percentage of users without redeploying the application. - Run A/B tests by enabling features for specific user groups or cohorts. - Disable problematic features in production quickly without a code release. - Test experimental functionality in staging or production with feature flags before full release. - Manage feature availability across multiple environments with different flag configurations. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Django Waffle provides feature flags (toggles) for Django applications, allowing you to define conditions for when features should be active and control their rollout without redeploying code. Yes. Django Waffle is a mature, well-maintained feature flag solution with low install friction, no security vulnerabilities, and a permissive license. It's the standard choice for Django projects needing runtime feature control. Install it if you need to decouple feature rollout from deployment. ## Install pip install django-waffle uv add django-waffle poetry add django-waffle ## Installing django-waffle Before you install: Low install friction with a single Django dependency. The project is actively maintained with recent commits, 1243 GitHub stars, and a long history since 2011, indicating stable, well-established code. License in practice: BSD license is permissive, allowing commercial and private use with minimal restrictions—no compliance burden for most projects. Quickstart: pip install django-waffle from waffle.decorators import flag_is_active if flag_is_active(request, 'my_feature'): # Feature is enabled for this request Requires Django to be installed and configured; feature flags must be defined in Django admin or via code. Verify before relying: - Whether the package supports real-time flag updates without restarting the application. - How flag evaluation performance scales with a large number of flags in production. - Whether there are built-in integrations with external flag management services. ## Package facts - License: BSD (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 2.0M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags django feature flags, feature toggles django, django feature flipper, conditional feature rollout, django a/b testing, feature gating django, django feature management, feature-flags, django-extension, a-b-testing [View on SkillFed](https://skillfed.io/packages/django-waffle) · [View on PyPI](https://pypi.org/project/django-waffle/)