💡 JavaScript is full of hidden Web API gems you probably aren’t using.
From observing elements to copying content, this carousel breaks down underrated APIs that level up your frontend.
From observing elements to copying content, this carousel breaks down underrated APIs that level up your frontend.
❤4
مفهوم الـ Middleware في Next.js 💡
.
.
أكيد قابلت سيناريو إنك محتاج تتحكم في الـ requests اللي داخلة لموقعك أو تعمل checks معينة قبل ما الـ user يشوف الـ page. مثلًا:
- محتاج تمنع user مش عامل login إنه يدخل صفحة معينة.
- أو تعمل redirect لو user مش عنده صلاحيات.
- أو حتى تضيف headers أو تعمل logging لكل request.
الحتة دي في أي app بتبقى critical جدًا، لأنك ساعات محتاج layer كده في النص بين request الـ user والـ response اللي راجع. وهنا ييجي دور الـ Middleware...
———
🔥 يعني إيه Middleware؟
الـ Middleware ببساطة عبارة عن function بتتنفذ قبل ما الـ request يوصل للـ route.
يعني هو واقف كـ حارس البوابة: أي request لازم يعدي منه الأول، وساعتها أنت تقدر:
- تغير في الـ request أو الـ response.
- تعمل redirect أو rewrite.
- تمنع requests معينة.
- أو حتى تضيف logic زي الـ authentication, logging, A/B testing, rate limiting… إلخ.
———
📌 إزاي الـ Middleware بيشتغل في Next.js؟
في Next.js 13 (والـ App Router)، لو عايز تعمل Middleware بتضيف ملف باسم:
middleware.ts or middleware.js
في الـ root بتاع الـ project.
الـ function الأساسية بتكون كده:
✅ اللي بيحصل هنا:
- أي request داخل على /dashboard/* لازم يعدي من الـ middleware.
- لو مفيش token: يتعمل redirect على /login.
- لو فيه token: يكمل عادي.
———
⚡️ أهم مميزات الـ Middleware في Next.js:
1- الـ Edge Runtime:
بيتنفذ على الـ Edge (Cloudflare Workers/Akamai… إلخ) يعني ultra fast ومش محتاج server تقيل.
2- الـ Lightweight:
مش معمول إنه يشيل logic تقيل جدًا، هو بس layer سريعة للـ requests.
3- الـ Selective Matching:
تقدر تحدد routes معينة بس اللي تعدي من الـ middleware عن طريق الـ matcher.
4- عنده Use Cases متنوعة:
- Authentication & Authorization.
- Redirects & Rewrites.
- A/B Testing
- Bot Protection.
- Internationalization
———
خلي بالك إن الـ Middleware مش مكان تحط فيه كل الـ business logic بتاعك، هو معمول للحاجات اللي محتاجة تتنفذ بسرعة وقبل ما الـ request يروح للـ route.
يعني authentication, headers, redirects… حاجات كده. لكن الـ heavy logic مكانها مش هنا.
———
وفقكم الله لكل خير 🌿
.
.
أكيد قابلت سيناريو إنك محتاج تتحكم في الـ requests اللي داخلة لموقعك أو تعمل checks معينة قبل ما الـ user يشوف الـ page. مثلًا:
- محتاج تمنع user مش عامل login إنه يدخل صفحة معينة.
- أو تعمل redirect لو user مش عنده صلاحيات.
- أو حتى تضيف headers أو تعمل logging لكل request.
الحتة دي في أي app بتبقى critical جدًا، لأنك ساعات محتاج layer كده في النص بين request الـ user والـ response اللي راجع. وهنا ييجي دور الـ Middleware...
———
🔥 يعني إيه Middleware؟
الـ Middleware ببساطة عبارة عن function بتتنفذ قبل ما الـ request يوصل للـ route.
يعني هو واقف كـ حارس البوابة: أي request لازم يعدي منه الأول، وساعتها أنت تقدر:
- تغير في الـ request أو الـ response.
- تعمل redirect أو rewrite.
- تمنع requests معينة.
- أو حتى تضيف logic زي الـ authentication, logging, A/B testing, rate limiting… إلخ.
———
📌 إزاي الـ Middleware بيشتغل في Next.js؟
في Next.js 13 (والـ App Router)، لو عايز تعمل Middleware بتضيف ملف باسم:
middleware.ts or middleware.js
في الـ root بتاع الـ project.
الـ function الأساسية بتكون كده:
import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'
export function middleware(req: NextRequest) {
// Example: check if user is authenticated
const token = req.cookies.get('token')
if (!token) {
return NextResponse.redirect(new URL('/login', req.url))
}
return NextResponse.next()
}
export const config = {
matcher: ['/dashboard/:path*'],
}✅ اللي بيحصل هنا:
- أي request داخل على /dashboard/* لازم يعدي من الـ middleware.
- لو مفيش token: يتعمل redirect على /login.
- لو فيه token: يكمل عادي.
———
⚡️ أهم مميزات الـ Middleware في Next.js:
1- الـ Edge Runtime:
بيتنفذ على الـ Edge (Cloudflare Workers/Akamai… إلخ) يعني ultra fast ومش محتاج server تقيل.
2- الـ Lightweight:
مش معمول إنه يشيل logic تقيل جدًا، هو بس layer سريعة للـ requests.
3- الـ Selective Matching:
تقدر تحدد routes معينة بس اللي تعدي من الـ middleware عن طريق الـ matcher.
4- عنده Use Cases متنوعة:
- Authentication & Authorization.
- Redirects & Rewrites.
- A/B Testing
- Bot Protection.
- Internationalization
———
خلي بالك إن الـ Middleware مش مكان تحط فيه كل الـ business logic بتاعك، هو معمول للحاجات اللي محتاجة تتنفذ بسرعة وقبل ما الـ request يروح للـ route.
يعني authentication, headers, redirects… حاجات كده. لكن الـ heavy logic مكانها مش هنا.
———
وفقكم الله لكل خير 🌿
❤8
DevOps Full Course | Build and Deploy a Scalable Production Ready API
Learn DevOps fast in this crash course covering Git & GitHub, CI/CD pipelines, Docker, Kubernetes, IaC, and API deployment. Everything you need to automate dev and deployment.
———
https://youtu.be/H5FAxTBuNM8
❤5🤣1
اسألني عن أي شيء من خلال حسابي في قبيلة 👇🏻
https://qabilah.com/profile/alisamir/professional-profile?target=ask-me-anything
https://qabilah.com/profile/alisamir/professional-profile?target=ask-me-anything
❤3🤣1
كورس React.js ممتاز 💯
.
.
React Full Course - Beginner to Pro (React 19, 2025)
1. React Basics, JSX
2. Components, Props, Start the Chatbot Project
3. State, Event Handlers, Chatbot Project Features
4. CSS with React, Hooks, Finish Chatbot Project
5. Proper React Setup with Vite
6. React Router, Git, Start the E-commerce Project
7. React with Backend, Data Fetching, Load E-commerce Project Data
8. Data Mutation, Update E-commerce Project Data
9. Automated Tests in React with Vitest
10. Deploy React to the Internet, Intro to AWS
11. React 19 Updates
12. TypeScript with React
13. AI with React
.
.
https://youtu.be/TtPXvEcE11E
.
.
React Full Course - Beginner to Pro (React 19, 2025)
1. React Basics, JSX
2. Components, Props, Start the Chatbot Project
3. State, Event Handlers, Chatbot Project Features
4. CSS with React, Hooks, Finish Chatbot Project
5. Proper React Setup with Vite
6. React Router, Git, Start the E-commerce Project
7. React with Backend, Data Fetching, Load E-commerce Project Data
8. Data Mutation, Update E-commerce Project Data
9. Automated Tests in React with Vitest
10. Deploy React to the Internet, Intro to AWS
11. React 19 Updates
12. TypeScript with React
13. AI with React
.
.
https://youtu.be/TtPXvEcE11E
❤10🤣1
بلاش تستخدم git pull ⚠️
.
.
بفضل الله تم نشر مقال جديد على مدونة Level Up Coding على منصة Medium ✅
شرح مبسط وواضح للفرق بين:
- git pull
- git pull --rebase
.
.
Git Pull vs. Git Pull — Rebase: A Complete Guide for Developers 💯
———
المقال كامل هنا 👇
https://medium.com/gitconnected/git-pull-vs-git-pull-rebase-a-complete-guide-for-developers-e209ce0df18c
———
وفقكم الله لكل خير 🌿
.
.
بفضل الله تم نشر مقال جديد على مدونة Level Up Coding على منصة Medium ✅
شرح مبسط وواضح للفرق بين:
- git pull
- git pull --rebase
.
.
Git Pull vs. Git Pull — Rebase: A Complete Guide for Developers 💯
———
المقال كامل هنا 👇
https://medium.com/gitconnected/git-pull-vs-git-pull-rebase-a-complete-guide-for-developers-e209ce0df18c
———
وفقكم الله لكل خير 🌿
❤7👏1🤣1
أهم بدائل الـ localStorage 💡
.
.
خلال رحلتك في عالم الـ Front-End لازم في وقت من الأوقات هتحتاج تخزن بيانات عند الـ Client Side (يعني عند المستخدم).
أبسط حاجة كلنا عرفناها في الأول هي الـ localStorage. سهلة جدًا والكود بسيط، وكمان عبارة عن key/value، بس الحقيقة إن localStorage مش دايمًا أحسن حل.
ليه؟ 👇
- الـ size محدود (تقريبًا 5MB).
- كل حاجة بتتخزن كـ string.
- مفيهاش أي نوع من الـ security (ممكن أي حد يقرأها).
- مش scalable لو بتتعامل مع data كبيرة.
علشان كده تعال ندردش شوية عن 4 بدائل للـ localStorage ممكن تساعدك في بعض السيناريوهات المختلفة...
———
📌 الـ IndexedDB
- دي عبارة عن database كاملة داخل الـ browser.
- بتخليك تخزن structured data (objects، arrays…) مش مجرد strings.
- بتتعامل معاها عن طريق APIs أو libraries زي Dexie.js عشان تسهّل الموضوع.
- مناسبة جدًا لو عندك data كبيرة أو offline apps زي Note Apps أو Todo Apps.
- أسرع بكتير في الـ queries من localStorage.
———
📌 الـ sessionStorage
- نفس فكرة localStorage بالضبط لكن الفرق إنها بتتمسح أول ما الـ tab تتقفل.
- مناسبة لحاجات temporary زي tokens أثناء الـ session أو data مش مهمة تحتفظ بها بعد ما اليوزر يقفل الصفحة.
- حجمها برضه محدود زي localStorage.
———
📌 الـ Cookies
- أقدم وأشهر طريقة لتخزين البيانات في الـ browser.
- ميزتها إنها بتتبعت تلقائي مع كل HTTP Request للـ server.
- مناسبة جدًا للـ authentication (زي الـ JWT tokens أو session IDs).
- بس عيبها إنها صغيرة (حوالي 4KB) وأي data زيادة ممكن تقلل سرعة الـ requests.
- لازم تستخدمها للحاجات الخفيفة والمهمة بس.
———
📌 الـ Service Workers + Cache API
- ده حل advanced شوية، بيستخدم الـ Service Workers مع Cache API.
- بيخليك تخزن responses كاملة من الـ network (زي HTML, CSS, JS, Images).
- ممتاز للـ Progressive Web Apps (PWA) عشان تشتغل offline.
- تقدر تتحكم في caching strategy (مثلًا: Network First, Cache First…).
- مفيد جدًا للأداء (performance) وتحسين تجربة المستخدم.
———
💡 الخلاصة:
- لو data كبيرة: استخدم IndexedDB.
- لو data بسيطة ومؤقتة: sessionStorage.
- لو عايز data تتبعت للـ server: استخدم Cookies.
- لو بتبني PWA أو محتاج caching قوي: استخدم Service Workers + Cache API.
فكر دايمًا قبل ما تستخدم localStorage: هل هو فعلًا الحل المناسب؟ ولا في بديل أفضل يساعدك من ناحية الأداء والأمان؟
———
وفقكم الله لكل خير 🌿
.
.
خلال رحلتك في عالم الـ Front-End لازم في وقت من الأوقات هتحتاج تخزن بيانات عند الـ Client Side (يعني عند المستخدم).
أبسط حاجة كلنا عرفناها في الأول هي الـ localStorage. سهلة جدًا والكود بسيط، وكمان عبارة عن key/value، بس الحقيقة إن localStorage مش دايمًا أحسن حل.
ليه؟ 👇
- الـ size محدود (تقريبًا 5MB).
- كل حاجة بتتخزن كـ string.
- مفيهاش أي نوع من الـ security (ممكن أي حد يقرأها).
- مش scalable لو بتتعامل مع data كبيرة.
علشان كده تعال ندردش شوية عن 4 بدائل للـ localStorage ممكن تساعدك في بعض السيناريوهات المختلفة...
———
📌 الـ IndexedDB
- دي عبارة عن database كاملة داخل الـ browser.
- بتخليك تخزن structured data (objects، arrays…) مش مجرد strings.
- بتتعامل معاها عن طريق APIs أو libraries زي Dexie.js عشان تسهّل الموضوع.
- مناسبة جدًا لو عندك data كبيرة أو offline apps زي Note Apps أو Todo Apps.
- أسرع بكتير في الـ queries من localStorage.
———
📌 الـ sessionStorage
- نفس فكرة localStorage بالضبط لكن الفرق إنها بتتمسح أول ما الـ tab تتقفل.
- مناسبة لحاجات temporary زي tokens أثناء الـ session أو data مش مهمة تحتفظ بها بعد ما اليوزر يقفل الصفحة.
- حجمها برضه محدود زي localStorage.
———
📌 الـ Cookies
- أقدم وأشهر طريقة لتخزين البيانات في الـ browser.
- ميزتها إنها بتتبعت تلقائي مع كل HTTP Request للـ server.
- مناسبة جدًا للـ authentication (زي الـ JWT tokens أو session IDs).
- بس عيبها إنها صغيرة (حوالي 4KB) وأي data زيادة ممكن تقلل سرعة الـ requests.
- لازم تستخدمها للحاجات الخفيفة والمهمة بس.
———
📌 الـ Service Workers + Cache API
- ده حل advanced شوية، بيستخدم الـ Service Workers مع Cache API.
- بيخليك تخزن responses كاملة من الـ network (زي HTML, CSS, JS, Images).
- ممتاز للـ Progressive Web Apps (PWA) عشان تشتغل offline.
- تقدر تتحكم في caching strategy (مثلًا: Network First, Cache First…).
- مفيد جدًا للأداء (performance) وتحسين تجربة المستخدم.
———
💡 الخلاصة:
- لو data كبيرة: استخدم IndexedDB.
- لو data بسيطة ومؤقتة: sessionStorage.
- لو عايز data تتبعت للـ server: استخدم Cookies.
- لو بتبني PWA أو محتاج caching قوي: استخدم Service Workers + Cache API.
فكر دايمًا قبل ما تستخدم localStorage: هل هو فعلًا الحل المناسب؟ ولا في بديل أفضل يساعدك من ناحية الأداء والأمان؟
———
وفقكم الله لكل خير 🌿
❤13👏1🤣1
React Portals Made Simple 💯
React Portals let you render modals into separate roots, solving stacking context problems once and for all.
Tired of z-index headaches when building modals in React?
React Portals let you render modals into separate roots, solving stacking context problems once and for all.
❤3🤣1
React 19: Smooth Transitions 🚀
React 19 makes your UI buttery smooth!
Using startTransition, you can handle complex animations and interactions without blocking the main thread.
❤4