فلسفتنا
بُني Caputchin على موقف واحد، يُرى من ثلاث جهات: نحن متساهلون مع ما تستطيع فعله، منفتحون بكيفية فعلنا له، أدنويّون مع ما نحتفظ به. نحكّم التجربة المُدارة ومدى انتقال التغيير، لا القدرة الخام أبدًا، ولا نحمل شيئًا عن زوّارك لأن لا شيء نحتاجه.
تعرض هذه الصفحة ذلك الموقف. التخصيص هو حيث تشعر به أكثر مباشرةً، فيتصدّر، لكن الاعتقاد نفسه يجري في كيف نسعّر، وما نفتح مصدره، وما نرفض جمعه.
المبدأ
نحكّم تجربة لوحة التحكّم ومدى انتقال التغيير. لا نحكّم القدرة الخام.
سؤالان يقرّران أيّ جانب من الخطّ يقع عليه أي تخصيص:
إن ألّفته على صفحتك أنت، فهو لك مجانًا. وإن طلبت من Caputchin تأليفه لك وتقديمه لكل تضمين، فتلك التجربة المدفوعة.
ما الذي تستطيع كل باقة فعله على صفحتها أنت
هذه مفتوحة لكل الباقات، بما فيها Solo، لأنها تعيش على صفحتك، لا في لوحة تحكّمنا. لا شيء هنا يفحص باقتك.
- أعد تلوين الأداة كلها. يكشف الغلاف ألوانه كخصائص CSS مخصّصة تستطيع تجاوزها من نسق تنسيقك الخاص. انظر نسّق الأداة بـ CSS.
- أعد تنسيق أو تخطيط أو إخفاء أي جزء، بما فيه علامتنا. تُعرَض الأداة في جذر ظلّ مفتوح وتكشف قطعها البنيوية كأجزاء CSS، فتستطيع استهدافها وإعادة تنسيقها، أو إخفاء كتلة العلامة كليًّا. مغطّى أيضًا في نسّق الأداة بـ CSS.
- ألّف يدويًّا مظهر لعبة وlocale مخصّصين لكل تضمين. على عنصر
<caputchin-game>تستطيع تمرير كائن مظهر أو locale مضمَّن لتجاوز الألوان والأصول والنصوص لذلك التضمين الواحد. إنه خاصية في تركيبك أنت، فيعمل على أي باقة. انظر خصّص مظهر لعبة وخصّص لغة اللعبة. - اختر اللغة والسمة. سمتا
localeوskinتختاران أي لغة مضمَّنة أو سمة فاتحة وداكنة. انظر كيف تحلّ الأداة لغتها ومظهرها.
جذر الظلّ المفتوح خيار متعمَّد، لا سهو. موجود كي يعمل سطح CSS هذا. لن نغلقه لحماية جدار دفع، لأن ذلك سيكسر ميزة موثَّقة على المطوّرين الذين نحاول خدمتهم.
ما الذي تضيفه الباقات المدفوعة
مسار لوحة التحكّم هو القدرة نفسها، مُدارةً ومُعطاةً امتدادًا. هذا ما تشتريه باقة:
- ألّف مرة في لوحة التحكّم، قدّم لكل تضمين. تغيير تجريه في لوحة التحكّم ينتشر إلى كل تركيب أداة عبر كل صفحة ومفتاح موقع، بلا CSS لكل صفحة لنسخه وإبقائه متزامنًا. المسار المجاني لكل صفحة ويدويّ بطبيعته.
- نطاق الفريق وكل موقع. يُحلّ تخصيص لوحة التحكّم بخطّ فريق أساسي وتجاوزات لكل مفتاح موقع، فيستطيع فريق ضبط علامة مرة وتجاوز الاستثناءات لكل مفتاح. لنسق تنسيق لا مفهوم لذلك النطاق.
- بلوغ أسطح لا يستطيعه CSS خاصتك. صفحة التضمين المُستضافة التي تحمّلها التطبيقات الأصلية في WebView يقدّمها Caputchin، فلا تملك عليها CSS ولا JavaScript. تهيئة مؤلَّفة في لوحة التحكّم هي السبيل الوحيد لوسم ذلك السطح. انظر تكامل تطبيقات الجوّال.
- افعل ما لا تستطيعه صفحة حقًّا. إعادة صياغة كلمات الغلاف، وإعادة توجيه روابط شريط علامته، وتبديل شعاره نظيفًا غير قابلة للبلوغ من نسق تنسيق البتّة. هذه الحصريات الحقيقية لـ تبييض علامة الأداة.
أيّ محور يقع على أي مستوى (إعداد اللعبة، ولغة اللعبة ومظهرها، وغلاف الأداة) ملخَّص في جدول مستويات تخصيص اللعبة، مع غلاف الأداة، درجتنا العليا، مغطًّى في العلامة البيضاء.
لماذا نرسم الخطّ هنا
التقسيم يُبقي جمهورين راضيين معًا دون التنازل عن أيٍّ منهما.
مطوّر متقدّم لا يُحجَب أبدًا. كل ما يستطيع التعبير عنه بـ CSS أو في تركيبه الخاص له فورًا، على الباقة المجانية، فلا يعترض المنتج طريق من يعرف ما يريد. فريق يشتري باقة مدفوعة يدفع للجزء الصعب فعلًا أن يُحسَن يدويًّا: التأليف في مكان واحد، وحوكمته عبر مواقع كثيرة، وإبقاؤه متزامنًا، وبلوغ أسطح لا يتحكّم بها. تلك قيمة حقيقية مستمرّة، ومن الصدق تقاضي ثمنها.
يعني هذا أيضًا أننا لا نحتاج أبدًا إلى محاربة عملائنا. لا نحتاج مكافحة عبث، ولا جذر ظلّ مغلق، ولا سياسة تمنع استخدام سطح التنسيق الذي نوثّقه، لأننا لا نتظاهر بأن قدرة مجانية مدفوعة. القدرة مجانية. الراحة والبلوغ هما المنتج.
العلامة البيضاء قمّة السلّم، لا جدار
غالبًا ما تُقرَأ العلامة البيضاء كالميزة التي تتيح لك أخيرًا إزالة علامتنا. ليست كذلك. تستطيع أصلًا إخفاء علامتنا مجانًا بقاعدة CSS واحدة. العلامة البيضاء هي الدرجة العليا من السلّم نفسه الذي يجلس عليه كل تخصيص آخر: النسخة المؤلَّفة في لوحة التحكّم، المُقدَّمة في كل مكان، إضافةً إلى القلّة التي لا تستطيع صفحة فعلها وحدها، أي إعادة صياغة الكلمات، وإعادة توجيه الروابط، وتبديل الشعار نظيفًا، وتغطية صفحة التضمين المُستضافة التي تحمّلها التطبيقات الأصلية في WebView. إنها بلوغ أكثر وعمل أقلّ، لا بوّابة حول شيء حُرِمته لولاها.
مفتوح افتراضيًّا، حتى الأعماق
التساهل في هذه الصفحة ليس موقفًا تسويقيًّا. إنه بنيويّ: الأداة والـ SDK الذي تضمّنه مفتوحا المصدر، مرخّصان بـ Apache-2.0، ومطوَّران علنًا على GitHub. تستطيع قراءة كل سطر من الكود الذي يعمل على صفحات زوّارك، وتشعّبه، وتدقيقه، وفتح قضية أو طلب سحب عليه. وألعابنا الطرف الأول مفتوحة المصدر أيضًا.
نفعل هذا لسببين. أولًا، لا شيء لنخفيه. أداة تحقّق تطلب ثقة زوّارك ينبغي أن تكون قابلة للفحص، لا صندوقًا أسود. ثانيًا، المطوّرون الذين يدفعون سطح التخصيص إلى حدوده هم بالضبط من نتعلّم منهم. مدّ سطح CSS، أو تأليف مظهر لعبة يدويًّا، أو البناء مقابل عقد الـ SDK: حين يُظهر ذلك حافّة خشنة أو خطّافًا ناقصًا، يستطيع الإصلاح أن يعود إلينا مباشرةً كمساهمة. نكافئ المستخدمين المتقدّمين بأقصى مرونة، ونرحّب بهم كمساهمين في الكود نفسه.
- حزمتا الأداة والـ SDK: github.com/Caputchin/caputchin-sdk.
- ألعاب الطرف الأول، حزمة Caputchin Core Pack: github.com/Caputchin/games.
أدنويّ افتراضيًّا
الغريزة نفسها التي تجعلنا منفتحين تجعلنا أدنويّين: نحتفظ بما نحتاجه ولا شيء أكثر. لا نجمع بيانات عن الناس الذين يحلّون تحدّياتك. لا IP، ولا User-Agent، ولا بصمة، ولا قياس سلوكي. هذا بنيويّ، لا وعد سياسة، لأن بروتوكول الأداة لا مكان فيه لمعرّف زائر، فلا شيء ليُسرَّب، أو يُستدعى قضائيًّا، أو يُباع. تبلغ اللعبة الغاية نفسها دون تنميط أحد: تعيد اشتقاق ما إذا كانت جولة قد اجتيزت فعلًا بدل التخمين من مسارات الفأرة وتوقيت اللمس، وذلك موقف مكافحة الغش في الألعاب.
عنك أنت، العميل، نحمل الحدّ الأدنى الذي يحتاجه حساب: بريدك، وإعداد مفتاح موقعك، وسجلّ تدقيق لأفعالك أنت. الحذف صارم، بلا حذف ناعم يبقي نسخة هادئة. الموقف الكامل في سياسة الخصوصية، وقاعدة لا-بيانات-زائر نفسها تجري عبر التحقّق المُستضاف.
المتساهل والمنفتح والأدنويّ اعتقاد واحد من ثلاث زوايا: نعطيك أقصى تحكّم نستطيع، ونريك كيف يعمل بالضبط، ونطلب أقلّ ما نستطيع في المقابل.
انظر أيضًا
- نسّق الأداة بـ CSS: سطح التنسيق المجاني، الأجزاء ومتغيّرات الألوان.
- بيّض علامة الأداة: النسخة المؤلَّفة في لوحة التحكّم، المُقدَّمة في كل مكان، وما تستطيعه وحدها.
- خصّص الألعاب التي يلعبها زوّارك: تخصيص كل محور ومستوى الباقة الذي يحطّ عليه.
- سياسة الخصوصية: موقف لا-بيانات-زائر كاملًا.