Template details
BroadcastChannel
Turn your Telegram Channel into a MicroBlog.
About this template
BroadcastChannel is an open-source Astro boilerplate that turns any public Telegram channel into a search-engine-friendly microblog with zero browser-side JavaScript.
What is BroadcastChannel?
BroadcastChannel is a boilerplate built with the Astro framework that uses a public Telegram channel as its content source. You provide only the channel username, and it generates a complete microblog site with RSS feeds, a sitemap, multiple themes, and no client-side JavaScript. The project is maintained by the miantiao-me GitHub account and currently has 2,079 stars. It supports deployment on serverless platforms such as Cloudflare Workers, Netlify, Vercel, and EdgeOne, as well as on a VPS via Docker.
Key Features
- Telegram as CMS — The only required input is the CHANNEL environment variable, which should be the public channel username found after t.me/. No external database or admin panel is needed.
- SEO friendly — Automatically generates /sitemap.xml and supports NOINDEX and NOFOLLOW settings to control search indexing.
- Zero browser-side JS — The rendered site uses no JavaScript on the client, keeping it fast and lightweight.
- RSS and RSS JSON — Provides both /rss.xml and /rss.json feed endpoints, with an optional RSS_BEAUTIFY setting.
- Multiple built-in themes — Includes Base, Sepia, Aria, Terminal Amber, Terminal Green, Terminal Cyan, Terminal Magenta, HN News, TG Channel, and ZAE themes. Themes are loaded via the HEADER_INJECT environment variable.
- Social and navigation links — Configure TELEGRAM, TWITTER, GITHUB, MASTODON, BLUESKY, DISCORD, and PODCAST usernames or URLs, plus LINKS and NAVS lists for custom navigation.
- Serverless-ready deployment — Works on Cloudflare Workers, Netlify, Vercel, and EdgeOne with automatic adapter detection, or via Docker with a prebuilt image.
Who should use BroadcastChannel?
- Telegram channel owners who want a public, indexable microblog without maintaining a separate CMS.
- Developers who prefer an Astro-based template with no client-side JavaScript and simple serverless deployment.
- News and curation channels that need built-in RSS feeds and a sitemap to help readers and search engines discover new posts.
What can you do with BroadcastChannel?
- Publish a personal microblog — Point it at your public Telegram channel and get a themed blog page with comments and reactions toggles.
- Add SEO to an existing channel — The generated sitemap and RSS JSON help search engines discover content that previously lived only inside Telegram.
- Deploy to your preferred platform — Fork the repo, create a project on Cloudflare Workers, Netlify, Vercel, or EdgeOne, set the CHANNEL variable, and deploy through the platform dashboard.
How does BroadcastChannel work?
To deploy serverless, fork the repository, create a project on Cloudflare Workers, Netlify, Vercel, or EdgeOne, select the Astro framework, set the CHANNEL environment variable to your public Telegram channel username, and deploy. For Docker, pull ghcr.io/miantiao-me/broadcastchannel:main and run it with the CHANNEL environment variable on port 4321. The build process reads the channel and generates static HTML pages, RSS feeds, and a sitemap at build time.
FAQ
Why is the content empty after deployment?
The channel must be public, the username must be a string rather than a numeric ID, and "Restricting Saving Content" must be turned off in the channel settings. After changing environment variables, you must redeploy. You can verify the channel is publicly readable at https://t.me/s/channelusername.
Does BroadcastChannel support Cloudflare Pages?
Cloudflare Pages SSR is not supported with Astro 6 and @astrojs/cloudflare v13. The documentation recommends using Cloudflare Workers for Cloudflare deployments instead of Pages.
What is the minimal configuration?
Set the CHANNEL environment variable to the public channel username, such as miantiao_me. That alone is enough to deploy a working microblog. All other environment variables are optional.
How do I change the theme?
Leave HEADER_INJECT empty to use the Base theme, or set HEADER_INJECT to load exactly one built-in override, such as the value '<link rel="stylesheet" href="/themes/aria.css">'. The terminal themes have four color variants, and HN News, TG Channel, and ZAE are fixed-light themes.
















