Skip to main content
World Monitor lets you share country intelligence briefs to social media platforms with rich previews, formatted text, and dynamically generated images.

Generating a Story

Every country brief can be exported as a shareable story containing:
  • Country name and flag
  • CII score (0–100 with color-coded ring)
  • Threat counts (protests, conflicts, military activity)
  • Theater posture (NORMAL, ELEVATED, CRITICAL)
  • Active signals (chips showing signal types and counts)
  • Top prediction markets (Polymarket contracts with probabilities)
1

Open a country brief

Click any country on the map or use Cmd+K to search for a country.
2

Click the Share button

Located in the top-right corner of the brief.
3

Select a platform

Choose from:
  • Twitter/X
  • LinkedIn
  • WhatsApp
  • Telegram
  • Reddit
  • Facebook
4

Platform-appropriate text is generated

Each platform has its own formatting style (see below).
5

Copy or open share link

The text is copied to your clipboard, or a share dialog opens with pre-filled content.

Platform-Specific Formatting

World Monitor generates platform-appropriate formatting for each social network:
Character limit: 280 charactersFormat:
🚨 UKRAINE Intelligence Brief

Instability Index: 73/100 πŸ”΄

Signals:
β€’ 12 protests
β€’ 8 military flights
β€’ 3 naval vessels
β€’ 23 active conflicts

Theater: ELEVATED ⚠️

Full analysis: https://worldmonitor.app/story?c=UA&t=brief
Features:
  • Emoji-heavy for visual appeal
  • Hashtags: #OSINT #Geopolitics #Ukraine
  • Link to full brief with OG image

Dynamic Open Graph Images

When you share a story link, social platforms display a rich preview card with a dynamically generated image.

How It Works

1

Story URL is generated

Format: https://worldmonitor.app/story?c=<country>&t=briefExample: https://worldmonitor.app/story?c=UA&t=brief
2

Social crawler requests the page

When Twitter, Facebook, LinkedIn, etc. preview the link, they send a request with a bot user-agent:
User-Agent: Twitterbot/1.0
User-Agent: facebookexternalhit/1.1
User-Agent: LinkedInBot/1.0
3

Bot detection triggers OG image endpoint

World Monitor detects the bot user-agent (10+ known signatures) and serves an HTML page with og:image meta tags pointing to:
https://worldmonitor.app/api/og-story?c=UA&t=brief
4

SVG card is generated on-the-fly

The /api/og-story endpoint generates a 1200Γ—630px SVG card containing:
  • Country name and flag
  • CII score gauge arc (color-coded by severity)
  • 0–100 score bar
  • Signal indicator chips (threats, military, markets, convergence)
5

Social platform caches the image

The bot renders the SVG as a PNG and caches it. Users see the preview card in their feed.

OG Image Example

<meta property="og:title" content="Ukraine Intelligence Brief" />
<meta property="og:description" content="CII Score: 73/100 (CRITICAL) | 12 protests, 8 military flights, 23 conflicts" />
<meta property="og:image" content="https://worldmonitor.app/api/og-story?c=UA&t=brief" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:type" content="article" />
Regular browsers (non-bots) receive a 302 redirect to the SPA, so users clicking the link see the full interactive dashboard, not a static card.

Canvas-Based Image Export

You can also export a country brief as a PNG image for offline sharing:
1

Open a country brief

Click any country on the map.
2

Click Export β†’ PNG

Located in the export dropdown.
3

Canvas rendering begins

The entire brief is rendered to an HTML5 <canvas> element:
  • CII score ring (SVG β†’ Canvas)
  • Signal chips
  • Top news headlines
  • 7-day timeline chart
  • QR code linking back to live dashboard
4

PNG download triggers

File name: ukraine-brief-2026-03-01.png

Use Cases

  • Reports: Embed in PowerPoint or Keynote
  • Social sharing: Post to Instagram, Twitter, etc.
  • Archival: Save snapshots for historical comparison
  • Print: High-resolution output suitable for printing
PNG export can take 5–10 seconds for briefs with large timelines or many signals. Be patient while the canvas renders.
Every story generates a unique deep link that encodes:
  • Country code (c=UA)
  • Story type (t=brief)
URL structure:
https://worldmonitor.app/story?c=<ISO-2>&t=<type>
Examples:
  • Ukraine brief: ?c=UA&t=brief
  • Iran analysis: ?c=IR&t=brief
  • Taiwan threat assessment: ?c=TW&t=brief
Deep links always resolve to the latest data β€” CII scores, signals, and news update in real-time.

Social Platform Support

World Monitor’s OG image endpoint is tested against these social crawlers:

βœ… Full Support

  • Twitter/X (Twitterbot)
  • Facebook (facebookexternalhit)
  • LinkedIn (LinkedInBot)
  • Telegram (TelegramBot)
  • Discord (Discordbot)
  • Reddit (redditbot)
  • WhatsApp (WhatsApp)

⚠️ Partial Support

  • Instagram (requires Business accounts for link previews)
  • Snapchat (no link preview API)
  • TikTok (no OG tag support)
If a platform doesn’t support OG images, users will see a plain link. The deep link still works β€” they just won’t see a preview card.

Troubleshooting

Social platforms cache OG images aggressively. If you update a brief:
  1. Twitter: Use the Card Validator to refresh
  2. Facebook: Use the Sharing Debugger to scrape again
  3. LinkedIn: Use the Post Inspector to refresh
Or add a cache-busting parameter: ?c=UA&t=brief&v=2
This usually happens if the canvas renders before all data loads:
  • Wait until the brief fully loads (all charts and signals visible)
  • Try again β€” the export will include all content
  • Check browser console for Canvas API errors
Twitter has a 280-character limit. World Monitor auto-truncates to fit:
  • Key data (CII, signals) is prioritized
  • Full details are in the deep link
  • Users clicking the link see the complete brief

Build docs developers (and LLMs) love