Skip to main content

Modules Documentation

SEO / AEO requirements

Meta, structured data, hreflang per page.

Complete

Coverage articles are some of the highest-AEO-value pages on the platform — recap and pitch-result URLs target high-intent search queries ("RiseUp 2025 recap", "Numu demo day winners"). The details page emits NewsArticle (for recap/highlights), Article (for analysis/sponsor-spotlight), or BlogPosting JSON-LD depending on the kind, with full author, publisher, datePublished, image, articleSection, and mentions schema.

JSON-LD per kind

recap → NewsArticle
Maps to journalistic event reporting. Fields: headline, alternativeHeadline (=dek), datePublished, dateModified, articleBody (sanitised bodyHtml), author (Person), publisher (Organization=StartupHub), image, mentions (Person + Organization items from mentionedFounderIds/mentionedStartupIds), about (the parent Event).
highlights → NewsArticle
Same NewsArticle schema, with one additional ImageGallery node if there are 3+ inline figures.
analysis → Article
Maps to opinion / interpretive writing. Same field set as NewsArticle but @type=Article, which signals SERP that this isn’t hard news.
pitch-result → NewsArticle + Event subEvent
NewsArticle with an additional Event node for the pitch competition itself (subEvent of the parent Event), with offers (prizes) and competitor (Person/Organization) properties.
sponsor-spotlight → BlogPosting
Maps to clearly-labelled sponsored content. @type=BlogPosting (not NewsArticle, intentionally — sponsored content shouldn’t carry hard-news authority signals). Includes a sponsor property pointing to the Organization that funded the piece.

Per-page metadata

  • metaTitle: "[Title] | StartupHub Coverage". Auto-truncated to ≤60 chars.
  • metaDescription: dek (already ≤200 chars by editorial standard).
  • Open Graph: og:type="article", og:title=title, og:description=dek, og:image=coverImageUrl (or generated SVG fallback), article:published_time=publishedAt, article:author=author.
  • Twitter card: summary_large_image with same image asset as OG.
  • Canonical URL: /:lang/coverage/:slug. hreflang alternates between en + ar variants.