← Back
Case Study

Redação — An AI-Assisted Newsroom

musica.com.pt / Digital Streetz — Internal tool — 2026

Redação home screen: items waiting, inbox state, scheduled and embargoed items, and the queue of stuck items and unfinished drafts

Musica.com.pt is an independent music newspaper run by a small team. Every day, press releases arrive by email from labels, promoters and festivals, most of them as HTML newsletters with images, attachments and the odd embargo, alongside news spotted on social media and in RSS feeds.

Turning one of them into a published article meant opening mailboxes, copying text, hunting down images and resizing them, doing the SEO by hand and then rebuilding everything in WordPress. It took hours per article, and nobody could see at a glance what was waiting, who was on what, or what was already done.

<1hPer article, down from hours
1Shared queue for email, browser, feeds and paste
2Models to choose from: cloud or local

With everything in one place, the newsroom now produces an article in under an hour instead of several. It also changed how the team works together: assigning work is simple, and everyone can see what they are on and what is still in the queue.

A Digital Streetz project for musica.com.pt, which I direct as Director of Brand & Product. Redação was thought and designed around the newsroom's day, and thought as a tool to save hours of work by streamlining workflows.

  • One inbox for everything. Email (read without ever marking, moving or deleting anything, with PDF and Word attachments turned into text and newsletter images downloaded), a browser bookmarklet for web pages and social posts, RSS feeds and manual paste all land in the same queue.
  • A queue the whole newsroom can see. Every item has a state (new, reviewed, drafted, snoozed, won't do or done), and the home screen shows what is waiting, what is stuck and what is scheduled or under embargo.
  • AI extracts, it never rewrites. The source text is kept as a literal copy, and the AI only fills fields from it, with category and tags limited to values that already exist on the site. People review everything before it moves on.
  • Cloud or local, chosen per item. Claude in the cloud answers in one to three seconds for a few cents; Bonsai, a 27-billion-parameter model running on the newsroom's own machine, is free and private but takes 20 to 40 seconds. The choice sits next to the button, and so far every analysis has run locally.
  • Outside the website. Redação runs on the newsroom's machine, never ships with the site, talks to WordPress through its API, and can create drafts on a local copy of the site before they go to production.
Redação inbox: press releases by email with source, received date, embargo state and attachments

One inbox for every source, filtered by source, state and embargo.

AI assistant on an item: local model selected, suggested category and tags, and extracted facts each with its source

The AI assistant, here on the local model: it suggests the fields and lists every fact with its source, for people to check.

Editor with the final article text and the SEO coverage panel alongside

The editor: people write the article, with SEO coverage alongside, here at 94.2 for a festival press release turned into a story.

AI is built into each step, but as an assistant beside the editor, never in their place. The decisions and the checks stay with people.

  • It structures. From a press release it suggests the headline, summary, category, tags and embargo date, and lists the facts it found, each with its source, so they can be checked in seconds.
  • It writes only on request, and only a little. The SEO assistant can suggest one short paragraph of up to 120 words built from missing terms, fully editable and never sent to WordPress on its own; its instructions forbid keyword stuffing and invented facts. Social captions, hashtags and the newsletter snippet are generated from the finished article on request and never touch it.
  • Images stay on the machine. Photos are cropped to the site's real sizes and upscaled on the local graphics card with the Real-ESRGAN and ATD models, and the originals are never altered.

Behind the editor runs a local SEO service written in Python. Given five to twenty competing articles, found by hand or through Google's search API, it extracts their main text, analyses it with a Portuguese language model (spaCy: named entities, noun phrases and key terms), and scores every term by how many competitors cover it, how often and how early.

The editor then shows which terms are missing, covered or overused in our own article, next to an objective checklist for the title, length, keyword density, paragraph length and internal links. The service has its own automated tests, so the scoring can change without breaking the newsroom's day.

Competitor URLs analysed for the article, next to the list of terms with their type, competitor coverage and target range

Competitors analysed with NLP: every term shows its type, how many competitors use it, and our count against the target range.

Feeds reader with folders, starred items and a button to send an article to the inbox

Feeds: 56 sources in folders, with stars and one click to the inbox.

Upscaler with a choice of local models, scale and fine-tuning options

The upscaler runs local models, so photos never leave the machine.

  • The best internal tools remove steps, not people. Much of the time used to go into gathering, copying and resizing; putting it all in one place gave that time back to writing.
  • Give people the choice of model, and the last word. Showing the trade-off between speed, cost and privacy, and keeping review mandatory, is what makes the AI easy to trust.
  • A queue everyone can see is a management tool. Once the state of every item was visible, dividing the work and following it through became simple.