3 שלב הבסיס

מעבר ל-React — Next.js, Astro, Vite ו-SvelteKit

React הוא המנוע — אבל בשביל לבנות אתר שלם צריך מכונית. בפרק הזה נכיר את ה-frameworks שבנויים מעל React (ומעבר לו), נבין מתי לבחור כל אחד, ונלמד איך להגיד ל-AI בדיוק באיזה framework להשתמש.

מה תדעו בסוף הפרק הזה
לפני שמתחילים
מה יהיה לכם בסוף הפרק
הקו האדום — איפה אנחנו

פרק קודם (02): למדנו React — קומפוננטות, props, state, hooks. הבנו שReact לבד הוא "רק" ספרייה לבניית UI, ושצריך framework שמוסיף routing, SSR ועוד.

הפרק הזה (03): נכיר את ה-frameworks שבנויים מעל React (ומעבר לו) — Next.js, Astro, Vite, SvelteKit. נבין מתי לבחור כל אחד ואיך להנחות AI.

פרק הבא (04): נלמד Tailwind CSS — שפת העיצוב שכל כלי AI משתמש בה. נדע לקרוא classes ולכוון את ה-AI לעצב בדיוק מה שאנחנו רוצים.

מילון מונחים — פרק 3
מונחהסבר
Next.jsה-framework המלא לבניית אתרים עם React. מוסיף routing, SSR, API routes ועוד. של חברת Vercel.
App Routerמערכת ה-routing של Next.js. מבוססת תיקיות — כל תיקייה ב-app/ הופכת לנתיב URL.
Server Componentsקומפוננטות שרצות בצד השרת בלבד. לא שולחות JavaScript לדפדפן. ברירת מחדל ב-Next.js.
Astroframework לאתרי תוכן שלא שולח JavaScript כברירת מחדל. משתמש ב-islands architecture.
Islands Architectureארכיטקטורה שבה רוב הדף הוא HTML סטטי, עם "איים" קטנים של אינטראקטיביות בלבד.
Content Collectionsמערכת של Astro לניהול תוכן (Markdown/MDX) עם type safety.
Viteכלי בנייה (build tool) מהיר לפרויקטי JavaScript. לא framework — הוא רץ מתחת ל-frameworks.
HMRHot Module Replacement — עדכון קוד מיידי בדפדפן בלי טעינה מחדש של כל הדף.
Build Toolתוכנה שמרכיבה את כל קבצי הפרויקט לגרסה מוכנה להעלאה (production build).
Svelteשפת UI שמתקמפלת ל-vanilla JavaScript. בלי Virtual DOM — קוד קטן ומהיר יותר.
SvelteKitה-framework המלא של Svelte. מקביל ל-Next.js אבל בעולם של Svelte.
File-based Routingrouting שנקבע לפי מבנה הקבצים — הקובץ app/about/page.tsx הופך לנתיב /about.
API Routesנקודות קצה (endpoints) בצד השרת שמוגדרות כקבצים בפרויקט.
Turbopackכלי בנייה מבוסס Rust — ברירת המחדל ב-Next.js 16. מהיר פי 5-10 מ-Webpack.
מתחילים תיאוריה חינמי

למה צריך משהו מעבר ל-React

בפרק הקודם למדנו ש-React הוא ספרייה לבניית UI — קומפוננטות, props, state. אבל React לבד הוא כמו מנוע שמונח על השולחן. הוא חזק, אבל בלי מכונית מסביבו — אי אפשר לנסוע לשום מקום.

ספציפית, React לבד לא יודע לעשות את הדברים הבאים שכל אתר אמיתי צריך:

בשביל כל אלה, צריך framework — שכבה שיושבת מעל React ומוסיפה את כל מה שחסר. חשבו על זה ככה: React הוא המנוע, ו-Next.js (או Astro, או SvelteKit) הוא המכונית השלמה — עם הגה, גלגלים, מערכת ניווט, וגגון.

אם אתם זוכרים מפרק 1, דיברנו על ההבדל בין library (כמו React — עושה דבר אחד טוב) ל-framework (כמו Next.js — מנהל את כל המבנה). עכשיו נראה בדיוק מה כל framework מוסיף, ומתי לבחור כל אחד.

הנקודה הקריטית: כשאתם עובדים עם AI tools כמו V0, Bolt או Lovable — הם תמיד משתמשים ב-framework, לא ב-React בודד. לכן, להבין איזה framework הם בחרו ולמה — זה ההבדל בין לקבל מה שאתם רוצים לבין לקבל מה שAI החליט בשבילכם.

כלי AI V0 Bolt Lovable Frameworks Next.js Astro SvelteKit Remix React / Svelte ספריית UI — קומפוננטות, props, state Vite כלי בנייה (Build Tool) React הוא המנוע. ה-frameworks הם המכונית השלמה. Vite הוא כלי הבנייה.

סיפור מהשטח: מפתחת ישראלית ב-Vibe Coding בנתה אתר portfolio עם React טהור (בלי framework). הכל עבד — אבל Google לא הצליח לאנדקס את האתר כי הוא רץ ב-JavaScript בלבד (CSR). היא הוסיפה Next.js ושעתיים אחר כך האתר כבר הופיע בגוגל. הלקח: React בלי framework = בעיית SEO כמעט תמיד.

וזה מביא אותנו לשאלה המרכזית של הפרק הזה: איזו מכונית לבחור? כי יש כמה אפשרויות, וכל אחת מתאימה לסוג שונה של נסיעה.

עשו עכשיו

פתחו את V0 או Bolt וצרו פרויקט חדש. שימו לב — איזה framework הכלי בחר אוטומטית? כתבו לעצמכם: מה קיבלתי בלי לבקש?

⏱️ 3 דקות

מתחילים תיאוריה + מעשי חינמי

Next.js — ה-Framework המלא

Next.js הוא ה-framework הכי פופולרי בעולם ה-React. הוא נבנה על ידי חברת Vercel — אותה חברה שמפעילה את V0, את Turbopack, ואת פלטפורמת ה-hosting הפופולרית ביותר לפרויקטי React. הוא מוסיף על React את כל מה שחסר: routing, SSR, API routes, image optimization, ועוד הרבה.

נכון לאפריל 2026, הגרסה האחרונה היא Next.js 16.2 — אבל הקונספטים שנלמד כאן יציבים ורלוונטיים לכל גרסה מ-13 ומעלה. חשוב לדעת: כש-AI מייצר קוד Next.js, הוא לפעמים מייצר קוד מגרסה ישנה יותר (Pages Router). תמיד ציינו בפרומפט: "Use Next.js App Router".

בשוק הישראלי, Next.js שולט: רוב הסטארטאפים הישראליים (מ-fintech ועד healthtech) משתמשים בו. אם אתם מחפשים עבודה בהייטק הישראלי — Next.js הוא ה-framework שכולם מצפים שתכירו.

App Router — ניווט מבוסס תיקיות

הרעיון המרכזי של Next.js הוא file-based routing — מבנה הקבצים קובע את כתובות ה-URL. זה עובד ככה:

app/
├── page.tsx          → אתר.com/
├── about/
│   └── page.tsx      → אתר.com/about
├── blog/
│   ├── page.tsx      → אתר.com/blog
│   └── [slug]/
│       └── page.tsx  → אתר.com/blog/any-post-name
└── layout.tsx        → עיצוב שעוטף כל דף

זה קסום בפשטות שלו: אין צורך להגדיר routing בקוד. יצרתם תיקייה? יש לכם דף חדש ב-URL. שמתם [slug] בסוגריים מרובעים? יש לכם דף דינמי שיכול לטעון תוכן שונה לפי הכתובת. הקובץ layout.tsx עוטף את כל מה שמתחתיו — כמו תבנית שחוזרת בכל דף (navigation bar, footer).

למה זה חשוב כשעובדים עם AI? כי כשאתם אומרים ל-AI "add an about page" — הוא יודע בדיוק מה לעשות: ליצור תיקייה app/about/ עם קובץ page.tsx בתוכה. אין הגדרות מסובכות, אין קבצי route configuration. פשוט תיקייה = דף.

טיפ מעשי: כשאתם קוראים קוד שAI ייצר ב-Next.js — תסתכלו קודם כל על מבנה התיקיות. הוא יגיד לכם בדיוק מה הדפים באתר, בלי לקרוא שורת קוד אחת.

קבצים מיוחדים ב-App Router

מלבד page.tsx ו-layout.tsx, ה-App Router מזהה עוד קבצים מיוחדים שכל אחד עושה משהו אחר:

קובץמה הוא עושהדוגמה למתי צריך
loading.tsxמראה skeleton/spinner בזמן שהדף נטעןדף שמושך נתונים מ-API — המשתמש רואה אנימציית טעינה
error.tsxתופס שגיאות ומציג דף שגיאה ידידותיה-API נפל? המשתמש רואה "משהו השתבש" במקום מסך לבן
not-found.tsxדף 404 — כתובת שלא קיימתמשתמש הקליד URL שגוי — מקבל דף 404 מעוצב
template.tsxכמו layout, אבל נוצר מחדש בכל ניווטאנימציות כניסה לדף שצריכות לרוץ בכל פעם

למה זה חשוב? כשAI מייצר פרויקט Next.js, הוא לפעמים מוסיף קבצים כמו loading.tsx או error.tsx. אם אתם רואים אותם בקוד — עכשיו אתם יודעים מה הם עושים. ואם AI לא הוסיף אותם — אתם יכולים לבקש: "Add a loading.tsx with a skeleton UI for the blog page".

Route Groups — ארגון בלי השפעה על URL

פיצ'ר שימושי שAI לפעמים משתמש בו: תיקייה עם סוגריים עגולים, כמו (marketing), מארגנת קבצים בלי להשפיע על ה-URL:

app/
├── (marketing)/
│   ├── page.tsx      → אתר.com/     (לא /marketing!)
│   ├── about/
│   │   └── page.tsx  → אתר.com/about
│   └── layout.tsx    → layout רק לדפי marketing
├── (dashboard)/
│   ├── settings/
│   │   └── page.tsx  → אתר.com/settings
│   └── layout.tsx    → layout אחר לדפי dashboard

זה מאפשר לכל חלק באתר לקבל layout שונה — אתר שיווקי עם עיצוב אחד, ודשבורד עם עיצוב אחר — בלי שה-URL משתנה. טיפ: אם אתם רואים סוגריים עגולים במבנה קבצים ש-AI ייצר — זה route group.

עשו עכשיו

פתחו את StackBlitz, צרו פרויקט Next.js חדש. בדקו את מבנה התיקיות — מה יש ב-app/? מצאו את page.tsx ואת layout.tsx. חפשו גם קבצים מיוחדים כמו loading.tsx או error.tsx.

⏱️ 4 דקות

Server Components — קוד שרץ בשרת בלבד

זוכרים את Server Components מפרק 2? ב-Next.js הם ברירת המחדל. כל קומפוננטה היא server component אלא אם ציינתם אחרת:

// Server Component (ברירת מחדל) — לא שולח JS לדפדפן
async function BlogPage() {
  const posts = await fetch('https://api.example.com/posts');
  return <PostList posts={posts} />;
}

// Client Component — צריך להוסיף 'use client' בראש הקובץ
'use client';
function LikeButton() {
  const [liked, setLiked] = useState(false);
  return <button onClick={() => setLiked(true)}>❤️</button>;
}

הכלל פשוט: אם הקומפוננטה צריכה אינטראקטיביות (לחיצה, קלט, אנימציה) — היא client component עם 'use client' בראש הקובץ. אם לא — היא server component שלא שולחת JavaScript לדפדפן. זה אומר שרוב האתר שלכם (header, footer, תוכן סטטי, רשימת מוצרים) לא שולח שום JavaScript — רק HTML מוכן. רק החלקים שבאמת צריכים אינטראקציה (כפתור like, טופס, toggle) שולחים JS.

למה זה חשוב? כי זה מקטין דרמטית את כמות ה-JavaScript שנשלחת לדפדפן. פחות JS = דף מהיר יותר = חוויית משתמש טובה יותר = SEO טוב יותר. זו הסיבה שNext.js 15+ הפך את Server Components לברירת מחדל.

כשקוראים קוד Next.js שAI כתב: אם אתם רואים 'use client' בראש הקובץ — זו קומפוננטה שרצה בדפדפן. אם אין את זה — היא רצה בשרת. רוב הקומפוננטות (70-80%) צריכות להיות server components. אם AI שם 'use client' בכל מקום — זה סימן שהוא לא מנצל את הארכיטקטורה כמו שצריך.

הדפוס הנכון: Server Component שמכיל Client Component

הגישה הנכונה ב-Next.js היא ליצור היררכיה: הקומפוננטה החיצונית היא server component שמושכת נתונים ומכילה בתוכה client components קטנים רק איפה שצריך אינטראקטיביות:

// app/products/page.tsx — Server Component (ברירת מחדל)
// שימו לב: אין 'use client' — זה רץ בשרת בלבד
async function ProductsPage() {
  // מושך נתונים מהשרת — לא שולח את הקוד הזה לדפדפן!
  const products = await db.getProducts();

  return (
    <div>
      <h1>המוצרים שלנו</h1>
      {products.map(p => (
        <ProductCard key={p.id} product={p}>
          {/* AddToCart הוא client component — רק הוא שולח JS */}
          <AddToCartButton productId={p.id} price={p.price} />
        </ProductCard>
      ))}
    </div>
  );
}

// components/AddToCartButton.tsx — Client Component
'use client';
import { useState } from 'react';

function AddToCartButton({ productId, price }) {
  const [added, setAdded] = useState(false);
  return (
    <button onClick={() => setAdded(true)}>
      {added ? '✓ נוסף לעגלה' : `הוסף לעגלה — ₪${price}`}
    </button>
  );
}

שימו לב לדוגמה: כל הרשימה של המוצרים רצה בשרת — שום JavaScript לא נשלח לדפדפן בשבילה. רק כפתור "הוסף לעגלה" הוא client component, כי הוא צריך onClick ו-useState. התוצאה: דף מהיר יותר עם פחות JavaScript.

טעות נפוצה של AI: הרבה פעמים AI שם 'use client' על כל הדף — כולל רשימת המוצרים, התמונות, הכותרות. אם אתם רואים את זה, בקשו: "Split this into a server component that fetches data, with small client components only for interactive parts".

עשו עכשיו

בקשו מ-V0: "create a pricing page with 3 tiers using Next.js App Router". קראו את הקוד — זהו: את layout.tsx, את page.tsx, ואיפה כתוב 'use client'. האם AI שם 'use client' על כל הדף, או רק על חלקים אינטראקטיביים?

⏱️ 4 דקות

עוד יכולות מרכזיות של Next.js

יכולתמה זהלמה זה חשוב
API Routesקבצים בתיקיית app/api/ שמשמשים כ-endpointsאפשר לבנות backend בתוך אותו פרויקט
Turbopackכלי בנייה מבוסס Rust — ברירת מחדל מ-Next.js 16פי 5-10 יותר מהיר מ-Webpack ישן
ISRIncremental Static Regeneration — דפים סטטיים שמתעדכניםמהירות של static + עדכניות של dynamic
Middlewareקוד שרץ לפני כל בקשה (authentication, redirects)שליטה בגישה לדפים
Image Optimizationקומפוננטת <Image> שמדחסת אוטומטיתתמונות מהירות בלי מאמץ

API Routes — backend בתוך הפרויקט

אחד הפיצ'רים החזקים של Next.js הוא API Routes — היכולת לבנות endpoints בצד השרת בתוך אותו פרויקט. במקום להקים שרת Express.js נפרד, פשוט יוצרים קובץ בתיקייה app/api/:

// app/api/contact/route.ts — API endpoint
// מטפל בטופס יצירת קשר
export async function POST(request: Request) {
  const data = await request.json();
  const { name, email, message } = data;

  // שולח מייל (או שומר בDB)
  await sendEmail({
    to: 'info@mysite.co.il',
    subject: `פנייה חדשה מ-${name}`,
    body: message,
  });

  return Response.json({ success: true });
}
// URL: אתר.com/api/contact (POST request)

למה זה חשוב? כי Vibe Coders לא צריכים ללמוד backend נפרד. אומרים ל-AI: "Add an API route that receives a contact form and sends an email" — והוא יוצר את הקובץ הנכון בתיקייה הנכונה. זה עובד במיוחד טוב עם שירותים ישראליים כמו SendGrid (שיש לו שרתים באירופה, קרוב לישראל) או Resend.

Middleware — שומר הסף

Middleware הוא קוד שרץ לפני כל בקשה — לפני שהדף נטען, לפני שה-API מגיב. חשבו על שומר בכניסה למועדון: הוא בודק מי אתם לפני שנכנסים.

// middleware.ts — בשורש הפרויקט (לא בתיקייה!)
import { NextResponse } from 'next/server';

export function middleware(request) {
  // בדיקה: האם המשתמש מחובר?
  const token = request.cookies.get('auth-token');

  if (!token && request.nextUrl.pathname.startsWith('/dashboard')) {
    // לא מחובר + מנסה להיכנס לדשבורד = הפניה ל-login
    return NextResponse.redirect(new URL('/login', request.url));
  }

  return NextResponse.next(); // הכל בסדר — תמשיך
}

// הגדרה: על אילו נתיבים ה-middleware רץ
export const config = {
  matcher: ['/dashboard/:path*', '/settings/:path*'],
};

שימושים נפוצים של Middleware:

טיפ לעבודה עם AI: אם אתם בונים אתר שצריך authentication (למשל דשבורד ללקוחות), בקשו מ-AI: "Add middleware that protects /dashboard routes — redirect to /login if no auth token". AI מכיר את הפורמט ויצור middleware.ts נכון.

עשו עכשיו

בפרויקט Next.js שיצרתם קודם — חפשו את תיקיית app/api/. יש שם קבצים? אם לא, בקשו מ-AI: "Add an API route at /api/hello that returns { message: 'שלום עולם' }". בדקו שזה עובד בדפדפן.

⏱️ 5 דקות

Next.js בשוק הישראלי — מי משתמש ובמה

בהייטק הישראלי, Next.js הוא ברירת המחדל. הנה כמה דוגמאות:

אם אתם מחפשים עבודה בהייטק הישראלי — מספיק לחפש "Next.js" ב-LinkedIn Israel או ב-All Jobs כדי לראות מאות משרות. ידע ב-Next.js הוא יתרון מובהק, גם אם אתם לא מפתחים "קלאסיים" אלא Vibe Coders שמנחים AI.

בשורה התחתונה: Next.js הוא ה-framework ה"שלם" ביותר — כמו שוויצרי. הוא עושה הכל, ורוב כלי ה-AI יודעים לעבוד איתו מעולה.

מתחילים תיאוריה חינמי

למה V0, Bolt ו-Lovable בוחרים Next.js

אם ניסיתם את התרגיל הקודם — כנראה שמתם לב: כמעט כל כלי AI בוחר Next.js כברירת מחדל. זה לא מקרי. יש 3 סיבות:

1. Training Data — הנתונים שהם למדו מהם. רוב הקוד באינטרנט (GitHub, Stack Overflow, בלוגים) הוא React + Next.js. כש-AI למד לכתוב קוד — הוא למד בעיקר Next.js. אז כשלא מציינים framework, הוא חוזר למה שהוא מכיר הכי טוב.

2. Ecosystem — האקוסיסטם. V0 הוא של Vercel — אותה חברה שבנתה Next.js. Bolt ו-Lovable בחרו Next.js כי הוא הכי פופולרי ויש לו את הכי הרבה ספריות UI (כמו shadcn/ui). יותר ספריות = יותר דברים שAI יודע לייצר.

3. Full-Stack — פתרון מלא. Next.js נותן frontend + backend + deployment באריזה אחת. ל-AI, זה אידיאלי — הוא יכול לייצר אפליקציה שלמה בלי לשלב כלים נוספים.

4. Vercel = V0 = Next.js — הקשר העסקי. חברת Vercel בנתה את Next.js, את V0, ואת Turbopack. כש-V0 מייצר קוד — הוא מייצר Next.js שעובד מושלם ב-Vercel. זה לא קונספירציה — זה מודל עסקי חכם. V0 מייצר פרויקטים שקל ל-deploy ב-Vercel (ומשלמים עבור hosting). חשוב לדעת את זה כי זה מסביר למה V0 לעולם לא ייצר Astro + Cloudflare Pages כברירת מחדל.

מה זה אומר ל-Vibe Coders? כלי AI הם מצוינים — אבל הם לא ניטרליים. V0 מעדיף Next.js + Vercel. Bolt ו-Lovable מעדיפים מה שעובד הכי טוב עם ה-infrastructure שלהם. אם אתם רוצים Astro + Cloudflare — תצטרכו לבקש את זה במפורש, או לעבוד עם Claude Code / Cursor שלא מחויבים לshל framework ספציפי.

טעות נפוצה: לתת ל-AI לבחור framework בלי הנחיה

כשלא מציינים framework בפרומפט, AI כמעט תמיד בוחר Next.js — גם כשזה לא הבחירה הנכונה. אתר תוכן פשוט? AI ייצר Next.js עם 70KB+ של JavaScript, כש-Astro היה מספיק עם 18KB. תמיד ציינו באיזה framework אתם רוצים.

עשו עכשיו

נסו ליצור אותו עמוד (למשל: "build a portfolio page") ב-V0 וב-Bolt. השוו: מה כל אחד מייצר? איזה framework? איזה ספריות UI? רשמו את ההבדלים.

⏱️ 5 דקות

מתחילים תיאוריה חינמי

Astro — אפס JavaScript כברירת מחדל

אם Next.js הוא ה"סכין השוויצרי" — Astro הוא ה"כתב יד מושלם": מהיר, נקי, ושולח רק מה שבאמת צריך.

הרעיון המרכזי: Astro לא שולח JavaScript לדפדפן כברירת מחדל. כלום. אפס. הוא בונה HTML סטטי, ורק כשאתם אומרים במפורש "הקומפוננטה הזו צריכה אינטראקטיביות" — הוא מוסיף JavaScript רק לה.

Islands Architecture — אדריכלות האיים

תארו לעצמכם דף אינטרנט כים של HTML סטטי. ברוב הדף אין צורך ב-JavaScript — טקסט, תמונות, כותרות. אבל יש כמה מקומות שצריכים אינטראקטיביות — כפתור "הוסף לעגלה", תפריט נפתח, carousel. אלה האיים.

HTML סטטי — אפס JavaScript Header סטטי תוכן טקסט + תמונות Footer סטטי 🏝️ אי: תפריט נפתח JavaScript: 3KB 🏝️ אי: טופס חיפוש JavaScript: 5KB סה"כ JavaScript: 8KB בלבד (במקום 180KB!) כל אי טוען JavaScript בנפרד — בלי לחסום את שאר הדף

כל "אי" נטען בנפרד. תפריט כבד בתחתית הדף? לא חוסם את ה-header מלהיות אינטראקטיבי. זה ההבדל הגדול מ-Next.js, שם כל ה-JavaScript נטען כיחידה אחת.

איך Islands עובדים בקוד

ב-Astro, כל קומפוננטה היא סטטית כברירת מחדל. כדי להפוך קומפוננטה ל"אי" אינטראקטיבי, מוסיפים directive — הוראה שאומרת מתי לטעון את ה-JavaScript:

<!-- קומפוננטה סטטית — אפס JavaScript -->
<Header />

<!-- "אי" שנטען מיד כשהדף נפתח -->
<MobileMenu client:load />

<!-- "אי" שנטען רק כשהוא נכנס לview של המשתמש -->
<ImageCarousel client:visible />

<!-- "אי" שנטען רק כשהדפדפן idle (לא עסוק) -->
<Newsletter client:idle />

<!-- "אי" שנטען רק במסך רחב (desktop) -->
<SidebarWidget client:media="(min-width: 768px)" />

שימו לב ל-4 סוגי directives — כל אחד קובע מתי ה-JavaScript נטען:

Directiveמתי נטעןמתאים ל-
client:loadמיד עם טעינת הדףאלמנטים קריטיים (תפריט ראשי, טופס חיפוש)
client:visibleכשהאלמנט נכנס ל-viewportאלמנטים בתחתית הדף (carousel, FAQ, טופס)
client:idleכשהדפדפן לא עסוקאלמנטים לא דחופים (ניוזלטר, chat widget)
client:mediaכש-media query מתקייםאלמנטים שרלוונטיים רק ב-desktop או רק ב-mobile

למה זה כל כך חזק? כי במקום לטעון 180KB של JavaScript מיד — טוענים רק מה שצריך, רק מתי שצריך. משתמש עם 3G איטי בישראל (למשל באזורי קצה ברמת הגולן)? הדף ייטען מהר כי הוא HTML בלבד — ורק כשהמשתמש גולל למטה, נטענים ה"איים" הרלוונטיים.

המספרים מדברים

מדדAstroNext.js (מקביל)
JavaScript שנשלח לדפדפן~18KB~180KB
הפחתת JS90% פחות JavaScript
זמן טעינה (3G)~1.2 שניות~3.5 שניות
Core Web Vitalsמושלם כמעט תמידדורש אופטימיזציה

Multi-Framework — שימוש בכמה ספריות באותו פרויקט

יתרון ייחודי של Astro: אפשר להשתמש ב-React, Vue, Svelte, ו-Solid באותו פרויקט. יש לכם קומפוננטת React מוכנה? שימו אותה ב-Astro בתור "אי". יש לכם חלק ב-Svelte? גם הוא עובד. זה נקרא framework agnostic.

Content Collections — ניהול תוכן חכם

Content Collections הם הפיצ'ר שהופך את Astro לאידיאלי לאתרי תוכן. כותבים בלוג פוסט ב-Markdown? Astro יודע לקרוא אותו, לתת לו type safety (לוודא שיש כותרת, תאריך, תמונה), ולהפוך אותו לדף HTML מהיר.

ככה זה נראה בפועל:

// src/content/config.ts — הגדרת ה-collection
import { defineCollection, z } from 'astro:content';

const blog = defineCollection({
  schema: z.object({
    title: z.string(),           // חובה — שם הפוסט
    date: z.date(),              // חובה — תאריך פרסום
    author: z.string(),          // חובה — שם הכותב
    image: z.string().optional(), // רשות — תמונה ראשית
    tags: z.array(z.string()),   // חובה — תגיות
    draft: z.boolean().default(false), // טיוטה?
  }),
});

// src/content/blog/my-first-post.md
// ---
// title: "איך בניתי אתר ב-10 דקות עם AI"
// date: 2026-04-10
// author: "דנה כהן"
// tags: ["vibe-coding", "AI", "astro"]
// ---
// תוכן הפוסט כאן ב-Markdown...

מה קורה כאן? Astro מגדיר סכמה (schema) — רשימה של שדות שכל פוסט חייב להכיל. אם יצרתם פוסט בלי כותרת — Astro יתריע על שגיאה בזמן build, לא אחרי שהאתר כבר באוויר. זה נקרא type safety לתוכן.

למה זה מושלם לAI? אומרים ל-AI: "Create an Astro blog with content collections — each post needs title, date, author, tags, and an optional hero image" — והוא ייצר את כל המבנה הנכון. פשוט כותבים פוסטים ב-Markdown ו-Astro דואג לשאר.

דוגמה מהשוק הישראלי: בלוג טכני של סטארטאפ ישראלי עם 200+ פוסטים — Content Collections מאפשרות ניהול מסודר עם תגיות בעברית, תאריכים, ו-draft mode לפוסטים שעדיין בעבודה. ה-build time של 200 פוסטים: פחות מ-10 שניות.

עשו עכשיו

גלשו ל-astro.build/themes ובחרו template אחד. בדקו את ה-Lighthouse score שלו — כמה הוא מקבל ב-Performance? (רמז: כנראה 95+)

⏱️ 3 דקות

מתחילים הקשר חינמי

Cloudflare + Astro — מה הרכישה אומרת

בינואר 2026, Cloudflare רכשה את צוות Astro. זו עסקה משמעותית שכדאי להבין למה:

Cloudflare היא אחת מחברות התשתית הגדולות באינטרנט — היא מפעילה CDN (רשת שרתים גלובלית), Cloudflare Workers (שרת edge), ו-Cloudflare Pages (hosting). היא משרתת כ-20% מכל התעבורה באינטרנט.

מה המשמעות?

למה זה רלוונטי לישראל? Cloudflare מאוד פופולרית בסטארטאפים ישראליים — Workers, Pages, ו-R2 Storage נמצאים בשימוש נרחב. הרכישה של Astro אומרת שאתרי תוכן על Cloudflare ייהנו מאינטגרציה חזקה עוד יותר.

מה המשמעות המעשית ל-Vibe Coders

הרכישה של Astro על ידי Cloudflare משפיעה על ההחלטות שלכם בכמה דרכים:

בשביל Vibe Coders ישראלים: Cloudflare Pages + Astro = הדרך הכי זולה והכי מהירה לבנות אתר תוכן. התמחור הוא free tier נדיב מאוד, ה-CDN קרוב לישראל (יש נקודת נוכחות בתל אביב), וה-deploy פשוט כמו git push.

עשו עכשיו

גלשו ל-pages.cloudflare.com. בדקו את ה-free tier — מה כלול? כמה builds בחודש? כמה bandwidth? השוו ל-Vercel free tier. רשמו: איפה כל אחד מנצח?

⏱️ 3 דקות

מתחילים החלטה חינמי

Astro vs Next.js — מתי כל אחד

זו אחת השאלות הכי חשובות שתצטרכו לענות עליה כ-Vibe Coders. הנה הכלל הפשוט:

Framework: Astro vs Next.js — מתי כל אחד
שאלהAstro ✅Next.js ✅
סוג האתר?בלוג, דוקומנטציה, פורטפוליו, אתר שיווקיאפליקציה, דשבורד, e-commerce, SaaS
צריך login?לא (או מינימלי)כן — authentication מובנה
כמה JavaScript?מינימלי — רוב הדף סטטיהרבה — אינטראקטיביות בכל דף
SEO חשוב?מאוד — HTML סטטי מושלם ל-SEOכן, עם SSR/ISR
ביצועים קריטיים?18KB JS — מושלם70KB+ — טוב אבל כבד יותר

כלל אצבע: אם רוב האתר הוא תוכן שמשתנה לעיתים רחוקות → Astro. אם יש אינטראקטיביות עמוקה, login, ו-real-time data → Next.js.

דוגמאות מייצגות מהשוק הישראלי:

טעות נפוצה: בוחרים Next.js לכל פרויקט כי "זה הסטנדרט"

שומעים את זה הרבה: "כולם עושים Next.js, אז גם אני אעשה Next.js". הבעיה: לאתר שהוא 90% תוכן סטטי (בלוג, landing page, אתר תדמית), Next.js מעמיס 70KB+ של JavaScript שלא צריך, Core Web Vitals יורדים, וה-hosting בפרודקשן עולה יותר (Vercel Pro מתחיל ב-20$ לחודש ברגע שעוברים את ה-free tier). דוגמה אמיתית: לקוח ישראלי ביקש אתר תדמית למשרד עורכי דין — 6 עמודים, טופס יצירת קשר אחד, ללא login. בחרנו Next.js "כי זה מה שאנחנו מכירים". Lighthouse Performance: 72. אחרי migration ל-Astro: Lighthouse 98, hosting חינמי על Cloudflare Pages, וזמן build ירד מ-45 ל-6 שניות.

הפתרון: לפני שאתם בוחרים Next.js, שאלו שלוש שאלות: (1) יש login/dashboard? (2) יש אינטראקטיביות עמוקה ב-majority של הדפים? (3) יש real-time data? אם התשובה ל-2 מהשלוש היא "לא" — Astro כנראה עדיף. אם כן — Next.js מוצדק.

דוגמה ישראלית: חנות Shopify או Next.js custom?

חנות בוטיק לתכשיטי כסף בתל אביב עם 500 SKU, תשלום דרך Tranzila (סולק ישראלי), שילוח בדואר ישראל וחשבוניות ירוקות דרך iCount. Shopify Basic עולה 29$ לחודש (~110 ש"ח) + 2% עמלה על עסקה + אפליקציית Tranzila custom (כי Shopify לא תומך native ב-Tranzila) = בערך 1,800-2,500 ש"ח לחודש בעסקאות ממוצעות.

אלטרנטיבה ב-Next.js: חנות custom עם Stripe או Tranzila native, hosting על Vercel Pro (80 ש"ח), database על Supabase free tier, ועמלת סליקה של Tranzila (1.5-2%) בלי תוספת על גבי Shopify = ~400-600 ש"ח לחודש כשהמחזור גדל. בנוסף, שליטה מלאה ב-RTL, בטפסי חשבונית ירוקה ובאינטגרציה עם חברות שילוח ישראליות (HFD, יוריקה). נקודת האיזון: מעל ~30K ש"ח מחזור חודשי, Next.js custom מחזיר את ההשקעה תוך 4-6 חודשים.

Frameworks בשוק הישראלי — תמונת מצב 2026

אם אתם עובדים בשוק הישראלי, חשוב להבין את התפלגות השימוש:

סקטורFramework מועדףלמה
סטארטאפים (Series A+)Next.js (85%+)אקוסיסטם גדול, קל לגייס מפתחים, V0/Bolt support
סוכנויות digitalNext.js + Astro (50/50)Next.js לאפליקציות, Astro לאתרי תוכן ו-landing pages
פרילנסריםAstro (גדל מהר)מהיר לבנות, hosting חינמי, ביצועים מושלמים
עסקים קטניםAstro / WordPressאתרי תוכן פשוטים שצריכים מהירות ו-SEO
Enterprise ישראליNext.js (כמעט בלעדי)compliance, ספריות UI מוכנות, צוותים גדולים

מגמה מעניינת: סוכנויות digital ישראליות מתחילות להשתמש ב-Astro לאתרי לקוחות — במיוחד landing pages שצריכים Lighthouse score מושלם. הלקוח שמח (האתר מהיר), Google שמח (Core Web Vitals ירוקים), והסוכנות שמחה (פחות תחזוקה). מחיר hosting: 0 ₪ על Cloudflare Pages free tier.

עשו עכשיו

חשבו על 3 אתרים ישראליים שאתם מכירים (יכול להיות חנות, סטארטאפ, בלוג, עסק מקומי). לכל אחד — החליטו: Astro או Next.js? ולמה? כתבו שורה אחת לכל אתר. טיפ: שימו לב — האם האתר בעיקר תוכן, או אפליקציה?

⏱️ 3 דקות

בינוני תיאוריה חינמי

Vite — כלי הבנייה שמאחורי הקלעים

עד עכשיו דיברנו על frameworks — Next.js ו-Astro. עכשיו נדבר על שכבה אחרת לגמרי: build tools — כלי הבנייה.

Vite (נקרא "ויט", מצרפתית — "מהיר") הוא כלי בנייה שנוצר על ידי Evan You (היוצר של Vue). הוא לא מתחרה ב-Next.js — הוא רץ מתחת ל-frameworks. חשבו על זה ככה:

טעות נפוצה: לבלבל בין Vite ל-Next.js

Vite הוא build tool, לא framework. הוא כמו המנוע שמרכיב את הקבצים שלכם — לא כמו המכונית שמנווטת אתכם. Astro, SvelteKit, ו-Remix משתמשים ב-Vite מתחת למכסה. Next.js משתמש ב-Turbopack (המתחרה).

מה Vite עושה?

פעולהמה זה אומרלמה זה חשוב
Dev Serverמריץ את הפרויקט מקומית בזמן פיתוחרואים שינויים תוך מילישניות
HMRHot Module Replacement — עדכון חלקימשנים קוד → הדפדפן מתעדכן מיד בלי reload
Bundlingמרכיב את כל הקבצים לגרסת productionקבצים קטנים ומהירים
Code Splittingמפצל את הקוד לחלקים שנטענים לפי צורךהמשתמש טוען רק מה שצריך

HMR — למה Vite "מרגיש מהיר"

HMR (Hot Module Replacement) הוא הפיצ'ר שגורם ל-Vite להרגיש כמו קסם. ככה זה עובד:

  1. אתם משנים קובץ CSS — למשל, מחליפים צבע כפתור מכחול לסגול
  2. Vite מזהה את השינוי תוך מילישניות
  3. במקום לטעון מחדש את כל הדף (כמו refresh), הוא מחליף רק את המודול שהשתנה
  4. הכפתור משנה צבע בדפדפן — בלי לאבד state, בלי scroll position שמשתנה, בלי הבהוב

ההבדל מ-Webpack (הכלי הישן): Webpack היה צריך לרכיב מחדש את כל הפרויקט בכל שינוי — פרויקט גדול = 5-15 שניות המתנה. Vite משתמש ב-native ES modules של הדפדפן, אז הוא מעדכן רק את מה שהשתנה — תמיד מהיר, גם בפרויקטים ענקיים.

מה זה אומר בפועל? כש-AI מייצר קוד ואתם רוצים לעשות שינוי קטן (שנו צבע, שנו טקסט, הזיזו אלמנט) — הדפדפן מתעדכן מיד. אין המתנה. זו חוויית פיתוח שפשוט מרגישה טוב.

איפה Vite רץ מאחורי הקלעים? הוא ה-build tool של Astro, SvelteKit, ו-Remix. גם Lovable משתמשת ב-Vite. Next.js הוא היוצא מן הכלל — הוא משתמש ב-Turbopack (של Vercel, כתוב ב-Rust). Turbopack מתחרה ב-Vite על תואר "ה-build tool המהיר ביותר".

React + Vite בלבד — מתי זה מספיק?

אפשר לבנות פרויקט React עם Vite בלי framework בכלל. הפקודה npm create vite@latest my-app -- --template react-ts נותנת לכם פרויקט React טהור עם TypeScript. השאלה היא: מתי זה מספיק?

טעות נפוצה: לבחור Vite+React כשצריך Next.js

Vite + React בלבד לא נותן לכם: routing (צריך להתקין react-router), SSR (אין), SEO (בעייתי — SPA only), API routes (אין), image optimization (אין). אם האתר צריך לפחות 2 מהדברים האלה — תבחרו framework מלא. Vite+React מתאים רק ל-SPA פנימי, prototype, או כלי admin שלא צריך SEO.

מתי להשתמש ב-Vite ישירות (בלי framework)?

Framework: Vite לבד vs Framework מלא

Vite + React ישירות — כשצריך:

Framework מלא (Next.js/Astro/SvelteKit) — כשצריך:

טיפ: Lovable משתמשת ב-Vite + React (לא Next.js). זו הסיבה שהפלט שלה קצת שונה מ-V0. אם אתם משתמשים ב-Lovable — שימו לב שאין לכם App Router, אין server components, ואין API routes. זה React טהור.

Vite בתוך frameworks: שימו לב שגם כשאתם משתמשים ב-Astro או SvelteKit — Vite רץ מתחת. הם בנויים על Vite. זה אומר שתמיד תיהנו מ-HMR מהיר ו-dev experience מצוין. ההבדל הוא שב-Astro ו-SvelteKit אתם מקבלים גם routing, SSR, ועוד — דברים ש-Vite לבד לא נותן. אם פתחתם את package.json של פרויקט Astro ומצאתם שם "vite" — זה לא טעות. Astro משתמש ב-Vite כ-build engine שלו.

מתי Vite+React עדיף על Next.js? כשאתם לא צריכים SSR, SEO, או server logic. למשל: דשבורד admin פנימי שרק עובדים ניגשים אליו (לא צריך SEO), כלי תמחור פנימי (לא צריך להיות ב-Google), או prototype שצריך לעבוד "עכשיו" בלי כל ה-overhead של framework מלא. מחיר ה-hosting: כמעט 0 — שמים את ה-build על Cloudflare Pages או GitHub Pages ומסיימים.

עשו עכשיו

בפרויקט StackBlitz או V0 — פתחו את package.json ומצאו: האם יש שם vite? או next? או שניהם? זה יגיד לכם מה ה-build tool ומה ה-framework.

⏱️ 2 דקות

בינוני תיאוריה חינמי

SvelteKit — האלטרנטיבה שגדלה

כל מה שדיברנו עליו עד עכשיו — Next.js, Astro — בנוי על React (או לפחות תומך בו). אבל יש עולם אחר: Svelte.

Svelte (נקרא "סוולט") הוא לא framework ב-React — הוא שפה אחרת לגמרי שמתקמפלת ל-vanilla JavaScript. בלי Virtual DOM, בלי runtime. SvelteKit הוא ה-framework המלא שבנוי מעל Svelte — כמו ש-Next.js בנוי מעל React.

מה ההבדל מ-React?

בואו נשווה את אותו counter פשוט:

// React — 12 שורות
import { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);
  return (
    <button onClick={() => setCount(count + 1)}>
      Clicked {count} times
    </button>
  );
}
<!-- Svelte — 5 שורות -->
<script>
  let count = 0;
</script>

<button on:click={() => count++}>
  Clicked {count} times
</button>

שימו לב: ב-Svelte אין צורך ב-useState, אין import, אין function wrapper. פשוט כותבים let count = 0 ו-Svelte מבין שזה state. פחות קוד = פחות מקום לבאגים.

Svelte — עוד השוואות מעשיות

בואו נראה עוד דוגמה — fetch data והצגה ברשימה:

<!-- Svelte: fetch + display -->
<script>
  let products = [];

  async function loadProducts() {
    const res = await fetch('/api/products');
    products = await res.json();
  }

  // נטען אוטומטית כשהקומפוננטה נטענת
  loadProducts();
</script>

{#each products as product}
  <div class="card">
    <h3>{product.name}</h3>
    <p>₪{product.price}</p>
  </div>
{/each}

ב-React אותו קוד דורש useState, useEffect, ו-cleanup function. ב-Svelte — פשוט כותבים מה שרוצים והוא עובד. הסינטקס {#each} הוא הדרך של Svelte לעשות loops, ו-{#if} לתנאים.

SvelteKit — מה הוא מוסיף

SvelteKit מוסיף ל-Svelte את כל מה שNext.js מוסיף ל-React:

מתי SvelteKit באמת עדיף? כשהביצועים קריטיים. ה-bundle size של SvelteKit קטן ב-50-70% מ-Next.js, כי Svelte מתקמפל ל-vanilla JavaScript בלי runtime. לאפליקציות שמשרתות מיליוני משתמשים — ההבדל מורגש. סטארטאפים ישראליים שמשרתים שוק גלובלי (כמו אפליקציות productivity או fintech) מתחילים לשקול SvelteKit בדיוק בגלל זה.

טעות נפוצה: לחשוב ש-SvelteKit הוא "React lite"

SvelteKit הוא לא "גרסה קטנה של React". הוא שפה שונה לגמרי עם גישה שונה: Svelte מתקמפל ל-vanilla JS בזמן build — אין runtime. React שומר virtual DOM בזיכרון. שתי הגישות עובדות — הן פשוט שונות.

SvelteKit בצד AI

הנה האמת הכואבת: רוב כלי ה-AI עדיין לא תומכים ב-Svelte ברמה טובה. V0 מייצר React. Bolt יכול לייצר Svelte אבל לא כברירת מחדל. Lovable — React בלבד.

זה אומר שאם אתם עובדים בעיקר עם AI tools — Next.js עדיין הבחירה הבטוחה יותר. אבל SvelteKit שווה להכיר כי:

Framework: SvelteKit vs Next.js — מתי כל אחד
סיטואציההבחירהלמה
צוות enterprise / startupNext.jsיותר מפתחים, יותר ספריות, AI support
מפתח/ת solo / indieSvelteKitקוד פשוט יותר, ביצועים טובים יותר
עבודה אינטנסיבית עם AI toolsNext.jsרוב הכלים מייצרים React/Next.js
ביצועים קריטיים (מיליוני משתמשים)SvelteKitbundle קטן יותר, server capacity גבוה יותר
צריכים ספריית UI ספציפית (shadcn/ui)Next.jsהרוב זמינות ל-React בלבד

SvelteKit בישראל — מצב 2026

בישראל, SvelteKit עדיין נישתי — אבל גדל מהר. כמה דברים שכדאי לדעת:

השורה התחתונה: אם אתם Vibe Coders שעובדים בעיקר עם V0 ו-Bolt — תישארו עם Next.js. אם אתם מעדיפים קוד נקי ופשוט, ומוכנים ללמוד סינטקס חדש — SvelteKit שווה התנסות. הוא יהפוך לנפוץ יותר בשנים הקרובות.

עשו עכשיו

בקשו מ-ChatGPT: "show me the same counter component in React and Svelte". השוו את כמות הקוד ואת הפשטות. מה יותר קריא לכם? עכשיו בקשו: "show me a todo list in React and Svelte" — ההבדל נהיה גדול עוד יותר.

⏱️ 3 דקות

בינוני הקשר חינמי

Remix — עוד שם ששווה להכיר

Remix היה framework פופולרי לReact, שנבנה על ידי צוות React Router. הסיפור שלו קצת מסובך אבל שווה לדעת בקצרה:

מה זה אומר בפועל? אם אתם רואים קוד עם Remix — הוא כנראה React Router v7 מאחורי הקלעים. אם מישהו מזכיר Remix 3 — זה כבר לא React בכלל. לא צריך להתעמק — מספיק לדעת שזה קיים.

למה בכל זאת להכיר? מפתחים ותיקים שעובדים בהייטק הישראלי יכולים לדבר על Remix בראיונות עבודה או ב-code reviews. הם כנראה מתכוונים ל-React Router v7 עם "framework mode". אם שומעים "Remix" — אל תיבהלו. זה עוד דרך לבנות אתרי React, עם דגש על web standards (טפסים שעובדים בלי JavaScript, progressive enhancement) ו-nested routing (כל חלק בדף יכול לטעון את הנתונים שלו בנפרד).

בפועל: אם AI מייצר Remix — בקשו: "Use Next.js App Router instead of Remix". אלא אם כן יש לכם סיבה ספציפית להשתמש ב-Remix.

מתחילים מעשי חינמי

הנחיה ל-AI: איך לציין framework בפרומפט

עכשיו שאתם מכירים את ה-frameworks — בואו נלמד איך להגיד ל-AI באיזה framework להשתמש. זה ההבדל בין לקבל מה שAI בוחר בשבילכם — לבין לקבל בדיוק מה שאתם צריכים.

הפרומפט הגרוע

"Build me a blog website"

מה AI ייצר? כנראה Next.js עם 70KB+ של JavaScript — אפילו שבלוג לא צריך את זה.

הפרומפט הטוב

"Build a blog website using Astro 5 with:
- Content Collections for blog posts (Markdown)
- Tailwind CSS for styling
- File-based routing
- Zero JavaScript except for a mobile menu toggle
- Deploy target: Cloudflare Pages
- RTL support for Hebrew content"

שימו לב מה השתנה: ציינו framework, גרסה, ספריית CSS, סוג ה-routing, כמה JavaScript, ואיפה ה-deploy. AI מקבל הנחיות ברורות ומייצר בדיוק מה שצריך.

תבנית Prompt לבחירת Framework

Build a [סוג האתר] using [Framework] [גרסה] with:
- [ספריית CSS]: Tailwind / CSS Modules / vanilla
- [Routing]: file-based / dynamic / API routes
- [Rendering]: SSR / SSG / static / islands
- [Features]: authentication / CMS / i18n / RTL
- [Deploy]: Vercel / Cloudflare / Netlify
- [Language]: TypeScript / JavaScript

5 תבניות Prompt מוכנות — העתיקו והתאימו

הנה תבניות מוכנות לכל framework — פשוט החליפו את מה שבסוגריים:

תבנית 1: Next.js — אפליקציית SaaS

"Build a [SaaS dashboard / CRM / project management tool] using Next.js 16 App Router with:
- TypeScript
- Tailwind CSS + shadcn/ui for components
- Server Components for data display, Client Components only for interactive parts
- API routes in app/api/ for backend logic
- Middleware for authentication (redirect unauthenticated users to /login)
- ISR for pages that update periodically
- RTL support with dir='rtl' for Hebrew interface
- Deploy target: Vercel"

תבנית 2: Astro — אתר תוכן/בלוג

"Build a [blog / documentation site / portfolio] using Astro 5 with:
- Content Collections for [blog posts / docs pages] in Markdown
- Tailwind CSS for styling
- Zero client-side JavaScript except for [mobile menu / search / newsletter form]
- Use client:visible for below-fold interactive components
- RSS feed
- Sitemap generation
- RTL support for Hebrew content
- Deploy target: Cloudflare Pages"

תבנית 3: Astro + React — אתר שיווקי עם חלקים אינטראקטיביים

"Build a [marketing website / landing page] using Astro 5 with React islands:
- Static HTML for all content sections (hero, features, testimonials, footer)
- React components only for: [pricing calculator / contact form / demo booking]
- Use client:visible for React components below the fold
- Tailwind CSS
- Mobile-first responsive design
- Hebrew RTL with prices in ₪
- Deploy target: Cloudflare Pages"

תבנית 4: Vite + React — כלי פנימי / Prototype

"Build a [admin dashboard / internal tool / prototype] using Vite + React with:
- TypeScript
- React Router for client-side navigation
- Tailwind CSS
- No SSR needed (SPA only)
- Mock data for development
- Hebrew interface with RTL"

תבנית 5: SvelteKit — אפליקציה עם ביצועים קריטיים

"Build a [real-time app / high-performance tool] using SvelteKit with:
- TypeScript
- Server-side data loading with +page.server.ts
- Tailwind CSS
- File-based routing
- API endpoints with +server.ts
- Deploy target: Cloudflare Pages with adapter-cloudflare"

טיפ מתקדם — תוספת RTL: כשאתם בונים אתר בעברית, תמיד הוסיפו לפרומפט: "Hebrew RTL with dir='rtl' on html tag. Use logical CSS properties (margin-inline-start instead of margin-left). Prices in ₪ (NIS). Date format: DD/MM/YYYY." — זה חוסך המון תיקונים אחר כך.

עשו עכשיו

בחרו אחת מ-5 התבניות למעלה, התאימו אותה לפרויקט שאתם חולמים עליו, והריצו ב-V0 או Bolt. בדקו: האם AI עקב אחרי כל ההנחיות? מה הוא פספס? כתבו prompt משופר על סמך התוצאה.

⏱️ 7 דקות

עשו עכשיו

כתבו שני פרומפטים עבור אותו פרויקט: אחד בלי ציון framework, ואחד עם (בחרו תבנית מלמעלה). הריצו את שניהם ב-V0 או Bolt. השוו את התוצאות — מה ההבדל בגודל הקוד, ב-framework שנבחר, וב-JavaScript שנשלח?

⏱️ 5 דקות

מתחילים החלטה חינמי

Decision Framework: 5 שאלות לבחירת Framework

במקום לזכור טבלאות השוואה — ענו על 5 שאלות. התשובות יובילו אתכם ל-framework הנכון.

1. האתר בעיקר תוכן או אפליקציה? תוכן אפליקציה 2. צריך אינטראקטיביות? מינימלי קצת Astro ✅ Astro + Islands 3. עובדים עם AI tools? כן, הרבה פחות / solo Next.js ✅ 4. ביצועים קריטיים? כן לא SvelteKit ✅ Next.js 5. Prototype מהיר / SPA בלי SEO? כן לא Vite + React חזרו לשאלה 1 ↑ סיכום מהיר תוכן סטטי → Astro | אפליקציה + AI → Next.js ביצועים + solo → SvelteKit | prototype מהיר → Vite + React
Framework: 5 שאלות לבחירת Framework
  1. מה סוג האתר? תוכן (בלוג, דוקומנטציה) → Astro. אפליקציה (דשבורד, SaaS) → Next.js/SvelteKit.
  2. צריך SEO? כן → SSR/SSG (Next.js/Astro). לא → אפשר גם Vite+React.
  3. כמה אינטראקטיביות? מינימלית → Astro. בינונית → Astro + Islands. מלאה → Next.js/SvelteKit.
  4. מי הצוות? צוות/enterprise → Next.js. solo/indie → SvelteKit או Astro.
  5. עובדים עם AI tools? הרבה (V0/Bolt) → Next.js. פחות → כל framework מתאים.

טבלת השוואה מלאה — 4 Frameworks, 8 קריטריונים

הנה הטבלה שתשמש אתכם כ-reference מהיר בכל פעם שצריכים לבחור framework:

קריטריוןNext.jsAstroSvelteKitVite+React
ביצועים (Lighthouse)85-9595-10090-9875-90
גודל Bundle70-180KB0-20KB20-40KB50-120KB
תמיכת AI toolsמצוינתטובהבינוניתטובה
קלות למידהבינוניתקלהקלהקלה מאוד
SEOמצוין (SSR/SSG)מושלם (static)מצוין (SSR/SSG)חלש (SPA)
אקוסיסטםענקגדל מהרבינוניענק (React)
Deploy קלVercel (חינמי)CF Pages (חינמי)CF/Vercelכל hosting
תמיכת RTLטובהטובהטובהטובה

שימו לב: אין "מנצח" בכל הקטגוריות. Astro מנצח בביצועים אבל לא מתאים לאפליקציות מורכבות. Next.js מנצח באקוסיסטם אבל כבד יותר. SvelteKit מנצח ביחס ביצועים-למורכבות אבל עם פחות תמיכת AI. הבחירה תמיד תלויה בפרויקט הספציפי.

עשו עכשיו

קחו פרויקט שאתם חולמים עליו (אתר אישי, בלוג, אפליקציה). ענו על 5 השאלות — לאיזה framework הגעתם? בדקו גם בטבלת ההשוואה — האם הבחירה מתיישבת? כתבו את התשובה.

⏱️ 4 דקות

מתחיל 30 דקות תרגול חינם

תרגילים

תרגיל 1: טבלת השוואה — 4 Frameworks ב-8 קריטריונים

מה תעשו: תבנו טבלת השוואה מלאה שתשמש אתכם כ-reference.

שלבים:

  1. פתחו מסמך (Google Docs, Notion, או נייר) ובנו טבלה עם 4 עמודות: Next.js, Astro, Vite+React, SvelteKit
  2. הוסיפו 8 שורות: ביצועים, גודל bundle, תמיכת AI tools, קלות למידה, SEO, אקוסיסטם, deployment, תמיכת RTL
  3. מלאו את הטבלה — השתמשו במה שלמדתם בפרק + חיפוש נוסף אם צריך
  4. סמנו את ה"זוכה" בכל קריטריון

תוצאה צפויה: טבלה עם 32 תאים מלאים. אין "framework מושלם" — לכל אחד יש יתרונות שונים.

⏱️ 15 דקות

תרגיל 2: Decision Tree — בחירת Framework לפי פרויקט

מה תעשו: תבנו decision tree שיעזור לכם (ולאחרים) לבחור framework.

שלבים:

  1. ציירו תרשים זרימה (על נייר, ב-Figma, או בקשו מ-AI) עם 5 שאלות שמובילות ל-4 frameworks
  2. בדקו את התרשים: קחו 3 פרויקטים שונים (בלוג, SaaS, portfolio) ועקבו אחרי השאלות — הגעתם ל-framework הנכון?
  3. שתפו את התרשים עם AI (צילום מסך או תיאור) ובקשו feedback: "Review my framework decision tree — is the logic correct?"

תוצאה צפויה: Decision tree שעובד נכון ל-3+ סוגי פרויקטים.

⏱️ 20 דקות

תרגיל 3: Prompt Engineering — ציון Framework ל-AI

מה תעשו: תשוו תוצאות של AI עם ובלי הנחיית framework.

שלבים:

  1. בחרו פרויקט (למשל: אתר תוכן לעסק)
  2. כתבו prompt בסיסי: "Build a website for a coffee shop in Tel Aviv"
  3. הריצו ב-V0 או Bolt — רשמו מה קיבלתם (framework, ספריות, גודל)
  4. כתבו prompt מפורט עם framework, גרסה, CSS, routing, ו-RTL
  5. הריצו שוב — השוו

תוצאה צפויה: הגרסה עם ההנחיה המפורטת תהיה קרובה יותר למה שרציתם. רשמו את ההבדלים.

⏱️ 15 דקות

מתחילים שגרה חינמי

שגרת עבודה — Frameworks ביום-יום

שגרת Frameworks ל-Vibe Coders

יומי (2 דקות)

שבועי (15 דקות)

חודשי (30 דקות)

5 טעויות נפוצות כש-AI בוחר Framework — ואיך להימנע מהן

אחרי שעבדנו עם עשרות Vibe Coders, אלה הטעויות שחוזרות שוב ושוב:

  1. AI בוחר Next.js לאתר סטטי. הבעיה: 180KB JavaScript לבלוג שצריך 0KB. הפתרון: ציינו "Use Astro" בפרומפט.
  2. AI שם 'use client' על כל קובץ. הבעיה: מבטל את כל היתרונות של Server Components. הפתרון: בקשו "Use server components by default, 'use client' only for interactive parts".
  3. AI מתעלם מ-RTL. הבעיה: כל הטקסט העברי נראה הפוך או שבור. הפתרון: תמיד הוסיפו "RTL support with dir='rtl', Hebrew UI text" בפרומפט.
  4. AI משתמש ב-Pages Router (הישן) במקום App Router (החדש). הבעיה: קוד מיושן שלא מנצל server components. הפתרון: ציינו "Use Next.js App Router (not Pages Router)".
  5. AI לא מוסיף loading states. הבעיה: המשתמש רואה מסך ריק בזמן טעינה. הפתרון: בקשו "Add loading.tsx with skeleton UI for async pages".
עשו עכשיו

חזרו לפרויקט שAI ייצר לכם (מהתרגילים הקודמים). בדקו: האם הוא עשה אחת מ-5 הטעויות למעלה? אם כן — תקנו את הפרומפט והריצו שוב. שימו לב להבדל.

⏱️ 5 דקות

הדבר הכי חשוב

אם יש דבר אחד שתיקחו מהפרק הזה: תמיד ציינו ל-AI באיזה framework להשתמש. בלי הנחיה — AI בוחר Next.js. עם הנחיה — אתם מקבלים את ה-framework הנכון לפרויקט. המשפט "Use Astro for this content site" או "Use Next.js App Router with TypeScript" חוסך שעות של refactoring.

מתחילים סיכום חינמי

סיכום ומעבר לפרק הבא

סיכום פרק 3

בפרק הזה הכרנו את ה-frameworks שבנויים מעל React (ומעבר לו). למדנו ש-Next.js הוא ה-framework ה"שלם" ביותר — App Router, Server Components, API routes, Turbopack — והוא ברירת המחדל של כמעט כל כלי AI.

הכרנו את Astro — framework שלא שולח JavaScript כברירת מחדל, עם islands architecture שמתאימה לאתרי תוכן. ראינו ש-Cloudflare רכשה את Astro בינואר 2026 — מהלך שמחזק את האינטגרציה שלו עם Cloudflare Pages.

למדנו ש-Vite הוא build tool (לא framework) שרץ מתחת ל-Astro, SvelteKit, ו-Remix — בעוד Next.js משתמש ב-Turbopack. הכרנו את SvelteKit — אלטרנטיבה עם קוד פשוט יותר וביצועים עדיפים, אבל עם פחות תמיכת AI tools.

והכי חשוב — למדנו איך לציין framework ב-prompt ל-AI, ובנינו decision tree עם 5 שאלות שמוביל לבחירה נכונה.

בדוק את עצמך

5 שאלות — בדוק את עצמך
  1. מה ההבדל המרכזי בין Next.js ל-Astro? מתי תבחרו כל אחד?
  2. למה רוב כלי ה-AI (V0, Bolt) בוחרים Next.js כברירת מחדל? ומה הבעיה עם זה?
  3. מה זה islands architecture ואיך הוא חוסך JavaScript?
  4. מה ההבדל בין Vite (build tool) ל-Next.js (framework)? למה לא להשוות ביניהם?
  5. כתבו prompt ל-AI שמציין framework, גרסה, וסוג rendering — לאתר portfolio אישי.

צ'קליסט — סיכום פרק 3

הצעד הבא: פרק 4

בפרק הבא נכנס לעולם ה-Tailwind CSS — שפת העיצוב שכל כלי AI מדבר בה. נלמד לקרוא את ה-classes (מה זה bg-purple-500?), להנחות AI לעצב עם צבעים, dark mode ו-responsive, ולהתמודד עם RTL בעברית. כל מה שלמדנו על frameworks — עכשיו נוסיף עליו עיצוב.