Case study
Approved marketing content for three markets, from a single source document
Gloster's in-house content system: from one uploaded document it writes blog articles, social posts, newsletters and video scripts in Hungarian, English and German, and the team approves each piece before it goes out.
- System
- Internal AI content platform
- Period
- May to July 2026
- Status
- Live, in daily use
- Technology
- Next.js, TypeScript, PostgreSQL (Supabase), Drizzle, Claude
Per the July 2026 system summary: 13 users · 13 campaigns · 120 finished pieces · 60+ creatives.
One post in three markets
The same post per market: where its approval stands, and which version is localised and which is a translation. The content is made up.
Sample campaign: spring announcement
- MarketHungarianAuthor and reviewerVersionStatus
- MarketEnglishMarket reviewerVersionStatus
- MarketGermanNumber check passedVersionStatus
Approval, English market
Every step is in the version history.
What the team needed solved
Approved, publish-ready marketing content from source documents, in one central workspace.
For three markets, in Hungarian, English and German, each written for its own readers.
The brand voice, the approvals and the instructions that steer the AI had to stay with the team.
What we built
It starts from the source
Upload a case study, a marketing brief, event material or a finished article, as a PDF, a Word file or pasted text. The system recognises what kind of document it is, pulls out what matters, and asks at upload if something important is missing.
It asks before it writes
It first asks whether you already have text of your own. If not, it asks at most three targeted questions with suggested answers, then shows a summary of what the writing will start from.
Four formats, several versions
Blog articles, social posts, newsletters and video scripts. One channel can get several versions with different angles from the same material.
It localises, or translates faithfully
By default it writes each market its own text, for the habits of the readers there. From a finished, approved text it can also translate faithfully, and a built-in check fails the translation if a single number differs from the original.
A native-language pass
Every Hungarian text is read by a second AI pass that fixes sentences that sound translated. It may not touch facts or numbers.
Two-level approval
The author approves first, then the market's reviewer. Reviewers see only their own market's content, every post has a comment thread and a version history, and the system tells people in the app and by email when something is waiting for them.
Creatives in the brand
Image creatives are made from the campaign's content with the company's brand elements, in square, portrait, story and landscape sizes. The text can be rewritten afterwards without the design changing, and every version is kept.
Publishing from the workspace
Blog articles go to the company's Webflow site and newsletters go out through Brevo, with opens and clicks coming back to the workspace. Approving a social post hands it to the social scheduler.
The instructions stay with the team
The instructions that steer the AI, the brand's voice and each market's, can be read and edited in Settings. Every version is kept, can be compared and restored in one click, and each manual edit keeps the AI's original text beside it.
How it works
One post, from upload to publishing
Source
Upload. The system pulls out what matters and asks if something is missing.
Questions
At most three targeted questions with suggested answers, then a summary.
Writing
One of two paths, per market:
Localise
Its own text for each market. The default.
Faithful translation
From a finished, approved text, with a number check.
Native-language pass
A second AI pass reads the Hungarian text. It leaves the facts alone.
Two-level approval
The author first, then the market's reviewer.
Publishing
Blog article to the company's site, newsletter through Brevo, social post to the scheduler.
How we built it
Every change is logged
Every write adds a row to the audit log, and nothing is deleted from it, so every step can be traced.
The AI's text stays separate
On generation the AI's version goes into its own field, which nothing overwrites afterwards. Edits are saved separately, with the earlier value.
Broken text does not get through
Every model call is checked for errors. A cut-off or malformed answer is not let through, and the call is retried automatically.
Generation runs on the server
Requests go into a server-side queue, so closing the browser or shipping a new release does not interrupt a generation.
Roles
Four roles, and a reviewer sees only their own market. Server-side actions check every permission, and every data table has row-level security.
Test, then production
Three environments: local, test and production, and a database change reaches production only through test. Since September 2026 every release passes automated checks, and a person starts each production release. The test suite is 418 files (11 September 2026).
A process you would put into a system like this?
Write down what is done by hand today and what the goal would be. We start from what you write.
A person reads what you send and replies to exactly that.