Every marker is a real place. Every number refers to a person.
Overnight into 30 July Russia carried out one of its heaviest combined missile-and-drone attacks of the summer, launching 358 missiles and drones at targets across the country. A missile strike on Novopilska hromada in the Kryvyi Rih district of Dnipropetrovsk Oblast killed six people, among them three children — a six-year-old girl and boys aged 11 and 17 — and injured ten, the deadliest single attack of the period. A ballistic strike on Kyiv killed one man and injured two; Russian shelling killed three people in Donetsk Oblast and two in Kherson Oblast. Across ten oblasts at least 12 people were killed and 99 injured, many of the injured children. A pre-dawn missile strike on residential Lviv injured 34 people and set apartment blocks, a school and two kindergartens alight; that toll is preliminary — the search-and-rescue operation was still under way as this report was compiled and people were feared trapped under the rubble.
These are not just numbers, photographs, or cards. They are real people’s lives.This report preserves only facts confirmed by official sources.
Overnight into 30 July (from 18:00 on 29 July), Russia launched a massed combined attack on Ukraine, its main directions Kyiv and Lviv oblasts and also Dnipropetrovsk, Sumy, Vinnytsia, Poltava, Mykolaiv and Ivano-Frankivsk oblasts. The Ukrainian Air Force said it recorded 358 means of air attack — 74 missiles (four Zircon/Oniks anti-ship missiles, nine Iskander-M/S-400/KN-23 ballistic missiles and 61 Kh-101/Kalibr cruise missiles) and 284 Shahed-type, Gerbera, Italmas and "Parodiya" decoy drones. As of 09:00 on 30 July air defence had shot down or suppressed 320 targets — 55 missiles and 265 drones. Hits by three anti-ship, six ballistic and two cruise missiles and 17 attack drones were recorded at 20 locations, with debris from intercepted weapons falling at 13 more; the fate of eight missiles was still being clarified. The tally is preliminary: the Air Force said the attack was still under way when it was published.
Verified by the UN Human Rights Monitoring Mission (OHCHR): in June 2026 alone, at least 293 civilians were killed and 1,990 injured in Ukraine — the deadliest month for civilians since April 2022.
Official confirmation required. A report is included only after confirmation by a Ukrainian regional administration, the State Emergency Service (DSNS), police or another public authority. A link may lead to reputable reporting that directly attributes the facts to that official source. Casualty figures are official and time-stamped.
Curated, not exhaustive. Reporting delays, safety restrictions and limited information from occupied territories mean that some attacks will not appear. A report can also be delayed until an official account is available.
Finished editions, coarse locations. This is not a live map: each edition covers a completed 24-hour window, and a report appears only after Ukrainian authorities have made it public themselves. Exact coordinates appear only if the authorities have disclosed a location; otherwise the map shows the district or city. Casualty figures are preliminary, time-stamped (“as of …”) and corrected as official updates arrive.
Overlapping official windows. An oblast’s 24-hour tally can cover a strike this site already reported on its own the previous morning, hours before that tally was published. Each card keeps the figure its official source stated, so an edition’s daily total is the sum of the official reports it contains and can overlap the edition before it. Multi-day totals on the map subtract the overlap, so every victim is counted once.
No money passes through the app. Every “Support” button is a direct external link to an established fund (UNITED24, Superhumans, Voices of Children and others), matched to the kind of recovery or relief work involved. These links support each fund’s broader work and are not earmarked for the people or locations in a specific report.
“Support the project” is separate from the funds. The Ko-fi link in the footer covers only the project’s own running costs — hosting, subscriptions and maintenance. It is not a fundraiser for victims, it is not connected to any of the funds above, and the project is not run for profit.
Thank you for staying with the people behind these numbers, photographs and reports.
The most helpful thing you can do right now takes ten seconds: share this report so more people see it.
A new report is published every morning — come back tomorrow.