// Feature flag definitions. The framework uses Vercel's `flags` SDK // (https://flags-sdk.dev) — declarative `flag({ key, decide })` contracts // that work with any provider, or none at all. // // If you selected a vendor during scaffolding, its adapter package is // already in your deps. Uncomment + wire the matching block below: // // LaunchDarkly: // import { ldAdapter } from "@flags-sdk/launchdarkly"; // export const showNewCheckout = flag({ // key: "show-new-checkout", // adapter: ldAdapter.variation(), // defaultValue: false, // }); // // Statsig: // import { statsigAdapter } from "@flags-sdk/statsig"; // export const showNewCheckout = flag({ // key: "show_new_checkout", // adapter: statsigAdapter.featureGate((gate) => gate.value), // defaultValue: false, // }); // // GrowthBook: // import { growthbookAdapter } from "@flags-sdk/growthbook"; // export const showNewCheckout = flag({ // key: "show-new-checkout", // adapter: growthbookAdapter.feature(), // defaultValue: false, // }); // // Hypertune / PostHog: see https://flags-sdk.dev/docs/providers/ // // Until a vendor is wired, in-process `decide()` functions are fine — the // SDK deduplicates evaluations per-request automatically. import { flag } from "flags/next"; /** * Example flag. Replace with your real ones; delete if you don't want a * sample. Use in server components / route handlers as: * const enabled = await exampleFlag(); */ export const exampleFlag = flag({ key: "example", defaultValue: false, decide: () => false, });