15 / 24Next →
Gaming newsroom & content operations2026

CGA News Channel

A gaming-industry newsroom that pulls RSS feeds and news APIs, filters out irrelevant stories with a tested relevance gate, tags articles by jurisdiction and sends keyword alerts to WhatsApp, email and Discord.

ContextSoftware Engineer, Global Trading, Inc.
Year2026
TypeWeb
StatusLive
RoleFull-stack web development

Project media coming soon

Screenshots and demo videos for this case study will appear here.

Overview

CGA News aggregates casino, sports-betting, poker, slots and compliance coverage, alongside its own content on Sri Lankan gaming law, events, casinos and launches. The public reading experience is paired with an authenticated newsroom where editors manage feed sources, keyword rules, exclusions, custom content and alert settings.

Next.js 14TypeScriptMongoDBNextAuthRSSNewsAPIGNews
Challenge

Feeds and search APIs return a lot of noise. Video-game coverage shows up under the word "gaming", wire stories arrive mis-tagged by region, and images and links come back broken. The product needed editorial control and automated filtering, not blind republishing.

Approach

I built it with Next.js 14, MongoDB and NextAuth. Configurable RSS sources, NewsAPI and GNews feed a pipeline that fetches in parallel, applies a relevance gate, detects jurisdictions, cleans links and images, and caches the results. Twelve Mongoose models back the admin routes for articles, laws, events, casinos, accreditation and newsroom settings.

Outcome

The live channel keeps news flowing continuously while editors keep control of relevance, presentation and local regulatory context.

System architecture
01IngestionRSS · NewsAPI · GNews

Feed sources are managed in the database and fetched in parallel with Promise.allSettled and per-request timeouts, so one dead feed never blocks the rest.

02ClassificationPure TypeScript modules

The relevance gate and jurisdiction detector have no imports and their own tests, covering trusted sources, blockers and city, regulator and operator signals.

03CachingPer-feed TTL · daily slot

Successful feeds are cached individually. The aggregated feed refreshes at a fixed daily slot and is pre-warmed in the background, so the first visitor isn't the one who waits.

04NewsroomNext.js 14 · NextAuth · MongoDB

Admin APIs for feed sources, keyword rules, exclusions, custom content, laws, events, casinos, uploads and alert configuration.

05AlertsWhatsApp · Email · Discord

Active keyword rules, scoped per desk, dispatch matching articles to the configured channels, and each channel fails independently.

Engineering decisions
01

Different trust for different sources

Dedicated gambling trade press passes automatically, because even its M&A stories are industry news. Regional, esports and search-driven sources must pass a strict gate. A hard blocker (console names, game titles) rejects outright, one unambiguous gambling term admits, and ambiguous terms need two. The word "gaming" alone never admits a story, and that one rule removed the video-game leakage.

02

Tag the article, not the feed

The region filter used to rely on the feed's desk, so a Nepal story carried by a global wire was invisible to a Nepal filter. The detector now reads the article itself. It matches countries, cities, regulators and operators (such as PAGCOR or Marina Bay Sands) against the same ten jurisdictions as the Gaming Laws page.

03

Editors overrule the pipeline

Exclusion lists hide specific URLs, custom content blends into the feed, and keyword rules control alerts, all without a deploy. Automation does the bulk of the work and editors make the final call.

What I built
01Ingestion from configurable RSS feeds plus NewsAPI and GNews queries
02Tested relevance gate and article-level jurisdiction detection
03Keyword alerts to WhatsApp, email and Discord
04Admin-managed Sri Lankan gaming laws, events, casinos and accreditation
05Editorial controls for feed sources, exclusions, custom content and uploads
Next projectLanka iGaming BPO →