Custom software · since 2018

Case study

Baltic Monitor

A daily read on Baltic security: today’s escalation index and the events behind it, researched, written and translated every morning in four languages.

Type
AI news digest
Started
2026
Languages
EN, ET, RU, PL
Published
115+ daily issues

The problem

News about military preparation around the Baltic states is spread across dozens of outlets in half a dozen languages, and it is easy to lose the big picture — or to be misled by a single loud headline. Baltic Monitor gives readers one calm, sourced summary per day and a simple answer to the question “is it getting worse?”

What we built

  • A daily issue with the key events of the day, details by topic, contradictions between sources, a risk assessment and a full source list.
  • An escalation index from 0 to 10, with the drivers on each side, the stabilising factors, historical benchmarks and the change since the previous issue.
  • Topic pages — the Suwałki Gap, the Baltic Defence Line, Kaliningrad, Narva, NATO forces, named exercises — that update themselves with related issues and charts.
  • An archive with search, a methodology page, a public corrections log, an RSS feed per language and a daily Telegram post.

How the pipeline works

1. Research every morning

A scheduled AI agent runs daily from a written, version-controlled routine. It searches national outlets, defence ministries and international agencies in English, Russian, Estonian, Latvian, Lithuanian and Polish.

2. Editorial rules, not vibes

Only fresh news counts, and any high-impact claim needs two independent sources. Recurring exercises are checked to be this year’s edition. Sanctioned and blocked propaganda domains are kept in a registry: they can be cited as text but are never linked, and the build strips any such links automatically.

3. Write, translate, validate

The agent writes the master text, translates it into the other languages and runs validators for format, score parsing, social-post rules and language coverage before anything is committed.

4. Publish

A small, dependency-light static site generator builds every page, chart and social card. The push deploys the site automatically, and a scheduled job posts to Telegram — only if today’s issue is really there.

Engineering highlights

  • No database and no framework: content lives as Markdown and JSON in git, so every change is reviewable and reversible.
  • Guardrails for the AI agent live separately from its routine and can’t be loosened by it.
  • Adding a language is a single registry entry; Polish was added this way.
  • Charts and the risk gauge are inline SVG; social cards are rendered to PNG without heavy image tooling.
  • About 200 automated tests on the built-in Node.js test runner.

Related services: Integrations, bots & AI · Software testing & QA · Software support & maintenance

More case studies: fewbase · Drones War · DevGrants Daily

Want something like this?

Tell us what you’d like to build. Small scopes welcome, async communication, a reply within one business day.

Start a conversation