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.
Â
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.
Â
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.
Â
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.
Â
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.
Â
from a single source — auto-localized, with status indicators for readiness control
to publish content, including all localized versions
for banner management — ad zones, targeting, priorities, and creatives are all managed in the Back Office
to launch a new ad campaign, because the manager assembles it from pre-built zones and display rules
for partners — Back Office or API — letting external companies post jobs on their own
of Back Office actions are audited; every action and every change is logged
Or send us a message and we'll get back to you within 15 minutes during business hours