- טבלת השוואה מלאה של 4 פלטפורמות hosting — Vercel, Netlify, Cloudflare Pages, GitHub Pages — כולל free tier, מגבלות ומחירי Pro
- צ'קליסט של 12 צעדים לפריסת אתר מ-localhost לאתר חי עם דומיין
- אתר Next.js פרוס על Vercel עם GitHub auto-deploy — מקצה לקצה
- דומיין מותאם אישית מחובר עם DNS תקין ו-SSL פעיל
- 3 frameworks החלטה: איזו פלטפורמה, איפה לשים env var, מאיפה לקנות דומיין
- הבנת ההבדל בין edge functions ל-serverless functions ומתי להשתמש בכל אחד
- ספריית prompts ל-AI — מפריסה ראשונה ועד חיבור דומיין
- להשוות בין Vercel, Netlify, Cloudflare Pages ו-GitHub Pages לפי מחיר, יתרונות ומגבלות
- להנחות AI לפרוס אתר Next.js על Vercel מ-GitHub repo — עם 3 prompts בלבד
- לחבר דומיין מותאם אישית לאתר פרוס — כולל הגדרת DNS records ווידוא SSL
- לבחור פלטפורמת hosting מתאימה לכל סוג פרויקט בעזרת decision framework של 3 שאלות
- להגדיר environment variables ב-production בלי להדליף API keys ב-Git
פרקים קודמים: פרק 03 (Frameworks — חובה להבנה של SSR/SSG), פרק 08 (מבנה פרויקט — הפריסה עובדת על מבנה הזה).
מה צריך: חשבון GitHub (חינם, ב-github.com). רצוי פרויקט אחד קיים ב-GitHub — אפילו קטן. לא חייבים לקנות דומיין — נעבור על התהליך בלי שתוציאו שקל.
זמן משוער: 55-70 דקות קריאה + תרגולים. תרגיל הפריסה הראשי דורש 25 דקות נוספות עם חשבון GitHub פעיל.
מאיפה באנו: בפרק 08 פירקנו את מבנה פרויקט Next.js — הבנו איפה כל תיקייה (app/, components/, lib/, public/) ואיך file-based routing עובד. הפרויקט חי אצלכם במחשב, רץ על localhost:3000, ורק אתם רואים אותו.
מה נעשה היום: ניקח את הפרויקט הזה בדיוק — ונעלה אותו לאוויר. נבחר פלטפורמה, נחבר אותה ל-GitHub, נגדיר דומיין, ונוודא שהכל עובד מכל מקום בעולם — כולל מקרן שלכם, מהסלולר בנסיעה באיילון, ומהחבר שחי בברלין.
לאן ממשיכים: בפרק 10 נקבל decision framework מלא לבחירת stack — framework + UI library + hosting. מה שלמדנו פה על hosting ישתלב שם — כבר תדעו איזו פלטפורמה מתאימה לאיזה סוג פרויקט.
| מונח (English) | תרגום | הסבר בשורה אחת |
|---|---|---|
| deployment | פריסה | תהליך העלאת הקוד מהמחשב שלכם לשרת שהציבור יכול לגשת אליו |
| hosting | אירוח | השירות שמחזיק את האתר פעיל באינטרנט — שרתים, רשת, תחזוקה |
| Vercel | וורסל | פלטפורמת hosting שפיתחה את Next.js — אופטימלית ל-React/Next.js |
| Netlify | נטליפיי | פלטפורמת hosting ותיקה עם יכולות forms, identity ו-functions מובנות |
| Cloudflare Pages | קלאודפלייר פייג'ס | פלטפורמת hosting של Cloudflare עם CDN גלובלי ו-bandwidth ללא הגבלה |
| GitHub Pages | גיטהאב פייג'ס | פלטפורמת hosting חינמית של GitHub — פשוטה, רק לאתרים סטטיים |
| CI/CD | אינטגרציה ופריסה רציפות | Continuous Integration / Continuous Deployment — push לגיט = עדכון אוטומטי באתר |
| continuous deployment | פריסה רציפה | כל commit ל-branch הראשי גורם לפריסה חדשה אוטומטית |
| preview deployment | פריסת תצוגה מקדימה | URL זמני שנוצר לכל Pull Request — לבדיקה לפני מיזוג |
| custom domain | דומיין מותאם | שם דומיין משלכם (כמו myname.com) במקום תת-דומיין של הפלטפורמה |
| DNS | מערכת שמות דומיינים | Domain Name System — מתרגם דומיין (myname.com) לכתובת IP של השרת |
| A record | רשומת A | רשומת DNS שמצביעה דומיין לכתובת IP ספציפית (IPv4) |
| CNAME | רשומת כינוי | רשומת DNS שמצביעה דומיין לדומיין אחר (למשל לשרת של Vercel) |
| SSL/TLS | הצפנה | Secure Sockets Layer — ההצפנה שמאפשרת https ומנעול ירוק בדפדפן |
| CDN | רשת הפצת תוכן | Content Delivery Network — מפזר את האתר ב-100+ שרתים בעולם לטעינה מהירה |
| edge function | פונקציית קצה | קוד שרץ בשרת הקרוב גיאוגרפית למשתמש — מהיר מאוד, מגבלות קלות |
| serverless function | פונקציית ללא שרת | קוד שרץ לפי דרישה על שרת שמנוהל אוטומטית — גמיש, עם cold start |
| environment variable | משתנה סביבה | משתנה שלא נמצא בקוד אלא מוגדר בפלטפורמה — לסודות כמו API keys |
| build command | פקודת בנייה | הפקודה שהפלטפורמה מריצה כדי להכין את האתר (לרוב npm run build) |
| free tier | שכבה חינמית | מה שמקבלים בחינם — עם מגבלות של bandwidth, builds, או שעות |
מה זה Deployment — מהלוקאל לאינטרנט
בפרקים הקודמים בניתם אתר. הקוד נמצא אצלכם במחשב, בתיקייה כמו my-portfolio/. כשאתם מריצים npm run dev, נפתח שרת קטן ב-localhost:3000 והאתר רץ. אבל רק אתם רואים אותו. אם תסגרו את המחשב — האתר נעלם. אם החבר שלכם בברלין ינסה להיכנס ל-localhost:3000 — הוא יראה את האתר שלו, לא שלכם.
זה הבדל מהותי — localhost זה "המחשב הזה". לא שרת בענן, לא באוויר — פשוט מחשב מקומי שלכם. כדי שהאתר יהיה נגיש לכל העולם, צריך לשים אותו על שרת שמחובר לאינטרנט 24/7, שכתובת IP שלו מקושרת לשם דומיין, ושיש לו אישור SSL לחיבור מאובטח.
פעם — לפני 15 שנה — כל זה היה סיוט. היית צריך לשכור שרת במרכז נתונים, להתקין Linux, להגדיר nginx או Apache, לקנות אישור SSL, להגדיר DNS ידנית, ולעשות הכל מחדש בכל שינוי. זה לקח ימים. היום? בפלטפורמות מודרניות זה לוקח 3 דקות. הסיבה: הפלטפורמות (Vercel, Netlify, Cloudflare) מסדרות הכל אוטומטית.
הנה מה שקורה מאחורי הקלעים כשאתם "פורסים אתר":
- Source: הקוד שלכם ב-GitHub repo
- Build: הפלטפורמה מורידה את הקוד ומריצה
npm install+npm run build - Output: נוצרים קבצים סטטיים (HTML, CSS, JS) מוכנים להפצה
- Distribution: הקבצים נשלחים ל-CDN — רשת של שרתים בכל העולם
- DNS: הדומיין שלכם מופנה לשרתים של הפלטפורמה
- SSL: אישור HTTPS מונפק אוטומטית (בחינם, דרך Let's Encrypt)
- Live: האתר זמין בכתובת שלו
כל זה — באוטומטי. אתם רק מחברים GitHub, בוחרים branch, ולוחצים Deploy. את שאר 99% מהעבודה הפלטפורמה עושה במקומכם.
פתחו את הפרויקט הכי פשוט שיש לכם (אפילו אתר נחיתה בודד). חשבו: איך מישהו מחיפה ייכנס אליו כשהמחשב שלכם סגור? אם התשובה היא "הוא לא יכול" — זה בדיוק מה שנפתור היום. רשמו את שם הפרויקט — הוא יהיה הנסיינו שלנו.
חשוב להבין הבדל אחד בסיסי לפני שנבחר פלטפורמה: יש שני סוגי אתרים, וכל אחד דורש hosting קצת שונה.
| סוג אתר | מה זה | דוגמאות | מה דרוש מה-hosting |
|---|---|---|---|
| סטטי (Static) | HTML/CSS/JS מוכנים מראש. כל המבקרים רואים את אותם דפים. | פורטפוליו, לנדינג, בלוג, תיעוד | רק הפצה מהירה. כל פלטפורמה עובדת. |
| דינמי (Dynamic) | תוכן שמשתנה לפי משתמש, זמן, או מידע שמגיע משרת. | SaaS dashboard, חנות עם עגלה, אתר עם משתמשים | תמיכה ב-SSR, serverless functions, database |
למה זה חשוב? אם האתר שלכם סטטי לחלוטין (אין צד-שרת, אין אימות, אין טפסים שנשלחים לשרת) — GitHub Pages מספיק בחינם. אם האתר משתמש ב-Next.js עם Server Components, קוראים API keys, או מגיעים אליו טפסים — Vercel או Netlify הם הבחירה הטבעית. אם התעבורה גבוהה או שאתם חוששים מחשבון ענק בסוף החודש — Cloudflare Pages נותן הכי הרבה בחינם.
החליטו עכשיו — הפרויקט שלכם סטטי או דינמי? אם הוא פורטפוליו/לנדינג/בלוג — סטטי. אם יש טפסים לשרת/database/אימות — דינמי. אם אתם לא בטוחים, זה כנראה סטטי (רוב הפרויקטים הראשונים הם).
Vercel — הבית של Next.js
Vercel היא החברה שפיתחה את Next.js. זה אומר שכל יכולת חדשה ב-Next.js — Server Components, App Router, Streaming, Edge Runtime — נבדקת ומאופטמת על Vercel לפני שהיא משתחררת. לפרויקט Next.js, Vercel היא לא עוד פלטפורמה — היא הבית הטבעי שלו.
מה Vercel נותנת בחינם (Hobby plan):
- 100 GB bandwidth בחודש — מספיק לאתר פורטפוליו עם 10,000-50,000 מבקרים
- 6,000 דקות build זמן — מתורגם ל-כ-200-400 פריסות בחודש
- Serverless functions — 100 GB-Hours של חישוב
- Edge functions — 500,000 invocations בחודש
- Preview deployments — כל Pull Request מקבל URL זמני משלו לבדיקה
- Analytics (בסיסי) — מספר מבקרים, דפים הכי פופולריים
- SSL אוטומטי — HTTPS לכל דומיין
- דומיין חינמי —
yourproject.vercel.app
מה לא נכלל בחינם:
- שימוש מסחרי (commercial use) — דורש Pro plan
- אם חרגתם מ-100 GB bandwidth — האתר לא נופל, אבל מקבלים דרישה לעדכן
- Support של Vercel — ב-Pro יש צ'אט, בחינם יש רק פורום קהילה
מחיר Pro: 20$ לחודש למשתמש. כולל 1 TB bandwidth, builds מקבילים, analytics מלא, ו-support. לעסק ישראלי שרוצה לפרוס 3-5 פרויקטים — זה יעלה 200-300 ש"ח בחודש. שווה לזכור שזה מחיר לשימוש עסקי, לא לפורטפוליו אישי.
סטארט-אפ ישראלי בתחום ה-HR-Tech הרים MVP ב-Next.js ופרס על Vercel בחינם. ב-3 החודשים הראשונים — תחת 50 GB bandwidth, הכל רץ ב-Hobby plan. אחרי שקיבלו תקציב ראשון, עברו ל-Pro (20$ לחודש) — עיקר השיפור: preview deployments מהירים, analytics מתקדם, ו-support אנושי כשהיו שאלות דחופות.
הלקח: התחילו בחינם. עברו ל-Pro רק כשיש סיבה עסקית ברורה — טרפיק, צוות, או צורך ב-support.
איך מתחילים עם Vercel — 3 צעדים:
- נרשמים: נכנסים ל-vercel.com, לוחצים "Sign Up with GitHub". Vercel מקבלת הרשאה לקרוא את ה-repos שלכם (קריאה בלבד כברירת מחדל).
- Import Project: בלשונית הראשית — "Add New Project". בוחרים repo מתוך הרשימה של GitHub. Vercel מזהה אוטומטית שזה Next.js ומגדירה build command ו-output directory.
- Deploy: לוחצים "Deploy". 60-120 שניות של build, ומקבלים URL חי — משהו כמו
my-portfolio-xxx.vercel.app.
היכנסו ל-vercel.com, לחצו Sign Up עם GitHub. אל תפרסו פרויקט עדיין — רק תסתכלו על ה-dashboard הריק. שימו לב לכפתור הכחול "Add New Project" בראש הדף — זה הכל מה שאתם צריכים לדעת בשלב הזה.
היתרון שיעשה לכם שינוי: אחרי שהפרויקט מחובר, כל git push ל-main גורם לפריסה חדשה. שיניתם טקסט בכפתור? git commit + git push = תוך 90 שניות האתר מעודכן. אין תסריטי FTP, אין העלאות ידניות. זה מרגיש קסום בפעם הראשונה, וזה הופך לשגרה תוך יום.
תמונות בגודל 4K (5-10 MB כל אחת) יכולות לגמור את ה-100 GB bandwidth של Vercel תוך חודש אחד אם יש לכם 10,000 מבקרים. הפתרון: השתמשו ב-next/image שמייצר אוטומטית גרסאות WebP מוקטנות, או העלו תמונות ל-Cloudinary/Unsplash ולא ישר לפרויקט.
חישוב מהיר: 10,000 מבקרים × 10 MB לדף = 100 GB. זה הגבול המדויק של החינם. תמונה אחת שגדולה פי 2 — וחרגתם.
Preview Deployments: זו הפיצ'ר שהופכת את Vercel למצטיינת. כל פעם שאתם יוצרים Pull Request ב-GitHub, Vercel בונה גרסה זמנית של האתר עם כתובת כמו my-project-git-feature-branch.vercel.app. זה מאפשר לבדוק שינוי לפני שהוא עולה לאוויר, לשלוח לינק למנהל המוצר לאישור, או להראות ללקוח מהסלולר בזמן ישיבה.
Vercel Analytics: בתשלום נוסף (בחינם יש גרסה מצומצמת). מודד Core Web Vitals (LCP, FID, CLS) — המדדים שגוגל משתמש בהם לדירוג SEO. לא נעבור לעומק כאן, אבל דעו שזה כלי שימושי כשהאתר מתחיל לצבור טרפיק.
בקשו מ-AI: "תן לי 3 סיבות למה Vercel מתאים לפרויקט Next.js יותר מפלטפורמות אחרות." קראו את התשובה ושימו לב אם Vercel מופיעה גם בחסרונות — ה-AI אמור להזכיר גם שמחיר ה-Pro לפרויקטים גדולים עולה מהר.
Netlify — האלטרנטיבה הוותיקה
Netlify קדמה ל-Vercel בכמה שנים. היא הגיעה לשוק ב-2014, הרבה לפני שהפך לנורמלי לפרוס אתר בלחיצת כפתור. הרבה מהכלים שאנחנו לוקחים כמובן מאליו היום (git-based deployment, CDN אוטומטי, SSL חינם) — Netlify הייתה שם הראשונה.
מה Netlify נותנת בחינם (Free tier):
- 100 GB bandwidth בחודש — זהה ל-Vercel
- 300 דקות build זמן — פחות מ-Vercel (6,000), אבל מספיק לרוב הפרויקטים
- Netlify Forms — קולט טפסים בלי לכתוב backend. 100 submissions בחודש בחינם
- Netlify Identity — מערכת אימות משתמשים מובנית (1,000 משתמשים פעילים בחינם)
- Netlify Functions — serverless functions (125,000 calls בחודש)
- Split Testing / A-B — ניסויי A/B מובנים ללא קוד
- Deploy previews — לכל PR (כמו Vercel)
- SSL אוטומטי + דומיין חינמי
yourproject.netlify.app
איפה Netlify בולטת מעל Vercel:
- Netlify Forms — הפיצ'ר הכי שימושי למי שבונה אתרי תדמית. מוסיפים
data-netlify="true"לטופס, ו-Netlify קולטת submissions אוטומטית, מציגה אותם ב-dashboard, ושולחת email התראה. בלי backend, בלי database. - Netlify Identity — מערכת login מלאה (email+password, Google, GitHub) שמתלבשת על האתר שלכם בלי קוד. שימושי ל-member portals או אתרים שצריכים user accounts פשוטים.
- Split Testing — A/B testing ברמת ה-deployment. אפשר להציג branch אחד ל-50% מהמבקרים ו-branch אחר לשאר, בלי שינוי קוד.
איפה Vercel מנצחת:
- Next.js integration — Vercel מכירה כל פיצ'ר של Next.js ברגע שהוא יוצא. Netlify תמיד כמה שבועות מאחור.
- Edge functions ביצועים — Vercel ב-Edge Runtime נותן ביצועים טובים יותר ל-Next.js
- Build times — 6,000 דקות ב-Vercel לעומת 300 ב-Netlify free tier
מחיר Pro של Netlify: 19$ לחודש למשתמש. דומה ל-Vercel, עם 1 TB bandwidth, יותר form submissions ו-functions invocations.
פתחו את netlify.com/pricing בטאב נפרד. חפשו את המחיר של Pro — תכתבו ב-notepad כמה זה לחודש, וכמה זה ביחס ל-Vercel. שמרו את המספרים האלה — הם עוזרים בבחירה.
מתי לבחור Netlify על פני Vercel:
| מצב | למה Netlify |
|---|---|
| אתר תדמית עם טופס יצירת קשר | Netlify Forms — אין צורך ב-backend או API מיוחד |
| אתר לקהילה או חברים/member portal | Netlify Identity — login מובנה בלי קוד |
| רוצים לעשות A/B testing פשוט | Split Testing מובנה — בלי כלים חיצוניים |
| הפרויקט לא Next.js (Astro, Vite, SvelteKit) | Netlify מצוינת לכל SSG, לא תלויה ב-Next.js |
עמותה ישראלית שבונה אתר התנדבות — 5 דפים + טופס הרשמה להתנדבות. ב-Vercel היו צריכים לכתוב API endpoint לקלוט את הטופס. ב-Netlify — מוסיפים attribute אחד לטופס, וכל submission מגיע במייל למתאם ההתנדבות. אפס backend, אפס עלות, הכל פעיל ב-30 דקות.
חסרונות של Netlify שכדאי לדעת:
- Build minutes מוגבלים (300/חודש) — אם הפרויקט בונה הרבה (10 פריסות ביום × 3 דקות = 900 בחודש), חוצים את הגבול.
- Next.js 15 עם App Router ומאפיינים חדשים — לא תמיד עובד מצוין ב-Netlify. יש workarounds, אבל Vercel חלקה יותר.
- Forms — 100 בחודש בלבד בחינם — לאתר עם תנועה גבוהה תצטרכו Pro.
Cloudflare Pages — המתמודד הנדיב
Cloudflare היא אחת מחברות ה-CDN הגדולות בעולם. הם מנהלים בערך 20% מהתעבורה של כל האינטרנט. ב-2020 הם השיקו Cloudflare Pages — פלטפורמת hosting שרוכבת על ה-CDN העצום שלהם.
התוצאה: free tier נדיב משמעותית מהמתחרים, כי התשתית של Cloudflare כבר קיימת לשימושים אחרים.
מה Cloudflare Pages נותנת בחינם:
- Unlimited bandwidth — כן, ללא הגבלה. אפילו עם מיליון מבקרים בחודש, עדיין חינם.
- 500 builds בחודש — מספיק לרוב הפרויקטים (16 ביום)
- 500 פרויקטים בחשבון אחד (Vercel נותן 200)
- Workers — 100,000 requests ביום בחינם (המקבילה ל-edge functions)
- D1 database — SQLite בענן, עם 5 GB אחסון חינם
- R2 storage — S3-compatible object storage (10 GB חינם)
- SSL + דומיין חינמי
yourproject.pages.dev
בקשו מ-AI: "למה Cloudflare Pages יכול להרשות לעצמו bandwidth unlimited בחינם?" התשובה קשורה לכך ש-Cloudflare כבר בעלים של רשת CDN עצומה — הם לא משלמים bandwidth כי זה כבר שלהם.
איפה Cloudflare Pages בולטת:
- Bandwidth אין-סופי — אם האתר שלכם צפוי לפרוץ (ויראלי ברשת, פרסום בפריים-טיים), Cloudflare הוא הפתרון היחיד שלא יעקוץ אתכם ב-overage fees.
- Cloudflare Workers — edge functions עם ביצועים מהמהירים בעולם. רץ ב-300+ מיקומים גלובלי, אפילו בתל אביב (יש Point of Presence של Cloudflare בישראל).
- Stack מלא בחינם — Pages + Workers + D1 (database) + R2 (storage) + KV (key-value) = יכולים לבנות SaaS מלא בחינם (עד 100k req/day).
- Security מובנה — Cloudflare היא חברת security במקור. DDoS protection, bot mitigation, WAF — הכל כבר פעיל.
חסרונות:
- Next.js integration פחות חלק — תומכים בזה, אבל לפעמים דורש adapter (
@cloudflare/next-on-pages). לא הכל עובד מיידית. - פחות friendly ל-SSR מורכב — אם אתם עושים heavy server-side rendering עם Next.js 15, Vercel יותר חלקה.
- UI פחות מלוטש — ה-dashboard של Cloudflare הוא "מהנדסי". לא כזה יפה כמו של Vercel.
- D1 ו-R2 עדיין בשלבי beta יחסית — פועלים, אבל API משתנה. לא הייתי בונה עליהם SaaS מסחרי קריטי בלי גיבוי.
מחיר Pro: Cloudflare Pages לבד נשאר חינמי לשימוש עסקי. תשלומים מתחילים רק אם חוצים את המגבלות של Workers (125k invocations ביום = 5$ לחודש) או מעמיסים עוד שירותים.
בלוג ישראלי בתחום הטכנולוגיה פרס על Cloudflare Pages. פוסט אחד התפרץ ברדיט וב-Hacker News — 250,000 כניסות ב-48 שעות. Bandwidth שחרג משמעותית מ-100 GB. על Vercel חינמי — האתר היה "חרג" וסגור. על Cloudflare Pages — הכל עבד בחינם, בלי שיחה מאחד הנציגים, בלי overage.
הלקח: אם יש סיכוי של פרסום ויראלי או עליות-פתאום בטרפיק — Cloudflare Pages קונה שקט נפשי.
Next.js עם App Router, Server Components, streaming, ו-middleware — לא תמיד מתנהג כמו שצריך על Cloudflare Pages. יש adapter רשמי (@cloudflare/next-on-pages) אבל הוא דורש הגדרות נוספות ולפעמים יש התנהגויות מוזרות. אם זה Next.js 15 מלא — קחו Vercel. אם זה Astro/SvelteKit/Vite static — Cloudflare Pages בטוח.
GitHub Pages — הפשוט והחינמי
GitHub Pages היא השירות הוותיק ביותר ברשימה — קיים מ-2008. הוא גם הכי פשוט. אם הפרויקט שלכם כבר ב-GitHub, הפעלת Pages היא כפתור אחד.
מה GitHub Pages נותנת בחינם:
- 100 GB bandwidth בחודש
- 1 GB אחסון לכל repo
- 10 builds בשעה (מספיק לרוב)
- SSL אוטומטי
- דומיין חינמי
username.github.io/repo-nameאוusername.github.io(אם ה-repo נקרא ככה) - Custom domain — אפשר לחבר דומיין שלכם חינם
מה אין ב-GitHub Pages:
- אין SSR — רק אתרים סטטיים
- אין serverless functions — אין backend, אין API routes, אין dynamic rendering
- אין support ל-Next.js מלא — רק
next buildעםoutput: 'export'(static export). כל מה ש-Next.js עושה בשרת לא עובד. - אין preview deployments — רק main branch מתעדכן
- אין analytics — צריך להוסיף Google Analytics ידנית
למה בכל זאת לבחור GitHub Pages?
- פורטפוליו אישי סטטי — אם בניתם פורטפוליו עם Astro או Vite (בלי backend), GitHub Pages מושלם. פשוט. חינם. אין סיכוי לחשבון מפתיע.
- אתר תיעוד (docs) — הרבה פרויקטים open-source משתמשים ב-GitHub Pages לאתר התיעוד שלהם. זה סטנדרט.
- דף "הדגמה" של פרויקט — אם יצרתם קומפוננטה או ספרייה, אפשר להדגים אותה בעמוד GitHub Pages של אותו repo.
פתחו repo קיים ב-GitHub שלכם. היכנסו ל-Settings → Pages. שימו לב לאופציות — "Source" נותן לבחור branch, "Custom domain" מאפשר לחבר דומיין. אל תפעילו עדיין — רק תאתרו איפה כל אופציה.
הגבלה הכי חשובה שצריך לדעת: GitHub Pages לא ידע להריץ npm run build לפרויקט Next.js ולפרוס את התוצאה — לפחות לא בלי GitHub Actions. לפרויקטים מתקדמים, זה אומר שצריך להגדיר GitHub Actions workflow שמבצע את ה-build. זה אפשרי, אבל זה הופך את "הפשטות" של GitHub Pages לפחות פשוטה.
פתרון מעשי לפרויקט Next.js על GitHub Pages: צריך להוסיף ל-next.config.js את output: 'export', להגדיר GitHub Action שבונה ומעלה, ולהשלים עם העובדה שאין SSR. זה עובד — אבל לרוב Vercel או Cloudflare Pages שוות את הטרחה החסכתם.
אם הפרויקט שלכם בנוי ב-Astro (פרק 03) או Vite + React כאתר סטטי — GitHub Pages מושלם. אם הוא Next.js עם App Router — זה יעבוד, אבל תעבדו קשה יותר מאשר אם הייתם בוחרים Vercel. הכלל הכללי: GitHub Pages לאתרים פשוטים, Vercel/Netlify לפרויקטים מתקדמים.
טבלת השוואה מלאה — 4 הפלטפורמות זו מול זו
זו אחת משתי הדליברבלס של הפרק. שמרו את הטבלה הזו כ-reference — היא תעזור לכם להחליט כל פעם מחדש, ולא תצטרכו לזכור מספרים.
| פיצ'ר | Vercel (Hobby) | Netlify (Free) | Cloudflare Pages | GitHub Pages |
|---|---|---|---|---|
| Bandwidth | 100 GB/חודש | 100 GB/חודש | Unlimited | 100 GB/חודש |
| Build minutes | 6,000/חודש | 300/חודש | 500 builds | 10/שעה |
| Serverless Functions | 100 GB-hours | 125k calls | 100k req/day | אין |
| Edge Functions | 500k/חודש | 3M calls | 100k req/day | אין |
| Preview deployments | ✓ לכל PR | ✓ לכל PR | ✓ לכל PR | ✗ |
| Custom domain | ✓ חינם | ✓ חינם | ✓ חינם | ✓ חינם |
| SSL אוטומטי | ✓ | ✓ | ✓ | ✓ |
| Forms מובנים | ✗ | ✓ (100/חודש) | ✗ | ✗ |
| Identity / Auth | ✗ | ✓ (1,000 msg) | ✗ | ✗ |
| Database integrated | ✗ (בתשלום) | ✗ | ✓ D1 (5 GB) | ✗ |
| Object storage | ✗ | ✗ | ✓ R2 (10 GB) | ✗ |
| Next.js support | מצוין | טוב | סביר (adapter) | רק static export |
| Pro plan (לחודש) | $20 | $19 | $20 (Workers) | $4 (GitHub Pro) |
| שימוש מסחרי בחינם | ✗ | ✓ | ✓ | ✓ |
ההמלצה המסכמת:
- Vercel — פרויקט Next.js עם SSR / App Router. האינטגרציה הכי חלקה.
- Netlify — צריכים Forms או Identity מובנים. Astro/SvelteKit/Vite.
- Cloudflare Pages — טרפיק גבוה או חוסכי מדי. פרויקט סטטי או קל.
- GitHub Pages — פורטפוליו סטטי טהור, אתר תיעוד. הכי פשוט.
| סוג הפרויקט | פלטפורמה מומלצת | למה |
|---|---|---|
| פורטפוליו / אתר אישי סטטי | GitHub Pages או Cloudflare Pages | חינם לחלוטין, פשוט, מספיק |
| אתר תדמית עם טופס יצירת קשר | Netlify | Forms מובנים — חוסך backend |
| Next.js עם SSR / App Router | Vercel | האינטגרציה הכי חלקה |
| בלוג בתנועה גבוהה / ויראלי | Cloudflare Pages | Unlimited bandwidth — ישן טוב |
| אתר תיעוד (docs) | GitHub Pages או Cloudflare Pages | פשוט, סטנדרט בקהילה |
| SaaS MVP עם database | Vercel + Supabase / Cloudflare Pages + D1 | תלוי בכלי פיתוח |
| חנות אונליין פשוטה | Vercel | SSR חלק, קל לחבר Stripe |
| אתר חברי קהילה עם login | Netlify | Netlify Identity — חוסך auth setup |
סמנו בטבלה 3 שורות שהכי חשובות לפרויקט שלכם. לדוגמה: אם אתם בונים SaaS, חשוב bandwidth + serverless functions + database. אם פורטפוליו — חשוב רק בסיסי. על סמך ה-3 שסימנתם, איזו פלטפורמה נראית לכם הכי מתאימה?
CI/CD ו-Continuous Deployment — push = deploy
CI/CD הוא הקיצור המשמעותי ביותר בפרק הזה. זה קורה בכל פעם שאתם דוחפים קוד ל-GitHub, וזה מה שהופך "הרגישים בפלטפורמות חדשות" ל-"שגרה פרודוקטיבית".
פירוק הקיצור:
- CI — Continuous Integration (אינטגרציה רציפה): תהליך שמריץ אוטומטית בדיקות על הקוד כל פעם שמישהו דוחף שינוי. בדיקות אוטומטיות, linting, type checking.
- CD — Continuous Deployment (פריסה רציפה): תהליך שמעלה את הקוד לאוויר באופן אוטומטי ברגע שה-CI עבר בהצלחה.
מה קורה טכנית בכל push:
- אתם:
git push origin main - GitHub מקבל את השינוי
- Webhook מודיע לפלטפורמה (Vercel/Netlify/Cloudflare) שיש שינוי
- הפלטפורמה מורידה את הקוד העדכני
- מריצה
npm installלהתקנת dependencies - מריצה
npm run buildלבניית האתר - אם build הצליח — מעלה את הקבצים החדשים ל-CDN
- מעדכנת את כל 300+ שרתי ה-CDN בעולם (לוקח 10-30 שניות)
- השינוי חי באתר
סה"כ: 60-120 שניות. ללא שום התערבות ידנית אחרי ה-push.
חשבו על הפעם האחרונה ששיניתם משהו בפרויקט (צבע כפתור, טקסט, תמונה). כמה זמן לקח עד שזה היה חי? בלי CI/CD — זה דורש העלאה ידנית ב-FTP ושרת. עם CI/CD — 90 שניות מהרגע שלחצתם commit.
Preview Deployments — הפיצ'ר שעושה את זה קסום: בכל פעם שאתם פותחים Pull Request ב-GitHub (לא מיזוג — רק PR), הפלטפורמה בונה גרסה נפרדת של האתר לאותה תכונה חדשה. אותה תכונה חיה ב-URL זמני. כמה יתרונות:
- בדיקה בלי סיכון: רואים את השינוי בסביבת production אמיתית לפני שהוא עולה לאתר הראשי
- שיתוף מהיר: שולחים לינק למנהל מוצר, לקוח, או עמית — הם רואים בדיוק את השינוי
- בדיקה מהסלולר: ה-URL עובד מכל מכשיר — בודקים Mobile responsive בקלות
- היסטוריה: לכל PR יש URL משלו — אפשר להשוות גרסאות
Build Commands — מה צריך לדעת: בכל פרויקט, הפלטפורמה צריכה לדעת איך לבנות את האתר. היא מזהה אוטומטית רוב המצבים, אבל לפעמים צריך להגדיר ידנית:
| Framework | Build command | Output directory |
|---|---|---|
| Next.js | next build | .next (אוטומטי ב-Vercel) |
| Astro | npm run build | dist |
| Vite + React | npm run build | dist |
| SvelteKit | npm run build | .svelte-kit |
| Next.js static export | next build && next export | out |
שורה תחתונה: בפעם הראשונה שאתם פורסים, הפלטפורמה תנסה לזהות אוטומטית. אם זה לא עובד — שואלים את ה-AI: "מה ה-build command לפרויקט [framework] על [platform]?"
אם יש לכם פרויקט שפרוס — היכנסו ל-dashboard של הפלטפורמה וחפשו את הלשונית "Deployments". תראו רשימה של כל ה-builds האחרונים — הצלחות וכישלונות. הבינו: כל שורה ברשימה היא commit שדחפתם ל-GitHub.
דומיין מותאם אישית — DNS ו-SSL
הפרויקט שלכם פרוס על my-project-xyz.vercel.app. זה עובד. אבל כמו עסק רציני — אתם רוצים my-name.com. זה קוסמטי וגם מקצועי. וזה דורש שני מרכיבים: קניית דומיין ו-הגדרת DNS.
איפה קונים דומיין בישראל:
| ספק | מחיר .com שנתי | מחיר .co.il שנתי | יתרונות |
|---|---|---|---|
| Domain The Net (ישראלי) | כ-60 ש"ח | כ-60-80 ש"ח | תמיכה בעברית, תשלום בשקלים |
| Cloudflare Registrar | 9-10 דולר | לא מוכר | מחיר עלות, בלי markup. תמיד הכי זול. |
| Namecheap | 9-15 דולר (שנה ראשונה) | לא מוכר | ממשק נוח, תמיכה סבירה |
| GoDaddy | 12-60 דולר (משתנה) | לא מוכר | גדולים, אבל עם upsells אגרסיביים |
| ISOC-IL (.il בלבד) | לא | כ-70 ש"ח | הרשם הרשמי של .il, דרך ספקים מורשים |
ההמלצה: לרוב הפרויקטים — Cloudflare Registrar. הם מוכרים דומיינים במחיר עלות (בלי markup), מה שאומר 10$ לשנה ל-.com ללא הפתעות. אם אתם רוצים .co.il — Domain The Net או ספק ישראלי אחר.
פתחו whois.com או לחלופין whois בתוך cloudflare.com/registrar. חפשו את הדומיין שאתם רוצים (לדוגמה: my-name.com). האם הוא פנוי? אל תקנו עדיין — רק תכתבו בצד את המחיר המוצע.
מה זה DNS באמת: דמיינו שהאינטרנט הוא עיר ענקית. כל שרת הוא בית עם כתובת (IP address, כמו 76.76.21.93). אבל אנשים לא זוכרים מספרים — הם זוכרים שמות. DNS הוא ספר הטלפונים של האינטרנט — הוא מתרגם google.com לכתובת IP, ו-my-name.com לשרת שהפרויקט שלכם רץ עליו.
סוגי רשומות DNS שצריך להכיר:
| סוג | מה זה | מתי משתמשים |
|---|---|---|
| A | מפנה שם לכתובת IPv4 (כמו 76.76.21.93) | חיבור דומיין ראשי (my-name.com) לשרת |
| AAAA | כמו A אבל ל-IPv6 | שרתים מודרניים שתומכים ב-IPv6 |
| CNAME | מפנה שם לשם אחר (לא IP) | חיבור subdomain (www.my-name.com) ל-vercel.app |
| MX | רשומת דואר — איפה מקבלים email | חיבור לשירותי email (Google Workspace, Zoho) |
| TXT | טקסט חופשי — לאימותים | אימות בעלות (Google verification, SPF) |
חיבור דומיין ל-Vercel — 5 צעדים:
- ב-Vercel dashboard: Settings → Domains → Add. מקלידים
my-name.com. - Vercel מציגה 2 רשומות DNS להוסיף: רשומת A (לדומיין הראשי) ורשומת CNAME (ל-www).
- נכנסים ל-dashboard של ה-registrar (Cloudflare/Namecheap/Domain The Net) בלשונית DNS.
- מוסיפים את שתי הרשומות:
- Type: A | Name: @ | Value: 76.76.21.93
- Type: CNAME | Name: www | Value: cname.vercel-dns.com
- ממתינים 5-60 דקות (propagation). Vercel תציג "Valid Configuration" כשהדומיין פעיל. SSL ינופק אוטומטית דרך Let's Encrypt.
הוספתם רק את הדומיין הראשי (my-name.com) ולא את ה-www (www.my-name.com). חצי מהמבקרים שמקלידים "www.my-name.com" מקבלים דף שגיאה או לא מגיעים. תמיד מוסיפים את שני הרישומים — גם A לדומיין הראשי וגם CNAME ל-www. בנוסף, ב-Vercel אפשר להגדיר redirect אוטומטי מ-www למה-name.com (או להיפך).
SSL — ההצפנה שלא צריך לעבוד עליה: פעם היה צריך לקנות אישור SSL (100-500 ש"ח לשנה). היום — Let's Encrypt מנפיק SSL חינם, וכל הפלטפורמות (Vercel, Netlify, Cloudflare, GitHub Pages) עושות את זה אוטומטית ברגע שהדומיין פעיל. המנעול הירוק בדפדפן — מופיע תוך כמה דקות, ואז מתחדש אוטומטית כל 3 חודשים. אפס התערבות.
| מצב | איפה לקנות | למה |
|---|---|---|
| קהל ישראלי, רוצים .co.il | Domain The Net או ספק מורשה ב-ISOC-IL | .co.il זמין בעיקר דרך ספקים ישראליים |
| פרויקט גנרי, רוצים .com זול | Cloudflare Registrar | מחיר עלות (9-10$), בלי upsells |
| פיצ'ר מתקדם — תוספות / pre-pay / transfer | Namecheap | ממשק נוח, עוזר בהעברת דומיין קיים |
| פרויקט של מפתחים | .dev, .io — ב-Cloudflare / Porkbun | tld מגניבים, נתמכים ברוב הפלטפורמות |
| פרויקט סטארט-אפ בעברית | .co.il + .com ביחד | .com לבינלאומי, .co.il לישראלי |
Environment Variables — סודות שלא שמים בקוד
כמעט כל פרויקט אמיתי צריך סודות: API key של OpenAI, Stripe secret key, connection string ל-database, סיסמה ל-SMTP. הבעיה — אם תשימו אותם בקוד, והקוד ב-GitHub הציבורי, כל העולם רואה. האקרים יגלו תוך דקות ויעשו שימוש לרעה.
הפתרון: Environment Variables (משתני סביבה). במקום לשים סודות בקוד, שמים אותם בהגדרות הפלטפורמה או בקובץ .env.local שלא עולה ל-Git.
איך זה עובד בקוד:
// במקום זה (רע):
const apiKey = "sk-proj-abc123-xyz789"
fetch('https://api.openai.com/v1/chat', {
headers: { 'Authorization': `Bearer ${apiKey}` }
})
// עושים את זה (טוב):
const apiKey = process.env.OPENAI_API_KEY
fetch('https://api.openai.com/v1/chat', {
headers: { 'Authorization': `Bearer ${apiKey}` }
})
המשתנה process.env.OPENAI_API_KEY מוגדר במקום אחד — לא בקוד. בפיתוח מקומי, הוא מגיע מקובץ .env.local. ב-production, הוא מגיע מהגדרות הפלטפורמה.
חשבו על 3 סודות שיש (או יהיו) בפרויקט שלכם: API key של OpenAI, Stripe secret, חיבור ל-database. רשמו אותם. אף אחד מהם לא אמור להיות בקוד — הם כולם צריכים להיות ב-env vars.
Frontend vs Backend — ההבדל הקריטי: משתני סביבה ב-Next.js מתחלקים לשני סוגים, לפי אם הם נחשפים ב-browser או לא.
| סוג | פורמט | איפה זמין | דוגמה |
|---|---|---|---|
| Server-side (סודי) | שם רגיל | רק בקוד שרת (API routes, Server Components) | OPENAI_API_KEY |
| Public (נחשף בדפדפן) | NEXT_PUBLIC_ prefix |
זמין גם ב-client components | NEXT_PUBLIC_GA_ID |
מפתחים טירוניים מוסיפים NEXT_PUBLIC_ ל-OPENAI_API_KEY כי ככה זה "עובד" גם בדפדפן. זו חשיפה קריטית — ה-API key מופיע בקוד ה-JavaScript הציבורי של האתר, וכל אחד שפותח DevTools רואה אותו. אז משתמש במפתח שלכם לשאילתות OpenAI — על החשבון שלכם. API keys סודיים לעולם לא עם NEXT_PUBLIC_. הם צריכים להיות בשרת בלבד (API routes).
קבצי .env שחייבים להכיר:
.env.local— פיתוח מקומי. לא עולה ל-Git (כתוב ב-.gitignore). זה הקובץ שעובדים איתו ב-localhost..env.production— production. לרוב לא צריך, כי הפלטפורמה עצמה מנהלת את זה בדשבורד..env.example— דוגמה בלי ערכים אמיתיים. עולה ל-Git. מציג לאחרים איזה משתנים הפרויקט צריך. חשוב מאוד לשיתוף פעולה!
דוגמה ל-.env.example:
# .env.example — דוגמה. העתיקו ל-.env.local ומלאו בערכים אמיתיים.
OPENAI_API_KEY=
STRIPE_SECRET_KEY=
DATABASE_URL=
NEXT_PUBLIC_GA_ID=
NEXT_PUBLIC_SITE_URL=http://localhost:3000
הגדרה ב-Vercel dashboard:
- Project → Settings → Environment Variables
- לכל משתנה: מקלידים name ו-value
- בוחרים סביבה: Production / Preview / Development (בדרך כלל כל השלוש)
- Save. מהפריסה הבאה המשתנה זמין ב-
process.env.XXX
אם יש לכם פרויקט עם API keys — פתחו את הקוד וחפשו "sk-" או "key=" או "secret". יש כאלה בקוד ב-Git? אם כן — שימו אותם ב-env var עכשיו, ו-rotate (החליפו) את המפתח מיד. סודות שהיו ב-Git פעם — נחשבים לפרוצים.
| סוג המשתנה | prefix | היכן מוגדר | דוגמה |
|---|---|---|---|
| API key סודי (OpenAI, Stripe) | בלי prefix | Vercel dashboard + .env.local | OPENAI_API_KEY |
| Database URL | בלי prefix | Vercel dashboard + .env.local | DATABASE_URL |
| Google Analytics ID (ציבורי) | NEXT_PUBLIC_ | Vercel dashboard + .env.local | NEXT_PUBLIC_GA_ID |
| Site URL (ציבורי) | NEXT_PUBLIC_ | Vercel dashboard + .env.local | NEXT_PUBLIC_SITE_URL |
| Feature flag | תלוי — סודי או לא | Vercel dashboard | ENABLE_NEW_CHECKOUT |
Edge Functions ו-Serverless Functions
אחד הפיצ'רים שמבדילים פלטפורמות מודרניות מ-hosting קלאסי הוא היכולת להריץ קוד על השרת — בלי לנהל שרת. זה קורה דרך שני סוגים של פונקציות: Serverless Functions ו-Edge Functions.
Serverless Function — קוד שרץ לפי דרישה:
- רץ רק כשמישהו קורא ל-endpoint מסוים
- רץ על שרת אחד מרכזי (בדרך כלל בצפון-מזרח ארה"ב או אירלנד)
- יש לו "cold start" — אם לא היה שימוש, הפעם הראשונה לוקחת 500-2000 מילישניות
- אין הגבלת זמן קשה (עד 10-60 שניות, לפי הפלטפורמה)
- תומך ב-Node.js מלא — כל ספרייה, כל API
Edge Function — קוד שרץ קרוב למשתמש:
- רץ על CDN — קרוב גיאוגרפית למשתמש (תל אביב, לונדון, ניו יורק)
- אין cold start — מוכן מיד
- תגובה מהירה משמעותית (50-100 מילישניות vs 500-2000)
- מגבלות קפדניות: זמן ריצה קצר (30 שניות), אין גישה ל-Node.js APIs מסוימים (fs, child_process)
- מושלם ל: A/B testing, redirects, auth checks, geolocation
בקשו מ-AI: "תן לי דוגמה קצרה של edge function ב-Next.js, ושל serverless function ב-Next.js. מה ההבדל בקוד?" האם ה-AI מסביר את ה-runtime? (הדגשת export const runtime = 'edge').
דוגמה ב-Next.js App Router:
// app/api/hello/route.ts
// Serverless (ברירת מחדל):
export async function GET() {
return Response.json({ message: "Hello" })
}
// Edge (דורש שורה נוספת):
export const runtime = 'edge'
export async function GET() {
return Response.json({ message: "Hello from edge" })
}
מתי להשתמש בכל אחד:
| תרחיש | Edge או Serverless? | למה |
|---|---|---|
| אימות משתמש מהיר | Edge | מהיר, קרוב למשתמש, אין צורך ב-Node APIs |
| חיבור לפי מיקום גיאוגרפי | Edge | ב-Edge יודעים את המיקום מיד |
| שליחת מייל (עם Nodemailer) | Serverless | Edge לא תומך בספריות Node מלאות |
| עיבוד תמונה (sharp) | Serverless | Edge אין גישה לקבצים |
| קריאה ל-OpenAI API | תלוי. רגיל — serverless. אם צריך streaming — Edge | Edge תומך ב-streaming responses |
| חיבור ל-Postgres database | Serverless (בד"כ) | Edge צריך driver מיוחד (Neon, Supabase) |
סטארט-אפ ישראלי בונה צ'אט-בוט שמבוסס על GPT-4. יש להם שתי פונקציות:
- auth/check — בודק אם המשתמש מחובר, Edge function. רץ ב-50ms מתל אביב.
- chat/stream — שולח שאילתה ל-OpenAI ומחזיר תשובה ב-streaming. גם Edge כדי שה-streaming יגיע מהר למשתמש.
- history/save — שומר את השיחה ל-Postgres. Serverless כי ה-driver של Postgres דורש Node.
החלטה מושכלת לפי סוג העבודה — לא בלק-אנד-וייט.
שלושה דגלים אדומים שכדאי לשים לב אליהם לפני שבוחרים Edge: (1) אם הקוד שלכם קורא fs.readFile, path, או child_process — לא יעבוד ב-Edge, תצטרכו Serverless. (2) אם אתם מתחברים ל-Postgres או MySQL עם driver רגיל (pg, mysql2) — אין תמיכה ב-Edge; תצטרכו HTTP-based driver כמו @neondatabase/serverless או @vercel/postgres. (3) אם הספרייה שאתם משתמשים בה (כמו sharp לעיבוד תמונה או puppeteer ל-scraping) מסתמכת על קבצים בינאריים של Node.js — Edge לא יכול להריץ אותה.
כלל אצבע פרקטי: התחילו הכל כ-Serverless (ברירת המחדל של Next.js). אחרי שהאתר חי ועובד, הסתכלו באיזה endpoints יש לטנסי תגובה גבוה או תנועה גבוהה, ורק אותם העבירו ל-Edge על ידי הוספת השורה export const runtime = 'edge'. אל תנסו לאפטם מראש — זה בזבוז זמן אם הפלטפורמה בכלל עונה מהר מספיק.
צ'קליסט פריסה — 12 צעדים מ-localhost לאתר חי
זו הדליברבל השנייה של הפרק. שמרו את 12 הצעדים האלה — הם ה-cheat sheet שלכם לכל פריסה חדשה. אם מדלגים על צעד, משהו יישבר. אם עוברים את כולם — האתר יהיה חי ועובד.
- וודאו שהפרויקט רץ מקומית.
npm run devעובד? אין שגיאות ב-console? אם כן — זה הבסיס. הפריסה רק מעתיקה את מה שעובד אצלכם. - הריצו build מקומי.
npm run build— אם זה נכשל אצלכם, זה ייכשל על כל פלטפורמה. תיקנו כאן לפני שתעלו. - צרו repo ב-GitHub. אם הפרויקט עדיין לא ב-GitHub —
git init, יצירת repo באתר,git remote add origin,git push. - וודאו ש-.gitignore תקין. node_modules/, .next/, .env.local — כולם אמורים להיות מחוץ ל-Git. בקשו מ-AI: "בדוק את ה-.gitignore שלי לפרויקט Next.js — מה חסר?"
- בחרו פלטפורמה. Vercel ל-Next.js. GitHub Pages לפורטפוליו סטטי. Cloudflare Pages לטרפיק גבוה. Netlify לאתר עם forms. (ראו הטבלה למעלה.)
- רשמו את הפרויקט בפלטפורמה. Import מ-GitHub. הפלטפורמה מזהה אוטומטית את ה-framework ואת ה-build command.
- הגדירו environment variables. פתחו את הקוד וחפשו
process.env. כל משתנה שמופיע שם — הוסיפו אותו ב-dashboard של הפלטפורמה לפני הפריסה הראשונה. - Deploy ראשון. לחצו על כפתור ה-Deploy. ממתינים 60-180 שניות. אם build הצליח — תקבלו URL זמני (
xxx.vercel.app). - בדקו את האתר ב-URL הזמני. גלשו בכל הדפים, בדקו טפסים, בדקו נייד. אם משהו לא עובד — זה כנראה חסר env var.
- קנו דומיין (אופציונלי). Cloudflare Registrar ל-.com (10$ לשנה). Domain The Net ל-.co.il (כ-70 ש"ח). רשמו את פרטי הגישה.
- חברו את הדומיין לפלטפורמה. ב-dashboard של הפלטפורמה: Add Domain. העתיקו את רשומות ה-DNS (A + CNAME) להגדרות של ה-registrar. המתינו עד 60 דקות.
- וודאו SSL פעיל. אחרי ש-DNS תקין, SSL יונפק אוטומטית. בדקו שהאתר עובד ב-
https://ושאין שגיאת certificate. בדקו גם שה-wwwמפנה נכון.
בפעם הראשונה זה לוקח 30-60 דקות. מהפעם השנייה — 10 דקות. התהליך הופך ל-מוזר-הטבעי אחרי פעם-פעמיים, וזו אחת מהסיבות שהפלטפורמות האלה שינו את הדרך שבה בונים אתרים.
הדפיסו את 12 הצעדים, או שמרו אותם כקובץ טקסט/הערה בסמארטפון. זה ה-cheat sheet שלכם לכל פריסה עתידית. אל תנסו לשנן — תחזרו לצ'קליסט כל פעם. זה בדיוק למה הוא קיים.
הפיתוי הגדול: לפרוס מהר בלי להגדיר env vars, בציפייה ש"אוסיף אותם אחרי". התוצאה: האתר עולה, אבל דפים עם API calls מחזירים 500 error. לא קריסה דרמטית — שקט. המשתמש רואה "משהו השתבש". תמיד לפני פריסה ראשונה: env vars מוגדרים.
איך לבקש מ-AI prompts פריסה מוכנים
הפלטפורמות קלות — אבל הפעם הראשונה דורשת הרבה החלטות קטנות. הדבר הכי יעיל: לבקש מ-AI (Claude, ChatGPT, V0) להנחות אתכם שלב-שלב. להלן 10 prompts שעובדים:
| מה אתם רוצים | Prompt ל-AI |
|---|---|
| פריסה ראשונה של Next.js ל-Vercel | "תדריך אותי שלב-שלב איך לפרוס פרויקט Next.js מ-GitHub ל-Vercel. הנח שאני מתחיל. תן לי את כל הצעדים, כולל איזה כפתורים ללחוץ." |
| חיבור דומיין לפלטפורמה | "יש לי דומיין [my-name.com] שקניתי ב-Cloudflare. האתר פרוס ב-Vercel. תן לי בדיוק אילו רשומות DNS להוסיף כדי לחבר את הדומיין." |
| הגדרת environment variables | "יש לי Next.js app עם OpenAI API. תסביר איך להגדיר את ה-API key כ-env var ב-Vercel, ואיך להשתמש בו בקוד בלי לחשוף אותו בדפדפן." |
| בחירת פלטפורמה | "יש לי פרויקט [Astro + Tailwind / Next.js + Supabase / Vite + React]. כ-500 מבקרים בחודש צפויים. מה הפלטפורמה הכי מתאימה — ולמה?" |
| תיקון build שנכשל | "הפריסה שלי ב-Vercel נכשלה עם השגיאה: [שגיאה מהלוג]. מה הסיבה? תיקון?" |
| העברה בין פלטפורמות | "יש לי פרויקט ב-Netlify ואני רוצה להעביר ל-Vercel. מה הצעדים? מה אני צריך להעביר ידנית (env vars, DNS)?" |
| הוספת Preview deployments | "איך אני מפעיל preview deployments ב-[Vercel/Netlify/Cloudflare Pages]? מה עושה PR ב-GitHub כשזה פעיל?" |
| Edge function ראשונה | "תן לי דוגמה של edge function ב-Next.js App Router, עם route בשם /api/geo שמחזיר את המיקום של המשתמש. הסבר גם מה ההבדל מ-serverless function." |
| Rollback אחרי פריסה גרועה | "פרסתי לפני 10 דקות ומשהו נשבר באתר. איך עושים rollback מהיר ב-Vercel לפריסה הקודמת?" |
| Custom 404 ו-500 ב-production | "פריסה של Next.js ב-Vercel — איפה שמים not-found.tsx ו-error.tsx כך שהם יופיעו רק ב-production, לא ב-dev?" |
בחרו prompt אחד מהטבלה ונסו אותו עם ה-AI שלכם. שימו לב: האם ה-AI מבקש מכם מידע נוסף לפני שהוא עונה (איזו פלטפורמה? איזה framework?)? אם כן — זה סימן טוב. AI שמשלים פרטים שלא נתתם ומניח — יכול לתת תשובה שגויה.
פרילנסר ישראלי שבונה אתרי נחיתה ללקוחות. מפעיל תהליך אוטומטי: Lovable מייצר את האתר → Push ל-GitHub → Cloudflare Pages מחבר אוטומטית → חיבור דומיין של הלקוח → שליחת URL. סה"כ 15 דקות לפריסה חדשה. בלי ה-CI/CD הזה — אותו פרויקט היה לוקח שעתיים של עבודה ידנית.
הלקח: ברגע שהזרימה ברורה — פריסה הופכת מ-"פרויקט של יום" ל-"ריצה של 15 דקות". זה השינוי שהפרק הזה מאפשר.
זמן: 25 דקות | רמה: מתחיל | תוצר: URL חי של אתר פרוס
- הכינו פרויקט Next.js ב-GitHub:
- אם אין לכם — בקשו מ-V0/Bolt: "Create a simple Next.js landing page with hero section and contact info"
- הורידו את הקוד והעלו ל-repo חדש ב-GitHub (ציבורי, בשביל free tier)
- היכנסו ל-vercel.com ולחצו "Sign Up with GitHub"
- Import Project: לחצו "Add New Project", בחרו את ה-repo שלכם, לחצו Import
- הגדרות Build: Vercel תזהה אוטומטית Next.js. ודאו ש:
- Framework: Next.js
- Build Command:
next build(כבר כתוב) - Output Directory:
.next(כבר כתוב)
- לחצו Deploy. המתינו 60-120 שניות. אם תראו מסך חגיגי עם confetti — עבדתם.
- בדקו את האתר: לחצו על ה-URL שמופיע. גלשו בדפים, בדקו responsiveness במובייל (F12 → Device mode).
- בונוס — שינוי + push: שנו טקסט בדף הבית מקומית,
git commit -m "update",git push. חזרו ל-Vercel dashboard — תראו deployment חדש פועל. אחרי 90 שניות — השינוי חי. זה הקסם של CI/CD.
תוצאה צפויה: URL חי (xxx.vercel.app) שאתם יכולים לשלוח לחבר או לעצמכם מהסלולר. ה-URL עובד 24/7, גם כשהמחשב סגור. ה-push האחרון שלכם עלה לאוויר תוך 90 שניות. זו הפעם הראשונה שהפרויקט שלכם באמת באינטרנט.
זמן: 20 דקות | רמה: בינוני | תוצר: טבלת השוואה מותאמת לפרויקט שלכם
- הגדירו את הפרויקט שלכם: סוג (SaaS / פורטפוליו / חנות / בלוג), צפי מבקרים בחודש, האם יש צורך ב-forms/auth/database
- פתחו את דפי התמחור של כל 4 הפלטפורמות:
- vercel.com/pricing
- netlify.com/pricing
- pages.cloudflare.com
- docs.github.com/pages
- מלאו טבלה של 10 שורות — הפיצ'רים החשובים לפרויקט שלכם:
| פיצ'ר | Vercel | Netlify | Cloudflare | GitHub Pages | |-------|--------|---------|------------|--------------| | Bandwidth | ? | ? | ? | ? | | Build minutes | ? | ? | ? | ? | | ... (10 שורות) | - לכל שורה, סמנו איזו פלטפורמה מנצחת (✓ או ★)
- סיכום: כתבו 2-3 משפטים — איזו פלטפורמה מנצחת עבור הפרויקט שלכם, ולמה
תוצאה צפויה: טבלה בת 10 שורות מותאמת לצרכי הפרויקט שלכם, עם סימון ברור של המנצח בכל פיצ'ר. הכרעה ברורה איזו פלטפורמה לבחור — לא כי "אמרו לי" אלא כי ניתוח ממוקד. שמרו את הטבלה — היא טובה גם לפרויקטים הבאים.
זמן: 30 דקות | רמה: בינוני | תוצר: אתר חי בדומיין שלכם עם HTTPS
- בחרו דומיין: חפשו ב-Cloudflare Registrar או Domain The Net. דומיין בודד (10-70 ש"ח לשנה). אופציה חסכונית: אפשר לתרגל עם subdomain חינמי (כמו freenom או קישור ממקום אחר).
- קנו את הדומיין. או דלגו על זה ותעשו תרגיל "יבש" עם דומיין קיים שיש לכם.
- ב-Vercel dashboard: פרויקט → Settings → Domains → Add. הוסיפו
my-name.com. - Vercel תציג שתי רשומות DNS להוסיף. העתיקו אותן (A record + CNAME).
- היכנסו ל-dashboard של ה-registrar בלשונית DNS. הוסיפו את שתי הרשומות בדיוק כפי ש-Vercel ביקשה.
- המתינו 5-60 דקות. תחזרו ל-Vercel ותרעננו. סטטוס "Invalid Configuration" אמור להפוך ל-"Valid Configuration".
- בדקו HTTPS: היכנסו ל-
https://my-name.com. אמור להיראות המנעול הירוק. בדקו גםhttps://www.my-name.com— צריך להפנות אוטומטית ל-my-name.com. - בונוס — Redirect: ב-Vercel Settings → Domains — הגדירו את
www.my-name.comכ-redirect ל-my-name.com(או הפוך — לפי מה שאתם מעדיפים).
תוצאה צפויה: האתר שלכם נגיש מ-https://my-name.com וגם מ-https://www.my-name.com. מנעול ירוק בכל המקרים. Redirect עובד. אתם מרגישים כמו בעלי עסק אמיתי — כי זה בדיוק מה שיש לכם.
זמן: 15 דקות | רמה: בינוני | תוצר: פרויקט שקורא API key מ-env ועובד ב-production
- קבלו API key חינמי. אופציות: OpenWeatherMap (חינם, 1000 קריאות ליום), Unsplash API, או NASA API. כל אחד בלי תשלום.
- בקשו מ-AI ליצור API route פשוט ב-Next.js ש משתמש ב-API key. לדוגמה:
// app/api/weather/route.ts export async function GET() { const key = process.env.OPENWEATHER_API_KEY const res = await fetch( `https://api.openweathermap.org/data/2.5/weather?q=Tel-Aviv&appid=${key}` ) const data = await res.json() return Response.json(data) } - צרו .env.local מקומית:
ודאו שזה ב-.gitignore (אמור להיות כברירת מחדל).OPENWEATHER_API_KEY=your_actual_key_here - בדקו מקומית:
npm run dev, גלשו ל-localhost:3000/api/weather. אתם אמורים לראות JSON עם מזג אוויר של תל אביב. - הוסיפו ל-Vercel: Project → Settings → Environment Variables. מוסיפים
OPENWEATHER_API_KEYעם הערך. בוחרים Production + Preview + Development. - Deploy מחדש. מחיצה push או Redeploy מה-dashboard.
- בדקו ב-production:
my-name.vercel.app/api/weather— אמור להחזיר את אותו JSON. - בדיקת אבטחה: פתחו DevTools → Network. האם ה-API key נחשף בבקשה? לא אמור — הקריאה יוצאת מהשרת, לא מהדפדפן. זה תפקיד ה-env var הסודי.
תוצאה צפויה: API route שעובד מקומית וב-production, עם API key שמוסתר — לא נמצא בקוד, לא ב-Git, לא נחשף בדפדפן. זו הדרך הנכונה להשתמש בסודות — בכל פרויקט, לכל החיים.
| תדירות | מה לעשות |
|---|---|
| יומי | אחרי כל שינוי משמעותי — git push. תנו ל-CI/CD לעבוד. אל תצברו שינויים במחשב. |
| יומי | לפני push גדול — הריצו npm run build מקומית. אם נשבר אצלכם, יישבר גם על הפלטפורמה. |
| שבועי | בדקו את ה-bandwidth שלכם ב-dashboard. האם אתם קרובים ל-80% מהחינם? אם כן — תכננו מה הצעד הבא (Pro או מעבר ל-Cloudflare Pages). |
| שבועי | סקרו את ה-deployments האחרונים. היו build failures? מה הסיבה? האם הן חוזרות? |
| שבועי | בדקו שה-env vars מסונכרנים בין Local ל-Production. משתנה חדש מקומי שלא הועבר — נשכח בקלות. |
| חודשי | בדקו את ה-Analytics (אם פעיל). מאיפה המבקרים? איזה דפים הכי פופולריים? |
| חודשי | ודאו שהדומיין שלכם לא בתהליך חידוש קרוב. דומיין שפג — האתר נופל מיידית. |
| חודשי | בדקו שה-SSL פעיל ומתחדש. בכל הפלטפורמות זה אוטומטי, אבל כדאי לוודא. |
פרסו פרויקט אחד — כל פרויקט — ל-Vercel תוך 10 דקות. זהו. הפעם הראשונה היא הגדולה. ברגע שראיתם פרויקט שלכם חי ב-URL ציבורי, מבינים את ה-CI/CD, ראיתם את הקסם של push = deploy — כל השאר הוא שינוי מדורג. אם אתם עדיין רק קוראים על פריסה ולא פרסתם בפועל — החמצתם את עיקר הערך של הפרק. פרסו עכשיו, אפילו פרויקט פשוט, אפילו בלי דומיין מותאם.
- אם יש לכם פורטפוליו סטטי טהור — איזו פלטפורמה תבחרו ולמה? (רמז: GitHub Pages או Cloudflare Pages — חינם, פשוט, אין צורך ב-SSR)
- מה ההבדל בין A record ל-CNAME, ומתי משתמשים בכל אחד? (רמז: A מפנה ל-IP, CNAME מפנה לדומיין אחר)
- למה לא שמים API keys ב-NEXT_PUBLIC_? (רמז: הם נחשפים בדפדפן, וכל אחד יכול לקרוא אותם ב-DevTools)
- איך preview deployment עוזר לכם לעבוד עם לקוח? (רמז: URL זמני לכל PR — לקוח רואה שינויים לפני שהם באתר הראשי)
- אתם בונים צ'אט-בוט עם streaming תגובות. Edge function או Serverless function? (רמז: Edge — בגלל ה-streaming המהיר והקרבה למשתמש)
אם עניתם נכון על 4 מתוך 5 — אתם מוכנים לפרק הבא, שבו נרכיב את ה-stack המלא.
הפרק הזה לקח את הפרויקט שלכם מהמחשב הביתי לאוויר. זו אחת ממזרקות הערך הגדולות במסע של vibe coder — כי ברגע שאתם יודעים לפרוס, אתם לא רק בונים אתרים, אתם מפרסמים אותם. ההבדל בין "אני לומד לקודד" ל-"יש לי אתר חי" הוא הבדל מהותי בקריירה ובתחושה האישית.
למדנו את 4 הפלטפורמות המרכזיות: Vercel (הבית של Next.js, האינטגרציה הכי חלקה), Netlify (הוותיקה עם forms ו-identity מובנים), Cloudflare Pages (bandwidth אין-סופי, הכי נדיב), ו-GitHub Pages (הפשוט והחינמי לאתרים סטטיים). לכל אחד יש שורה שהיא מובילה בה — Vercel ל-SSR, Netlify ל-forms, Cloudflare לטרפיק גבוה, GitHub לפשטות.
ראינו מה זה CI/CD ואיך git push הופך לפריסה תוך 90 שניות. למדנו על preview deployments — כל PR מקבל URL משלו, ומאפשר לבדוק ולשתף לפני שהשינוי חי באתר הראשי. הבנו DNS ואיך לחבר דומיין מותאם — A records, CNAME, SSL אוטומטי דרך Let's Encrypt. ראינו איפה קונים דומיין בישראל (Cloudflare Registrar ל-.com, Domain The Net ל-.co.il) ובאיזה מחירים.
חיזקנו את ה-environment variables — למה לעולם לא שמים API keys בקוד, איך מגדירים אותם ב-dashboard של הפלטפורמה, ומה ההבדל בין משתנים סודיים (server-side) לציבוריים (NEXT_PUBLIC_). והבנו את ההבדל בין edge functions (מהירות, קרבה למשתמש, מגבלות) ל-serverless functions (גמישות, תמיכה מלאה ב-Node, עם cold start).
קיבלתם שני deliverables: טבלת השוואה מלאה של 4 הפלטפורמות וצ'קליסט 12 צעדים מ-localhost לאתר חי עם דומיין. שמרו אותם — תשתמשו בהם בכל פרויקט מכאן והלאה.
בפרק הבא (פרק 10 — בחירת Stack) נקח את כל מה שלמדנו עד עכשיו — frameworks, UI libraries, icons, project structure, ופריסה — ונרכיב אותם ל-decision framework של 5 שאלות. תדעו בדיוק איזה stack לבחור לכל סוג פרויקט: landing page, פורטפוליו, SaaS, בלוג, חנות. זה סיכום הקורס — והפרק הבא הופך את הידע שלכם לצ'קליסט פרקטי שתשתמשו בו בכל פרויקט חדש.
- ☐ הבנתי את ההבדל בין localhost ל-production hosting
- ☐ הבנתי את ההבדל בין אתר סטטי לדינמי, ואיך זה משפיע על בחירת פלטפורמה
- ☐ הבנתי את יתרונות Vercel ל-Next.js ומה free tier כולל
- ☐ הבנתי איפה Netlify בולטת (Forms, Identity, Split Testing)
- ☐ הבנתי למה Cloudflare Pages נותן bandwidth unlimited
- ☐ הבנתי מתי GitHub Pages מספיק — ומתי לא
- ☐ שמרתי את טבלת ההשוואה של 4 הפלטפורמות
- ☐ הבנתי CI/CD — push = deploy, וכמה זמן זה לוקח (60-120 שניות)
- ☐ הבנתי את preview deployments ואיך הם עוזרים בעבודה עם לקוח
- ☐ הבנתי DNS — A record, CNAME, MX, TXT
- ☐ הבנתי איפה קונים דומיין בישראל (Cloudflare Registrar, Domain The Net)
- ☐ הבנתי את ההבדל בין env var סודי ל-NEXT_PUBLIC_ (וכמה זה מסוכן לבלבל!)
- ☐ הבנתי edge functions vs serverless functions ומתי להשתמש בכל אחד
- ☐ השלמתי תרגיל 1 — פריסה ל-Vercel מ-GitHub
- ☐ השלמתי תרגיל 2 — מילוי טבלת השוואה מותאמת לפרויקט שלי
- ☐ השלמתי תרגיל 3 או 4 — חיבור דומיין או env vars ב-production
- ☐ שמרתי את צ'קליסט 12 הצעדים כ-reference לפריסות עתידיות