---
title: لماذا CT3A؟
description: لماذا يجب عليك اختيار Create T3 App لتطبيقك المقبل
layout: ../../layouts/docs.astro
lang: ar
dir: rtl
---

لقد أنشئنا Create T3 App لان [Theo](https://twitter.com/t3dotgg) رفض أن يصنع قالب محضَر لتِقنيته المُفضلة. ألهمنا حُبنا لـ typesafety، جَنباََ إلى جَنب مع create-next-app، و [Astro's CLI](https://astro.build)، للعمل عَلى قَدم وساق لصُنع أفضل نُقطة بِداية مُمكنة لمشروعات T3.

إذا كُنت مُهتمًا باستخدام Next.js بطريقةِِ آمنة، فَهذا هو المكان المُناسب للبدء. إذا كُنت مهتمًا بأي من تِلك التقنيات، فاقرأ :)

## لماذا TypeScript؟

إن JavaScript صَعبة. لماذا نُضيف المزيد من القوَاعد؟

لأننا نَعتقد اعتقادًا راسخًا أن التَجربة التي توفرها TypeScript سَتدفعك إلى أن تَكون مٌبرمجا أَفضل، فَتوفر لك المُلاحظات مُباشرة خلال كِتابة الكُود من خِلال تحديد أنواع البيانات المُتوقعة (Types)، هذا إلى جانب ميزة الإكمال التلقائي، غَير أنهُ يُنبهك في حَال ارتكبت خطأَ بوضع خط أحمر تحت الخطأ عند المحاولة لوصول إلى خاصية غَير مَوجودة أو تُمرير قِيمة من النوع الخَطأ فَيجبرك أن تصححها. سَواء كُنت مٌبتدئًا في تَطوير الويب أو محترفًا متمرسًا، فإن "صَرامة" TypeScript سَتُوفر لك تَجربة أقل إحباطًا وأكثر اتساقًا من Vanilla JS.

هل مازلت غَير مُقتنع إن Typesafety تجعلك أسرع؟ إذاََ شَاهد هَذا [might be using TypeScript wrong…](https://www.youtube.com/watch?v=RmGHnYUqQ4k)

## لماذا Next.js؟

نَحن نُحب React، بفضلها أصبح تَطوير واجهات المُستخدم UI سَهل المَنال بَطريقة لم نَكن نَتخيلها. لقد أَخَذَت بِيد المُطورين وعَبرت به أوديةَ سَحيقة وطرقاََ وَعرة.

عَلي الرَغم أن Next.js تِقنية عَنيدة قليلاَ، إلا أنها تُقدم تَجربة أقرب إلى الكَمال مع React في شَتى النَواحي، من routing و API حَتي عَرض الصُور، فَنحن نَثق تمام الثِقةٍٍ أن Next.js سَتقود المُطورين إلى الأمام بِقراراتها الحَكيمة.

## لماذا tRPC/Prisma/Tailwind وغيرها؟

بينما نؤمن بالحفاظ عَلى بَساطة الأشياء قَدرَ الإمكان، فإن هُناك أجزاء بَرمجيةَّ صَغيرة تَتكرر في كُل "تَطبيق" مثل المشروعات التي ننشئها، `create-t3-app` تَسمح لك بتبني الجزء بصورةِِ رائعة.

### لماذا tRPC؟

توفر tRPC تجرِبة سلسة في تطوير تطبيقات المستخدم (Client Side) كما في GraphQl دون الحاجة لكتابة كود متداول (boilarplate)، فإنها نستعمل TypeScript قدر ألإمكان لتوفر تجرِبة ممتازة للمطور.

### لماذا Prisma؟

إن Prisma بالنسبة لـ SQL كـ Typescript بالنسبة لـ Javascript، فإنها تخلق تجربة لمطور لم تكن موجودة من قبل، فتولد الأنواع (Types) من Schema يقوم المطور بوضعها، ذلك إلى جانب توافقها مع [العديد من قواعد البيانات](https://www.prisma.io/docs/concepts/database-connectors)
فبذلك تضمن Prisma الـ TypeSafety بين التطبيق وقاعدة البيانات

توفر Prisma [مجموعة كاملة من الأدوات](https://www.prisma.io/docs/concepts/overview/should-you-use-prisma#-you-want-a-tool-that-holistically-covers-your-database-workflows) التي تجعل التفاعلات اليومية مع قاعدة البيانات أسهل.

والجدير بالذكر أن Prisma Client مسؤول عن الاستعلام عن SQL وجعله أمرًا سهلاً للغاية لدرجة أنك بالكاد ستلاحظ أنك تستخدمه. ويكون Prisma Studio واجهة مستخدم رسومية (GUI) ملائمة لقاعدة بياناتك التي تتيح لك قراءة بياناتك ومعالجتها بسرعة دون الحاجة إلى كتابة الكود.

### لماذا Tailwind CSS؟

يوفر Tailwind "أسلوب مرن مع CSS"

توفر لك Tailwind العناصر الإنشائية اللازمة من الألوان وتباعد وغيرها، فتُسهل أنشاء تطبيق جيد المظهر. وعلى خلاف المكتبات الأخرى فإنها لا تعيقك عندما تريد نقل تطبيقك إلى مستوي اعلي و أنشاء شيئ جميل وفريد من نوعه.

بالإضافة، باتخاذها أسلوب كتابة التصميم داخل المكون (inline-like)، تشجعك Tailwind على عمل دون قلق على عبء التسمية، أو تنظيم الملفات، أو مواجهة معدلة ليست بصلة بالمشكلة التي تريد حلها.

### لماذا NextAuth.js؟

إذا كنت تريد نظام توثيق صالحيه في تطبيقك NextJS، فإن NextAuth.js يعد حلاً ممتازًا دون الحاجة إلى إنشاءه بنفسك. فيأتي مزودًا بقائمة واسعة من المزودين (Providers) إضافة مصادقة OAuth بسرعة ويوفر محولات (Adapters) للعديد من قواعد البيانات و ORMs.
