Overview
This page maps LaunchDarkly concepts to shipd and shows a manual migration path. shipd has no automated importer: you recreate flag definitions in TypeScript or Go, recreate targeting in the dashboard, and switch code over flag by flag.Concept mapping
Contexts with several kinds (user, organization, device) become attributes on one evaluation context. To bucket a rollout by organization instead of user, set the percentage condition’s Of attribute to an attribute such as
organizationId.
Prerequisite flags have no equivalent. Express the dependency in code or in each flag’s rules.
Migrate a flag
1
Recreate the definition
Keep the same key so call sites are easy to find.
2
Push
3
Recreate targeting
For each environment, open the flag in the dashboard, add rules in the same order as in LaunchDarkly, set Fallthrough, and click Save environment. Recreate segments first under Audiences so rules can reference them. See Target users by attribute.
4
Send the same attributes
Pass the attributes your LaunchDarkly rules used (for example
email, plan, country) in the evaluation context. See Identify users.5
Dual-run behind a wrapper
Route evaluations through one function, compare both systems, then switch.
6
Cut over
Return the shipd value, remove the LaunchDarkly call, and archive the flag in LaunchDarkly.
config.ShipdConfig in shipd.config.go before pushing. See Define flags in code.