الهدف
بعد هالدرس تقدر تسوّي feature flag في PostHog، تستخدمه على الـ client والـ server في Next.js، تطلق تدريجيا من 10% لـ 100%، وتطفّي أي ميزة بأقل من 30 ثانية.
ليش هذا الحين؟
كل ما تـ deploy feature جديدة مباشرة لـ 100% من users، ترى أنت تقامر. واحد bug صغير ويصير chaos. الـ feature flags تخليك تطلق الشي لـ 10% أول — تشوف، تتأكد، وبعدين تفتح للباقين. وإذا صار شي، تقفل بثانية واحدة بدون ما تـ rollback كل الـ deploy.
الفكرة
Feature flag = متغير boolean موجود على السيرفر. كودك يسأل: "هل new-dashboard مفعّل لهالـ user؟" — PostHog يرد بـ true أو false. أنت ما تغير كود، أنت تغير قيمة في PostHog Dashboard.
أهم ثلاث فوايد فيه:
- Safe deploys — تطلق كود جديد وهو مقفول، وتفتحه بعد ما تتأكد من الـ infrastructure
- Gradual rollout — 10% → 50% → 100% على جدول زمني تتحكم فيه
- Targeted cohorts — تفتح الـ feature لـ "power users" أو لـ beta testers بالاسم قبل الكل