Skip to main content

Modules Documentation

Data fields

Entities, fields, and types.

Complete

The `Startup` interface (defined in `core/models/startup.model.ts`) is the canonical entity shape. Every field maps to a display element, a cross-module connection, or an editorial verification flag.

Required fields

id · string
Stable identifier. Format: `stp-<short-name>`. Used in cross-module mentions and JSON-LD @id.
slug · string
URL-stable slug. Usually matches brand name in kebab-case (e.g. `paymob`, `vezeeta`, `flat6labs-portfolio-co`).
name · string
Brand name as the company uses it. Typically untranslated (brand names rarely translate). Used everywhere on cards + JSON-LD `name`.
tagline · Bilingual
`{ en: string; ar: string }`. One-line value proposition. Both languages required. ~80 chars per locale.
description · Bilingual
2-3 sentence paragraph describing what the startup does. Drives the meta description and renders on the detail page.
sector · StartupSector
One of: `fintech` | `healthtech` | `edtech` | `logistics` | `agritech` | `cleantech` | `saas` | `ai-ml` | `ecommerce` | `proptech` | `media`. Drives taxonomy matching.
country · StartupCountry
ISO-2 of HQ country. One of: EG / SA / AE / JO / MA / TN / BH / KW / OM / LB / QA. Drives geographic linking.
stage · StartupStage
One of: `pre-seed` | `seed` | `series-a` | `series-b` | `series-c` | `growth`. Stage matching drives opportunity eligibility surfacing.
foundedYear · number
4-digit year. Displays on the card + snapshot sidecard + JSON-LD `foundingDate`.
founderIds · string[]
Founder.id values. T1 structural link — every founder in this array surfaces as a "linked_founder" in cross-module signals.
updatedAt · string (ISO date)
Last meaningful update. Drives the showcase listing default sort (descending). Updated by editorial when sector / stage / founders change.

Optional fields

  • `name_ar?` — Arabic brand variant when authored (most startups use the same brand across locales).
  • `hqCity?` — Specific city (e.g. Cairo, Riyadh). Optional because some startups are remote-first.
  • `logoUrl?` — When absent, the card renders the brand name as text inside the 16:9 canvas.
  • `websiteUrl?` — Drives the Visit Website CTA. Opens in a new tab with `rel="noopener external"`.
  • `isFeatured?` — Top strip of brand-orange on the card. Limited to ~10% of entries.
  • `isVerified?` — Verified badge on the card + chip on detail. Always true for production entries.