{
  "id": 4356073,
  "title": "Rendering CJK-heavy share cards with satori (and the three things that broke)",
  "url": "https://urgent.news/2026/08/30/rendering-cjk-heavy-share-cards-with-satori-and-the-three-things-that",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-30T06:01:40.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/beachcombers/rendering-cjk-heavy-share-cards-with-satori-and-the-three-things-that-broke-5amm"
  },
  "original_language": "en",
  "account": null,
  "summary": "The article discusses the challenges faced when rendering share cards for a Korean saju reading service using satori in a Next.js application. One of the main issues encountered was the lack of support for CJK (Chinese, Japanese, Korean) characters, specifically hanja, which are Chinese characters used in the saju charts. The brand font used for the saju charts did not include the necessary glyphs for hanja, leading to tofu boxes appearing instead of the intended characters. To resolve this issue, the author implemented a solution by loading a fallback set of fonts, with the most specific one (OreumHan) loaded first. This approach mimicked the @font-face technique used in CSS, allowing the system to fall back to the second font if the first one failed to load the required glyphs. The article also highlights the importance of using TTF/OTF font files, as satori expects these formats rather than the more commonly used woff2 format.",
  "key_points": [],
  "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."
}