{"categories":[{"label":"Build Tools","url":"https://skillfed.io/packages/category/software-development-build-tools/3"}],"enrichment":{"capability":"Replaces Django's default file-change watcher with watchfiles, a faster, lower-CPU alternative that uses OS-level file notifications instead of polling.","skillfed_tags":["django-development","file-watching","performance-optimization"],"use_cases":["Speed up local Django development by cutting autoreload latency from 1+ seconds to ~50ms, enabling faster iteration cycles.","Reduce laptop battery drain during development by eliminating the constant polling that StatReloader performs.","Prevent missed or duplicate reloads when multiple files change in quick succession (e.g., after git branch switches or formatter runs).","Replace Watchman or pyinotify without requiring external services or platform-specific dependencies.","Maintain efficient file watching on modern Python versions (3.10+) where pywatchman support had stalled."],"what_it_does":"django-watchfiles is a Django app that swaps out the default file-change watcher (StatReloader) with a more efficient one powered by the watchfiles library. Instead of polling the filesystem every second, it uses the operating system's native file-notification APIs (inotify on Linux, FSEvents on macOS, etc.) to detect changes instantly. This dramatically reduces CPU usage\u2014benchmarks show ~10% CPU every other second for StatReloader versus 0% for WatchfilesReloader on a medium-sized project\u2014and cuts reload latency from over one second to as little as 50 milliseconds.\n\nInstallation is minimal: add the package to INSTALLED_APPS and it automatically becomes Django's reloader. It batches rapid successive changes (within 50ms windows, up to 1600ms total) to avoid redundant reloads when formatters or git operations touch multiple files at once. The package is production-stable, supports Python 3.9\u20133.14 and Django 4.2\u20136.0, and carries no known vulnerabilities.","worth_installing":"Yes. This is a drop-in replacement for Django's autoreloader with measurable performance and battery benefits, zero configuration overhead, and active maintenance. Install it if you run Django locally; the only gotcha is the WSL fallback to polling, which is still more efficient than the default. No security concerns, permissive license, and low install friction."},"id":"django-watchfiles","links":{"html":"https://skillfed.io/packages/django-watchfiles","md":"https://skillfed.io/packages/django-watchfiles.md","pypi":"https://pypi.org/project/django-watchfiles/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2025-09-22","license_spdx":"MIT","license_treatment":"permissive","name":"django-watchfiles","python_support":"supports_current","summary":"Make Django\u2019s autoreloader more efficient by watching for changes with watchfiles."},"popularity":{"monthly_downloads":377664,"position":7121,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"1.4.0"}
