11 RSS feeds and a Telegram bot: how we run our own AI news site for $0 a month
The pipeline behind kdzone.net: 11 RSS feeds aggregated automatically, topics picked with three numbers in Telegram, posts in our own voice, for $0 a month.
Kai Wu
• Founder, Kaiwu TechEngineeringPublished Jul 22, 20265 min read
First, the situation. We follow AI news from outside Taiwan every day. But on social media, the algorithm shows you what it wants you to see, and on news sites, you get what the editors want everyone to see. What we actually wanted was simple: the latest news, on topics we pick ourselves, written from the angle we care about.
No product on the market does that, so we built one: kdzone.net, an ad-free AI news site curated for a reader of one. This post lays out how the whole pipeline is built, and why it costs $0 a month.
Architecture: a free site up front, a home pipeline behind it
The front end runs on Cloudflare's free tier: Astro SSR, Workers and a D1 database. Every 30 minutes a cron job pulls from 11 RSS sources into the database, deduplicating by URL, and the home page is simply the automatically aggregated list of the latest items.
The back end is an M1 Mac mini at home. It runs self-hosted n8n for the workflows. For the LLM, we wrap our existing ChatGPT subscription as a local HTTP service through the official Codex CLI, which n8n then calls. It signs in through the official OAuth flow, not by scraping a session token. Two APIs connect the two ends: GET /api/latest lets the pipeline fetch the latest articles, and POST /api/ingest lets it publish finished posts (with token authentication).
Every morning: the bot sends 30 articles, we reply with three numbers
The first workflow is the daily picks, which runs automatically at 08:00:
- The bot takes the latest 30 items from the aggregated pool and sends a numbered menu in Telegram
- We reply with numbers (for example
1,3,7), and only then does the pipeline start - For each pick, it fetches the full original text and the links inside it, and the AI runs a web search to add official sources. If the piece mentions someone's announcement, it links that party's official page. If it cannot find one, it leaves it out. Making up URLs is strictly forbidden.
- It writes each post using our framework, publishes it directly, and reports each live link back in Telegram
"Written from our own angle" is not mysticism. It is a style prompt: a few passages we wrote ourselves as tone samples, plus explicit rules to keep facts and opinions separate and to avoid words like "shocking" or "must-read." When the output does not sound like us, we swap the samples and adjust.
A person picks the topics. Picking is itself the review. That one step stays with a person; everything else goes to the machine.
When the original cannot be fetched (paywalls, scraper blocking), the pipeline does not invent anything. It falls back automatically to a "headline + summary + web search" mode and says so at the end of the post.
See an interesting Instagram post? Send a screenshot and it does the rest
The second workflow handles another everyday annoyance: you scroll past an interesting Instagram or Threads post and want to dig deeper, but all you have is a fragment.
You just send it to the bot: a link, pasted text or a screenshot. Instagram blocks scrapers, so a screenshot is actually the right input. The AI reads the image, runs a web search to verify it and fill in official sources, and writes a report of 600–1,000 Chinese characters. Telegram sends back a preview, and nothing goes live until we tap "Publish." For security, the bot accepts only the site owner's chat_id. Anything a stranger sends is ignored.
Note that the two workflows have different approval designs. In the daily picks, choosing the topic is the review, so posts go live as soon as we choose. The screenshot workflow is written by the bot from scratch, so a person must read it before it is published. This is the job boundary we described in before you replace employees with AI (in Chinese): where a person needs to sign off depends on whether the AI, at that step, is carrying out your decision or making the decision for you.
Cost: $0 a month, all on existing subscriptions and free tiers
- Cloudflare (Workers, D1, Cron, DNS): within the free tier
- n8n: self-hosted on the M1 Mac mini at home, $0
- Telegram bot: $0
- LLM: uses our existing ChatGPT subscription quota, which is more than enough to rewrite a few posts a day. If we ever need to run at volume, the fallback is an API key at about US$1–5 a month
At its core, this setup turns reading the news from passive consumption into a process you control. It is the same principle we covered in the first step in AI automation for small and mid-sized businesses (in Chinese): turn the process into a system first, and then AI has a place to stand.
Three self-checks before you build your own news site
- Can you write down the sources you read every day? If you can, they can become an RSS aggregation. If you cannot, the first problem to solve is what you actually want to read.
- Are you willing to spend one minute a day replying with a few numbers? Keeping topic selection with a person is what locks in the quality of the whole pipeline. If you will not spend even a minute, full automation just puts you back on the algorithm's feed.
- Which AI outputs would you publish directly, and which must you read first? Draw that line and you have your approval boundary.
Swap the subject matter and the same pipeline becomes an industry intelligence feed, a competitor tracking board or a customer sentiment monitor. For deciding which model tier handles each step and how to keep the budget in check, see putting the right model in the right role. Tell us how you keep up with information today, and we will tell you which step is most worth automating first and which should stay with a person. For examples of how this works in practice, see our case studies.
Tags
Related posts
More notes on similar problems