Post Preview
On the "Basics" tab of the activity creation or editing form, once a publishing channel is selected, a "Preview post" button appears. It opens a modal window that requests the already-composed post from the server and shows it exactly as it will look in the channel - before the activity launches.
The preview doesn't calculate anything on its own: the whole result (text, limits, buttons) comes from the same post-composition engine that sends the post to the channel at publish time. That's why the preview never diverges from reality.
What the preview shows
- Text - formatted for the target platform (Markdown in Telegram, ready-made HTML in Max, plain text in VKontakte), with a character counter: the limit is 4096 without an image, 1024 with one (this is Telegram's caption limit for photos). The counter turns red if the limit is exceeded.
- Image/cover, if one is attached to the post.
- The participation button and any other post buttons, arranged in the same button rows they'll appear in under the message.
- The "💬 Comments" button, if one is expected - shown separately with an explanation: it's only added after the post is published (it needs the link to the created message, which simply doesn't exist yet), so the preview cannot render it as a normal button.
Differences by platform
A post is composed differently for Telegram, VKontakte, and Max, and the preview faithfully reflects that:
- Telegram - Markdown in the text is rendered by the Telegram client itself, buttons are regular inline buttons below the message.
- Max - text arrives as ready-made HTML, buttons work the same way as in Telegram.
- VKontakte - community posts have no free-form inline buttons, so links (including the participation button) are embedded directly in the text as
[link|label](seeDocs/deeplink.md, section 6, for the deep-link mechanics). In the preview, instead of a button row below the post you'll see the link inside the text, with a separate hint explaining this.
An activity is published to a single channel, so the preview is composed for that channel's platform. The platform switcher at the top of the modal appears only in the content plan, where one post goes to several channels at once: there the preview is recalculated separately for each channel, since limits, buttons, and link rendering can differ.
Pin warning
If the post is planned to be pinned, one rule applies: the pinned strip at the top of the channel only shows the CTA button when the message has exactly one button. A second row of buttons, or a second button in the same row, and the participation button disappears from the pinned strip (details - Docs/grow/first-touch/README.md, §3.2).
The preview surfaces this warning right under the composed post whenever the rule would be broken, and distinguishes two causes:
- the post already has more than one button;
- there's one button right now, but a "Comments" button will be added after publishing, bringing the total to more than one.
When it updates
The preview is rebuilt automatically whenever the text, image, activity title, or set of actions changes in the form - with a short delay (about 450 ms after you stop typing) so it doesn't hit the server on every keystroke. The activity doesn't need to be saved yet: the preview also works against an unsaved form draft.