skillfed

django-waffle

A feature flipper for Django.

django-waffle v5.0.0 2.0M downloads/30d#3,404 on PyPI1,243
Permissive license BSD Active released

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 on this page — 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

django-waffle on PyPI

pip

pip install django-waffle

uv

uv add django-waffle

poetry

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 the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 1 — django
Maintenance actively maintained — 428 days since the last release
Last repo commit
First released
Downloads 1,966,503/month — #3,404 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: django_waffle-5.0.0-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Framework :: Django :: 5.2Intended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python Modules

Tags

django feature flagsfeature toggles djangodjango feature flipperconditional feature rolloutdjango a/b testingfeature gating djangodjango feature management
feature-flagsdjango-extensiona-b-testing

More Python Modules packages