בניית אתר ב-Cockpit CMS: צד שרת מנותק ל-Next.js ול-Nuxt

התוכן נערך שבועות, ובסיס התוכן והממשק מושכים זה את זה אחורה. אנחנו מפתחים אתרים ב-Cockpit CMS כצד שרת מנותק ל-Next.js ול-Nuxt: מודלי תוכן, הרשאות, מטמון ובנייה — עד הסוף. תיקונים יוצאים מהר פי כמה, ושכבת התוכן מפסיקה להישבר בכל שינוי עיצוב.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
בניית אתר ב-Cockpit CMS: צד שרת מנותק ל-Next.js ול-Nuxt
בינוני
~5 ימים
שאלות נפוצות

פיתוח אתר ב-Cockpit CMS: היכן נשברת שכבת התוכן

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

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

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

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

אנחנו מנתחים כיצד זה נפתר בפיתוח אתר ב-Cockpit CMS: סכימת אוספים קבועה, חוזה פלט אחיד לכל התבניות ואיפוס מטמון באירוע פרסום. בהמשך — מה בדיוק נשבר בשכבת התוכן ואיך אנחנו מתקנים זאת.

מה נותנת סכימת headless: מהירות עריכות וסדר בשכבות

הפרדת שכבות — זה כאשר התוכן נמצא בניהול, והסימון והלוגיקה נשארים בקוד הפרונטאנד. העורך משנה טקסט, תמונות וסדר בלוקים, מבלי להמתין לשחרור הקרוב; המפתח לא בונה מחדש את הפרויקט בגלל תיקון כותרת.

בסכימת headless, נתונים מסופקים על ידי backend נפרד ב-Cockpit CMS, והעמודים נבנים על ידי פרונטאנד על הענף העדכני של Next.js או Nuxt — לשני המעגלים יש מחזורי שחרור משל עצמם, והם כבר לא חוסמים זה את זה.

מה זה משנה בפועל:

  • מהירות פרסום תוכן — תיקון עולה לפרודקשן תוך דקות, ולא ממתין לחלון הפריסה. בעבר עדכון טיפוסי «לתקן מודעה ובאנר» נמשך יום-יומיים; כעת זו פעולה אחת של העורך.
  • מסירת עמודים תחת עומס — עמודים נמסרים כמוכנים מראש, ושאילתות כבדות לנתונים מתקיימות בנפרד מתגובת המשתמש. בשיא התעבורה, זמן התגובה לא גדל ביחס למספר הבקשות: מתווסף מטמון, ולא כוח שרתים.
  • מספר הפניות למפתח עבור תיקון אחד — משימות טיפוסיות (מדור חדש, כרטיס, שדה בתבנית) נפתרות על ידי סוגי תוכן מוכנים. מפתח נדרש בערך לתיקון אחד מתוך עשרה-חמישה עשר — את השאר העורך עושה בעצמו.
  • רולבק עצמאי — פרסום כושל מוחזר על ידי גרסת תוכן, שחרור כושל — על ידי הבנייה הקודמת. אחד לא גורר אחריו את השני.
  • הגירת עיצוב צפויה — החלפת קוד, תבניות או פריימוורק פרונטאנד לא דורשת להעביר את התוכן: מבנה הנתונים נשאר זהה.

אנחנו בודקים את האפקט במדידות לפני ואחרי: זמן מלחיצה על «פרסם» עד להופעה בפרודקשן, תגובה תחת עומס שיא, שיעור משימות התוכן שנפתרו ללא מעורבות מהנדס. אם לפחות מדד אחד לא זז — סימן שהסכימה נבנתה עם קישור יתר בין שכבות, וזה נראה במספרים, לא בתחושות.

מצבי עבודה: בסיס קלאסי, headless-בקאנד, היברידי

מצב העבודה עם תוכן נבחר לא לפי טעם, אלא לפי מי שמרנדר את העמוד ותדירות השינוי של תוכנו. Cockpit CMS שומר חומרים באוספים ומספק אותם דרך ממשק תכנותי, לכן אותה קבוצת נתונים יכולה לשרת גם אתר קלאסי וגם פרונטאנד נפרד ב-Next.js או Nuxt. ההבדל מתבטא באופן יצירת העמודים, במהירות המסירה ובאילו תיקונים העורך יכול לבצע בעצמו.

מצב עבודה מתי מתאים מגבלות
בסיס קלאסי אתרי תוכן, בלוגים, קטלוגים: הסימון נבנה בצד ה-CMS תיקון דורש בנייה מחדש של התבנית; קשה יותר לעשות שימוש חוזר בתוכן באפליקציה ובלקוח נייד
Headless-בקאנד ממשקי מוצר עם פרונטאנד משל עצמם, כאשר התוכן הוא אחד ממקורות הנתונים נדרשים מטמון ויצירה מוקדמת; העורך זקוק לתצוגה מקדימה נפרדת
סכימה היברידית עמודי שיווק ומאמרים מוכנים מראש, אזורי משתמש וחיפוש עובדים בצד הלקוח יש לתאם בין שתי סכימות המסירה לפי כתובות, מטמון והרשאות גישה

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

סדר העבודות: מודלי תוכן, בנייה, בדיקה, מסירה

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

  1. מלאי תוכן. מנתחים את המדורים, הרשומות, המפתחות והקשרים ביניהם, קובעים מה נעשה בו שימוש חוזר ומה מועבר למבנה חדש.
  2. מודלי תוכן. מתארים סוגי רשומות, שדות, חובה, מפתחות וגרסאות שפה; מניחים טיוטות כדי שתיקון לא ייכנס לאתר מיד.
  3. סכימת מדורים וניווט. בונים עץ עמודים, פירורי לחם, כללי כתובות והפניות מקישורים ישנים — אחרת המיקומים אובדים בשינוי המבנה.
  4. העברת נתונים. מכינים ייצוא, מסירים כפילויות, מתאימים שדות של רשומות ישנות למודלים חדשים, ובודקים את הכמות והקשרים לפני ואחרי הטעינה.
  5. בנייה ופלט. מגדירים מסירת תוכן מ-Cockpit CMS לפרונטאנד, מטמון ובנייה מחדש של עמודים בעת פרסום; תצוגה מקדימה מופרדת מהגרסה העובדת.
  6. בדיקה. מריצים טפסים, תפקידים והרשאות גישה, חיפוש, כתובות ונקודות פלט, בודקים עמודים מרכזיים מול המבנה המאושר.
  7. מסירה ותקנון תיקונים. מוסרים גישות, תיאור מודלים וסדר עבודה: כיצד להוסיף מדור, שדה או נקודת פלט ללא תיקון קוד.

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

מה נשאר אצלכם: סכימות אוספים, הרשאות, תקנונים

ארטיפקטים נוצרים תוך כדי העבודות, ולא בסוף כדי לצאת ידי חובה: התיעוד מתעדכן יחד עם מודל התוכן, אחרת כעבור חודש הוא מתאר משהו שכבר לא קיים. להלן רשימה מלאה של מה שאתם מקבלים לידיים.

  • סכימות אוספים — עבור כל סוג חומר: הרכב השדות, סוגים, חובה, ערכי ברירת מחדל, כללי בדיקה בצד הבקאנד וקשרים בין אוספים. זה מספיק כדי להוסיף שדה או סוג רשומה חדש בלי לנתח את קוד המקור.
  • תיאור מפתחות ומילונים — אילו ערכים קיימים, היכן משתמשים בהם, מי אחראי על העדכון ומה יקרה לחומרים שכבר פורסמו אם משנים שם של ערך.
  • מטריצת הרשאות גישה — תפקידים מרוכזים בטבלה «תפקיד × אוסף × פעולה», בנפרד מודגשים פרסום, הסרה מפרסום ומחיקה. רואים מי ומה יכול, ולמי לפנות להרחבת הרשאות.
  • הוראות לעורכים — תרחישים שלב אחר שלב עם מסכים: כיצד לפתוח חומר, לצרף מדיה, להעמיד בתור לפרסום ומה לעשות אם החומר לא עבר בדיקת שדות.
  • מפת אינטגרציות — רשימת מערכות חיצוניות, אירועים שלפיהם מתבצע החלף, פורמט נתונים וסדר פעולות כאשר הצד החיצוני אינו זמין.
  • תקנון גיבוי — מה מגבים, באיזו תדירות, כיצד לבדוק את כשירות הגיבוי וכיצד לשחזר אוסף בודד בלי להחזיר את כל האתר לאחור.
  • היסטוריית שינויים במודל התוכן — יומן תיקונים של סכימות עם ציון אילו נתונים יש להעביר לאחר כל שינוי.

המסירה מתבצעת לפי רשימת בדיקה: עוברים על כל סעיף יחד עם הצוות שלכם, בודקים שהגישות ניתנו, ההוראות ניתנות לשחזור, ושעדכון הסכימה בסביבת הבדיקות לא שובר חומרים שפורסמו.

ניתוח פרויקט: קטלוג על סכימת headless, מדדים לפני ואחרי

קטלוג של 12,000 פריטים חי במונוליט: תיקון כרטיס או מחיר עבר דרך לוח הניהול, ופרסום עמוד אחד ארך עד 40 דקות — העורך חיכה לבנייה מחדש של כל האתר. מחירון הוזן בייבוא לילי, אחריו ספרו קטגוריות ידנית, ופעם בשבוע הפרונטאנד החזיר מדורים ריקים: המטמון לא אופס, וחלק מהמוצרים נפלו מהתצוגה.

מה עשינו

התוכן הועבר ל-Cockpit CMS כבקאנד headless: מוצרים, קטגוריות ומאפיינים תוארו בשדות מפורשים עם קשרים, כדי שמבנה הנתונים יפסיק להיות תלוי בקוד. חזית החנות נבנית סטטית, ולפי webhook נבנים מחדש רק העמודים שהשתנו — מחיר או תיאור מתעדכנים בלי ריצה מלאה.

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

מדדים לפני ואחרי: פרסום — מ-40 דקות ל-2, שיעור הפעולות הידניות — מכמעט 100% לתיקונים בודדים, כשלי פלט — מ-3–4 בשבוע לאפס ברבעון. כעת ניתן להפעיל בנייה מחדש של הקטלוג בכל רגע, בלי להמתין לחלון הלילה.

במה שונה headless-בקאנד מבסיס תוכן קלאסי?

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

Headless-בקאנד שובר את הקשר הזה: Cockpit CMS שומר רשומות מובנות ומספק אותן לפי בקשה, והפרונטאנד מחליט היכן וכיצד להציג אותן.

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

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

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

ספקות של מהנדס: הגירה, מטמון, תפקידים והרשאות גישה

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

כיצד מועבר התוכן מהאתר הנוכחי?

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

מה קורה עם מטמון העמודים לאחר תיקון תוכן?

עמודים נמסרים מהמטמון, ובשמירת רשומה מתאפס רק הסימון המקושר אליה — שאר האתר ממשיך להגיב במהירות. עבור מדורים גדולים מגדירים רענון ברקע, כדי שהמבקר הראשון לאחר הפרסום לא ימתין לבנייה מחדש.

כיצד בנויים תפקידים והרשאות גישה?

הרשאות מוגדרות ברמת אוספים ושדות בודדים: העורך מתקן טקסטים, אך לא נוגע במבנה ובהגדרות. הפרסום מופרד מהעריכה — תיקון לא עולה לאתר העבודה ללא אישור, וכל הפעולות נרשמות ביומן עם שם המבצע והזמן.

מה עם שירותים חיצוניים — אנליטיקה, טפסים, תשלומים?

הבקאנד מספק נתונים דרך API, לכן מודולי תשלום, טפסים ואנליטיקה מתחברים כשירותים נפרדים, ולא מוטמעים בתוכן. אם שירות חיצוני אינו זמין, האתר ממשיך לעבוד: בקשות נכנסות לתור ונשלחות שוב.

נדון במשימה: נתוני קלט וסדר הערכה

כדי להעריך את היקף העבודות עבור headless-בקאנד ב-Cockpit CMS די בנתוני הקלט שכבר יש לכם כעת — גישה לפרודקשן ותקציר מפורט בשלב ההתחלה אינם נדרשים. ככל שנתוני הקלט konkretיים יותר, כך מדויקים יותר הרכב השלבים ותוכנית היישום: מה נכנס לאספקה הראשונה, ומה סביר לדחות לשנייה.

  • סכימת תוכן או טיוטה שלה: אילו אוספים נדרשים, אילו שדות בכל אחד, קשרים ביניהם, האם נדרשים טיוטות, גרסאות ופרסום מושהיה.
  • פריסות או אב-טיפוס של תבניות מפתח: היכן נתונים מגיעים מ-API, היכן נשאר סטטי, אילו בלוקים נבנים מרכיבים לשימוש חוזר.
  • רשימת אינטגרציות: טפסים, CRM, תשלום, חיפוש, דיוורים, אנליטיקה — מה צריך לקבל נתונים מהאתר ומה לספק לתוכו.
  • תפקידים והרשאות: מי עורך, מי רק מפרסם, האם נדרשים ריבוי שפות ומהדורות תוכן שונות לפי אזורים.
  • מגבלות: אחסון ודומיינים נוכחיים, דרישות לסימון עבור חיפוש, כללי אחסון נתונים אישיים.
  • קוד או API קיימים, אם הפרויקט כבר עובד: גישה למאגר ולסביבת בדיקות מאיצה את הניתוח.
  • סדרי עדיפויות לפי לוחות זמנים: איזה חלק נדרש להשקה, ואיזה ניתן להוציא בשלב נפרד בלי לאבד שלמות.

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

תארו את המשימה — נחזור עם הערכה ותוכנית עבודה.

הכישורים שלנו:

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1393
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1368
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1139
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1152
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1231
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    641