AGENCY
ZGRZ Agency

Multilingual media platform for news, events, and jobs

A platform for managing content, advertising, and access roles — with automated translation via DeepL and partner access through both the Back Office and the API.

 

Structured Content Modeling
Content-Driven
Content Management
Search & Filtering
Media
Directus CMS
B2C
Portal

About the Project

A media portal that brings news, events, and job postings together in one structure with shared categories and filters. End users read articles, search events by city and date, browse job listings, and click through to external application forms. The site supports 8 languages: content is created in a base language, and localized versions are generated automatically across the others. Content is produced both by the editorial team and external partners with limited Back Office access.

 

About Customer

Simon, the owner of the media project, monetizes traffic through banner advertising, sponsored publications, event promo blocks, and paid job placements. He's also one of those clients who shares our vibe and values — the kind of engagement where the working relationship turns into a real friendship over time. Simon wanted a new backend that would let him manage all content, roles, and advertising from a single Back Office and stay ready for further frontend development.

 

Multilingual content

 

The portal had to support around eight languages so that editors could maintain a single original version of each article while localizations are generated and updated without manual duplication.

 

Shared categorization

 

News, events, and jobs share topics and sections but have different data structures and filter logic. The data model had to let content intersect through shared categories without forcing separate structures.

 

Advertising inventory

 

Ad placements were managed without any centralized system. The client needed a tool where ad zones, page- and category-level targeting, and creatives could all be managed without touching code.

 

Back Office permissions

 

News editors, event managers, job managers, advertising admins, and external partners all needed clearly different access rights.

 

DeepL-based translation workflow

 

The system had to integrate with DeepL while still letting editors decide what to translate automatically, where to edit by hand, and how to track localization freshness.

 

Partner access

 

Some external companies needed to publish jobs themselves — through the Back Office or the API. That required dedicated roles, quotas, and moderation hooks.

 

Proposed Solution

We built a headless backend on Directus — with an extended role model, structured content for news, events, and job listings, an advertising-zone management module, and DeepL integration for automatic localization. The frontend runs as a separate client over the public API, decoupled from how the Back Office is organized.

 

Content modeling

 

We started by defining all content types, then for each type defining required fields, filters, and shared categories — so a user could browse, for example, events and news on the same topic without duplicating the underlying structure.

 

Unified content model

 

We set up entities for News, Event, Job, Category, Location, and Employer in Directus. Categories and tags are used simultaneously by different content types, so the team could manage the topic tree in one place and immediately affect how the entire content stream renders.

 

Multilingual workflow and DeepL integration

 

We implemented multilingual handling through a service that sends base-language text to DeepL, receives the translation, and fills the corresponding fields for the other languages. Editors can flag records as "needs review," and the system stores when each translation was made and from which source version.

 

Back Office for editorial and management teams

 

We laid out the Back Office as clear sections: news, events, jobs, advertising, users, and partners. Each module has its own role setup — news editors don’t see advertising settings, job managers work only within their own section, and administrators control the category structure and the language list.

 

Advertising zones and display rules

 

In the backend, we designed a model where an ad zone is bound to a page type, category, language, and on-page position. That lets advertising managers turn specific blocks on and off, swap creatives, and set display priorities — without touching frontend code.

 

Partner access and the jobs API

 

For external companies, we created separate accounts with restricted permissions: creating and editing their own job postings, viewing applications, and integrating through the API. At the API layer, we implemented access keys, quotas, and basic rate limits — to keep the platform stable and avoid overloading moderation.

 

Audit, logging, and monitoring

 

In Directus, we enabled user-action auditing and added custom logs for publication events, localization updates, and ad-zone configuration changes. Logging also helps track failures from DeepL calls and partner API requests, so the team can react quickly when something breaks.

 

The first step was interviews with editors, ad managers, and the project owner. Each group described their current workflows: how news got prepared, how events were added, how job postings came in and got published, how advertising was sold. From those conversations, we mapped the actual workflows and identified inefficiencies.

 

Directus CMS
PostgreSQL
DeepL API
SendGrid

Results

The new backend turned the portal into a managed multilingual platform where content, advertising, and partner postings live in one system. The editorial team now works from a single Back Office; sales has a transparent tool for managing ad inventory.

 

8 languages 

from a single source — auto-localized, with status indicators for readiness control

1–2 minutes

to publish content, including all localized versions

0 developer involvement

for banner management — ad zones, targeting, priorities, and creatives are all managed in the Back Office

Under 5 minutes

to launch a new ad campaign, because the manager assembles it from pre-built zones and display rules

2 publishing paths

for partners — Back Office or API — letting external companies post jobs on their own

100%

of Back Office actions are audited; every action and every change is logged

Get in Touch

Or send us a message and we'll get back to you within 15 minutes during business hours

Enter your name

Enter your email

Enter your message

Andrii Trubai

Andrii Trubai

CEO | Head of WebDev department

More Success Stories