# ConfigDirector > ConfigDirector is a managed service for feature flags and remote configuration that validates values before they reach your applications. ConfigDirector is designed to provide your applications with safety and longevity. Safety by having enforced types, validations, and integrity alerts. Longevity by allowing you to safely rename obsolete names, tracking the lifecycle of feature flags and configs, and alerting on deprecated values in need of maintenance. - Every config has a type (boolean, string, integer, float, enum, URL, timespan, or JSON), and a value that breaks its type or constraints is refused before it is saved. - JSON values validated against a JSON Schema you define, on Free and Pay as you go. - Safe renaming: a config in production can be renamed, and both the old and new keys keep working until every reference is updated. - Targeting rules on any context attribute, gradual percentage rollouts, and experiment variations, with a tester that shows which rule wins for a context before saving. - Evaluation activity per config and environment, lifecycle states (in use, stale, ready to remove), and alerts for type mismatches, in-code default value mismatches, unknown keys, the in-code default value served too often, and outdated SDKs. - Code references: the dashboard shows where each config is read in your repositories, from a scan you upload with the CLI or the ConfigDirector Code Scan action. - Audit log with the source of every change, role-based access control, and scoped API tokens. - SDKs for JavaScript, React, Vue, React Native, Flutter, Swift, Android, Next.js, Nuxt, Node.js, Python, Java, .NET, and Go, plus OpenFeature providers for Web, Swift, Android, Flutter, Node.js, Python, Java, .NET, and Go. - A Terraform and OpenTofu provider, and a hosted MCP server for Claude Code, Cursor, and other MCP clients. - A CLI that finds where your code reads each config and fails the build when the code reads a key that does not exist, was renamed, or has the wrong type. It also shows the value a context gets for a config and why, and creates configs, replaces targeting rules, and manages segments from your terminal or CI. On GitHub, the ConfigDirector Code Scan action runs the check on pull requests and uploads where each config is read on pushes to the default branch. - Agent skills for coding agents, installed with `npx skills add ConfigDirector/agent-skills` into Claude Code, Cursor, Codex, GitHub Copilot, Gemini CLI, Windsurf, and more. They add the SDK, flag a change, test flagged code, check keys in CI, clean up a settled flag, create a config, roll it out, manage segments, and migrate from LaunchDarkly. Every change to your account is shown first and waits for your yes. ## Pricing Two options, Free and Pay as you go, both with unlimited seats and unlimited environments. Client SDKs are billed in monthly active users: each distinct user, device, or other context a client app identifies in a calendar month, plus each app install or browser that evaluates without identifying anyone, counted once across projects and environments. Server SDKs are billed in connection hours: 750 hours a month covers one server connected all month plus a buffer for deploys and traffic spikes. - Free: $0 per month, no credit card. Includes 1,000 monthly active users, 2,250 service connection hours, 10K Admin API requests a month, 5 projects, and 100 configs. When usage goes over the allowance, there is a 7-day grace period to add a payment method for Pay as you go before service is interrupted. - Pay as you go: no monthly fee, with a payment method on file. The same free allowance every month, then usage beyond it is billed in tiers, each rate applying only to the usage inside its tier. Includes unlimited projects and configs, an optional hard monthly spending limit, and up to 5 spend alerts. Pay as you go rates: - Monthly active users: first 1,000 free, $5.00 / 1K for 1,000 to 500K, $3.75 / 1K for 500K to 1M, $2.50 / 1K for over 1M. - Service connection hours: first 2,250 hours free, $6.00 / 750 h for 2,250 to 7,500 hours, $5.00 / 750 h for 7,500 to 22.5K hours, $3.50 / 750 h for over 22.5K hours. - Admin API requests: first 10K free, $1.00 / 10K for 10K to 250K, $0.75 / 10K for 250K to 1M, $0.50 / 10K for over 1M. ## Site - [Home](https://www.configdirector.com/): What ConfigDirector is and how it works - [Features](https://www.configdirector.com/features): Types, validation, targeting, monitoring, integrations, and SDKs - [Pricing](https://www.configdirector.com/pricing): Free and Pay as you go options, usage rates, a cost estimator, and pricing FAQ - [Blog](https://www.configdirector.com/blog): Articles on feature flags and remote configuration ## Blog posts - [Remote config for Nuxt in five minutes](https://www.configdirector.com/blog/remote-config-for-nuxt-in-five-minutes): Add a feature flag to a Nuxt app that evaluates during SSR, updates automatically in the browser, and is readable from server routes. - [Safe renaming: how to rename a feature flag that's already in production](https://www.configdirector.com/blog/safe-renaming-rename-a-feature-flag-thats-already-in-production): Most feature flag services treat the key as permanent. Here is why that is not a good trade-off, and how ConfigDirector lets you rename a flag while old builds are still asking for the old key. - [Why your feature flag service should validate values](https://www.configdirector.com/blog/why-your-feature-flag-service-should-validate-values): A feature flag service lets you change production without a deploy. It should also refuse the change that would break it. - [Managing feature flags from Claude Code and Cursor with MCP](https://www.configdirector.com/blog/managing-feature-flags-from-claude-code-and-cursor-with-mcp): Connect your coding assistant to ConfigDirector and create flags, roll them out, and check what is live without leaving the editor. ## Docs - [Docs index for LLMs](https://docs.configdirector.com/llms.txt): Every documentation page as Markdown - [Full docs for LLMs](https://docs.configdirector.com/llms-full.txt): The complete documentation in one file - [Quickstart](https://docs.configdirector.com/getting-started/quickstart) - [Pricing and billing](https://docs.configdirector.com/getting-started/pricing-and-billing): Free and Pay as you go, the free allowance, usage rates, the billing cycle, the spending limit, and billing alert thresholds - [SDKs](https://docs.configdirector.com/sdks/available-sdks): Browser, mobile, Next.js, Nuxt, server SDKs, and OpenFeature providers - [OpenFeature with ConfigDirector](https://docs.configdirector.com/sdks/openfeature): The OpenFeature providers for the web, Swift, Android, Flutter, Node.js, Python, Java, .NET, and Go, and how the evaluation context maps - [Admin API](https://docs.configdirector.com/integrations/admin-api): Manage projects, configs, targeting rules, and segments over HTTPS with an API token - [MCP server](https://docs.configdirector.com/integrations/mcp): Manage configs and targeting rules from coding agents - [Agent skills](https://docs.configdirector.com/integrations/agents): Install the skills your coding agent uses to add the SDK, flag a change, clean up a settled flag, create configs, and change targeting rules - [CLI](https://docs.configdirector.com/integrations/cli): Find where your code reads each config, fail the build on a wrong key or type, see the value a context gets and why, and create configs, replace targeting rules, and manage segments from your terminal or CI - [Terraform provider](https://docs.configdirector.com/integrations/terraform) - [Migrating from LaunchDarkly](https://docs.configdirector.com/migration-guides/launchdarkly): Concept mapping, recreating flags, switching the SDKs, and moving experiments with their metrics and track calls - [Migrating from Firebase Remote Config](https://docs.configdirector.com/migration-guides/firebase-remote-config): Concept mapping, recreating parameters as configs, and switching the mobile and web SDKs - [Migrating from Firebase A/B Testing](https://docs.configdirector.com/migration-guides/firebase-ab-testing): Concept mapping, metrics on tracked events instead of Google Analytics, and switching the Flutter and web SDK calls