EN
Media platform · Migration · Ongoing engineering
A new publishing platform for a newsroom facing cyberattacks.
We built a new website for Novosti Donbasu, developed tools to migrate its archive and took an active part in defending the platform against attacks from launch.
Project overview
- Our role
- Platform development, migration tools, attack defence and ongoing support
- Foundation
- WordPress · Adapted theme and custom modules
- Operations
- Caddy · MySQL · Redis · Cloudflare Tunnel
The newsroom
A platform for the newsroom’s daily work.
Development of the new site was already underway when the legacy website was compromised and subsequently lost. We adapted WordPress to the newsroom’s publishing workflow: language versions, navigation, article templates and the editing interface. Alongside the public website, we developed tools to prepare and import the existing archive.

- 01Multilingual publishing
- 02Editorial tools
- 03Custom modules
Legacy content
Custom tools for migrating the archive.
The old archive used a different content structure. Publication types, languages, tags and images needed to be mapped to WordPress fields. We built preparation scripts and a custom import plugin with a preview mode, options to create or update publications, and control over which fields to change. Imports run in batches and record their actions in a log. A separate component uses original publication IDs to handle legacy links.
Migration tooling — simplified data flow
- Legacy records
Publication type · Language · Original ID
- Preparation and mapping
Tags and images · Field mapping · Preview run
- WordPress import
Create or update · Selected fields · Action log
Publication types, languages, tags and images are mapped before records are created or updated.
- 01Custom import plugin
- 02Selective updates
- 03Legacy links
Incident handling
Cleaning legacy content and defending the new site.
Before migrating the archive, we examined a copy of the old database and found signs of infection in publication content, including injected scripts and embedded frames. We shared the findings with the newsroom and CERT-UA specialists, and cleaned the inherited content during migration. From launch, our team took an active part in defending the new site: analysing requests, applying blocks and improving its protection. Responding to attacks became part of our ongoing technical support.

IMI reporting on the attack, 18 March 2026. Article by Yuliia Harkusha.
- 01Database analysis
- 02Content cleanup
- 03Attack defence
Beyond release
Supporting the platform after launch.
After launch, we fixed database errors and improved resource loading, background tasks and caching. We set up separate production and test environments on the server, each with its own database and file storage. We also developed backup tools for database dumps and file archives, checksum verification, remote transfer and a restore procedure. Application configuration, media and backup storage are managed separately.
Production architecture · September 2026
- Cloudflare → Tunnel
The public domain routes to the origin
- Caddy
Static files and media · Requests to PHP-FPM
- WordPress / PHP-FPM
Publishing application · Scheduled WordPress tasks
- MySQL + Redis
Publication data + object cache
Production and test run on the same VPS, with separate databases and file storage. Redis provides object caching.
- 01Production and test
- 02Backup tools
- 03Ongoing support
The result
A new website and tools built for the newsroom.
Novosti Donbasu gained a multilingual WordPress platform with adapted publishing workflows and custom editorial components. Our migration tools accounted for the structure of its existing archive, including publication types, languages and legacy identifiers.
Ongoing work
Launch was the start of the next stage.
After the new site went live, we continued improving editorial tools, supporting the infrastructure and helping defend the platform against attacks. Development and technical support remained part of the same project.