Feeds
Last updated Sep 27, 2026Open in dashboard

Templates

Every feed post is built from a message template. Each platform has a default, named feeds.<platform> (for example feeds.youtube), and Twitch and Kick clips have their own (feeds.twitch.clips, feeds.kick.clips). A subscription uses its platform's default unless you pick one of your own.

Use your own template

  1. Open Edit Subscription (or step 3 of the wizard).
  2. Under Post Template, click Create template. The Message Builder opens with a preview filled from the source's latest post.
  3. Design the post, using the variables below, and save it.
  4. You come back to the subscription with the new template selected. Click Save Changes.

Pick an existing template in the Post Template list to reuse it, or Edit template to change the selected one. A template you create for a platform is offered for every subscription on that platform. To change the look of every subscription on a platform at once, edit its default instead, from the dashboard's Templates page.

After changing a template, click Re-send latest item on the subscription card to see the result in the channel.

Variables

Write a variable in curly braces, such as {post.title}. Besides the post variables below, every template can use:

  • {source.name}, {source.url}, {source.platform} and {source.icon_url} for the channel, account or feed,
  • the {server.*} variables for your server.

Every platform

VariableDescription
{post.title}Post title
{post.url}Post URL
{post.description}Post description or summary
{post.author}Post author name
{post.author_url}Post author profile URL
{post.image_url}Full-size image URL
{post.thumbnail_url}Thumbnail image URL
{post.gallery_urls}All image URLs, one per line, for a MediaGallery (one for a single image)
{post.published_at}Unix timestamp
{post.published_at_iso}ISO 8601 publish time

Extra variables per platform

PlatformVariableDescription
Bluesky{post.handle}Author @handle
Bluesky{post.likes}Like count
Bluesky{post.reposts}Repost count
Bluesky{post.replies}Reply count
Instagram{post.shortcode}Post shortcode
Instagram{post.handle}@handle
Instagram{post.media_type}Media type
Kick{post.game}Stream category
Kick{post.viewer_count}Viewer count
Kick{post.is_live}Whether live (Yes or No)
Kick{post.stream_preview_url}Live stream thumbnail URL
Kick{post.clip_duration}Clip duration (clips subscriptions only; empty for live)
Kick{post.clip_views}Clip view count (clips subscriptions only; empty for live)
Podcast{post.audio_url}Episode MP3 / audio file URL (from <enclosure>)
Podcast{post.duration}Episode duration
Podcast{post.episode}Episode number
Podcast{post.season}Season number
Reddit{post.id}Reddit post ID (without t3_ prefix)
Reddit{post.author_name}Author username (no prefix)
Reddit{post.score}Upvote count
Reddit{post.comments}Comment count
Reddit{post.media_type}Media type: image / gallery / video / third-party / text
Reddit{post.subreddit}Subreddit with r/ prefix
Reddit{post.subreddit_name}Subreddit name without r/ prefix
Reddit{post.subreddit_url}Subreddit URL
Reddit{post.subreddit_icon}Subreddit community icon URL
Reddit{post.subreddit_members}Subreddit subscriber count (if available)
Reddit{post.flair}Post flair text (empty if none)
Reddit{post.domain}Link domain for link posts; self.<subreddit> for self-posts
Reddit{post.external_url}External link URL for link posts; empty for self/image posts
TikTok{post.video_id}TikTok video ID
TikTok{post.handle}@handle
Twitch{post.game}Game or category
Twitch{post.viewer_count}Viewer count
Twitch{post.is_live}Whether live (Yes or No)
Twitch{post.duration}Clip duration (empty for live)
Twitch{post.stream_preview_url}Live stream preview image (1920x1080, cache-busted)
Twitch{post.clip_duration}Clip duration (clips subscriptions only; empty for live)
Twitch{post.clip_views}Clip view count (clips subscriptions only; empty for live)
Twitch{post.clip_creator}Username who created the clip (clips subscriptions only)
X (Twitter){post.handle}@handle
X (Twitter){post.likes}Like count
X (Twitter){post.retweets}Retweet count
X (Twitter){post.replies}Reply count
X (Twitter){post.bookmarks}Bookmark count
YouTube{post.video_id}YouTube video ID
YouTube{post.channel_id}YouTube channel ID
YouTube{post.channel_icon_url}Channel icon/avatar URL

{post.published_at} is a Unix timestamp, so <t:{post.published_at}:R> shows "3 hours ago" in Discord. Only use variables listed for your platform: the Available fields list in step 2 of the wizard shows which ones the source's latest post has.

The default posts

YouTube: the default video post
Reddit: the default post, with the subreddit, score and comments
X (Twitter): the default post
Bluesky: the default post
Instagram: the default post
TikTok: the default video post
RSS: the default entry post
Podcast: the default episode post

Twitch and Kick posts are shown on Providers.