spinny:~/writing $ less create-demo-claude-code-vibecoding.md
12**البرمجة بالإحساس (Vibecoding)** هي نموذج جديد لتطوير البرمجيات حيث يوجّه المبرمج وكيل الذكاء الاصطناعي من خلال تعليمات باللغة الطبيعية، تاركًا للذكاء الاصطناعي كتابة الكود الفعلي. صاغ هذا المصطلح أندريه كارباثي (أحد مؤسسي OpenAI والمدير السابق للذكاء الاصطناعي في تسلا) في تغريدة شهيرة في فبراير 2025: _"هناك نوع جديد من البرمجة أسميه البرمجة بالإحساس، حيث تستسلم تمامًا للإحساس، وتتقبل النمو الأسّي، وتنسى أن الكود موجود أصلاً."_34في هذه المقالة، سنرى كيفية بناء عرض توضيحي كامل وعامل باستخدام **Claude Code** كوكيل ذكاء اصطناعي، و**Supabase** كخلفية (قاعدة بيانات، مصادقة، واجهة برمجة تطبيقات)، و**Vercel** للنشر - وكل ذلك باستخدام **الخطط المجانية** حصريًا لهذه الخدمات.56## 1. ما هي البرمجة بالإحساس ولماذا هي ثورية78تمثل البرمجة بالإحساس تحولًا جوهريًا في نموذج تطوير البرمجيات. بدلاً من كتابة الكود سطرًا بسطر، يقوم المطور بـ:9101. **وصف** ما يريده باللغة الطبيعية.112. **وكيل الذكاء الاصطناعي** يولّد الكود الكامل.123. **المطور** يراجع ويختبر ويكرر.1314### لماذا تنجح1516- **السرعة**: مشروع كان سيستغرق أيامًا يمكن بناؤه في ساعات.17- **سهولة الوصول**: حتى المطورون غير الخبراء يمكنهم بناء منتجات عاملة.18- **التكرار السريع**: يمكنك اختبار الأفكار والتحول بشكل أسرع بكثير.19- **التركيز على المنتج**: تركز على _ماذا_ بدلاً من _كيف_.2021```mermaid22flowchart LR23 A[الفكرة] --> B[تعليمات باللغة الطبيعية]24 B --> C[Claude Code يولّد الكود]25 C --> D[المراجعة والاختبار]26 D --> E[التكرار]27 E --> B28 D --> F[النشر على Vercel]29```3031### متى تستخدم البرمجة بالإحساس3233البرمجة بالإحساس مثالية لـ:3435- **العروض التوضيحية وMVP**: بناء نموذج أولي سريعًا للتحقق من فكرة.36- **الهاكاثونات**: إنشاء منتج عامل في ساعات قليلة فقط.37- **المشاريع الجانبية**: استكشاف تقنيات جديدة دون استثمار أسابيع.38- **إثبات المفهوم**: إثبات الجدوى التقنية لأصحاب المصلحة أو المستثمرين.3940> **تحذير:** البرمجة بالإحساس ممتازة للعروض التوضيحية والنماذج الأولية. بالنسبة لتطبيقات الإنتاج ذات متطلبات الأمان والتوسع العالية، لا تزال المراجعة الشاملة للكود المُولَّد ضرورية.4142## 2. حزمة التقنيات: Claude Code + Supabase + Vercel4344### Claude Code4546Claude Code هو وكيل البرمجة بالذكاء الاصطناعي من Anthropic. يعمل مباشرة في الطرفية ويمكنه:4748- قراءة وفهم قاعدة الكود بالكامل.49- إنشاء وتعديل وحذف الملفات.50- تنفيذ أوامر الطرفية.51- التفاعل مع واجهات برمجة التطبيقات والخدمات الخارجية.52- إدارة التحكم بالإصدارات باستخدام Git.53- التكرار ذاتيًا على الأخطاء والمشاكل.5455```bash56# Install Claude Code57npm install -g @anthropic-ai/claude-code5859# Start in a project directory60cd my-project61claude62```6364### Supabase (الخطة المجانية)6566Supabase هو بديل مفتوح المصدر لـ Firebase يقدم:6768- **قاعدة بيانات PostgreSQL**: قاعدة بيانات علائقية كاملة.69- **المصادقة**: تسجيل الدخول بالبريد الإلكتروني أو Google أو GitHub وغيرها.70- **واجهات REST وRealtime**: تُنشأ تلقائيًا من مخططك.71- **التخزين**: للملفات والصور.72- **دوال الحافة**: دوال بدون خادم.7374الخطة المجانية تشمل:7576| المورد | الحد المجاني |77|----------|-----------|78| قاعدة البيانات | 500 ميجابايت |79| التخزين | 1 جيجابايت |80| عرض النطاق | 5 جيجابايت |81| استدعاءات دوال الحافة | 500 ألف/شهر |82| المستخدمين المصادق عليهم | غير محدود |83| المشاريع | مشروعان نشطان |8485### Vercel (الخطة المجانية)8687Vercel هي منصة النشر المثالية لتطبيقات Next.js:8889- **النشر التلقائي** من GitHub.90- **نشر المعاينة** لكل فرع وطلب سحب.91- **شبكة CDN عالمية** لأداء مثالي.92- **دوال بدون خادم** مضمّنة.93- **تحليلات أساسية** مجانية.9495الخطة المجانية تشمل:9697| المورد | الحد المجاني |98|----------|-----------|99| عرض النطاق | 100 جيجابايت/شهر |100| تنفيذ الدوال بدون خادم | 100 جيجابايت-ساعة/شهر |101| عمليات البناء | 6,000 دقيقة/شهر |102| المشاريع | غير محدود |103| عمليات النشر | غير محدود |104105## 3. الإعداد الأولي: تحضير البيئة106107### المتطلبات الأساسية108109قبل البدء، تأكد من أن لديك:110111- **Node.js 18+** مثبت.112- **Git** مُعَد.113- حساب **GitHub**.114- حساب **Supabase** (مجاني على [supabase.com](https://supabase.com)).115- حساب **Vercel** (مجاني على [vercel.com](https://vercel.com)).116- **Claude Code** مثبت (`npm install -g @anthropic-ai/claude-code`).117118### الخطوة 1: إنشاء المشروع119120افتح الطرفية وابدأ Claude Code:121122```bash123mkdir my-demo-app && cd my-demo-app124claude125```126127الآن يمكنك البدء بإعطاء Claude Code تعليمات باللغة الطبيعية:128129```130You: Create a Next.js 15 project with App Router, TypeScript, Tailwind CSS,131and shadcn/ui. Also initialize a Git repository.132```133134سيقوم Claude Code بالتنفيذ تلقائيًا:135136```bash137npx create-next-app@latest . --typescript --tailwind --eslint --app --src-dir138npx shadcn@latest init139git init && git add . && git commit -m "Initial commit"140```141142### الخطوة 2: إعداد Supabase1431441. اذهب إلى [supabase.com](https://supabase.com) وأنشئ مشروعًا جديدًا.1452. دوّن **عنوان URL للمشروع** و**مفتاح anon** من الإعدادات > API.1463. عد إلى الطرفية مع Claude Code:147148```149You: Add Supabase to the project. Create a .env.local file with the variables150NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY. Configure the151Supabase client with SSR support for Next.js App Router.152```153154سيقوم Claude Code بإنشاء الإعداد الكامل:155156```typescript157// src/lib/supabase/client.ts158import { createBrowserClient } from '@supabase/ssr';159160export function createClient() {161 return createBrowserClient(162 process.env.NEXT_PUBLIC_SUPABASE_URL!,163 process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!164 );165}166```167168```typescript169// src/lib/supabase/server.ts170import { createServerClient } from '@supabase/ssr';171import { cookies } from 'next/headers';172173export async function createClient() {174 const cookieStore = await cookies();175176 return createServerClient(177 process.env.NEXT_PUBLIC_SUPABASE_URL!,178 process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,179 {180 cookies: {181 getAll() {182 return cookieStore.getAll();183 },184 setAll(cookiesToSet) {185 cookiesToSet.forEach(({ name, value, options }) =>186 cookieStore.set(name, value, options)187 );188 },189 },190 }191 );192}193```194195## 4. بناء العرض التوضيحي: تطبيق إدارة المهام196197لنبنِ عرضًا توضيحيًا عمليًا: **تطبيق لإدارة المهام** مع مصادقة وعمليات CRUD كاملة وواجهة حديثة.198199### تعريف مخطط قاعدة البيانات200201أعطِ Claude Code تعليمات لإنشاء المخطط:202203```204You: Create a SQL migration for Supabase with the following tables:2052061. profiles: id (uuid, FK to auth.users), username (text), avatar_url (text),207 created_at2082. projects: id (uuid), name (text), description (text), owner_id (uuid, FK209 to profiles), created_at2103. tasks: id (uuid), title (text), description (text), status (enum:211 todo/in_progress/done), priority (enum: low/medium/high), project_id (uuid,212 FK to projects), assigned_to (uuid, FK to profiles), due_date (timestamp),213 created_at, updated_at214215Enable Row Level Security on all tables and create appropriate policies.216```217218سيولّد Claude Code عملية ترحيل كاملة:219220```sql221-- Create enum types222CREATE TYPE task_status AS ENUM ('todo', 'in_progress', 'done');223CREATE TYPE task_priority AS ENUM ('low', 'medium', 'high');224225-- Profiles table226CREATE TABLE profiles (227 id UUID REFERENCES auth.users ON DELETE CASCADE PRIMARY KEY,228 username TEXT UNIQUE,229 avatar_url TEXT,230 created_at TIMESTAMPTZ DEFAULT NOW()231);232233-- Projects table234CREATE TABLE projects (235 id UUID DEFAULT gen_random_uuid() PRIMARY KEY,236 name TEXT NOT NULL,237 description TEXT,238 owner_id UUID REFERENCES profiles(id) ON DELETE CASCADE NOT NULL,239 created_at TIMESTAMPTZ DEFAULT NOW()240);241242-- Tasks table243CREATE TABLE tasks (244 id UUID DEFAULT gen_random_uuid() PRIMARY KEY,245 title TEXT NOT NULL,246 description TEXT,247 status task_status DEFAULT 'todo',248 priority task_priority DEFAULT 'medium',249 project_id UUID REFERENCES projects(id) ON DELETE CASCADE NOT NULL,250 assigned_to UUID REFERENCES profiles(id),251 due_date TIMESTAMPTZ,252 created_at TIMESTAMPTZ DEFAULT NOW(),253 updated_at TIMESTAMPTZ DEFAULT NOW()254);255256-- Enable RLS257ALTER TABLE profiles ENABLE ROW LEVEL SECURITY;258ALTER TABLE projects ENABLE ROW LEVEL SECURITY;259ALTER TABLE tasks ENABLE ROW LEVEL SECURITY;260261-- Profiles policies262CREATE POLICY "Users can view own profile"263 ON profiles FOR SELECT USING (auth.uid() = id);264CREATE POLICY "Users can update own profile"265 ON profiles FOR UPDATE USING (auth.uid() = id);266267-- Projects policies268CREATE POLICY "Users can view own projects"269 ON projects FOR SELECT USING (auth.uid() = owner_id);270CREATE POLICY "Users can create projects"271 ON projects FOR INSERT WITH CHECK (auth.uid() = owner_id);272CREATE POLICY "Users can update own projects"273 ON projects FOR UPDATE USING (auth.uid() = owner_id);274CREATE POLICY "Users can delete own projects"275 ON projects FOR DELETE USING (auth.uid() = owner_id);276277-- Tasks policies278CREATE POLICY "Users can view tasks in their projects"279 ON tasks FOR SELECT USING (280 project_id IN (SELECT id FROM projects WHERE owner_id = auth.uid())281 );282CREATE POLICY "Users can create tasks in their projects"283 ON tasks FOR INSERT WITH CHECK (284 project_id IN (SELECT id FROM projects WHERE owner_id = auth.uid())285 );286CREATE POLICY "Users can update tasks in their projects"287 ON tasks FOR UPDATE USING (288 project_id IN (SELECT id FROM projects WHERE owner_id = auth.uid())289 );290CREATE POLICY "Users can delete tasks in their projects"291 ON tasks FOR DELETE USING (292 project_id IN (SELECT id FROM projects WHERE owner_id = auth.uid())293 );294```295296يمكنك تشغيل عملية الترحيل هذه مباشرة من لوحة تحكم Supabase (محرر SQL) أو عبر واجهة سطر الأوامر.297298### توليد أنواع TypeScript299300```301You: Generate TypeScript types from the Supabase database and save them to src/types/database.ts302```303304```bash305npx supabase gen types typescript --project-id YOUR_PROJECT_ID > src/types/database.ts306```307308### بناء واجهة المستخدم309310الآن يأتي الجزء الأقوى من البرمجة بالإحساس. أعطِ Claude Code تعليمات عالية المستوى:311312```313You: Create a dashboard page for the task management app with:3143151. Sidebar with navigation between projects3162. Kanban view with 3 columns (Todo, In Progress, Done) with drag & drop3173. Modal to create/edit tasks3184. Header with user avatar and logout3195. Modern design with shadcn/ui and Tailwind320321Use data from Supabase with React Server Components where possible322and Client Components only where interactivity is needed.323```324325سيبني Claude Code الواجهة بالكامل، مكونًا تلو الآخر.326327### إضافة المصادقة328329```330You: Add a complete authentication system with:3313321. Login page with email/password and GitHub login3332. Registration page3343. Middleware to protect authenticated routes3354. Automatic redirect for unauthenticated users3365. Automatic profile creation after registration337```338339سيقوم Claude Code بإعداد وسيط Next.js وصفحات المصادقة:340341```typescript342// src/middleware.ts343import { createServerClient } from '@supabase/ssr';344import { NextResponse, type NextRequest } from 'next/server';345346export async function middleware(request: NextRequest) {347 let supabaseResponse = NextResponse.next({ request });348349 const supabase = createServerClient(350 process.env.NEXT_PUBLIC_SUPABASE_URL!,351 process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,352 {353 cookies: {354 getAll() {355 return request.cookies.getAll();356 },357 setAll(cookiesToSet) {358 cookiesToSet.forEach(({ name, value }) =>359 request.cookies.set(name, value)360 );361 supabaseResponse = NextResponse.next({ request });362 cookiesToSet.forEach(({ name, value, options }) =>363 supabaseResponse.cookies.set(name, value, options)364 );365 },366 },367 }368 );369370 const { data: { user } } = await supabase.auth.getUser();371372 if (!user && !request.nextUrl.pathname.startsWith('/auth')) {373 const url = request.nextUrl.clone();374 url.pathname = '/auth/login';375 return NextResponse.redirect(url);376 }377378 return supabaseResponse;379}380381export const config = {382 matcher: ['/((?!_next/static|_next/image|favicon.ico|auth).*)'],383};384```385386## 5. أنماط البرمجة بالإحساس المتقدمة387388### التوجيه التكراري389390سر البرمجة بالإحساس الفعّالة هو **التكرار**. لا تحاول وصف كل شيء في توجيه واحد. تقدم خطوة بخطوة:391392```393Step 1: "Create the base layout with header and sidebar"394Step 2: "Add the project list in the sidebar with a button to create new ones"395Step 3: "Create the Kanban view in the main area"396Step 4: "Add drag & drop between columns"397Step 5: "Implement the modal to create new tasks"398Step 6: "Add toast notifications for user feedback"399```400401> **نصيحة:** كلما كان التوجيه أكثر تحديدًا وسياقًا، كانت النتيجة أفضل. يمتلك Claude Code وصولاً إلى قاعدة الكود بالكامل، لذا يمكنه دمج الميزات الجديدة بشكل متناسق.402403### معالجة الأخطاء404405عندما لا يعمل شيء ما (وسيحدث ذلك)، يمكنك ببساطة أن تقول:406407```408You: I'm getting this error in the console: "TypeError: Cannot read property409'map' of undefined" in the TaskList component. Fix it.410```411412سيحلل Claude Code الكود ويحدد المشكلة ويصلحها.413414### إعادة الهيكلة بالذكاء الاصطناعي415416```417You: The Dashboard component has become too large. Split it into smaller,418reusable components while maintaining the same functionality.419```420421### الاختبار422423```424You: Add tests with Vitest for utility functions and Playwright tests for425the authentication and task creation flow.426```427428## 6. النشر على Vercel: من الكود إلى العالم429430### الخطوة 1: الرفع إلى GitHub431432```433You: Create an appropriate .gitignore, commit everything, and push to a new434GitHub repository called "my-demo-app".435```436437```bash438git add .439git commit -m "feat: complete task management demo"440gh repo create my-demo-app --public --push --source=.441```442443### الخطوة 2: ربط Vercel4444451. اذهب إلى [vercel.com](https://vercel.com) وانقر على "إضافة مشروع جديد".4462. استورد مستودع GitHub الذي أنشأته للتو.4473. أضف متغيرات البيئة:448 - `NEXT_PUBLIC_SUPABASE_URL`449 - `NEXT_PUBLIC_SUPABASE_ANON_KEY`4504. انقر على "نشر".451452```mermaid453flowchart LR454 A[رفع إلى GitHub] --> B[بناء Vercel]455 B --> C[نشر تلقائي]456 C --> D[رابط عام]457 D --> E[شبكة CDN عالمية]458```459460### الخطوة 3: إعداد نطاق مخصص (اختياري)461462يوفر Vercel رابطًا مجانيًا مثل `my-demo-app.vercel.app`. لنطاق مخصص:463464```465You: Add the configuration for a custom domain in vercel.json466```467468### نشر المعاينة469470في كل مرة تفتح فيها طلب سحب (Pull Request) على GitHub، سيقوم Vercel تلقائيًا بإنشاء **نشر معاينة** برابط فريد. مثالي لعرض التغييرات قبل الدمج.471472## 7. تحسينات لعرضك التوضيحي473474### الأداء475476```477You: Optimize the app's performance:4781. Add loading states with Suspense and skeletons4792. Implement caching with Next.js unstable_cache4803. Optimize images with next/image4814. Add SEO metadata for each page482```483484### الوقت الفعلي مع Supabase485486ميزة تثير الإعجاب دائمًا في العروض التوضيحية هي **الوقت الفعلي**:487488```489You: Add realtime synchronization for tasks using Supabase Realtime.490When a user updates a task, all other users should see the change491in real time without refreshing.492```493494```typescript495'use client';496497import { useEffect, useState } from 'react';498import { createClient } from '@/lib/supabase/client';499import type { Task } from '@/types/database';500501export function useRealtimeTasks(projectId: string) {502 const [tasks, setTasks] = useState<Task[]>([]);503 const supabase = createClient();504505 useEffect(() => {506 const channel = supabase507 .channel('tasks-changes')508 .on(509 'postgres_changes',510 {511 event: '*',512 schema: 'public',513 table: 'tasks',514 filter: `project_id=eq.${projectId}`,515 },516 (payload) => {517 if (payload.eventType === 'INSERT') {518 setTasks((prev) => [...prev, payload.new as Task]);519 } else if (payload.eventType === 'UPDATE') {520 setTasks((prev) =>521 prev.map((t) =>522 t.id === payload.new.id ? (payload.new as Task) : t523 )524 );525 } else if (payload.eventType === 'DELETE') {526 setTasks((prev) =>527 prev.filter((t) => t.id !== payload.old.id)528 );529 }530 }531 )532 .subscribe();533534 return () => {535 supabase.removeChannel(channel);536 };537 }, [projectId, supabase]);538539 return tasks;540}541```542543### الوضع الداكن544545```546You: Add dark mode support with a toggle in the header.547Use Tailwind dark classes and save the preference in localStorage.548```549550## 8. أفضل الممارسات للبرمجة بالإحساس الفعّالة551552### 1. كن محددًا في توجيهاتك553554```555❌ "Make a nice page"556✅ "Create a landing page with a hero section with a purple-blue gradient,557 a features section with 3 cards with icons, and an orange CTA button"558```559560### 2. وفّر السياق561562```563❌ "Add authentication"564✅ "Add authentication with Supabase Auth. The project uses Next.js 15 App565 Router with TypeScript. I want email/password login and OAuth with GitHub.566 Use the SSR pattern with @supabase/ssr"567```568569### 3. كرر بخطوات صغيرة570571لا تحاول بناء كل شيء في توجيه واحد. تقدم تدريجيًا:5725731. التخطيط الأساسي5742. ميزة واحدة في كل مرة5753. التنسيق والتلميع5764. معالجة الأخطاء5775. الاختبار578579### 4. راجع الكود المُولَّد580581البرمجة بالإحساس لا تعني عدم قراءة الكود. راجع دائمًا:582583- **الأمان**: سياسات RLS، التحقق من المدخلات، تنظيف البيانات.584- **الأداء**: استعلامات N+1، مكونات من جانب العميل بلا داعٍ.585- **أفضل الممارسات**: هيكل المشروع، اصطلاحات التسمية.586587### 5. استخدم Git بشكل استراتيجي588589```590You: Commit the changes with a descriptive message after each completed feature.591```592593هذا يتيح لك التراجع إذا حدث خطأ ما.594595## 9. التكاليف: هل هي مجانية حقًا؟596597إليك تفصيل التكلفة لكل خدمة:598599| الخدمة | الخطة المجانية | متى تدفع |600|---------|-----------|-------------|601| **Claude Code** | يتطلب خطة Anthropic (تبدأ من 20 دولار/شهر) أو مفتاح API | فورًا، لكن القيمة هائلة |602| **Supabase** | خطة مجانية سخية (مشروعان، 500 ميجابايت قاعدة بيانات) | تجاوز حدود الخطة المجانية |603| **Vercel** | خطة مجانية للمشاريع الشخصية | للفرق أو الاستخدام التجاري |604| **GitHub** | مجاني للمستودعات العامة والخاصة | ميزات المؤسسات |605606> **ملاحظة:** يتطلب Claude Code اشتراكًا أو رصيد API، لكن العائد على الاستثمار من حيث سرعة التطوير غير عادي. لعرض توضيحي أو MVP، التكلفة الإجمالية في حدود 20 دولارًا.607608### بدائل الذكاء الاصطناعي المجانية609610إذا أردت الحفاظ على التكاليف عند الصفر المطلق، يمكنك استخدام:611612- **Cursor** (خطة مجانية مع قيود).613- **GitHub Copilot** (مجاني للطلاب والمصادر المفتوحة).614- **Codeium/Windsurf** (خطة مجانية سخية).615616## 10. من العرض التوضيحي إلى المنتج: الخطوات التالية617618بمجرد أن يكون عرضك التوضيحي مباشرًا، إليك كيف تتقدم:619620```mermaid621flowchart TD622 A[عرض توضيحي مباشر] --> B{ملاحظات المستخدمين}623 B --> C[تكرار المنتج]624 C --> D[ملاءمة المنتج للسوق]625 D --> E[التوسع]626 E --> F[خطة Supabase Pro]627 E --> G[خطة Vercel Pro]628 E --> H[نطاق مخصص]629```6306311. **اجمع الملاحظات**: شارك العرض التوضيحي مع المستخدمين المحتملين واجمع آراءهم.6322. **كرر بسرعة**: استخدم البرمجة بالإحساس لتنفيذ التغييرات المطلوبة.6333. **راقب المقاييس**: تحليلات Vercel ولوحة تحكم Supabase تمنحك بيانات أساسية.6344. **توسع عند الحاجة**: قم بالترقية إلى الخطط المدفوعة فقط عندما تتحقق من الطلب.635636637## الخاتمة638639البرمجة بالإحساس مع Claude Code وSupabase وVercel تمثل مزيجًا قويًا لبناء العروض التوضيحية والنماذج الأولية في وقت قياسي. ما كان يستغرق أسابيع من التطوير يمكن إنجازه الآن في ساعات قليلة فقط، بمستوى جودة مرتفع بشكل مفاجئ.640641المفتاح هو التعامل مع البرمجة بالإحساس بالعقلية الصحيحة: لا يتعلق الأمر بـ"عدم معرفة البرمجة" بل بـ**تعزيز قدراتك** بأدوات الذكاء الاصطناعي. كلما عرفت أكثر عن التقنيات الأساسية (React، SQL، المصادقة، النشر)، كنت أكثر فعالية في توجيه وكيل الذكاء الاصطناعي نحو النتيجة المطلوبة.642643مستقبل تطوير البرمجيات هنا، وتكلفة البدء لم تكن أقل من أي وقت مضى. أنشئ عرضك التوضيحي، تحقق منه مع مستخدمين حقيقيين، وابنِ المنتج العظيم التالي.644645> **قائمة التحقق لعرضك التوضيحي الأول:**646>647> - [x] Claude Code مثبت ومُعَد648> - [x] مشروع Supabase مُنشأ مع مخطط قاعدة البيانات649> - [x] مشروع Next.js مُهيّأ مع shadcn/ui650> - [x] المصادقة مُعَدة651> - [x] عمليات CRUD الكاملة مُنفذة652> - [x] واجهة مستخدم حديثة ومتجاوبة653> - [x] منشور على Vercel654> - [x] رابط قابل للمشاركة جاهز للملاحظات655
:كيف تنشئ عرضًا توضيحيًا باستخدام Claude Code: البرمجة بالإحساس مع Supabase و Vercellines 1-655 (END) — press q to close