{
  "id": 12124031,
  "title": "75 of our 76 pages get their social card from one route, and the home page is the exception",
  "url": "https://urgent.news/2026/10/05/75-of-our-76-pages-get-their-social-card-from-one-route-and-the-home",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-05T10:05:32.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/daniel_pertu/75-of-our-76-pages-get-their-social-card-from-one-route-and-the-home-page-is-the-exception-3n46"
  },
  "original_language": "en",
  "account": "The Nakodo website's sitemap consists of 76 public URLs, with 75 of them sharing a catch-all route for their social card. The only exception is the home page, which generates its own unique social card. This discrepancy has led to misunderstandings when attempting to dynamically generate the social card. By checking the split from the terminal, it is evident that there are two different mechanisms in place on different pages of the same site. The home page's special treatment arises from the opengraph-image.tsx file convention, which automatically wires the required metadata. However, this convention becomes less helpful when dealing with a content site that requires a social card per page. To overcome this limitation, the site utilizes a route (/og/[...path]/route.tsx) where the card for each page is generated dynamically.",
  "summary": "Nakodo's sitemap has 76 public URLs. 75 of them get a social card drawn by one catch-all route. The home page does not, and that asymmetry is the part worth writing down, because it is the thing people get wrong when they reach for opengraph-image.tsx and then try to make it dynamic. You can check the split from a terminal right now: $ curl -s https://nakodo.app/ | grep -o 'og:image\"…",
  "key_points": [
    "76 public URLs on Nakodo website",
    "75 pages share catch-all social card route",
    "Home page generates unique social card"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}