انتقل للمحتوى
علي هيثم·TECH·يردّ خلال أقل من ساعة
  • الرئيسيةابدأ من هنا
  • الأعمالدراسات حالة، مشاريع
  • الخدماتما الذي سأبنيه لك
  • المدونةمقالات، سلاسل
  • التدريبدورات، مختبرات، دورات
  • عنّيالمهندس وراء هذا الموقع
تسجيل الدخولابدأ مشروع
علي هيثم · TECH
  • الرئيسية↗
  • الأعمال↗
  • الخدمات↗
  • المدونة↗
  • التدريب↗
  • عنّي↗
تسجيل الدخولابدأ مشروع
متاح
علي هيثم·TECH

استوديو هندسي. دمشق، GMT+3.

aliyosef.online

الاستوديو

  • الأعمال
  • المدونة
  • التدريب
  • عنّي
  • تواصل معي

البوابة

  • تسجيل الدخول
  • فتح تذكرة دعم
  • متابعة مشروع
  • حسابي

مصادر

  • الوثائق
  • حالة الأنظمة
  • سجلّ التغييرات
  • حزمة العلامة
  • الخصوصية
  • الشروط

النشرة

ملاحظات تقنية وأخبار، أسبوعياً. بدون حشو.

مجاني. إلغاء الاشتراك متى ما حبيت.

تابعني على
© 2026 علي هيثم يوسف. جميع الحقوق محفوظة.مبنيّ يدويًا بـ React 19.آخر نشر · 2026-05-08كل الأنظمة تعمل
OS
مشروع 132023–الآنمشرف

مفتوح المصدر

حفنة من الأدوات مفتوحة المصدر أصونها على الجانب. TypeScript وRust وGo: أدوات صغيرة خرجت من مشاريع أكبر وثبت أنها مفيدة في غيرها.

الدورمشرف
السنة2023–الآن
التقنياتTypeScript, Rust, Go
نظرة

عن المشروع.

حفنة من الأدوات مفتوحة المصدر أصونها إلى جانب عمل العملاء. معظمها بدأ كأداة صغيرة داخل مشروع أكبر، ثم تبيّن أنّها مفيدة بما يكفي لنشرها وحدها. المزيج TypeScript وRust وGo، حسب ما تقوم به الأداة. أتعامل معها كأيّ التزام آخر: مشكلات حقيقيّة تأخذ ردًّا، تغييرات كاسرة تأخذ ملاحظات إصدار، ولا أنشر أيّ شيء قبل أن يصبح جيّدًا بما يكفي لاستخدامي الشخصيّ.

النتيجة

ما الذي تغيّر.

40+ packages

حزمة قيد الصيانة

2.8k stars

نجمة على GitHub في كامل المستودعات

التحدّي

ما الذي وجدناه.

عدّة أدوات صغيرة سُحبت من مشاريع عملاء أكبر — مفيدة جدًّا للإبقاء عليها خاصّة، صغيرة جدًّا لتُصنَع منتجات قائمة بذاتها.

المقاربة

ما الذي فعلناه.

نشرها على GitHub تحت MIT، مع توثيق جيّد بما يكفي ليستخدمها غريب، وطابور issues يحصل على إجابات حقيقيّة (لا هجر).

النتيجة

ما الذي أصبح.

نجوم متواضعة، مستخدمون حقيقيّون، والانضباط الذي يأتي من نشر كود تحت اسمك.

القطاعبرمجيّات مفتوحة المصدر · مُصين
النوععدّة أدوات صغيرة (TypeScript، Rust، Go)
المدّة2023 → مستمرّ
الفريقمُصين منفرد + مساهمون عابرون أحيانًا
المُلكيّة

دوري الفعليّ في هذا المشروع.

مُصين منفرد عبر كلّ المستودعات. لا مُصينون مساعدون، لا شركة راعية. أعامل issues كتذاكر عملاء: ردّ حقيقيّ خلال 48 ساعة، ملاحظات إصدار حقيقيّة، لا تغييرات كاسرة دون قفزة إصدار رئيسيّة.

  • 01

    مُصين (كلّ المستودعات)

    فرز issues، مراجعة PRs، إدارة الإصدارات. semantic versioning مفروض؛ CHANGELOG مكتوب يدويًّا، لا مولَّد.

  • 02

    مالك توثيق

    README + أمثلة استخدام تعمل بالنسخ-اللصق. كلّ علم موثّق. كلّ تغيير كاسر مُعلَن في MIGRATION.md.

  • 03

    مهندس CI + إصدارات

    GitHub Actions للاختبار + lint + الإصدار. نشر حزم مؤتمت على الإصدارات الموسومة.

في الإنتاج

الأرقام التي تهمّ.

  • TS · Rust · Goمزيج المنظوماتلغة لكلّ أداة، مختارة بما تحتاجه الأداة — لا بولاء.
  • <48hزمن أوّل ردّ على issueيُعامَل كتذكرة عميل. ردّ حقيقيّ، لا بوت شكر.
  • Semverانضباط الإصداراتلا تغييرات كاسرة دون قفزة رئيسيّة. CHANGELOG مكتوب يدويًّا.
  • MITترخيص عبر كلّ المستودعاتمتساهل؛ لا شيء مقفل خلف حيل ترخيص مزدوج.
لماذا كانت هذه المهمّة صعبة

ما الذي كان معطّلاً فعلاً.

العمل على مشاريع عملاء طويلة الأمد ينتج بتات صغيرة قابلة لإعادة الاستخدام — محلّل لصيغة إعداد معيّنة، CLI لخطوة يدويّة مملّة، مساعد Rust يفعل شيئًا واحدًا رخيصًا بسرعة. الاحتفاظ بها خاصّة ضريبة على كلّ مشروع مستقبليّ يحتاجها؛ نشرها كمنتجات مبالغة. الطريق الأوسط هو مفتوح المصدر مع انضباط مُصين — أجب على issues، اشحن الترقيعات، لا تتظاهر بأنّك startup.

التحدّيات الهندسيّة

المساحة الصعبة من المشروع.

  • 01تمييز «أداة مفيدة تستحقّ النشر» عن «اختراق داخليّ يجب أن يبقى داخليًّا».
  • 02حفظ انضباط الإصدارات إلى جانب عمل العملاء — صيانة مفتوح المصدر لا تتوقّف لأنّ sprint ساخن.
  • 03توثيق يحترم وقت القارئ — README يعرض الأداة فعلاً في 30 ثانية.
مشاكل صعبة محلولة

انتصارات هندسيّة تستحقّ التسمية.

01

قول لا لتضخّم النطاق

سيطلب المستخدمون ميزات تحوّل أداة 50 سطرًا إلى إطار 500 سطر. ردود «هذا خارج نطاق هذه الأداة» الصادقة تبقي سطح التطوير صغيرًا.

02

CI عبر منصّات دون دفع فواتير CI

الطبقة المجّانيّة من GitHub Actions تتعامل مع Linux + macOS + Windows لمصفوفة الاختبار. الإصدارات تُحزَم + تُوقَّع في نفس workflow.

لماذا هذه التقنيّات

القرارات وراء كلّ اختيار.

TypeScript / Rust / Go (لكلّ أداة)

  • TypeScript: CLIs صغيرة وأدوات جانب-Node حيث المنظومة تهمّ أكثر من تكلفة وقت التشغيل.
  • Rust: حين تحتاج الأداة أن تكون سريعة وتُشحن كثنائيّ ثابت واحد.
  • Go: حين تحتاج الأداة أن تكون سريعة، تُشحن كثنائيّ واحد، وتبقى قابلة للقراءة لمهندسين غير Rust.

MIT عوضًا عن GPL

  • ترخيص متساهل يطابق روح «أداة مفيدة» — لا التزامات على المستخدمين أسفل.
  • تبنّي شركاتيّ أسهل — لا مراجعة قانونيّة مطلوبة ليسحب أحد تبعيّة 100 سطر.
الدروس المستفادة

ما علّمنا إيّاه هذا البناء.

  • مفتوح المصدر بلا انضباط أسوأ من لا مفتوح مصدر أصلاً. لو لا تستطيع الردّ على issues، أرشف المستودع وقل ذلك.
  • الأدوات الصغيرة تشيخ أفضل من الأطر الكبيرة. الأدوات الواحدة-الشيء التي نشرتها في 2023 لا تحتاج صيانة؛ التجربة الأكبر احتاجت ثلاث إعادات كتابة.
تابع القراءة
الحالة السابقةمحاسبالحالة التاليةريتز كارلتون الرياض
لنبنِ معًا

تريد شيئًا مماثلًا؟

أتلقّى عددًا محدودًا من الالتزامات كلّ ربع. حدّثني عمّا تفكّر فيه.

لنبدأ الحديث→