4.9 KiB
In-app announcements
Recordly can show dismissible announcements in the editor as a popup, carousel slide, lightweight live notification, or header banner. Popups can contain images or video; notifications and banners are text-only with optional buttons.
Remote announcements
Edit announcements.json on the main branch to publish an announcement without releasing a new app version. Released clients check the raw GitHub file at most once every six hours per running app instance. Fetch failures are silent and never block startup.
{
"settings": {
"aspectRatio": "4:3"
},
"announcements": [
{
"id": "recordly-1.4-release",
"title": "A faster Recordly is here",
"body": "Exports are faster and cursor motion is smoother. Thanks for using Recordly!",
"presentation": "popup",
"audience": "editor",
"priority": 10,
"mediaMode": "cover",
"displayDurationSeconds": 15,
"maxImpressions": 3,
"controls": {
"close": true,
"dismiss": false,
"action": true,
"navigation": false,
"indicators": true
},
"startsAt": "2026-09-01T00:00:00Z",
"endsAt": "2026-10-01T00:00:00Z",
"minVersion": "1.4.0",
"media": {
"type": "image",
"url": "https://example.com/recordly-1.4-banner.jpg",
"alt": "Recordly 1.4 feature preview"
},
"action": {
"label": "See what changed",
"url": "https://github.com/webadderallorg/Recordly/releases"
}
},
{
"id": "recordly-maintenance-notice",
"title": "Quick service notice",
"body": "Cloud sharing will undergo brief maintenance tonight.",
"presentation": "notification",
"audience": "editor",
"displayDurationSeconds": 10,
"maxImpressions": 2,
"startsAt": "2026-09-05T00:00:00Z",
"endsAt": "2026-09-06T00:00:00Z"
},
{
"id": "recordly-editor-banner",
"title": "Try the new editor",
"body": "The redesigned timeline is now available.",
"presentation": "banner",
"audience": "editor",
"maxImpressions": 3,
"action": {
"label": "Open settings",
"section": "settings"
}
}
]
}
Use a new stable id whenever an announcement should appear again. Once a user dismisses an ID, it remains dismissed. Remote items with the same ID override bundled items.
Supported fields:
settings.aspectRatiosets one sharedwidth:heightratio for the entire popup carousel, such as16:9,4:3, or1:1. All slides keep that same size. If omitted, the bundled default is used.id,title, andbodyare required.presentationispopup,notification, orbannerand defaults topopup. Notifications appear as text-only non-modal toasts, while banners appear only in the editor directly beneath its header. Media andmediaModeare ignored for notifications and banners. At most five notifications are shown from one feed load; banners are shown one at a time by priority.audienceisalloreditorand defaults toall.prioritycontrols carousel order; larger numbers appear first.mediaModeisbannerorcover.banneris the default current layout;coverfills the popup with the media and overlays the text.startsAtandendsAtare optional ISO timestamps.displayDurationSecondsaccepts 3–300 seconds. It auto-advances popup slides; for notifications it controls how long the toast remains visible and defaults to 10 seconds.maxImpressionsoptionally limits an announcement to 1–100 app sessions. Each announcement counts at most once per session; an explicit dismissal always hides it permanently.controlscan independently show or hideclose,dismiss,action,navigation, andindicators. Every control defaults totrue. Notifications and banners use onlycloseandaction; popup carousels use the other controls. Escape and clicking outside a popup remain available even when visible close controls are hidden.minVersionandmaxVersionare optional inclusive app-version bounds.media.typeisimageorvideofor popups. Media URLs must be HTTPS or root-relative bundled assets. Videos can also specifyposterUrl.actionhas a label and exactly one destination: an HTTPSurlopened in the system browser, or an editorsectionopened inside the app. Supported sections arescene,cursor,webcam,captions,settings, andextensions. An action containing both destinations, neither destination, or an unknown section is ignored.
Set RECORDLY_ANNOUNCEMENTS_URL before launching the app to use a different HTTPS feed. Set it to off to disable remote announcements.
Announcements bundled with an update
Add typed entries to src/content/announcements.ts. Bundled items use the same schema and are available offline. This is useful when a message should ship atomically with a new release.
Remote content is treated as data only: HTML is not rendered, URLs are restricted, feeds are size-limited and time-limited, and malformed items are ignored.