انتقل إلى المحتوى
EN
كل المشاريع

معًا

مساحة خاصة للزوجين، على هاتف واحد أو هاتفين.

معًا: مساحة خاصة للزوجين، على هاتف واحد أو هاتفين.
الدور
منفردًا: المنتج والبرمجة
السنة
2026
الحالة
يعمل الآن
الفئة
الويب

موقع عربي للبالغين المتزوجين يجمع أدلة مصوّرة وألعابًا: بطاقات تحدٍّ، وعجلة اختيار، وتوافق رغبات، ومسار سهرة متدرّج. يحدد كل طرف حدوده سرًّا، ولا يظهر إلا ما يقبله الطرفان. بلا حسابات.

نظرة عامة

بُني «معًا» حول قاعدة واحدة: لا يظهر شيء إلا إذا قبله الطرفان. قبل أول لعبة يحدد كل طرف حدوده سرًّا، وتُصفّى كل بطاقة وتحدٍّ ودليل بحدود الاثنين قبل عرضها.

يلعب الزوجان على هاتف واحد يتبادلانه، أو يربطان هاتفين برمز قصير ويلعبان آنيًا. لا أسماء ولا بريد ولا ملفات شخصية؛ تبقى التفضيلات في المتصفح، وتنتهي الجلسة المشتركة بعد 24 ساعة من الخمول.

يُدار المحتوى من لوحة إدارة صغيرة، فتُضاف الأدلة والتحديات وتُوسم وتُخفى دون لمس الموقع.

التقنيات المستخدمة

  • Next.js 16
  • React 19
  • TypeScript
  • Convex
  • Tailwind CSS 4
  • Biome
  • node:test

الروابط

التحديات

حدود أحد الطرفين لا تصل إلى الآخر أبدًا

المشكلة

في جلسة الهاتفين يبقى رفض كل طرف خاصًا به. ولو أرسل الخادم الحدّين إلى الهاتفين وصفّى هناك، لكانت رفوض الطرف الآخر على بُعد نافذة أدوات مطوّر واحدة.

الحل

يُدمج الحدّان على الخادم في Convex، ولا يصل إلى الهاتفين إلا ما صُفّي مسبقًا. وما يحقّ لكل هاتف رؤيته يُحدَّد في دالة واحدة، فيكون للتدقيق موضع واحد بدل كل استعلام.

جلسات آنية بلا حسابات

المشكلة

ربط هاتفين يعني عادةً تسجيل دخول الشخصين. وهنا لا حسابات، فيجب أن تكون الجلسة نفسها هي بيانات الاعتماد، والجلسة القابلة للتخمين تتيح لغريب أن ينضم.

الحل

يحمل كل هاتف مفتاح لاعب عشوائيًا، وكل دالة تصل إلى الجلسة عبر هذا المفتاح، فالمفتاح الخاطئ لا يعيد شيئًا. والدعوات قصيرة العمر، ومهمة مجدولة تحذف الجلسات عند انتهاء صلاحيتها.

النتائج

  • ست ألعاب تعمل على هاتف واحد أو آنيًا عبر هاتفين.
  • لا يظهر إلا المحتوى المقبول من الطرفين، وتبقى الرفوض خاصة.
  • بلا حسابات، وتُحذف بيانات الجلسة المشتركة عند انتهاء صلاحيتها.