Feature flags help teams deploy safely, but often become technical debt when forgotten. This ESLint plugin solves that by:
- Finding expired flags that should be removed
- Preventing undefined flags to avoid typos and mistakes
- Automating cleanup with configurable strategies
Common issues this plugin addresses:
- Dead flags bloating the codebase
- Stale flags creating ambiguity
- Hidden logic behind flags where it doesn't belong
- Lack of clear ownership of flags across teams
👉 See the example project for a quick demo.
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Development mode
pnpm dev
# Run tests
pnpm test
# Check code quality
pnpm lint
pnpm format
This is a monorepo built with Turborepo:
eslint-plugin-feature-flags/
├── apps/
│ └── eslint-plugin/ # Main ESLint plugin package
├── packages/
│ ├── types/ # TypeScript type definitions
│ └── core/ # Shared utilities
├── examples/
│ └── test-project/ # Example implementation
- 🔍 ESLint Plugin - The main plugin package
- 🧩 Core - Shared utilities and logic
- 📝 Types - TypeScript definitions
- 🧪 Example Project - Working example
This project is MIT licensed - see the LICENSE file for details.
Resources on feature flag best practices:
- Effective Feature Flag Management - The article that inspired this plugin
- ESLint Plugin Documentation - Full plugin details and examples
Special thanks to Kevin Marques for the idea that sparked this project, and to all contributors who help make it better!
Built with Turborepo ⚡️