Fonn Group reportertools

One search box. Every source a reporter needs.

Politiloggen, Brønnøysund, Norwegian postjournals, Creditsafe, Wikipedia, Feedbin. Aggregated, normalized, ranked, served as a single Saga search plugin.

Hit Hormuz in the Saga search box, get news cards next to the Strait of Hormuz article next to every Norwegian postjournal entry that mentioned it this week.

Sources

Politiloggen

Norwegian Police · all 12 districts · 60-second poll

Operational messages from api.politiloggen.politiet.no. Keyword-driven priority bands (skyting / drap → P1, innbrudd / vold → P2, routine → P3). Story-atom drift detection on every edit.

Brønnøysund Enhetsregisteret

Norwegian companies · free open API

Live search of data.brreg.no. 9-digit orgnr triggers direct lookup, name searches across active entities. Konkurs and tvangsavvikling flagged on every result card.

Norske postlister

173M+ documents · eInnsyn + 360 Online + bespoke

Government and municipal correspondence logs, aggregated from every Norwegian agency that publishes a postjournal. Includes attached PDFs harvested to our S3 archive so the editorial desk can cite them years later.

Creditsafe Connect

NO · SE · DK · FI · GB · per-country pluginIds

Company credit profiles across the Nordic + UK markets. Reg-number and VAT detection in the unified search auto-routes to the right country. Name-only queries default to Norway, saving billable cross-country calls.

Wikipedia

no.wikipedia + en.wikipedia · MediaWiki REST

Background and context for any story. Norwegian Bokmål first, English fallback. Extract, thumbnail, and last-modified per hit; click-through opens the article directly.

Feedbin

Your subscription corpus · 5-minute poll

News and trade publications from your Feedbin reader, including paid feeds (FT, NYT etc.) configured with your subscription credentials on Feedbin's side. Reporter searches surface the same articles you've been reading.

How it works

Every external source implements one TypeScript interface, Connector, with optional search() and start(sink) capabilities. Search-capable connectors respond to the Saga search box in real time. Feed-capable connectors poll on their own schedule and write normalized FeedItem records into Postgres on AWS RDS.

A separate dispatcher worker reads the central table on a 5-minute tick, applies configurable routing rules, and POSTs to Saga's Feed REST API as ninjs items. Decoupling ingest from dispatch means we can change rules ("send all Politiloggen P1 to Saga main feed") on the fly without re-running connectors.

Attached media — PDFs, images — is queued at ingest time and pulled to S3 by a downloader worker. Editorial desks get permanent access to source documents even when the upstream takes them down. Glacier IR after 90 days keeps cold-storage costs bounded.

Everything runs on AWS Fargate, ARM64, behind CloudFront, in eu-north-1. Total infrastructure spend at idle: under €40/month. Schema migrations apply automatically at container startup, so deploys don't need the usual choreography.

Editorial integrity

  • Provenance link on every item. A reporter can always trace a search result back to the original source.
  • Rights status on every item. Public NLOD data is marked differently from Creditsafe's licensed content, so the desk knows what attribution is required before publish.
  • Story-atom drift detection. When a Politiloggen message is edited upstream — death tolls revised, suspects cleared — we flag it for URGENT re-review.
  • UGC flagged. User-generated and unverified sources are marked. Verified primary records (registers, police logs, postjournals) are not.