كل أداة هنا استحقّت مكانها.
لا نلهث وراء الأدوات لذاتها. هذه هي العُدّة التي نمدّ إليها أيدينا حين يجب أن يُطلَق شيء ما، وأن يتوسّع، وأن يظل بعد عام مرضيًا في صيانته، اخترناها لأنها تجعل الأمور التي تَهُمّ أصعب على الخطأ.
TypeScript
كل سطر نطلقه مُحدَّد الأنواع. الأنواع أرخص اختبارات قد تكتبها يومًا: تلتقط إعادة التسمية المكسورة، والحقل الغائب، والحالة المستحيلة قبل أن يلتقطها المستخدم. وفي قاعدة كود يُراد لها أن تعمّر بعد إصدارها الأول، تلك الشبكة الواقية هي الفرق بين التغيير الواثق والتخمين الحذر.
typescriptlang.orgReact
React هو طريقتنا في التفكير على هيئة واجهات: قطع صغيرة صادقة تتركّب لتصير شيئًا أكبر، وتظل سهلة القراءة كلما نمت. إنه أكثر الطرق اختبارًا في الميدان لبناء واجهة على الويب، بمنظومة وسوق توظيف لا يجاريهما أي بديل. وحين يكون على المنتَج أن يظل يتطوّر لسنوات، فإن هذه القدرة على البقاء تساوي الكثير.
Next.js
Next.js هو خيارنا الافتراضي لأي شيء جادّ. تصيير على الخادم من أجل السرعة وترتيب البحث، وموجّه قائم على الملفات يتوسّع إلى ما بعد مئة مسار دون أن يتحوّل إلى فوضى، وقاعدة كود واحدة تمتدّ من صفحة التسويق إلى لوحة التحكم خلف تسجيل الدخول. نعرفه بعمق يكفي لندفعه إلى حدوده القصوى.
nextjs.orgNode.js
لغة واحدة عبر العُدّة كلها. الـ TypeScript نفسه الذي يعمل في المتصفّح يعمل على الخادم، فلا تبديل سياق، ولا فريق ثانٍ، ولا منطق يُكتب مرتين بلهجتين. ولفريق صغير يطلق منتجات متكاملة، يكون هذا النموذج الذهني الموحَّد ميزةً هادئة.
Go
حين يجب أن تكون الخدمة سريعة وتتحمّل آلاف الطلبات في وقت واحد، نلجأ إلى Go. يُترجَم إلى ملف تنفيذي واحد صغير بلا بيئة تشغيل نراقبها، ونموذج التزامن فيه يجعل العمل المتوازي طبيعيًا، ويظل قابلاً للقراءة لسنوات لأن اللغة ترفض التذاكي. إنه ما نأتمنه على الأنظمة الخلفية التي تحمل العبء الحقيقي بهدوء.
AI Integration
نبني بنماذج اللغة الكبيرة كما نبني كل شيء آخر: عن قصد. الجزء الصعب ليس استدعاء API، بل معرفة أين يفيد الذكاء فعلًا، وأين لا يضيف سوى زمن انتظار ومخاطرة. أطلقنا ميزات حقيقية على منصّة OpenAI، وشغّلنا نماذج مستضافة عبر Replicate، ونبقى صادقين مع العملاء بشأن الخط الفاصل بين المفيد وما هو مجرّد مبهر.
PostgreSQL
حين يجب أن تكون البيانات صحيحة، نمدّ أيدينا إلى Postgres. عقود من التصليب، ومعاملات حقيقية، وأعمدة JSON حين تريدها وأنماط صارمة حين تحتاجها، ومنظومة امتدادات تؤدّي بهدوء عمل ثلاث خدمات أخرى. إنها قاعدة البيانات التي نأتمنها على أكثر الأمور التي تَهُمّ: عملاؤك وأموالك.
SQLite
ليست كل المنتجات بحاجة إلى خادم قاعدة بيانات. SQLite قاعدة بيانات علائقية كاملة في ملف واحد، سريعة وبلا تبعيات، وهي بهدوء أكثر قواعد البيانات انتشارًا في العالم. نلجأ إليها حين يجب أن تبقى البيانات قريبة من المستخدم: في تطبيق سطح المكتب، أو على الـ edge، أو في منتج local-first يظل يعمل دون اتصال.
Tailwind CSS
Tailwind يُبقي التنسيق صادقًا. قرارات التصميم تعيش بجوار الترميز الذي تؤثّر فيه، والبناء لا يطلق سوى الأصناف التي تستخدمها فعلًا، ويظل فريق صغير من كبار المحترفين متّسقًا عبر مئة مكوّن دون ورقة أنماط متضخّمة تنحرف عن مسارها. هذا الموقع مبنيّ به، من أعلاه إلى أسفله.
tailwindcss.comVercel
ننشر على Vercel لأن الإطلاق ينبغي أن يكون مملًّا. كل دفعة تنال رابط معاينة خاصًّا بها، وكل إصدار يُتراجع عنه بنقرة واحدة، وشبكة حافّة عالمية تضع موقعك قرب مستخدميك دون أن نستأجر خوادم نتعهّدها بالرعاية. تتيح لاستوديو صغير أن يعمل بموثوقية استوديو أكبر بكثير.
AWS
حين يتجاوز مشروع ما الإعدادات الافتراضية المريحة، يكون AWS وجهته. تخزين كائنات لا يمتلئ أبدًا، وطوابير ودوال تتوسّع إلى الصفر وتعود، والبنية التحتية نفسها التي تعتمد عليها أكبر شركات العالم. نمدّ إليه أيدينا حين يجعله الحجم أو المدى أو الامتثال الأداة الصحيحة، لا الأداة الانعكاسية.
Cloudflare
Cloudflare يقف أمام الأشياء التي نريدها سريعة وآمنة. شبكة CDN عالمية، وDNS يستجيب في أجزاء من الألف من الثانية، وطبقة أمان تمتصّ حركة المرور التي لا تريدها أبدًا أن تصل إلى أصلك. لموقع تسويقي ولـ API على حدّ سواء، إنه أرخص أداء وحماية يمكن للمال أن يشتريهما.
React Native
حين يكون مكان منتَج ما هو الشاشة الرئيسية، يتيح لنا React Native بناءه بعقل React نفسه والإطلاق إلى iOS وAndroid معًا من قاعدة كود واحدة. لا نموذج أولي يُرمى، ولا فريق ثانٍ بلغة ثانية، بل تطبيق حقيقي يتقاسم المنطق مع منتَج الويب إلى جانبه.
reactnative.devTanStack Start
TanStack Start هو الرهان الحديث الذي بدأنا بالفعل في إطلاقه. توجيه آمن الأنواع، وتحميل بيانات من الطراز الأول، وتصيير كامل للصفحة على الخادم، من صناعة الأشخاص أنفسهم وراء مكتبات الاستعلام والتوجيه التي يعتمد عليها نظام React البيئي بأكمله. نلجأ إليه في المشاريع الجديدة حين نريد توجيهًا وطبقة بيانات آمنَي الأنواع من الطرف إلى الطرف.
Astro
للمواقع التي يقودها المحتوى وتكون السرعة فيها هي المنتَج، يصعب التغلّب على Astro. يطلق افتراضيًا قدرًا يكاد يكون معدومًا من JavaScript، فيُحمَّل موقع تسويقي أو مجموعة توثيق فورًا حتى على هاتف منهَك، ويُدرج جزيرة تفاعلية فقط حيث تستحق مكانها. بنينا BIMFab بهذه الطريقة، وهو يسجّل في أعالي التسعينيات في كل تشغيل لـ Lighthouse.
Three.js
ثلاثية أبعاد فورية في المتصفّح، مكتوبة باليد في GLSL وWebGL. لا فيديو هنا ولا شيء مُصيَّر مسبقًا، فقط رياضيات تجري على بطاقتك الرسومية ستين مرة في الثانية. كل ما يتحرّك في هذا الموقع، الغيوم، والكرة، وكل شارة في الأعلى، بُني بهذه الطريقة، لأن شيئًا مصنوعًا من الضوء يُحَسّ مختلفًا عن شيء مصنوع من البكسلات.
D3.js
حين لا يفي مخطّط جاهز بالغرض، يتيح لنا D3 رسم البيانات بدقّة. إنه المحرّك وراء معظم تصوير البيانات الذي أُعجبت به في الصحافة المالية، بتحكّم في كل محور وانتقال وبكسل. نمدّ إليه أيدينا حين تستحق الحكاية المختبئة في الأرقام أكثر من مخطّط أعمدة افتراضي.
Electron
بعض الأدوات مكانها سطح المكتب، مع نظام الملفات، والقوائم الأصيلة، وأيقونة في شريط التطبيقات. يتيح لنا Electron الإطلاق هناك على حزمة الويب نفسها، فيمتدّ المنتَج بين المتصفّح وسطح المكتب دون فريق أصيل منفصل. بنينا وأطلقنا تطبيق Electron حقيقيًا، لا صفحة ويب في زِيٍّ مستعار.
الأدوات لا تساوي إلا قدر الأيدي التي تمسكها.
العُدّة لا تبني منتَجًا. الحُكم هو ما يبنيه: معرفة أيّ أداة يحتاجها العمل فعلًا، ومتى يكون الخيار المملّ المُجرَّب هو الصحيح. هذه هي العُدّة التي اكتسبنا معرفتنا بها عن خبرة، وبها نبني عملًا يَهُمّ.

