协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
adding-feature-flags【开发与工程】Add feature flags to an application for gradual rollouts, A/B testing, and kill switches using PostHog, LaunchDarkly, or a simple local implementation.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill when the user asks to add feature flags, feature toggles, gradual rollouts, or A/B testing.
Install PostHog if not already present:
npm install posthog-js
Use feature flags in code:
import { useFeatureFlagEnabled } from "posthog-js/react";
function MyComponent() {
const showNewFeature = useFeatureFlagEnabled("new-checkout-flow");
if (showNewFeature) return <NewCheckout />;
return <OldCheckout />;
}
Server-side evaluation — for server components or API routes:
import { PostHog } from "posthog-node";
const posthog = new PostHog(process.env.POSTHOG_API_KEY!);
const isEnabled = await posthog.isFeatureEnabled("new-checkout-flow", userId);
Create flags in the PostHog dashboard — set up targeting rules based on user properties, percentage rollouts, or cohorts.
For projects that don't need a third-party service:
Create a flags config — lib/feature-flags.ts:
export const FLAGS = {
NEW_CHECKOUT: process.env.NEXT_PUBLIC_FF_NEW_CHECKOUT === "true",
DARK_MODE: process.env.NEXT_PUBLIC_FF_DARK_MODE === "true",
} as const;
Use in components:
import { FLAGS } from "@/lib/feature-flags";
function App() {
return FLAGS.NEW_CHECKOUT ? <NewCheckout /> : <OldCheckout />;
}
Add env vars — add flags to .env and .env.example:
NEXT_PUBLIC_FF_NEW_CHECKOUT=false
NEXT_PUBLIC_FF_DARK_MODE=true
new-checkout-flow not flag-1.