Cloud-ready market event alert service for public news monitoring. It is a Deno Deploy app that polls Google News RSS feeds, matches configurable keyword rules, deduplicates repeated events with Deno KV, and pushes alert summaries to Telegram.
This public package contains only source code, sample rules, and placeholder configuration. It does not include real Telegram credentials, local .env files, private run logs, personal browser data, or generated KV data.
- Portfolio homepage: https://firejw.github.io/market-alert-cloud/
- Deployment notes: DEPLOY.md
- Security notes: docs/security-and-privacy.md
- Polls Google News RSS feeds by priority group.
- Parses feed items into normalized candidate events.
- Applies configurable keyword, required-keyword, exclude-keyword, cooldown, and priority rules.
- Deduplicates exact and similar news items through Deno KV.
- Sends first-hit alert messages to Telegram through a bot token supplied at deploy time.
- Exposes health and manual trigger endpoints for deployment checks.
main.ts Deno Deploy entrypoint, routes, and cron jobs
config/
google_news_feeds.json sample public feed queries
alert_rules.json sample public keyword rules
src/
feeds/ Google News RSS fetch and parse logic
matcher/ keyword matching engine
dedup/ Deno KV dedup and cooldown state
push/ Telegram alert formatting and delivery
health/ heartbeat and health helpers
test_smoke.ts live RSS smoke test
deno task check
deno task test
deno run --allow-net --allow-read --allow-env --unstable-kv test_smoke.tsFor local Telegram testing, create a private .env from .env.example and set your own bot token and chat ID. Do not commit .env.
See DEPLOY.md for Deno Deploy setup and runtime endpoints.
.env,.env.*, local data, logs, smoke outputs, and generated artifacts are ignored.- Real Telegram tokens and chat IDs are never stored in the repository.
- The checked-in alert rules are sample public-topic rules, not a private trading plan.
- The app sends informational alerts only. It does not place trades and is not financial advice.