All tips

لو أنت Frontend أو Full-Stack Developer، أكيد اتكرر معاك السيناريو ده: مستخدم بيرفع صورة من الموبايل تتفاجئ إن...

mostafa mohamed abdalla Mentor Senior Frontend Engineer ·

لو أنت Frontend أو Full-Stack Developer، أكيد اتكرر معاك السيناريو ده: مستخدم بيرفع صورة من الموبايل تتفاجئ إن حجمها طالع 18MB أو 25MB!

المطورين عادة بيحلوا المشكلة دي بطريقتين: 1️⃣ تحديد حجم upload بـ Validation: وترفض الصورة لو أكبر من 2MB، بس هل المستخدم العادي هيعرف يضغط الصورة بنفسه؟ 2️⃣ الضغط على السيرفر: ترسل الصورة الخام للـ Backend أو تشترك في خدمات زي Cloudinary أو AWS Lambda، وهُنا بتدفع تكلفة وسيرفر أعلى.

طب إيه الحل؟ 💡 بعد ما واجهت المشكلة دي كتير، قررت أطلق مكتبة مفتوحة المصدر جديدة: compressly

ليه تجرّب compressly؟ حجم أقل من 3KB (أخف بـ 95% من المكتبات القديمة زي browser-image-compression). ⚙️ Web Worker مدمج: المعالجة بتتم في الـ Background بدون أي Freeze لـ UI حتّى على الموبايلات الضعيفة. حل اتجاه صور الآيفون (Auto EXIF): معالجة createImageBitmap تضمن إن صورة الـ Portrait متتقلبش بالعرض. 🎯 Adaptive Target Size: بتحدد الحجم المطلوب (مثلاً 0.5MB) وهي بتعدّل الجودة والأبعاد للوصول للهدف. 🚀 دعم Batch: رفع وجدولة عدة صور بالتوازي بدون استهلاك زائد للذاكرة. ⚛️ جاهزة لـ React & Next.js: تدعم SSR ومزودة بـ Custom Hook جاهز.

Helpful · 1 1 comment

Discussion

1 comment

Ask the mentor about this tip, or add what worked for you. The mentor is notified of every comment.

Join the discussion Sign in to ask a question or reply to other students.
Sign in
  1. Mahmoud Adel Monstersgate team

    تسلم ايدك Helpful جداً