Skip to main content
🔴 LIVE — Day 1517 of the full-scale invasion  |  Latest: Frontline Dynamics — March 2026 Analysis
Reference

Changelog

Major content additions, infrastructure changes and SEO/editorial improvements, newest first. Minor fixes and per-page corrections are tracked in version control rather than here. For machine-readable update history of individual articles see the dateModified field in each page’s JSON-LD.

2026-05-30 (вечір)

  • Критичний фікс: синтаксична помилка в main.min.js блокувала рендеринг усіх дашбордів і статистики в EN-режимі. Виправлено; додано перевірку синтаксу JS у CI перед деплоєм.
  • Українська мова: повноцінний EN/UA перемикач у шапці — переклад навігації, hero-блоку, лічильників, футера, FAQ-кнопок.
  • FAQ: акордеон з анімацією, кнопка «показати більше», клавіатурна доступність (Enter/Space), коректне розгортання багатоабзацних відповідей.
  • UI: кнопка «Копіювати посилання», кнопка закриття стрічки сповіщень, плавна анімація випадних меню, прокрутка хлібних крихт на мобільних, виразніший hover карток.
  • Доступність: видимі focus-стилі, skip-link, підтримка prefers-reduced-motion.
  • Друк: @media print для статей. Продуктивність: prefetch ключових сторінок.

2026-05-30

  • Hosting migration: site moved from shared Ukrainian hosting to Hetzner CX23 (Nuremberg). nginx config with 200+ legacy redirects from .htaccess, Let’s Encrypt SSL, GitHub Actions auto-deploy via rsync.
  • Bug fix — duplicate navigation: nav-footer.js was injecting a second <header> and <footer> on pages with baked nav. Fixed: injection now skips if <header>/<footer> already exist in the DOM.
  • Bug fix — hamburger menu: main.js and nav-footer.js both attached click handlers to #hamburger-btn — double-toggle made the menu immediately close after opening. Removed duplicate handler from main.js; nav-footer.js is now the single source of truth for navigation interactivity.
  • CSP fixes (7 357 pages): removed onload="this.media='all'" from CSS <link> tags; replaced citation onclick="navigator.clipboard…" with data-copytarget attribute handled by a delegated listener — both were blocked by Content-Security-Policy: script-src.
  • Dynamic day counter: war-day figure in the alert bar on the homepage now calculated client-side from the invasion start date (2022-02-24) instead of being hardcoded.
  • Language switcher hidden: EN/UA toggle removed from the header UI pending a proper Ukrainian translation; markup preserved for future use.
  • Missing nav/footer (11 pages): about/team/, changelog, data-sources, disclaimer, sitemap were not loading nav-footer.min.js — now fixed; all 31 CI validation tests pass.
  • TODO system restructured: flat TODO.md replaced with a multi-level TODO/ directory (pages / seo / design / tech) with a TODO_MAIN.md index.

2026-04-21

  • Reference pages: added human-readable HTML sitemap, Data Sources catalog, Disclaimer and this Changelog page.
  • Footer: linked the new reference pages from the global footer.

2026-04-20

  • Localisation: created perspective hubs for the United States, United Kingdom and European Union.
  • Press & media kit: launched /press/ with citation guidelines (APA, MLA, Chicago), embeddable widgets and a public data API endpoint.
  • Embeddable widgets: added /embed/losses, /embed/aid, /embed/refugees.
  • SEO infrastructure: IndexNow integration, image sitemap, geo meta tags on 890 location pages, critical CSS injection on every page, "Cite this page" widget on 7,300+ pages.
  • Bylines & dates: visible "Last updated" timestamp added to ~5,000 article pages; author byline + reading time on 7,011 pages.
  • Schema: 24,000+ JSON-LD schemas validated with zero issues; HowTo schema added to methodology and OSINT guides; Dataset schema added to 1,800+ data-heavy pages.

2026-04 (Diaspora cluster)

  • New top-level category: Ukrainians Abroad — refugee legal status, return policies, integration outcomes and host-country politics.
  • Includes country-specific status pages for Germany, Poland, Czech Republic, UK, France, Sweden, Denmark, Netherlands, USA, Canada, Italy, Spain, Ireland, plus a Nordic/Baltic group.
  • Cross-linked with Humanitarian and International.

2026-03

  • Content batches: ~1,860 new pages generated from the archived TODO files across units, humanitarian, logistics, people, battles, economy, history, analysis, comparisons, cyber, technology and more.
  • Sitemap split: monolithic sitemap.xml replaced by sitemapindex with 25+ per-category sub-sitemaps.
  • Performance: defer added to data and nav scripts site-wide; nav switched to minified bundle; Chart.js stripped from pages without canvas (~2,650 pages).
  • i18n cleanup: site formally English-only — the legacy translation script and data-i18n attributes removed from all pages; lang="uk" corrected to lang="en" on 237 pages.
  • OG images: 26 category-specific PNG OG images generated and applied to ~5,200 pages; later converted to WebP for ~244 KB savings.
  • Build system: single entry point scripts/build.py with 22 named tasks and a deploy-prep pipeline.

2026-03-03 (Initial SEO sweep)

  • Article schema url + image fields added to ~5,100 pages.
  • Open Graph and Twitter Card meta added or completed on ~1,800 pages.
  • Invalid hreflang="x-default" tags removed from 305 pages.
  • Sitemap rebuilt with deduplication, real lastmod dates and trailing-slash canonicalisation.
  • BreadcrumbList Ukrainian text replaced with English on 3,100+ pages.

Earlier

Site established as a comprehensive open-source platform covering the full-scale Russian invasion of Ukraine since 24 February 2022. Initial topical coverage focused on battles, weapons systems and casualty tracking, expanding over time into diplomacy, economy, humanitarian impact, history, technology and the diaspora.

Subscribe to updates

The RSS feed publishes the 50 most recent articles with accurate per-article publication and modification dates.