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.jswas 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.jsandnav-footer.jsboth attached click handlers to#hamburger-btn— double-toggle made the menu immediately close after opening. Removed duplicate handler frommain.js;nav-footer.jsis now the single source of truth for navigation interactivity. - CSP fixes (7 357 pages): removed
onload="this.media='all'"from CSS<link>tags; replaced citationonclick="navigator.clipboard…"withdata-copytargetattribute handled by a delegated listener — both were blocked byContent-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,sitemapwere not loadingnav-footer.min.js— now fixed; all 31 CI validation tests pass. - TODO system restructured: flat
TODO.mdreplaced with a multi-levelTODO/directory (pages / seo / design / tech) with aTODO_MAIN.mdindex.
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:
deferadded 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-i18nattributes removed from all pages;lang="uk"corrected tolang="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.pywith 22 named tasks and adeploy-preppipeline.
2026-03-03 (Initial SEO sweep)
- Article schema
url+imagefields 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
lastmoddates and trailing-slash canonicalisation. BreadcrumbListUkrainian 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.