> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/koala73/worldmonitor/llms.txt
> Use this file to discover all available pages before exploring further.

# Sharing Stories

> Exporting intelligence briefs to social media with rich previews and images

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)

<Steps>
  <Step title="Open a country brief">
    Click any country on the map or use **Cmd+K** to search for a country.
  </Step>

  <Step title="Click the Share button">
    Located in the top-right corner of the brief.
  </Step>

  <Step title="Select a platform">
    Choose from:

    * Twitter/X
    * LinkedIn
    * WhatsApp
    * Telegram
    * Reddit
    * Facebook
  </Step>

  <Step title="Platform-appropriate text is generated">
    Each platform has its own formatting style (see below).
  </Step>

  <Step title="Copy or open share link">
    The text is copied to your clipboard, or a share dialog opens with pre-filled content.
  </Step>
</Steps>

## Platform-Specific Formatting

World Monitor generates **platform-appropriate formatting** for each social network:

<Tabs>
  <Tab title="Twitter/X">
    **Character limit**: 280 characters

    **Format**:

    ```
    🚨 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
  </Tab>

  <Tab title="LinkedIn">
    **Character limit**: 3,000 characters

    **Format**:

    ```
    UKRAINE INTELLIGENCE BRIEF | March 1, 2026

    Country Instability Index: 73/100 (CRITICAL)

    KEY SIGNALS:
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    • Protests: 12 events
    • Military Flights: 8 detected
    • Naval Vessels: 3 active
    • Conflicts: 23 zones
    • Internet Outages: 2 AS-level disruptions

    STRATEGIC POSTURE: ELEVATED

    PREDICTION MARKETS:
    • Russia-Ukraine ceasefire by Q2 2026: 34% probability
    • NATO Article 5 invoked: 8% probability

    INFRASTRUCTURE EXPOSURE:
    • 14 undersea cables within 600km
    • 3 nuclear facilities
    • 2 major pipelines

    Full geospatial analysis and real-time tracking:
    https://worldmonitor.app/story?c=UA&t=brief

    #Geopolitics #IntelligenceAnalysis #Ukraine #OSINT #SituationalAwareness
    ```

    **Features**:

    * Professional tone
    * Structured with section headers
    * Detailed signal breakdown
    * Multiple hashtags for reach
  </Tab>

  <Tab title="WhatsApp">
    **Character limit**: 5,000 characters

    **Format**:

    ```
    🚨 *UKRAINE INTELLIGENCE BRIEF*

    📊 *Instability Index:* 73/100 🔴

    *Active Signals:*
    • 🪧 12 protests
    • ✈️ 8 military flights
    • ⚓ 3 naval vessels
    • ⚔️ 23 conflicts
    • 🌐 2 internet outages

    *Theater Posture:* ELEVATED ⚠️

    *Top Prediction Markets:*
    • Russia-Ukraine ceasefire by Q2: 34%
    • NATO Article 5: 8%

    View full analysis:
    https://worldmonitor.app/story?c=UA&t=brief
    ```

    **Features**:

    * Bold text using `*asterisks*`
    * Heavy emoji use
    * Mobile-friendly formatting
  </Tab>

  <Tab title="Telegram">
    **Character limit**: 4,096 characters

    **Format**:

    ```
    🚨 UKRAINE INTELLIGENCE BRIEF

    📊 Instability Index: 73/100 🔴

    📡 ACTIVE SIGNALS:
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    🪧 Protests: 12 events
    ✈️ Military Flights: 8 detected
    ⚓ Naval Vessels: 3 active
    ⚔️ Conflicts: 23 zones
    🌐 Internet Outages: 2 AS-level

    ⚠️ THEATER POSTURE: ELEVATED

    📈 PREDICTION MARKETS:
    • Russia-Ukraine ceasefire by Q2 2026: 34%
    • NATO Article 5 invoked: 8%

    🔗 Full analysis:
    https://worldmonitor.app/story?c=UA&t=brief

    #OSINT #Ukraine #Geopolitics #SituationalAwareness
    ```

    **Features**:

    * Monospace-friendly formatting
    * Box-drawing characters for sections
    * Hashtags for channel discoverability
  </Tab>

  <Tab title="Reddit">
    **Character limit**: 40,000 characters (post body)

    **Format**:

    ```markdown theme={null}
    # 🇺🇦 UKRAINE Intelligence Brief | March 1, 2026

    ## Country Instability Index

    **Score**: 73/100 🔴 CRITICAL

    | Component | Score |
    |-----------|-------|
    | Unrest | 18/25 |
    | Conflict | 42/50 |
    | Security | 31/40 |
    | Information | 28/35 |

    ## Active Signals

    - 🪧 **Protests**: 12 events (3 with fatalities)
    - ✈️ **Military Flights**: 8 detected (4 confirmed hostile)
    - ⚓ **Naval Vessels**: 3 active (1 carrier group)
    - ⚔️ **Conflicts**: 23 zones (14 with recent escalation)
    - 🌐 **Internet Outages**: 2 AS-level disruptions

    ## Strategic Theater Posture

    **Status**: ⚠️ ELEVATED

    - Increased military aviation activity
    - Carrier Strike Group 2 in Black Sea
    - GPS/GNSS jamming detected in 3 zones

    ## Prediction Markets (Polymarket)

    1. **Russia-Ukraine ceasefire by Q2 2026**: 34% probability
    2. **NATO Article 5 invoked**: 8% probability
    3. **Crimea bridge operational by June**: 12% probability

    ## Infrastructure Exposure (within 600km)

    - 14 undersea cables
    - 3 nuclear facilities
    - 2 major pipelines
    - 8 military bases
    - 1 AI datacenter

    ## Full Geospatial Analysis

    [View live dashboard with 3D globe and real-time tracking](https://worldmonitor.app/story?c=UA&t=brief)

    ---

    *Data sources: ACLED, UCDP, USGS, ADS-B Exchange, Cloudflare Radar, Polymarket*

    *Tags: #OSINT #Geopolitics #Ukraine #IntelligenceAnalysis*
    ```

    **Features**:

    * Full Markdown support
    * Tables for structured data
    * Detailed section breakdown
    * Source attribution
  </Tab>

  <Tab title="Facebook">
    **Character limit**: 63,206 characters

    **Format**:

    ```
    🚨 UKRAINE INTELLIGENCE BRIEF
    March 1, 2026

    📊 Country Instability Index: 73/100 🔴 CRITICAL

    🔴 ACTIVE SIGNALS:
    • 12 protests (3 with fatalities)
    • 8 military flights (4 confirmed hostile)
    • 3 naval vessels (1 carrier group)
    • 23 active conflict zones
    • 2 internet outages (AS-level disruptions)

    ⚠️ STRATEGIC THEATER POSTURE: ELEVATED

    📈 TOP PREDICTION MARKETS:
    • Russia-Ukraine ceasefire by Q2 2026: 34% probability
    • NATO Article 5 invoked: 8% probability

    🌍 View full analysis with interactive 3D globe:
    https://worldmonitor.app/story?c=UA&t=brief

    #OSINT #Geopolitics #Ukraine #IntelligenceAnalysis #SituationalAwareness
    ```

    **Features**:

    * Emoji-rich for engagement
    * Hashtags for reach
    * Link preview triggers OG image (see below)
  </Tab>
</Tabs>

## 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

<Steps>
  <Step title="Story URL is generated">
    Format: `https://worldmonitor.app/story?c=<country>&t=brief`

    Example: `https://worldmonitor.app/story?c=UA&t=brief`
  </Step>

  <Step title="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
    ```
  </Step>

  <Step title="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
    ```
  </Step>

  <Step title="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)
  </Step>

  <Step title="Social platform caches the image">
    The bot renders the SVG as a PNG and caches it. Users see the preview card in their feed.
  </Step>
</Steps>

### OG Image Example

```html theme={null}
<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" />
```

<Tip>
  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.
</Tip>

## Canvas-Based Image Export

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

<Steps>
  <Step title="Open a country brief">
    Click any country on the map.
  </Step>

  <Step title="Click Export → PNG">
    Located in the export dropdown.
  </Step>

  <Step title="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
  </Step>

  <Step title="PNG download triggers">
    File name: `ukraine-brief-2026-03-01.png`
  </Step>
</Steps>

### 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

<Warning>
  PNG export can take 5–10 seconds for briefs with large timelines or many signals. Be patient while the canvas renders.
</Warning>

## Deep Links

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:

<CardGroup cols={2}>
  <Card title="✅ Full Support">
    * Twitter/X (Twitterbot)
    * Facebook (facebookexternalhit)
    * LinkedIn (LinkedInBot)
    * Telegram (TelegramBot)
    * Discord (Discordbot)
    * Reddit (redditbot)
    * WhatsApp (WhatsApp)
  </Card>

  <Card title="⚠️ Partial Support">
    * Instagram (requires Business accounts for link previews)
    * Snapchat (no link preview API)
    * TikTok (no OG tag support)
  </Card>
</CardGroup>

<Info>
  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.
</Info>

## Troubleshooting

<AccordionGroup>
  <Accordion title="OG image not showing on Twitter/Facebook">
    Social platforms cache OG images aggressively. If you update a brief:

    1. **Twitter**: Use the [Card Validator](https://cards-dev.twitter.com/validator) to refresh
    2. **Facebook**: Use the [Sharing Debugger](https://developers.facebook.com/tools/debug/) to scrape again
    3. **LinkedIn**: Use the [Post Inspector](https://www.linkedin.com/post-inspector/) to refresh

    Or add a cache-busting parameter: `?c=UA&t=brief&v=2`
  </Accordion>

  <Accordion title="PNG export is blank or incomplete">
    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
  </Accordion>

  <Accordion title="Share text is truncated on Twitter">
    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
  </Accordion>

  <Accordion title="Deep link redirects to homepage">
    This means the country code is invalid or missing:

    * Ensure the URL has `?c=<ISO-2>` (e.g., `?c=UA`)
    * Use 2-letter ISO country codes (not 3-letter or names)
    * Check for typos: `?c=US` (correct) vs `?c=USA` (incorrect)
  </Accordion>
</AccordionGroup>

## Related Features

* [Country Analysis](/guide/country-analysis) — Understanding CII scores and signals
* [World Brief](/guide/world-brief) — AI-generated global summaries
* [Localization](/guide/localization) — Sharing briefs in multiple languages
