تسعة مجالات عمل سارت جنبًا إلى جنب لعقود، وكان لا بد أن تصير موقعًا يبقى وفيًّا لروايته الخاصة، وسهل التنقّل فيه، ويُعثر عليه بالفارسية.
الدور
المصمّم والمطوّر الوحيد: هندسة المعلومات، وهوية العلامة ولغة التصميم، ونموذج المحتوى، والبناء بـ Payload وNext.js بمساعدة الذكاء الاصطناعي، وبنية تقنية داخل البلاد.
النتيجة
يعمل منذ 30 أغسطس 2026، وللفارسية فيه روابطها الخاصة التي تبلغها زواحف محركات البحث، والحجز مفتوح منذ 12 سبتمبر؛ ولا أدوات تحليل فيه بعد، وهذه الفجوة مسجّلة صراحةً.
شكل 01
شكل 01الموقع الفارسي على الهاتف: مجالاته التسعة صفوفًا مسطّرة، وصفحة الشعر، وتقويم الحجز الشمسي.
01السياق
مسيرة تأبى عنوانًا واحدًا
آرش رضواني كاتب وشاعر ومعلّم ومصوّر ومغامر. وبحسب روايته، نشر قرابة عشرة كتب وأكثر من مئة قصيدة، ودرّب على ركوب الدراجات خمسة عشر عامًا، ومارس التسلّق أكثر من خمسة وعشرين عامًا، والتصوير أكثر من ثلاثين. وكان المطلوب موقعًا شخصيًا ويوميات تتّسع لذلك كله.
الفارسية لغته ولغة قرّائه، لذا فهي اللغة الافتراضية للموقع، والإنجليزية إلى جانبها. وحول روايته الخاصة بنيتُ موقع نشر: صفحة لكل جزء من عمله، ورفّ كتب لكل كتاب فيه صفحته، ويوميات، وأغانيه، وبحث، وتقويم لحجز مكالمة. يُحرَّر كله من لوحة إدارة فارسية ويُستضاف على خادم داخل إيران.
/fa/experience: الصفحة نفسها بالفارسية، التي لا يُباعَد بين حروفها أبدًا.
شكل 02صفحة واحدة، ورابطان: كل لغة وثيقة قائمة بذاتها، لا ترجمة تُبدَّل بملف تعريف ارتباط.
02المشكلة
الحقيقة والبنية والوصول
كانت المشكلة الأولى هي الحقيقة. فحياة بهذا التنوّع تغري بتضخيم الأرقام، وقد سبق للمشروع أن واجه أسوأ احتمال: المحتوى الأول الذي بُني عليه التصميم كان يصف شخصًا آخر، وروايته المكتوبة الخاصة نقضت تقريبًا كل واقعة فيه.
والثانية كانت البنية. فمجالات عمله سارت جنبًا إلى جنب لعقود — الكتابة، وتعليم راكبي الدراجات النارية ومدرّبيهم، وتدريب ركوب الدراجات، والتصوير، والخط، والجبل، والطريق، والإرشاد السياحي، والعمل الإغاثي — ولم يحلّ أيّ منها محلّ الآخر. صفحة تعريف واحدة لا تتّسع لكل هذا، والصفحات التي تحاول كل منها تلخيص الكل ينتهي بها الأمر إلى تكرار بعضها بعضًا.
والثالثة كانت الوصول. فلكاتب كتبه وقرّاؤه بالفارسية، يجب أن يُعثر على الصفحات الفارسية في عناوينها الخاصة. والموقع الذي يعرض الفارسية جيدًا لكنه لا يقدّمها لأي زاحف من زواحف محركات البحث قد أخفق في الشيء الوحيد الذي وُجد من أجله.
03القيود
خادم صغير واحد، خلف شبكة مُصفّاة
يعمل الموقع على خادم واحد في إيران بمعالج ثنائي النواة وذاكرة أقل من 4 غيغابايت، وهو الخادم نفسه الذي يشغّل خادم Git والبريد. ومن هناك يردّ كل من Docker Hub، وسجلّ الحاويات الخاص بغوغل، وQuay بالرمز 403، ويوتيوب مفلتَر، فلا يستطيع الخادم نفسه الوصول إلى الفيديوهات التي تسردها صفحة الموسيقى.
تُبنى النسخ على الجهاز نفسه وتشغل النواتين نحو ثماني دقائق؛ وفي قياس 2 سبتمبر، ارتفع زمن الاستجابة من 5 ثوانٍ إلى 37 ثم توقّف الرد تمامًا حتى انتهى البناء. ولم يُثبَّت مشغّل CI قط، فلا شيء يفحص أي دفع قبل أن يصل إلى الموقع الحي. وكل واحد من هذه القيود شكّل قرارًا مما يلي.
04دوري
مصمّم ومطوّر واحد، وكاتب واحد
صمّمت الموقع وبنيته وحدي، انطلاقًا من رواية آرش المكتوبة والرسائل التي أرسلها عن كل مجال من مجالاته. بدأ الكود من قالب موقع Payload، وبنيته بمساعدة الذكاء الاصطناعي: Claude مذكور كمساهم في 93 كوميت من أصل 97.
مسؤوليتي
↳هندسة المعلومات: أي صفحة تحمل أي جزء من روايته
↳هوية العلامة ولغة التصميم المكتوبة
↳نموذج المحتوى: 8 مجموعات و4 إعدادات عامة و21 كتلة للصفحات، كُتب 16 منها لهذا الموقع تحديدًا
↳البناء بـ Payload وNext.js، بلغتين
↳نظام الحجز وتقويمه
↳البنية التقنية داخل البلاد، وسجلّ النشر، وسجلّ عمليات المحتوى
↳الإخراج الفني للصور: 37 صورة مولَّدة، ملامحها مأخوذة من صوره
مسؤولية مشتركة
—
تعاون
↳آرش: سيرته الذاتية، ونصوصه العشرة عن مجالاته، وأغلفة كتبه، وصوره
كل رقم على الموقع يعود إلى كلماته هو؛ وحيث يختلف الموقع مع مسوّدة، تكون الكلمة الفصل للسيرة. المسوّدات، والمعاينة الحيّة، والجدولة، وفهرسة البحث، ومنشئ النماذج جاءت مع القالب؛ أما البنية والقواعد والقرارات فهي عملي.
05المصادر
لا شيء مستنتَج، ولا شيء مُلفَّق
لا يعتمد الموقع إلا على مصدرين لتعريف من هو: وثيقة كتبها عن نفسه، وعشر رسائل أرسلها في 11 سبتمبر، رسالة لكل مجال. يحتفظ ملف السيرة بالمصدرين معًا، مع اعتماد النص الفارسي مرجعًا، وجدول للأرقام الموثّقة يسجّل كل رقم كما ذكره هو تمامًا، مع الإبقاء على ≈ أو + كما وردا. وحين تعارض ملف محتوى أقدم مع روايته، دُوِّن هذا التعارض في السيرة نفسها وكان الفصل لروايته.
ويسرد الملف نفسه ما لا وجود له بعد — بقية عناوين كتبه، ونص أي قصيدة، وشهاداته — والقاعدة في كل ذلك واحدة: لا يُعرض شيء. لذلك تظهر الفجوات كجُمل واضحة، لا كنصوص مؤقتة: صفحة الكتب تسرد ستة من قرابة عشرة عناوين وتقول ذلك صراحةً، وصفحة الشعر تشرح أربعة قوالب وتقول إن لا قصيدة هنا بعد، وصفحة الأعمال تقول إن الخط والصور لم تُنشر بعد.
وفي الملف نفسه جدول تنسيب يسجّل الصفحة والكتلة اللتين يقيم فيهما كل مقطع من كلامه الآن، بحيث لا يستطيع تعديل لاحق أن يضع المقطع نفسه في مكانين من دون أن يُلاحَظ.
أصبح الموقع عامًّا في 30 أغسطس؛ وصار محتواه صادقًا في 3 سبتمبر، حين حلّت روايته محلّ الملف الأقدم في كل صفحة.
«لا شيء هنا مستنتَج، ولا يجوز أن يظهر على الموقع أي رقم من خارج هذا الجدول.»
شكل 03تعلن صفحة الكتب حدودها بنفسها: قرابة عشرة عناوين كُتبت وتُرجمت ونُشرت، أُدرج ستة منها، والبقية لم تُدرج بعد.
/fa/poetry: قسم القصائد، بانتظار قصائد كاملة معها قالبها، لا مقتطفات أبدًا.
06البنية
صفحة واحدة لكل مهمة، وموطن واحد لكل واقعة
أعطيت كل صفحة مهمة واحدة. صفحة الخبرة هي النظرة العامة: تسعة خيوط، يقود كل منها إلى الصفحة التي تحمله كاملًا، وهي الشريط الوحيد للأرقام في الموقع. صفحات التعليم والطريق و«النظرة نفسها» والشعر يحمل كل منها جزءًا من روايته، بكلماته هو. الكتب واليوميات والموسيقى مجموعات لها فهرس. البحث والتواصل يخدمان كل صفحة.
وما يجمع هذا كله مسلّمة لغة التصميم نفسها، مطبَّقة هذه المرة على المحتوى: الصفحة تقول الشيء مرة واحدة، وللواقعة موطن واحد. في أول صفحة خضعت للتدقيق، وهي الأعمال، ظهرت الأشياء الستة نفسها ثلاث مرات — الأرقام في الرأسية ثم في شريط الإحصاءات، وجملة واحدة كنقل قول ثم في قائمة. حُدِّد لكل واقعة صاحب واحد وحُذفت النسخ الأخرى؛ ولم يُعَد كتابة أي جملة. وعلى امتداد التطبيق، وجد التدقيق أربعة عشر تكرارًا في خمس صفحات، وكان كل إصلاح حذفًا.
والروابط المتبادلة تحلّ محلّ التكرار. صفحتا التعليم والطريق تعرض كل منهما كتابها الخاص بموضوعها، مرتبطًا بصفحته، وتُختتم التعليم والكتب والموسيقى والخبرة بشريط يقود إلى التواصل. وحين صارت الصفحات الداخلية صاحبة وقائعها، لم يبقَ للصفحة الرئيسية ما تقوله بنفسها، فصارت الفهرس: الكتب، وست طرق للدخول، وخريطة البلد، وأحدث الأغاني، وآخر اليوميات.
صفحتان أقدم لم تواكبا بعد. الأعمال والخبرة سُبقتا بصفحتي الطريق و«النظرة نفسها»، وما زالت ستة من روابط صفحة الخبرة التسعة تشير إلى الأعمال، التي لا تحمل الآن سوى قائمة قصيرة وشريط «لم يُنشر بعد».
01الصفحة الرئيسية هي الفهرس. العنوان المجرّد يقود إلى الفارسية، وكل مسار موجود تحت /fa وتحت /en.
02نبذة، والخبرة: نظرة عامة على الخيوط التسعة كلها، مع الشريط الوحيد للأرقام في الموقع.
03التعليم والطريق و«النظرة نفسها» والشعر يحمل كل منها جزءًا من روايته.
04التعليم والطريق يربطان الكتب بموضوعهما الخاص.
05
07المنهج
مسلّمة واحدة، وكل صفحة تُقاس عليها
انطلق الموقع أولًا بنظام هوية تحريري ولوحة ألوان مستمدّة من صور آرش نفسه: الحبر الدافئ، والكهرماني، والورق، والضباب البارد، والكوبالتي. وقيس التباين في كل زوج من الألوان. فجاء الكهرماني على الورق بنسبة 2.1:1، لذا لا يُستخدم الكهرماني أبدًا لونًا لنص على الأبيض، وصار «كهرماني واحد في كل مشهد» قاعدة.
بعد ثلاثة أيام دُوِّنت لغة التصميم في جملة واحدة، «لا خطّ بلا نهاية»، مع ثلاث طرق مشروعة لتوقّف الخط: عند جدار، أو عند خط آخر، أو عند تغيّر الأرضية. وكل ما عدا ذلك عيب لا أسلوب، وأُعيد بناء كل صفحة وقياسها على هذه الجملة.
وحسمت هذه القاعدة تفاصيل عادةً ما يُختلف عليها. تقع الجدران على حافة عمود المحتوى، فكل خط يرسمه بلوك يهبط عليها من دون أن يعرف البلوك أصلًا بوجودها. أما الشريط الذي له لونه الخاص فلا يرسم خطًّا، لأن تغيّر اللون نفسه هو الحافة. ولكل خط سماكة واحدة، 1.5 بكسل، ولا منطقة فيها زاوية مدوّرة. وحقل النموذج خط سفلي يُظهر التركيز بتغيّر اللون، قيس تباينه بـ6.18:1 في السمة الفاتحة و7.44:1 في الداكنة، بينما المطلوب هو 3:1. والفارسية لا يُباعَد بين حروفها أبدًا: كل قيمة تباعد، بما فيها القيم الافتراضية لـTailwind نفسه، صُفِّرت للفارسية، بعدما كانت تُضيّق نقاط اتصال الحروف في كل عنوان فارسي.
معيار الحافة ليس وجود حدّ بل ما إذا كان القارئ سيرى الخط يتوقّف هناك. وقد أخفق فيه بورتريه الصفحة الرئيسية بفارق 64 بكسل، فصار عمودها الآن يرسم خطًّا خاصًّا به.
من قالب إلى موقع حيّ ثنائي اللغة
01
البناءقالب موقع Payload داخل Next.js، ولوحة إدارة فارسية، ومسار للنشر، من 25 أغسطس
02
نظام الهويةلوحة ألوان مقيسة من صوره، أُطلقت في 30 أغسطس
01تنتهي خطوط الصفوف عند خط العمود: خط يتوقّف عند خط آخر.
02ينتهي خط العمود عند خط الشريط أسفل القائمة.
03تتوقّف الجدران حيث يتحوّل الورق إلى حبر: تغيّر الأرضية حافة.
04كل رقم في الشريط مأخوذ من الجدول الموثّق، مع الإبقاء على ≈ و+.
08الصور
ملامح مأخوذة من صوره الخاصة
انطلق الموقع بمكتبة وسائط فارغة. كان في أرشيفه 59 صورة، ولم تصلح أي منها مرجعًا نظيفًا: ففي أول 42 صورة فحصتها، كان رأسه في كل لقطة قريبة تحت قبعة أو قبعة بحافة أو خوذة، وغالبًا مع نظارة شمسية، وفي كل لقطة بلا غطاء رأس كان وجهه أصغر من أن يُقرأ. لذلك أخرجتُ الصور بنموذج لتوليد الصور، انطلاقًا من تلك الصور نفسها.
جاءت أول صور الموقع من لوحتَي مرجع أوليّتين. وبعد أسبوع بنيتُ تسع لوحات دوران للأزياء، واحدة لكل طريقة متكرّرة يرتدي بها ملابسه في صوره، كل منها مستندة إلى صور مصدر محددة ومرئية من تسع زوايا ثابتة، وصارت مرجع الاستمرارية لسبع عشرة دراسة تحريرية. وأُوجزت لكل صورة قواعد الهوية — ألوانها، وزواياها القائمة، وحد أقصى لون كهرماني واحد، ولا نص ولا شعار ولا عنوان كتاب مختلق. تلتزم صور الموقع الإحدى عشرة بهذه القواعد؛ وتتجاوز بضع دراسات حدّ الكهرماني الواحد.
حيث تنجح صورة حقيقية تكون لها الأولوية: صورة صفحة «نبذة» والصورة الرمزية مقصوصتان من صورة حقيقية له. أما هنا فتُعرض الصور المولَّدة على أنها مولَّدة؛ وعلى موقعه هو لا تحمل بعد أي توسيم، وهذا أمر ما زال مفتوحًا.
شكل 09«ست طرق»، فهرس ممارساته في الصفحة الرئيسية: كل ممارسة تقع تحت إحدى بطاقات الأقسام المولّدة.
09النشر
قيود، وكل مكان يصل إليه كل واحد منها
الكتب ويوميات المدوّنة والأغاني قيود، لا أقسام داخل صفحة، لأن القيد يمكن أن يكون له عنوانه الخاص وبياناته الوصفية الخاصة وموضع في البحث. ونشر قيد لا يجعله في متناول الوصول تلقائيًا، لذا وُصل كل نوع بالمنافذ التي يصل منها القارئ أو الزاحف.
يحصل الكتاب على صفحة بكل لغة، وصف في خريطة موقع الكتب وفي البحث، وبيانات Book المنظّمة التي تسمّي دوره كما طُبع على الغلاف، وصورة مشاركة مقصوصة من غلافه. وتحصل يومية المدوّنة على صفحة لكل لغة، وخريطة موقع لليوميات، وخوراك RSS لكل لغة، وبيانات Article المنظّمة، وفلترة حسب الفئة؛ والفئات الست تحمل أسماء مجالات عمله. أما الأغنية فلا صفحة خاصة بها: صفحة الموسيقى وشريط الصفحة الرئيسية يقرآن من مجموعة الفيديوهات، ويصفانها كقائمة من VideoObject.
وحول هذا كله: روابط أساسية (canonical)، وأزواج hreflang مع x-default على الفارسية، وثلاث خرائط للموقع، ورسم بياني WebSite وPerson في كل صفحة، وبطاقات مشاركة: يستخدم الكتاب غلافه الخاص، وكل صفحة أخرى بطاقة الموقع.
لا تلتزم اليوميات بعد بقاعدة الموقع نفسها. عشرون من يوميّاتها الـ21 أُنشئت دفعة واحدة في 10 سبتمبر، مكتوبة بصوته هو، منسوبة إليّ، ومؤرَّخة إلى ما يعود إلى يناير؛ والواحدة الباقية متروكة من المحتوى الأقدم. وإلى أن تحلّ كتابته هو محلّها، يعمل النظام لكن محتواه لا يعمل.
01قيد واحد في مجموعة الكتب، يُحرَّر مرة واحدة في لوحة الإدارة.
02صفحة بالفارسية وأخرى بالإنجليزية، يزاوج بينهما hreflang.
03بطاقة في رفّ الكتب، وقاب في صفحة موضوعه.
04صف في خريطة موقع الكتب وفي بحث الموقع، باللغتين.
05بيانات Book المنظّمة، بدوره كما طُبع على الغلاف: تأليف، أو تأليف مشترك، أو ترجمة.
/fa/posts: كل تاريخ فيه شمسي وبالأرقام الفارسية.
10القرارات الرئيسية
ستة قرارات صمدت
فرض كلًّا منها الجمهور أو المادة المصدرية أو الشبكة، لا الذوق.
01
رابط مستقل لكل لغة
كان الإصدار الفارسي الأول يختار اللغة عبر ملف تعريف الارتباط: رابط واحد، وعرضان. وزاحف محركات البحث لا يحمل ملفات تعريف ارتباط، فلم تكن أي صفحة مترجمة متاحة على أي رابط، ولم يكن ممكنًا إصدار أي وسم hreflang. أما الآن فالإنجليزية تحت /en، والفارسية تحت /fa، والرابط المجرّد يقود إلى آخر لغة استخدمها القارئ، أو إلى الفارسية.
البدائل
رابط واحد، واللغة تُختار عبر ملف تعريف الارتباط
المفاضلة
يجب أن يحمل كل رابط داخلي بادئته، ويجب أن يكون تبديل اللغة تحميلًا كاملًا للصفحة.
02
حماية الحجوزات بفهرس في قاعدة البيانات، لا بخطّاف
لا يمكن أبدًا أن تتشارك مكالمتان مؤكَّدتان وقت البدء نفسه. وخيارات الفهرسة في Payload نفسه لا تستطيع التعبير عن «فريد بين الصفوف المؤكَّدة فقط»، لذا يبني التطبيق فهرسًا فريدًا جزئيًا عند الإقلاع، وتمرّ الحجوزات العامة عبر نقطة وصول واحدة. واختُبر ذلك كسباق متزامن: استجابة 201 واحدة، و409 واحدة، وصف واحد.
البدائل
فحص للتكرار في خطّاف الحفظ
المفاضلة
إن فشل بناء الفهرس، يواصل الموقع العمل من دون هذا الضمان، لذا يجب قراءة سجلّ الإقلاع.
الأدلة
أرباع الساعات المتاحة في يوم واحد بتوقيت طهران؛ وفي الإنجليزية يحمل التاريخ الشمسي تاريخه الميلادي تحته.
11الحل
من القراءة إلى السؤال
يقرأ البحث فهرسًا واحدًا مبنيًّا من الصفحات واليوميات والكتب. ومنذ 13 سبتمبر يقرأ هذا الفهرس بلغة الصفحة نفسها، فتعود اليوميات الفارسية بعناوين فارسية. وتتوقّف النتائج عند اثنتي عشرة نتيجة، وتُستبعد صفحات النتائج من محركات البحث، لأن كل استعلام كان سيتحوّل بغير ذلك إلى صفحة هزيلة.
نموذج التواصل شريط من حقول ذات خط سفلي، مع فخّ عسل مخفي. وخادم البريد موصول به، وترفض الحاوية الإقلاع من دون إعداداته، لأن الإخفاق الذي يحرس منه هو الإخفاق الصامت: نموذج يشكر الزائر ولا يخبر أحدًا. لكن النموذج نفسه ليس له إشعار مضبوط في الإنتاج، فتنتظر الرسائل اليوم في لوحة الإدارة: الإخفاق الصامت نفسه، بطبقة أعلى.
تُحجز المكالمة بالخطوات أدناه. وكل قاعدة تتعلق بالتوقيت — الساعات، والاستراحات، وطول الموعد، والفاصل بين المكالمات، ومهلة الإشعار، والأيام المحظورة، ومفتاح لإغلاقه كله — تقيم في إعداد يُحرَّر من لوحة الإدارة، فتغيير الساعات لا يحتاج أبدًا إلى نشر جديد. ولا ترسل الحجوزات أي بريد بعد؛ وتفتح لوحة الإدارة على المكالمات المؤكَّدة التالية.
البحث مُصلَح نصفه فقط. لا تزال الكتب والصفحات تعود بعناوين إنجليزية في البحث الفارسي، والمقتطف والفئة تحت كل نتيجة مخزَّنان بلغة واحدة، فيُظهر البحث الإنجليزي مقتطفات فارسية ويفوّت التطابقات في الأوصاف الإنجليزية.
/fa/search عن «مربی»: تعود اليوميات بعناوين فارسية؛ ولا يزال الكتاب يظهر بعنوانه الإنجليزي.
حجز مكالمة، في خمس خطوات
01
اختيار يومشهر شمسي يبدأ بالسبت؛ والأيام الماضية والجمعة والأيام الممتلئة معطّلة
02
اختيار ساعةأرباع الساعات المتاحة بتوقيت طهران، مع توقيت الزائر نفسه إلى جانبها
12الإدارة
تشغيله من دون إصدار جديد
تتحدث لوحة الإدارة الفارسية افتراضيًا وتتحوّل من اليمين إلى اليسار من تلقاء نفسها؛ والعلامة في شاشة الدخول هي توقيعه هو، رُسمت مكان شعار Payload. المسوّدات، والحفظ التلقائي، والمعاينة الحيّة، والنشر المجدول جاءت مع القالب، لكن حتى 8 سبتمبر لم تكن الجدولة تفعل شيئًا: كانت لوحة الإدارة تضع مهمة في طابور لا يشغّله شيء، فما كانت يومية مجدولة لتظهر أبدًا. والآن يفرّغ مُشغّل مهام داخل الحاوية الطابور كل دقيقة.
من 3 سبتمبر تُجرى تغييرات المحتوى وقت التشغيل، لا في الكود. وبين 11 و18 سبتمبر يسجّل سجلّ عمليات المحتوى خمس عشرة عملية كتابة — نصوص مجالاته، وإعدادات الحجز، وبطاقات الصفحة الرئيسية، وصفحة الموسيقى وأغانيها — وعملية تراجع واحدة: بطاقات صفحة «نبذة» التسع، التي كانت تُعطّل الصفحة الفارسية في المتصفحات بلا WebGL، سُحبت عبر API خلال أقل من ساعة وأُعيدت في اليوم نفسه بعد إصلاح الكود.
وكل عملية كتابة تسير على الخطوات نفسها، ويحمل كل صف في السجلّ تحقّقه الخاص.
يمكن لعملاء الذكاء الاصطناعي قراءة المحتوى عبر MCP لكن لا يمكنهم كتابته؛ وتوسيع ذلك سيكون بحدّ ذاته تغييرًا في الكود، يُتخذ عن قصد.
تغيير محتوى واحد، من البداية إلى النهاية
01
التصنيفمحتوى، أو إعداد، أو شيء يُجعل قابلًا للتحرير مرة واحدة، أو كود
02
النسخ الاحتياطيالوثيقة باللغتين، قبل الكتابة
13النتائج
يعمل، والفجوات مسمّاة
يعمل على arashrezvani.me منذ 30 أغسطس 2026 ويستقبل الحجوزات منذ 12 سبتمبر. وما زال مفتوحًا ومسجَّلًا: لا أدوات تحليل من أي نوع، فلا أرقام عن الزوار؛ ولا مشغّل CI، فيصل أي دفع إلى الموقع من دون فحص lint أو فحص الأنواع؛ ولا بريد من نموذج التواصل ولا من الحجوزات، فكلاهما ينتظر في لوحة الإدارة؛ وبحث نصف مُوطَّن فقط؛ ويوميات ليست من كتابته هو؛ وصور مولَّدة لا يوسمها موقعه.
تكرارات عُثر عليها وأُزيلت
14
تدقيق قاعدة «قل الشيء مرة واحدة» في خمس صفحات؛ وكان كل إصلاح حذفًا.
نتيجة مقاسة · تدقيق التطبيق في لغة التصميم
اختبارات ناجحة عند آخر بوابة إصدار
307
إلى جانب فحص الأنواع وlint وبناء الإنتاج واختبار سريع للتشغيل قبل الدفع.
نتيجة مقاسة · سجلّ النشر، 18 سبتمبر 2026
الفارسية والإنجليزية على روابطهما الخاصة
الفارسية افتراضيًا، والنصفان كلاهما في hreflang وفي خرائط الموقع.
مخرج مُسلَّم
سجلّ نشر يحتفظ بإخفاقاته
سُجّلت 18 عملية تشغيل في الإنتاج، فشلت خمس منها، إلى جانب سجلّ منفصل لكل كتابة للمحتوى وكل تراجع.
مخرج مُسلَّم
ما تم تسليمه
↳حجز شمسي
↳رابط لكل لغة
↳صفحة لكل كتاب
14ما تعلّمته
ما يستحق الإبقاء، وما كان موجعًا
01
صُغ لغة التصميم في جملة واحدة
حسمت «لا خطّ بلا نهاية» الخلافات من دون اجتماع آخر، لأن كل خلاف كان يُختزل في سؤال واحد: هل يصل هذا الخط إلى مكان ما؟
02
الموقع الثنائي اللغة ليس ثنائي اللغة حتى يكون لكل لغة رابط
اجتاز نظام ملف تعريف الارتباط كل اختبار يستطيع شخص إجراءه، وأخفق تمامًا مع الزائر الأهم لموقع أي كاتب: زاحف محركات البحث.
03
التحسين الذي لا يستطيع أن يفشل بأمان ليس تحسينًا
ألقى تأثير إظهار بالتمرير مبنيّ على WebGL خطأً في المتصفحات التي لا تدعم WebGL، فحلّت رسالة خطأ محلّ صفحة فارسية كاملة. ثم عاد خلف فحص لقدرات المتصفح وحدٍّ للأخطاء يستقر على الصورة البسيطة.
04
لا بد أن تصل القاعدة إلى ما يُضاف دفعة واحدة
قِيست كل صفحة على روايته صفحة صفحة، إلا اليوميات: أُدخلت يومياتها دفعة واحدة. وهي الجزء الوحيد من الموقع الذي يخفق في اختبار الموقع نفسه، وأول شيء يجب استبداله.
08الأعمال سبقت الطريق و«النظرة نفسها»؛ ومكانها في البنية ما زال مفتوحًا.
شكل 05الموقع بحسب مساراته، مُحصاة في 27 سبتمبر 2026. كل مسار موجود مرتين، تحت /fa وتحت /en.
شكل 06الصفحة الرئيسية كفهرس، أسفل منها: خريطة البلد التي تقود إلى صفحة الخبرة، وآخر ست يوميات. أغلفة الكتب ولقطات الأغاني بينهما من صوره الخاصة، لذا تُركت خارج العرض.
03
روايته الخاصةتدوين «الشبكة» وإعادة بناء كل صفحة على سيرته؛ المحتوى صادق من 3 سبتمبر
04
نصوص المجالاتاستقرّت رسائله العشر في الموقع في 11 سبتمبر، لكل واحدة موطنها
05
روابط مستقلة وحجزلكل لغة بادئتها الخاصة، وتقويم شمسي للمكالمات، من 12 سبتمبر
06
الكتب كصفحاتصفحة لكل كتاب، والبحث يُقرأ بلغة الصفحة، 13 سبتمبر
07
الموسيقىأغاني القناة كبطاقات تُحمَّل عند النقر، 18 سبتمبر
شكل 08الصور في مكانها: تُفتتح الصفحة الرئيسية للموقع بالترويسة ذات النوافذ الثلاث، بالإنجليزية وبالفارسية، حيث تنعكس الصفحة كلها من اليمين إلى اليسار.
شكل 10الصفحة الرئيسية نفسها على الهاتف بالفارسية: السطر الافتتاحي، والترويسة، والبطاقات الست اثنتين في كل صف، والملاحظات.
شكل 11تسع لوحات دوران، واحدة لكل أسلوب يرتديه: الفنان الأديب، والمسافر المرتاح، والمعلّم الرسمي، والمبدع الحضري، وسائق الدراجة الكلاسيكي، ومدرّب الدراجات النارية، ومستكشف الطرق، والمسافر الميداني، وزيّ العمل الإغاثي.
شكل 12ما وصل إلى الموقع: صورة رأسية الصفحة الرئيسية وترويسة كولاجية أسبق منها، وبطاقات الأقسام الست، والشريط الختامي (أُزيل لاحقًا؛ وما زال قصّه 1200×630 هو صورة المشاركة)، وبديلان مؤقتان في صفحة «نبذة» إلى أن يُصوَّر لوح خط حقيقي وتصل إحدى صوره الخاصة.
شكل 13سبع عشرة دراسة تحريرية، كل منها تكوين جديد بأحد الأزياء التسعة: كولاج، وطباعة حريرية، وبورتريه بضوء حاد، وطبيعة صامتة.
06صورة مشاركة 1200×630 مقصوصة من غلافه.
شكل 14كتاب واحد، متتبَّع عبر الموقع كله. تسير اليوميات على النمط نفسه وتضيف خوراك RSS لكل لغة؛ أما الأغاني فتقرؤها صفحة الموسيقى ولا صفحة خاصة بها.
شكل 15فهرس اليوميات باللغتين: ست فئات باسم مجالات عمله، واثنتا عشرة يومية في كل صفحة.
03
تحميل الفيديو فقط عند طلبه
داخل إيران، يحتاج مشغّل YouTube إلى VPN. وكل أغنية بطاقة تُحمَّل عند النقر، يأتي ملصقها وعنوانها من تخزين الموقع نفسه، فتكتمل البطاقة من دون VPN ولا يُحمَّل أي مشغّل قبل النقر.
البدائل
تضمين المشغّل في الصفحة
المفاضلة
الملصقات حاليًا هي إطارات يوتيوب نفسها، مخزّنة على الموقع وتُستبدل يدويًا.
04
إبقاء البنية التقنية كلها داخل إيران
يردّ Docker Hub على الخادم بالرمز 403: فشلت خمس عمليات نشر عند سحب الصورة الأساسية قبل أن تصل عبر مرآة إيرانية. والتخزين وGit ومنصة النشر والبريد كلها تعمل داخل البلاد.
البدائل
السجلات العامة وGit المستضاف
المفاضلة
أعباء أكثر على خادم صغير واحد: نفدت الذاكرة في إحدى عمليات البناء فأسقطت خادم Git معها.
05
جعل كل كتاب قيدًا له صفحته الخاصة
قائمة داخل كتلة صفحة لا يمكن أن تمنح كتابًا عنوانًا خاصًّا، ولا بياناته الوصفية الخاصة، ولا هوية تشير إليها صفحات أخرى. أما بصفته قيدًا، فيظهر الكتاب في الرفّ، وفي صفحة موضوعه، وفي البحث، وعلى رابطه الخاص، فيصل القارئ الذي يبحث عن «مربی شو» مباشرة إلى الكتاب. ولا يذكر أي غلاف سنة أو ناشرًا، لذا يُرتَّب الرفّ يدويًا، وتحمل كل بطاقة الدور الذي طُبع على الغلاف: تأليف، أو تأليف مشترك، أو ترجمة.
البدائل
الكتب الستة كصفوف داخل صفحة الكتب
المفاضلة
لا ترتيب تلقائي، وقسم تفاصيل يبقى فارغًا حتى تُعرف سنة أو ناشر.
06
معاملة المحتوى كبيانات لا كإصدار جديد
من 3 سبتمبر، صارت قاعدة البيانات، لا المستودع، هي حاملة المحتوى. وكل تغيير يُصنَّف أولًا: المحتوى والإعدادات تُكتب عبر API، وكل ما سيتغيّر مجددًا يُجعل قابلًا للتحرير مرة واحدة، ولا يصدر كنسخة جديدة إلا البنية والسلوك والبنية التحتية. الأغاني وصفحة الموسيقى وساعات الحجز والقائمة كلها تغيّرت من دون أي نشر جديد.
البدائل
تحرير المحتوى في ملفات seed ونشره
المفاضلة
لم يعد المستودع يحمل النص الحي، لذا يُنسخ احتياطيًا كل نص يُكتب، ويُقارَن، ويُسجَّل يدويًا.
/en/search عن «coach»: عناوين إنجليزية، مع مقتطف فارسي تحت كل واحد.
شكل 16البحث نفسه باللغتين على الهاتف، مُلتقَط في 27 سبتمبر 2026: ما حلّه إصلاح اللغة وما لم يحلّه.