Kabar Saham

A Telegram bot and admin dashboard that aggregates Indonesian stock-market news from public sources and delivers curated updates with per-user notification controls.

Timeline

4 months

Role

Fullstack Development

Outcome

5 sources → Telegram every 10 min with quiet hours & daily limits

Kabar Saham

Primary Stack

FFastAPI
FastAPI
PPython
Python
PostgreSQLPostgreSQL
PostgreSQL
Next.jsNext.js
Next.js
TypeScriptTypeScript
TypeScript
Tailwind CSSTailwind CSS
Tailwind CSS
TanStack QueryTanStack Query
TanStack Query
ZodZod
Zod
Kabar Saham overview
Fullstack DevelopmentApr 2026 – Jul 2026

Case overview

What this project is about

Built a multi-source news pipeline that collects market articles and announcements, deduplicates them, and delivers up to 5 fresh items every 10 minutes to Telegram chats.

Added per-user preferences via Telegram commands—quiet hours, daily limits, and a richer status view—plus a Next.js dashboard to monitor news, users, and delivery.

Challenge

Challenge

Stock and capital-market updates are scattered across many sites. Checking BEI, CNBC, Indo Premier, Investor ID, and Kontan one by one gets tiring when you only want the latest headlines.

There needed to be a single channel that gathers relevant news, pushes it to Telegram on a schedule, and still respects quiet hours so notifications stay useful—not spammy.

Kabar Saham detail 1

Solution

Solution

Kabar Saham collects news from those public sources via RSS collectors and scrapers, then sends up to 5 articles every 10 minutes to subscribed chats.

Users manage preferences through Telegram commands: /settings, /quiet for silent hours, /limit for a daily cap, and /status with quiet hours and daily limit info. A Next.js dashboard monitors news, users, errors, and source settings.

Sources: BEI, CNBC, Indo Premier Sekuritas, Investor ID, Kontan Investasi.Up to 5 news items every 10 minutes per chat.Per-user preferences: quiet hours, daily limits, and informative status.
Kabar Saham detail 2

Impact

Impact

Market updates land in Telegram on a steady cadence without opening a pile of news tabs.

Quiet hours and daily limits keep notifications useful, while /status helps users understand when news was held back.

Kabar Saham detail 3