إعدادنا
مستودع واحد، ثلاث حزم: apps/web (Next.js)، apps/api (NestJS)، وpackages/types (TS مشترك). يقوم Turborepo بتنسيق خط الأنابيب، ويتعامل pnpm مع رسم تثبيت.
لماذا يعمل لنا
الأنواع المشتركة هي الميزة القاتلة. يظهر تغيير شكل الاستجابة في NestJS كخطأ TypeScript في Next.js في نفس PR. لا انجراف، لا SDK عميل للحفاظ على المزامنة، لا خيط Slack "المخطط قديم".
متى لن نختاره
إذا كان فريقا الواجهة الأمامية والخلفية يعملان بإيقاعات إصدار مختلفة مع تناوبات استدعاء مختلفة، لكان monorepo احتكاكاً وليس رافعة. إذا كان لدينا عشرة تطبيقات بدلاً من اثنين، كنا سنستثمر في Nx بدلاً من Turborepo. إذا كان أحد التطبيقات تطبيق جوال مع سلسلة أدوات أصلية خاصة به، كنا سننقسم.