Skip to main content

Modules Documentation

Validation rules

Required fields, formats, ranges.

Complete

Editorial validation gates publication. Every article passes editorial review + a typed schema check before going live. The platform refuses to render an article missing a required field.

Schema-level validation

  • All required fields present (id, slug, type, title, dek, bodyHtml, topic, author, publishedAt, readingTimeMinutes).
  • Both EN and AR populated on every Bilingual field. AR may not be a verbatim translation of EN — it must be authored.
  • `slug` matches `^[a-z0-9-]+$` and starts with a date prefix (YYYY-MM-DD-).
  • `publishedAt` is a valid ISO date <= current date.
  • `readingTimeMinutes` is an integer between 1 and 60.

Editorial review gates

  1. Fact verification — every named entity exists in its module data (no phantom founders / startups / events).
  2. Mention discipline — if the article names a founder / startup / event / opportunity, the corresponding `mentionedXxxIds[]` array is populated.
  3. AR review — a native Arabic editor signs off the AR version. Auto-translation is a defect, not a workflow.
  4. Source verification for any external claim — sources named where editorial wisdom allows.
  5. SEO check — SEO title + meta description authored (not auto-derived from the title field).