Social media tier distribution Pie chart: social media tier distribution across 82,714 scanned pages. Legacy only: 27,623 (33.4%), Modern only: 1,496 (1.8%), Mixed: 4,285 (5.2%), No Social: 52,161 (63.1%) Twitter/X only: 27,623 (32.3%) Modern only: 1,496 (1.7%) Mixed: 4,285 (5.0%) No Social: 52,161 (61.0%) Twitter/X only (32.3%) Modern only (1.7%) Mixed (5.0%) No Social (61.0%)

Social media tier distribution

Stats as of 2026-04-09 02:54 UTC — last scan: 2026-04-09

185 scan batches run

82,714 of 82,714 available pages scanned (100.0% coverage) 77,380 of 82,714 scanned pages were reachable (93.6%)

Legacy social media (older, centralised platforms):

Platform Pages with link % of scanned % of reachable
🐦 Twitter 14,596 17.6% 18.9%
✖ X 3,309 4.0% 4.3%
👍 Facebook 28,211 34.1% 36.5%
💼 LinkedIn 9,574 11.6% 12.4%

Modern / open social media (decentralised or open platforms):

Platform Pages with link % of scanned % of reachable
🦋 Bluesky 627 0.8% 0.8%
🐘 Mastodon / Fediverse 4,286 5.2% 5.5%

📥 Machine-readable results are available as the social-media-data.json artifact in the latest Generate Scan Progress Report workflow run.


Digital Sovereignty Rankings

Countries ranked by Digital Sovereignty Score — the percentage of reachable pages using no social media or modern open platforms only (Mastodon / Bluesky). A higher score means fewer links to US corporate social-media platforms (Twitter / X, Facebook, LinkedIn). Pages with no social-media links at all score highest; pages linking only to Mastodon or Bluesky also rank well. Legacy Exposure shows the percentage of reachable pages that still link to Twitter/X, Facebook, or LinkedIn.

Rank Country Sovereignty Score No Social Modern Only Legacy Exposure Tier
1 LITHUANIA 95.4% 99 4 30.6% 🥉 Growing
2 SLOVAKIA 94.7% 382 9 35.8% 🥉 Growing
3 AUSTRIA 93.4% 710 25 45.4% 🥉 Growing
4 SWEDEN 92.5% 1,362 14 34.4% 🥉 Growing
5 HUNGARY 92.1% 317 20 40.2% 🥉 Growing
6 ICELAND 91.9% 116 8 44.4% 🥉 Growing
7 NORWAY 91.4% 211 2 23.6% 🥉 Growing
8 BULGARIA 91.4% 235 11 37.9% 🥉 Growing
9 MALTA 87.6% 501 20 27.1% 🥉 Growing
10 DENMARK 87.6% 1,307 10 38.8% 🥉 Growing
11 SLOVENIA 85.8% 156 7 32.1% 🥉 Growing
12 CROATIA 85.3% 187 11 36.2% 🥉 Growing
13 GREECE 83.9% 1,325 41 33.6% 🥉 Growing
14 CZECHIA 82.9% 643 23 34.4% 🥉 Growing
15 BELGIUM 82.8% 960 59 40.5% 🥉 Growing
16 ESTONIA 82.3% 298 22 52.7% 🥉 Growing
17 LUXEMBOURG 81.6% 183 21 40.0% 🥉 Growing
18 GERMANY 80.3% 4,903 301 32.1% 🥉 Growing
19 ROMANIA 79.5% 273 6 38.5% 🥉 Growing
20 REPUBLIC_OF_CYPRUS 79.2% 19 0 45.8% 🥉 Growing
21 SWITZERLAND 77.9% 1,565 56 32.9% 🥉 Growing
22 FINLAND 77.9% 132 2 39.5% 🥉 Growing
23 NETHERLANDS 76.8% 644 54 38.6% 🥉 Growing
24 FRANCE 75.9% 6,968 213 35.8% 🥉 Growing
25 PORTUGAL 71.5% 2,039 57 40.6% 🥉 Growing
26 IRELAND 63.9% 293 25 50.4% 🥉 Growing
27 POLAND 63.9% 8,601 301 51.0% 🥉 Growing
28 UNITED_KINGDOM_UK 61.4% 11,462 37 39.1% 🥉 Growing
29 SPAIN 58.8% 3,193 29 43.5% 🥉 Growing
30 LATVIA 58.8% 430 23 60.2% 🥉 Growing
31 ITALY 55.5% 2,647 85 51.6% 🥉 Growing

Social Media Scan by Country

Available: all government pages tracked in our domain list. Reachable: of those scanned, pages that returned a valid HTTP response (not an error or timeout). Sov. Score: Digital Sovereignty Score — % of reachable pages with no social media or modern-only social presence. Tier columns classify each page by its overall social media presence; platform columns count pages with at least one link to that platform — a page may appear in more than one platform column.

Country Scanned Available Reachable Sov. Score No Social Legacy-only Twitter X Facebook LinkedIn Modern Mixed Bluesky Mastodon Scan Period
AUSTRIA 821 821 787 93.4% 710 312 35 18 351 184 25 45 16 42 Mar 2026 – Apr 2026
BELGIUM 1,309 1,309 1,230 82.8% 960 404 183 74 455 319 59 97 28 90 Mar 2026 – Apr 2026
BULGARIA 291 291 269 91.4% 235 90 18 5 100 4 11 12 0 13 Mar 2026 – Apr 2026
CROATIA 233 233 232 85.3% 187 70 34 0 77 20 11 14 0 14 Mar 2026 – Apr 2026
CZECHIA 843 843 803 82.9% 643 243 131 10 269 28 23 33 0 38 Mar 2026 – Apr 2026
DENMARK 1,521 1,521 1,503 87.6% 1,307 557 176 21 483 339 10 27 17 13 Mar 2026 – Apr 2026
ESTONIA 396 396 389 82.3% 298 180 67 2 204 65 22 25 0 27 Mar 2026 – Apr 2026
FINLAND 180 180 172 77.9% 132 64 28 13 51 57 2 4 2 2 Mar 2026 – Apr 2026
FRANCE 10,007 10,007 9,460 75.9% 6,968 2,837 1,821 636 2,738 1,691 213 547 126 505 Mar 2026 – Apr 2026
GERMANY 6,555 6,555 6,484 80.3% 4,903 1,652 1,177 175 1,661 585 301 430 124 451 Mar 2026 – Apr 2026
GREECE 1,748 1,748 1,628 83.9% 1,325 447 236 60 497 116 41 100 0 103 Mar 2026 – Apr 2026
HUNGARY 390 390 366 92.1% 317 124 29 0 143 12 20 23 0 25 Mar 2026 – Apr 2026
ICELAND 139 139 135 91.9% 116 48 8 5 60 6 8 12 0 14 Mar 2026 – Apr 2026
IRELAND 522 522 498 63.9% 293 197 165 31 215 98 25 54 18 42 Mar 2026 – Apr 2026
ITALY 5,338 5,338 4,919 55.5% 2,647 2,278 2,044 94 2,374 538 85 260 0 290 Mar 2026 – Apr 2026
LATVIA 802 802 771 58.8% 430 382 284 47 447 165 23 82 0 83 Mar 2026 – Apr 2026
LITHUANIA 120 120 108 95.4% 99 29 5 0 33 15 4 4 0 4 Mar 2026 – Apr 2026
LUXEMBOURG 571 571 250 81.6% 183 64 43 3 89 65 21 36 11 33 Mar 2026 – Apr 2026
MALTA 608 608 595 87.6% 501 129 57 17 152 69 20 32 0 34 Mar 2026 – Apr 2026
NETHERLANDS 937 937 909 76.8% 644 257 148 74 305 218 54 95 45 77 Mar 2026 – Apr 2026
NORWAY 239 239 233 91.4% 211 55 10 13 40 42 2 0 0 2 Mar 2026 – Apr 2026
POLAND 14,938 14,938 13,941 63.9% 8,601 6,150 1,092 325 6,990 762 301 957 1 1,047 Mar 2026 – Apr 2026
PORTUGAL 3,503 3,503 2,933 71.5% 2,039 1,015 430 70 1,116 271 57 175 2 183 Mar 2026 – Apr 2026
REPUBLIC_OF_CYPRUS 24 24 24 79.2% 19 11 5 0 11 3 0 0 0 0 Mar 2026 – Apr 2026
ROMANIA 799 799 351 79.5% 273 124 42 1 135 13 6 11 0 14 Mar 2026 – Apr 2026
SLOVAKIA 434 434 413 94.7% 382 135 17 9 143 50 9 13 0 13 Mar 2026 – Apr 2026
SLOVENIA 200 200 190 85.8% 156 52 21 6 57 5 7 9 1 9 Mar 2026 – Apr 2026
SPAIN 6,069 6,069 5,475 58.8% 3,193 2,056 1,807 371 1,796 488 29 324 51 311 Mar 2026 – Apr 2026
SWEDEN 1,558 1,558 1,487 92.5% 1,362 477 92 24 443 337 14 35 11 25 Mar 2026 – Apr 2026
SWITZERLAND 2,117 2,117 2,082 77.9% 1,565 557 239 215 256 525 56 128 56 114 Mar 2026 – Apr 2026
UNITED_KINGDOM_UK 19,502 19,502 18,743 61.4% 11,462 6,627 4,152 990 6,520 2,484 37 701 118 668 Mar 2026 – Apr 2026
Total 82,714 82,714 77,380 69.3% 52,161 27,623 14,596 3,309 28,211 9,574 1,496 4,285 627 4,286

Hover or focus any non-zero country-table count to preview matching pages. Activate the number to keep the preview open. Full machine-readable data is available as the social-media-data.json artifact in the latest workflow run.


Overview

The social media scanner fetches each government page and inspects the HTML for links to known social platforms. Results are stored in the metadata database and published to this site via the Scan Progress Report.

Scans run automatically every 3 hours via GitHub Actions so that the full set of ~80,000 URLs across 31 countries can be covered gradually without overloading government servers.


Platforms Tracked

Legacy Social Media (older, centralised platforms)

Platform Domains detected
Twitter twitter.com
X x.com
Facebook facebook.com, fb.com
LinkedIn linkedin.com

Modern / Open Social Media (decentralised or open platforms)

Platform Domains detected
Bluesky bsky.app, bsky.social
Mastodon / Fediverse 40+ known instances + /@username pattern detection

Tier Classification

Each scanned page is assigned one of five tiers:

Tier Meaning
unreachable Page could not be fetched (network error, timeout, 4xx/5xx)
no_social Page is reachable but contains no recognised social media links
twitter_only Page links only to legacy platforms (Twitter, X, Facebook, or LinkedIn)
modern_only Page links only to Bluesky or Mastodon (modern / open platforms)
mixed Page links to at least one legacy platform and at least one modern platform

Viewing Results

Scan Progress Report

The Scan Progress Report is regenerated after every scan and shows per-country breakdowns including:

  • Total URLs scanned and reachable count
  • Tier distribution (twitter-only / modern / mixed / no-social / unreachable)
  • Per-platform link counts (Twitter, X, Bluesky, Mastodon)
  • Date range showing when each country was last scanned

GitHub Actions Artifacts

Each workflow run also uploads a scan artifact containing:

  • data/metadata.db — the full SQLite results database
  • social-scan-output.txt — the raw scan log
  • data/toon-seeds/countries/**_social.toon — annotated TOON files

To download artifacts:

  1. Go to GitHub Actions → Scan Social Media Links
  2. Click on the relevant workflow run
  3. Scroll to the Artifacts section at the bottom of the run summary page
  4. Download social-scan-<run_number> to inspect the database or TOON files

Running a Scan Manually

  1. Go to Actions → Scan Social Media Links
  2. Click Run workflow
  3. Optionally enter a country code (e.g. ICELAND) or leave blank to scan all
  4. Optionally adjust the rate limit (default: 1.0 req/sec)

Via the command line

# Scan a single country
python3 -m src.cli.scan_social_media --country ICELAND --rate-limit 1.0

# Scan all countries (with a 110-minute runtime cap)
python3 -m src.cli.scan_social_media --all --max-runtime 110 --rate-limit 1.0

Output Format

Annotated TOON file (*_social.toon)

Each page entry gains a social_media field:

{
  "url": "https://example.gov/",
  "is_root_page": true,
  "social_media": {
    "is_reachable": true,
    "social_tier": "mixed",
    "twitter_links": ["https://twitter.com/example_gov"],
    "x_links": [],
    "facebook_links": [],
    "linkedin_links": [],
    "bluesky_links": ["https://bsky.app/profile/example.bsky.social"],
    "mastodon_links": []
  }
}

Database table (url_social_media_results)

Column Type Description
url TEXT Page URL
country_code TEXT Country identifier (e.g. ICELAND)
scan_id TEXT Unique scan run identifier
is_reachable INTEGER 1 = reachable, 0 = not reachable
twitter_links TEXT JSON list of twitter.com hrefs found
x_links TEXT JSON list of x.com hrefs found
facebook_links TEXT JSON list of facebook.com / fb.com hrefs found
linkedin_links TEXT JSON list of linkedin.com hrefs found
bluesky_links TEXT JSON list of Bluesky hrefs found
mastodon_links TEXT JSON list of Mastodon hrefs found
social_tier TEXT Tier classification (see above)
scanned_at TEXT ISO-8601 timestamp of scan

Countries Covered

Scans cover all 27 EU member states plus 4 allied nations:

Region Countries
EU member states Austria, Belgium, Bulgaria, Croatia, Czechia, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Poland, Portugal, Republic of Cyprus, Romania, Slovakia, Slovenia, Spain, Sweden
Allied nations Iceland, Norway, Switzerland, United Kingdom

See also the Government Domains page for a full listing of all domains tracked per country.


Architecture

scan-social-media.yml (GitHub Actions — every 3 hours)
    ↓
scan_social_media.py (CLI)
    ↓
SocialMediaScannerJob.scan_country()
    ↓
SocialMediaScanner.scan_urls_batch()
    ↓
For each URL:
    httpx.get()  →  HTML content
    BeautifulSoup  →  extract <a href="..."> links
    Match against platform patterns
    ↓
Classify into social_tier
    ↓
Save to url_social_media_results table
    ↓
Write *_social.toon output file