K eltus
← All projects Case study

NewsTosser

AI news aggregation that rewrites unique articles for hundreds of destination sites.

  • Hundreds of live destination sites
  • Per-target rewrite for uniqueness
  • Pluggable LLM providers
  • 430,000+ articles in production
  • Google PageSpeed 97 / 100 / 100 / 100

NewsTosser is the engine behind a network of hundreds of news properties. A Python extractor (trafilatura + CSS rules + Selenium for JS-heavy sources) ingests source articles into a central MariaDB. From there a Go daemon — dp-engine — runs three concurrent pipelines: tag/categorize, rewrite per target, and push to the destination Go servers via authenticated REST.

The rewrite step is where the system earns its keep. Each destination site gets a uniquely transformed variant of the source article — different title, different body, different stylistic voice — generated through a pluggable LLM layer (local Ollama with Qwen3 32B on GPU as default, Anthropic Claude and Dashscope Qwen as cloud fallbacks). Style modifiers are randomized per-target to maximize variation across the network, and prompts are editable live from the admin dashboard.

Multi-tenant Go binaries each serve 50+ domains behind nginx and Cloudflare, exposing a JSON API for the Android reader app and the admin app. Production stats: 430,000+ articles published across the network, with destination sites scoring 97 / 100 / 100 / 100 on Google PageSpeed (Performance / Accessibility / Best Practices / SEO).