Social media tier distribution Pie chart: social media tier distribution across 49,868 scanned pages. Legacy only: 14,813 (29.7%), Modern only: 224 (0.4%), Mixed: 2,716 (5.4%), No Social: 28,005 (56.2%) Twitter/X only: 14,813 (32.4%) Modern only: 224 (0.5%) Mixed: 2,716 (5.9%) No Social: 28,005 (61.2%) Twitter/X only (32.4%) Modern only (0.5%) Mixed (5.9%) No Social (61.2%)

Social media tier distribution

Stats as of 2026-05-27 17:24 UTC — last scan: 2026-05-27

44 scan batches run

49,868 of 82,714 available pages scanned (60.3% coverage) 45,758 of 49,868 scanned pages were reachable (91.8%)

Legacy social media (older, centralised platforms):

Platform Pages with link % of scanned % of reachable
🐦 Twitter 8,523 17.1% 18.6%
✖ X 1,653 3.3% 3.6%
👍 Facebook 15,398 30.9% 33.7%
💼 LinkedIn 6,142 12.3% 13.4%

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

Platform Pages with link % of scanned % of reachable
🦋 Bluesky 542 1.1% 1.2%
🐘 Mastodon / Fediverse 2,563 5.1% 5.6%

📥 Machine-readable results are available as the social-media-data.json artifact (machine-readable JSON).


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 76.4% 84 0 23.6% 🥉 Growing
2 Norway 76.0% 175 2 24.0% 🥉 Growing
3 Malta 73.1% 429 2 26.9% 🥉 Growing
4 France 73.0% 5,147 24 27.0% 🥉 Growing
5 Iceland 71.1% 96 0 28.9% 🥉 Growing
6 Germany 69.1% 3,700 69 30.9% 🥉 Growing
7 Slovenia 67.7% 128 0 32.3% 🥉 Growing
8 Switzerland 67.7% 1,368 30 32.3% 🥉 Growing
9 Czechia 66.3% 527 2 33.7% 🥉 Growing
10 Greece 66.3% 1,070 2 33.7% 🥉 Growing
11 Sweden 65.6% 963 3 34.4% 🥉 Growing
12 Finland 64.7% 110 0 35.3% 🥉 Growing
13 Croatia 64.3% 146 0 35.7% 🥉 Growing
14 Romania 63.6% 189 3 36.4% 🥉 Growing
15 United Kingdom 63.4% 2,757 14 36.6% 🥉 Growing
16 Slovakia 62.6% 258 0 37.4% 🥉 Growing
17 Bulgaria 62.5% 164 1 37.5% 🥉 Growing
18 Denmark 62.2% 931 0 37.8% 🥉 Growing
19 Netherlands 61.9% 552 9 38.1% 🥉 Growing
20 Portugal 59.8% 1,710 4 40.2% 🥉 Growing
21 Belgium 59.7% 717 9 40.3% 🥉 Growing
22 Spain 54.4% 1,463 4 45.6% 🥉 Growing
23 Austria 54.2% 420 2 45.8% 🥉 Growing
24 Poland 52.9% 2,032 28 47.1% 🥉 Growing
25 Hungary 51.8% 143 1 48.2% 🥉 Growing
26 Ireland 50.1% 244 0 49.9% 🥉 Growing
27 Estonia 46.3% 172 2 53.7% 🥉 Growing
28 Cyprus 45.8% 11 0 54.2% 🥉 Growing
29 Italy 45.5% 1,849 13 54.5% 🥉 Growing
30 Luxembourg 39.3% 154 0 60.7% ⚠️ Legacy-heavy
31 Latvia 39.1% 296 0 60.9% ⚠️ Legacy-heavy

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 778 54.2% 420 314 29 20 350 186 2 42 13 39 May 2026
Belgium 1,309 1,309 1,217 59.7% 717 399 177 74 454 316 9 92 28 85 May 2026
Bulgaria 291 291 264 62.5% 164 87 18 5 97 4 1 12 0 13 May 2026
Croatia 233 233 227 64.3% 146 67 31 0 77 17 0 14 0 14 May 2026
Czechia 843 843 798 66.3% 527 239 130 10 262 28 2 30 0 32 May 2026
Denmark 1,521 1,521 1,497 62.2% 931 540 168 18 468 334 0 26 16 13 May 2026
Estonia 396 396 376 46.3% 172 178 66 3 201 65 2 24 0 26 May 2026
Finland 180 180 170 64.7% 110 56 23 6 43 49 0 4 2 2 May 2026
France 7,507 10,007 7,086 73.0% 5,147 1,600 1,031 186 1,653 913 24 315 72 290 May 2026
Germany 5,559 6,555 5,451 69.1% 3,700 1,329 952 155 1,320 506 69 353 92 389 May 2026
Greece 1,748 1,748 1,618 66.3% 1,070 446 237 62 516 131 2 100 0 102 May 2026
Hungary 390 390 278 51.8% 143 112 26 0 130 12 1 22 0 23 May 2026
Iceland 139 139 135 71.1% 96 27 8 5 39 6 0 12 0 12 May 2026
Ireland 522 522 487 50.1% 244 189 153 37 211 96 0 54 18 42 May 2026
Italy 4,546 5,338 4,093 45.5% 1,849 1,995 1,729 75 2,127 392 13 236 0 249 May 2026
Latvia 802 802 757 39.1% 296 376 276 47 444 165 0 85 0 85 May 2026
Lithuania 120 120 110 76.4% 84 22 5 0 26 15 0 4 0 4 May 2026
Luxembourg 571 571 392 39.3% 154 66 174 6 227 201 0 172 143 37 May 2026
Malta 608 608 590 73.1% 429 126 52 17 151 67 2 33 0 35 May 2026
Netherlands 937 937 906 61.9% 552 248 140 74 301 213 9 97 47 75 May 2026
Norway 239 239 233 76.0% 175 56 10 13 40 43 2 0 0 2 May 2026
Poland 4,239 14,938 3,892 52.9% 2,032 1,509 357 108 1,800 276 28 323 1 350 May 2026
Portugal 3,503 3,503 2,868 59.8% 1,710 979 402 69 1,078 276 4 175 2 179 May 2026
Cyprus 24 24 24 45.8% 11 13 7 0 13 3 0 0 0 0 May 2026
Romania 743 799 302 63.6% 189 100 35 0 110 9 3 10 0 13 May 2026
Slovakia 434 434 412 62.6% 258 135 17 9 149 55 0 19 0 19 May 2026
Slovenia 200 200 189 67.7% 128 52 21 6 57 5 0 9 1 9 May 2026
Spain 3,093 6,069 2,699 54.4% 1,463 1,089 912 214 946 268 4 143 25 126 May 2026
Sweden 1,558 1,558 1,473 65.6% 963 474 80 18 436 334 3 33 11 25 May 2026
Switzerland 2,117 2,117 2,066 67.7% 1,368 544 218 213 249 518 30 124 54 114 May 2026
United Kingdom 4,675 19,502 4,370 63.4% 2,757 1,446 1,039 203 1,423 639 14 153 17 159 May 2026
Total 49,868 82,714 45,758 61.7% 28,005 14,813 8,523 1,653 15,398 6,142 224 2,716 542 2,563

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 (machine-readable JSON).


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

flowchart TD
    A["scan-social-media.yml\n(GitHub Actions — every 3 hours)"]
    A --> B["scan_social_media.py (CLI)"]
    B --> C["SocialMediaScannerJob.scan_country()"]
    C --> D["SocialMediaScanner.scan_urls_batch()"]
    D --> E["For each URL"]
    E --> F["httpx.get() → HTML content"]
    F --> G["BeautifulSoup → extract href links\nMatch against platform patterns"]
    G --> H["Classify into social_tier"]
    H --> I["Save to url_social_media_results table"]
    I --> J["Write *_social.toon output file"]