Loading...
OpenFeature migration & flag cleanup
Free your code from vendor-specific APIs. Move supported LaunchDarkly calls to OpenFeature through reviewable PRs, then automate obsolete flag cleanup.
Pilot: LaunchDarkly Node.js · JavaScript / TypeScript
LaunchDarkly stays your backend.Check support for your stack
const enabled =
await ldClient.variation(
'new-checkout',
{ key: user.id },
false,
);
const enabled =
await flags.getBooleanValue(
'new-checkout',
false,
{ targetingKey: user.id },
);
Call-site illustration. Provider setup and context mapping are part of the full change plan.
A supported evaluation moves to the OpenFeature API. Your current provider still serves the flag.
Own the API boundary. Keep the choice of backend open.
Follow the work
Explore a real generated preview, including the checks that stop it. Every stage has a purpose. Every unresolved step stays visible.
Synthetic source
A small Node.js repository, one flag evaluation, and the LaunchDarkly SDK. This is the actual input to the generated preview.
import * as ld from '@launchdarkly/node-server-sdk'
const FLAG_KEY = 'new-checkout'
const client = ld.init(process.env.LD_SDK_KEY!)
export async function enabled(): Promise<boolean> {
await client.waitForInitialization()
return client.variation(
FLAG_KEY,
{ key: 'customer-1', custom: { plan: 'pro' } },
false,
)
}
LaunchDarkly remains the runtime backend. No customer data, live CI, publication or merge in this example.
Inspect the complete diff & provenanceFind your starting point
Choose your stack. See the registered stage, check the SDK boundary, and bring that context into your assessment.
Different stacks. Different starting points.
Some paths support assessment only. Others can preview changes or progress through a draft PR and static verification.
Select your language and runtime to see the exact candidate profile.
Four JavaScript/TypeScript fixtures, covering manual and scheduled cleanup. No live GitHub PR, customer CI or real human merge.
Inspect the exercise & source codeKeep it clean
The feature ships. The flag sticks around. So does the old branch, the extra test, and the question nobody wants to answer.
Hosted cleanup checks connected repositories for eligible flags, prepares removal PRs, and keeps checks and follow-up work visible. Each new candidate starts the cycle again.
Your team sets the policy and reviews the changes. Adoption and cleanup are separate workflows today; you can start with cleanup before a migration, too.
Inspect before you commit
Read the generated changes. Check the exact boundaries. Start with the right scope.
The current pilot moves supported application evaluations to OpenFeature while retaining LaunchDarkly as the runtime backend and flag-management system. It does not migrate flag configuration or perform a backend cutover. You reduce vendor-specific application code now; a complete provider exit is a separate project.
Support depends on the exact source SDK, runtime, and stage. Assessment, code preview, draft PR publication, and verification have different boundaries. Check the current support matrix for your stack before requesting access.
Check migration supportNo. The adoption workflow produces validated previews and controlled draft pull requests. Your team reviews and merges them using your existing branch protections. Unsupported cases and missing evidence remain explicit blockers.
Hosted cleanup can propose eligible flag removals separately. The current adoption pilot and cleanup workflow are distinct. We will review removal opportunities when scoping your migration; a combined automatic removal-and-migration workflow is not currently promised.
The open-source Action detects flag references and posts findings on pull requests. Hosted cleanup manages removal PRs and their lifecycle. Migration Autopilot is a limited pilot with separate approval and onboarding, not part of the self-serve cleanup plans.
See cleanup plans and pilot accessAssessment starts with repository access. Provider evidence uses a connected LaunchDarkly project; code-only assessment leaves provider-dependent questions unassessed. Publishing a draft PR is a separate permission boundary. Review the exact data handling and access requirements before connecting.
Read security and permissionsYour next move
Tell us about your SDKs and repositories.
We’ll review pilot fit, scope, and the next step with you.