דפוסים שאני משתמש בהם כדי לשמור על פרויקט Next.js App Router נקי: TypeScript מחמיר, תוכן שמגיע מ‑Sanity, שאילתות GROQ יציבות, ומה עושים כשה‑CMS משתנה מהר יותר מהקוד.
אפליקציות מונעות‑תוכן נשברות כשה‑schema משתנה וה‑UI לא עומד בקצב. המטרה שלי היא לשמור על Type Safety, בלי לעצור את מי שמנהל את התוכן ב‑Sanity.
- סכמות ברורות עם שדות חובה ו‑IDs יציבים.
- שאילתות GROQ מפורשות וצפויות.
- TypeScript שמכבד “תוכן חסר” (nullable) בצורה בטוחה.
- אמת ב‑CMS במקום fallback שמקודד בקוד.
- לטפל ב‑nulls ב‑UI, אבל לתקן תוכן ב‑Sanity.
- להוסיף שדות עם schema deploy ואז לבצע backfill לדוקומנטים.
- להשתמש ב‑CI/CD כדי לתפוס רגרסיות מוקדם.
- לשמור על SSG ככל האפשר כדי לקבל ביצועים צפויים.