Skip to main content

Modules Documentation

Data fields

Entities, fields, and types.

Complete

The `EditorialArticle` interface (defined in `core/models/editorial.model.ts`) is the canonical entity shape. Every field maps to either a published display element, a cross-module mention, or an editorial workflow flag.

Required fields

id · string
Stable identifier. Format: `art-<slug>`. Used in cross-module mentions and JSON-LD @id.
slug · string
URL-stable slug. Format: `YYYY-MM-DD-kebab-case-title`. Date prefix preserves chronological ordering by URL.
type · EditorialType
One of: `news` | `analysis` | `commentary` | `interview` | `profile` | `guide`. Drives the type eyebrow + JSON-LD @type (news → NewsArticle, all else → Article).
title · Bilingual
`{ en: string; ar: string }`. EN and AR both required. Max 80 chars per locale (recommended).
dek · Bilingual
Sub-headline / standfirst. Mirrors SEO meta description. 140-160 char target.
bodyHtml · Bilingual
Pre-rendered HTML. Sanitized at render time via SafeHtmlPipe. Authored in markdown then compiled to HTML in the editorial pipeline.
topic · EditorialTopic
One of: `funding` | `sector-report` | `founder-story` | `ecosystem` | `policy` | `product` | `market-expansion` | `leadership` | `hiring`.
author · Bilingual
Author byline. Bilingual because Arabic and English names sometimes differ in romanization.
publishedAt · string (ISO)
Publication date. Drives JSON-LD `datePublished` and the visible date on the byline.
readingTimeMinutes · number
Editorial-set, not auto-computed. Editors override the read-time when the topic warrants slow reading.

Optional fields

  • `sector? · string` — primary sector tag. Drives cross-module taxonomy matching.
  • `country? · string` — ISO-2 country code. Drives geographic linking.
  • `mentionedFounderIds?` / `mentionedStartupIds?` / `mentionedEventIds?` / `mentionedOpportunityIds?` — explicit entity mention arrays. Feeds the manual cross-module link manifest.
  • `authorRole? · Bilingual` — title or role (e.g. "Senior Editor" / "محرّرة أولى").
  • `coverImageUrl?` — 16:9 cover. Falls back to editorial SVG pattern when missing.
  • `isFeatured? · boolean` — surfaces the article on home + listing top spots.
  • `isPractical? · boolean` — practical learning angle. Drives Founder Files surfacing in cross-module signals.