ابزارها و Dependencyهای Frontend
این جدول Baseline نصبشده را ثبت میکند. package.json و Lockfile منبع حقیقت نسخه دقیق هستند و ارتقا باید در Pull Request مستقل با Changelog، Advisory، Test و Build بررسی شود.
Runtime و UI
| نیاز | انتخاب | نسخه Baseline | دلیل |
|---|---|---|---|
| Runtime | Node.js | 24.18.0 |
خط پشتیبانیشده و Pinشده Image |
| Package Manager | npm | 11.16.0 |
Lockfile استاندارد Repository |
| Framework | Next.js | 16.3.0 |
App Router، Server Component و Standalone Output |
| UI Runtime | React / React DOM | 19.2.8 |
نسخه سازگار Pinشده با Framework |
| Language | TypeScript | 5.9.3 |
Strict Types و Contractهای داخلی |
| Styling | Tailwind CSS | 4.3.3 |
Utility CSS و Design Token قابل کنترل |
| Server State | TanStack Query | 5.101.4 |
Cache، Query Key، Cancellation و Mutation Lifecycle |
| Client State | Zustand | 5.0.14 |
Store کوچک و Selectorمحور برای UI State مشترک |
Redux انتخاب نشده است، چون Baseline فعلی Server State را به TanStack Query میسپارد و نیاز Client State محدود است. اگر Workflow پیچیده، Event Trace یا State Machine بزرگ این فرض را نقض کند، مقایسه جدید با Metric و ADR انجام میشود.
کیفیت و Test
| نیاز | انتخاب |
|---|---|
| Lint | ESLint 9 و eslint-config-next |
| Unit/Component Test | Vitest 4 و Testing Library |
| Coverage | V8 Coverage Provider |
| Compiler | React Compiler Plugin |
| CI/CD | GitHub Actions با Actionهای SHA-pinشده |
| Container | Next.js Standalone روی Node Bookworm Slim Pinشده |
ابزارهای مشروط
motionیا Framer Motion فقط برای نیاز UX تاییدشده و پس از بررسی Bundle و Reduced Motion؛- Schema Validator Runtime فقط وقتی Contract Boundary بدون آن امن و خوانا نیست؛
- E2E Framework همزمان با نخستین Flow حیاتی واقعی و با CI پایدار؛
- Observability SDK پس از تصمیم Privacy، Sampling، Data Residency و Cost.
Dependency احتمالی پیش از مصرف واقعی نصب نمیشود.
سیاست Dependency
پیش از افزودن Package، Standard API یا کد کوچک داخلی، License، Maintenance، Advisory، Bundle Size، Runtime Cost، Tree Shaking، Type Quality و Lock-in مقایسه میشوند. نسخه latest یا Range شناور در Runtime Dependency مجاز نیست.
ابزارهای نامناسب بهعنوان پیشفرض
- Redux در کنار Zustand بدون نیاز اثباتشده؛
- Axios وقتی
fetchاستاندارد نیاز را پوشش میدهد؛ - UI Kit بزرگ پیش از Design System واقعی؛
- Persistence عمومی Query یا Store؛
- Local Storage برای Token؛
- GraphQL، Micro-frontend و Client-side SPA کامل بدون ADR.