# Categories
Source: https://docs.updates.page/announcements/categories
Organize your announcements with categories
# Categories
Categories help your users filter and scan your changelog. Use them to distinguish between new features, improvements, and bug fixes.
## Default categories
Every new account comes with three categories:
| Category | Color | Use for |
| --------------- | ---------- | ----------------------------------- |
| **New** | Green | Brand new features and capabilities |
| **Improvement** | Blue | Enhancements to existing features |
| **Fix** | Red/Orange | Bug fixes and corrections |
\[TODO: ADD IMAGE - CHANGELOG WITH CATEGORY FILTERS]
## Creating custom categories
You can create unlimited custom categories to match your workflow.
Navigate to **Settings → Changelog → Categories**
Enter a name and choose a color
Your new category is ready to use
\[TODO: ADD IMAGE - CATEGORY SETTINGS PAGE]
### Category ideas
Depending on your product, you might want categories like:
* **Security** — Security patches and updates
* **API** — API changes and additions
* **Performance** — Speed and reliability improvements
* **Beta** — Features in beta testing
* **Deprecation** — Features being removed
* **Integration** — Third-party integrations
## Using categories
When creating an announcement, select a category from the dropdown above the editor.
Categories are optional. If you don't select one, the announcement will appear without a category tag.
## Editing and deleting categories
To edit or delete a category:
1. Go to **Settings → Changelog → Categories**
2. Click the **...** menu next to the category
3. Choose **Edit** or **Delete**
Deleting a category will remove it from all existing announcements. The announcements themselves won't be deleted.
## Filtering by category
Your users can filter your changelog by category using the filter buttons at the top of your portal.
\[TODO: ADD IMAGE - CATEGORY FILTER BUTTONS ON PORTAL]
# Cover Images
Source: https://docs.updates.page/announcements/cover-images
Add eye-catching cover images to your announcements
# Cover Images
Cover images make your announcements more visually appealing and improve engagement when shared on social media.
\[TODO: ADD IMAGE - ANNOUNCEMENT WITH COVER IMAGE VS WITHOUT]
## Adding a cover image
1. In the announcement editor, click the **image icon** in the header area
2. Upload an image or drag and drop
3. The image will appear as the announcement's cover
\[TODO: ADD GIF - ADDING COVER IMAGE TO ANNOUNCEMENT]
## Recommended specifications
| Property | Recommendation |
| -------------- | ----------------------------- |
| **Dimensions** | 1200 x 630px (1.91:1 ratio) |
| **Format** | PNG or JPG |
| **File size** | Under 2MB |
| **Text** | Keep minimal — may be cropped |
The 1200x630 size is optimized for social media sharing (Twitter, LinkedIn, Facebook).
## Where cover images appear
Cover images are displayed in:
* **Your changelog portal** — At the top of the announcement detail page
* **Social media previews** — When the announcement URL is shared
* **RSS feeds** — As the enclosure/media element
* **Embeds** — In widget and inline embeds (if enabled)
## Best practices
Create a template with your brand colors and logo. This makes your changelog look professional and recognizable.
Screenshots or mockups of the actual feature work great. Users can immediately see what changed.
Social platforms may crop images differently. Keep text to a headline at most.
Test how your image looks on both light and dark backgrounds.
## Tools for creating cover images
Some tools that work great for changelog images:
* **[Figma](https://figma.com)** — Design custom images with templates
* **[Canva](https://canva.com)** — Easy drag-and-drop image creation
* **[CleanShot](https://cleanshot.com)** — Polished screenshots with annotations
* **[OG Image Generator](https://og-image.vercel.app)** — Auto-generate images from text
# Scheduling
Source: https://docs.updates.page/announcements/scheduling
Schedule announcements for future publication
# Scheduling Announcements
Plan ahead by scheduling announcements to publish automatically at a future date and time.
## How to schedule an announcement
Write your announcement as usual in the editor.
Instead of clicking **Publish**, click the dropdown arrow next to it.
Choose the date and time you want the announcement to go live.
Click **Schedule** to confirm. Your announcement will publish automatically.
\[TODO: ADD IMAGE - SCHEDULE DROPDOWN WITH DATE PICKER]
## Managing scheduled announcements
Scheduled announcements appear in your announcements list with a **Scheduled** badge.
You can:
* **Edit** the content before it publishes
* **Reschedule** to a different time
* **Publish now** to make it live immediately
* **Delete** to cancel the scheduled announcement
\[TODO: ADD IMAGE - SCHEDULED ANNOUNCEMENT IN LIST VIEW]
## Timezone handling
Scheduled times use your account's timezone setting. To change your timezone:
1. Go to **Settings → Account → General**
2. Select your timezone from the dropdown
3. Click **Save**
Changing your timezone won't affect already-scheduled announcements. They'll still publish at the originally intended moment.
## Use cases for scheduling
Coordinate your changelog with launch day
Batch your updates and publish on a consistent schedule
Write announcements ahead of time for review
Publish when your users are most active
# Writing Announcements
Source: https://docs.updates.page/announcements/writing
Best practices for writing updates your users will love
# Writing Great Announcements
Your changelog is a direct line to your users. Here's how to make the most of it.
## The anatomy of a great announcement
\[TODO: ADD IMAGE - ANNOTATED SCREENSHOT OF A WELL-STRUCTURED ANNOUNCEMENT]
### 1. Title
Your title is the first thing users see. Make it count.
**Do:**
* Be specific: "Export reports to PDF"
* Lead with the benefit: "Faster page loads"
* Use action words: "New", "Introducing", "Now available"
**Don't:**
* Be vague: "Updates" or "New feature"
* Use version numbers alone: "v2.4.1"
* Be too long: Keep it under 60 characters
### 2. Opening line
Hook readers in the first sentence. Get to the point immediately.
```markdown Good theme={null}
You can now export any report as a PDF with one click.
```
```markdown Bad theme={null}
We've been working hard on this feature for months and we're excited to finally share it with you...
```
### 3. Body content
Structure your content for scanning:
* **Use headings** to break up sections
* **Use bullet points** for lists of changes
* **Use bold text** for key information
* **Keep paragraphs short** — 2-3 sentences max
### 4. Visuals
A picture is worth a thousand words. Include:
* **Screenshots** for UI changes
* **GIFs** for interactive features
* **Code snippets** for API updates
* **Before/after** comparisons
Use tools like [CleanShot](https://cleanshot.com) or [Loom](https://loom.com) to create polished screenshots and recordings.
***
## Writing for different announcement types
**Goal:** Get users excited and show them how to use it.
**Structure:**
1. What it is (one sentence)
2. Why it matters (the benefit)
3. How to use it (steps or link)
4. What's next (optional)
**Tone:** Excited but not over-the-top
**Goal:** Show you're listening and making things better.
**Structure:**
1. What changed
2. Why (user feedback, data, etc.)
3. The impact (faster, easier, etc.)
**Tone:** Confident, appreciative of feedback
**Goal:** Acknowledge the issue and confirm it's resolved.
**Structure:**
1. What was broken
2. What's fixed now
3. Thank reporters (if applicable)
**Tone:** Direct, no excuses, grateful
***
## Rich text editor features
The updates.page editor supports:
| Feature | Shortcut | Description |
| ------------- | -------- | -------------------- |
| Bold | `⌘+B` | **Bold text** |
| Italic | `⌘+I` | *Italic text* |
| Heading 1 | `⌘+⌥+1` | Main section headers |
| Heading 2 | `⌘+⌥+2` | Subsection headers |
| Bullet list | `⌘+⇧+8` | Unordered lists |
| Numbered list | `⌘+⇧+7` | Ordered lists |
| Code | `⌘+E` | `Inline code` |
| Code block | `⌘+⌥+C` | Multi-line code |
| Link | `⌘+K` | Add hyperlinks |
| Quote | `⌘+⇧+B` | Blockquotes |
### Adding images
Click the image icon in the toolbar or drag and drop directly into the editor.
**Supported formats:** PNG, JPG, GIF, WebP
\[TODO: ADD GIF - DRAGGING IMAGE INTO EDITOR]
### Adding videos
Click the video icon and paste a YouTube or Wistia URL. The video will embed automatically.
***
## Writing tips from the pros
Most users won't read every word. Make key information impossible to miss with bold text, headings, and bullet points.
Don't bundle unrelated updates. Users should know exactly what an announcement is about from the title.
Keep announcements concise. Link to docs, blog posts, or help articles for users who want to go deeper.
It's okay to show personality. Thank users, admit mistakes, get excited about wins.
# Billing FAQ
Source: https://docs.updates.page/billing/faq
Common questions about billing and subscriptions
# Billing FAQ
Answers to common billing questions.
Go to **Settings → Team → Billing** and click **Upgrade** on the plan you want. Your upgrade takes effect immediately, and you'll be charged a prorated amount for the remainder of your billing period.
Go to **Settings → Team → Billing** and click **Cancel subscription**. Your access continues until the end of your current billing period, then you'll be downgraded to the Free plan.
When you downgrade:
* Your announcements and data are preserved
* Features from higher tiers become unavailable
* Extra team members beyond your new limit lose access
* Custom domain continues until the end of your billing period
We offer refunds within 14 days of your first payment if you're not satisfied. For refund requests, contact [support@updates.page](mailto:support@updates.page).
Not yet, but it's coming soon! Annual billing will include a discount.
We accept Visa, Mastercard, American Express, and Discover. All payments are processed securely through Stripe.
Yes. Go to **Settings → Team → Billing** and update your billing email. Receipts will be sent to the new address.
Go to **Settings → Team → Billing** and scroll down to see your invoice history. Click any invoice to download a PDF.
We'll retry the payment a few times. If it continues to fail, we'll email you to update your payment method. After 14 days of failed payments, your account may be downgraded.
Yes! Contact [support@updates.page](mailto:support@updates.page) with details about your organization, and we'll see if you qualify for a discount.
The Free plan is free forever. You can try all features on the Pro plan free for 14 days — just upgrade and cancel before the trial ends if you don't want to continue.
We take privacy seriously. Read our [Privacy Policy](https://updates.page/privacy) for details on how we handle your data.
## Still have questions?
Contact us at [support@updates.page](mailto:support@updates.page) and we'll be happy to help.
# Plans & Pricing
Source: https://docs.updates.page/billing/plans
Choose the right plan for your team
# Plans & Pricing
updates.page offers simple, transparent pricing.
## Plans
**\$0/month**
* Unlimited announcements
* 1 team member
* Subdomain (company.updates.page)
* Basic customization
* Built-in analytics
**\$19/month**
* Everything in Free
* 3 team members
* Custom domain
* Advanced customization
* Priority support
**\$49/month**
* Everything in Pro
* 10 team members
* Remove "Powered by" branding
* API access
* SSO (coming soon)
## Feature comparison
| Feature | Free | Pro | Business |
| ------------------ | --------- | --------- | --------- |
| Announcements | Unlimited | Unlimited | Unlimited |
| Team seats | 1 | 3 | 10 |
| Custom subdomain | ✓ | ✓ | ✓ |
| Categories | ✓ | ✓ | ✓ |
| RSS feed | ✓ | ✓ | ✓ |
| Built-in analytics | ✓ | ✓ | ✓ |
| Custom domain | - | ✓ | ✓ |
| Custom CSS | - | ✓ | ✓ |
| Google Analytics | - | ✓ | ✓ |
| Remove branding | - | - | ✓ |
| API access | - | - | ✓ |
| Webhooks | - | - | ✓ |
| Priority support | - | ✓ | ✓ |
## Upgrading
Navigate to **Settings → Team → Billing**
Click **Upgrade** on the plan you want
Add your credit card information
Your upgrade takes effect immediately
\[TODO: ADD IMAGE - BILLING PAGE WITH PLAN OPTIONS]
## Payment methods
We accept:
* Visa
* Mastercard
* American Express
* Discover
Payments are processed securely through Stripe.
## Billing cycle
* Plans are billed monthly
* Upgrades take effect immediately
* Downgrades take effect at the end of the billing period
* No contracts — cancel anytime
## Need more?
For teams larger than 10 or custom requirements, [contact us](mailto:support@updates.page) for a custom plan.
# Inline Embed
Source: https://docs.updates.page/embeds/inline
Display announcements directly on your page
# Inline Embed
The inline embed displays your announcements directly within your page content, styled to match your site.
\[TODO: ADD IMAGE - INLINE EMBED ON A MARKETING SITE]
## Installation
### 1. Create an inline embed
1. Go to **Settings → Developer → Embeds**
2. Click **New Embed**
3. Select **Inline** as the type
4. Configure your settings
5. Click **Create**
### 2. Add the container
Add a container element where you want the announcements to appear:
```html theme={null}
```
### 3. Add the script
Copy and paste the script tag:
```html theme={null}
```
## Configuration options
| Option | Description | Default |
| ---------------- | -------------------------------------- | --------------------- |
| **Container** | CSS selector for the container element | `#updates-page-embed` |
| **Theme** | Light or dark | Light |
| **Limit** | Number of announcements to show | 10 |
| **Categories** | Which categories to include | All |
| **Show images** | Display cover images | Yes |
| **Show dates** | Display publication dates | Yes |
| **Show authors** | Display author names | Yes |
## Customizing with CSS
The inline embed uses minimal default styling so you can customize it to match your site.
### Available CSS classes
```css theme={null}
/* Container */
.updates-page-inline { }
/* Individual announcement */
.updates-page-announcement { }
/* Announcement title */
.updates-page-title { }
/* Announcement content/summary */
.updates-page-content { }
/* Cover image */
.updates-page-image { }
/* Category badge */
.updates-page-category { }
/* Date */
.updates-page-date { }
/* Author */
.updates-page-author { }
/* "View all" link */
.updates-page-view-all { }
```
### Example: Card-style layout
```css theme={null}
.updates-page-announcement {
background: #fff;
border-radius: 8px;
padding: 24px;
margin-bottom: 16px;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.updates-page-title {
font-size: 20px;
font-weight: 600;
margin-bottom: 8px;
}
.updates-page-content {
color: #666;
line-height: 1.6;
}
.updates-page-category {
display: inline-block;
padding: 4px 8px;
border-radius: 4px;
font-size: 12px;
font-weight: 500;
}
```
\[TODO: ADD IMAGE - BEFORE/AFTER CUSTOM CSS STYLING]
## Data attributes
Customize behavior with data attributes:
```html theme={null}
```
| Attribute | Type | Description |
| ------------------- | ------- | -------------------------- |
| `data-embed-id` | string | Your embed ID (required) |
| `data-container` | string | CSS selector for container |
| `data-limit` | number | Max announcements to show |
| `data-show-images` | boolean | Show cover images |
| `data-show-dates` | boolean | Show publication dates |
| `data-show-authors` | boolean | Show author names |
| `data-theme` | string | "light" or "dark" |
## Linking to full changelog
The inline embed automatically includes a "View all updates" link to your full portal.
To customize or hide this link:
```html theme={null}
```
Or style it with CSS:
```css theme={null}
.updates-page-view-all {
display: inline-block;
padding: 12px 24px;
background: #000;
color: #fff;
border-radius: 6px;
text-decoration: none;
}
```
# Embeds Overview
Source: https://docs.updates.page/embeds/overview
Show your changelog inside your app or website
# Embeds
Bring your changelog directly into your product with embeddable widgets.
\[TODO: ADD IMAGE - EMBED EXAMPLES (WIDGET + INLINE) SIDE BY SIDE]
## Why embed?
Users don't have to leave to see what's new
More users see your updates when they're in-context
"What's new" badges catch attention
Embeds match your app's look and feel
## Embed types
updates.page offers two embed types:
### Widget embed
A floating button that opens a slide-out panel with your announcements.
**Best for:**
* SaaS apps and dashboards
* "What's new" button in navigation
* Unobtrusive changelog access
\[TODO: ADD GIF - WIDGET OPENING AND SHOWING ANNOUNCEMENTS]
→ [Set up a widget embed](/embeds/widget)
### Inline embed
Announcements displayed directly on your page, styled to match your site.
**Best for:**
* Marketing websites
* Changelog pages
* Documentation sites
\[TODO: ADD IMAGE - INLINE EMBED EXAMPLE]
→ [Set up an inline embed](/embeds/inline)
## Quick comparison
| Feature | Widget | Inline |
| ------------- | ------------------------- | ------------------------ |
| Installation | 1 script tag | 1 script tag + container |
| Visibility | On-demand (click to open) | Always visible |
| Customization | Colors, position | Full CSS control |
| "New" badge | ✓ | ✗ |
| Best for | Apps | Websites |
## Creating an embed
Navigate to **Settings → Developer → Embeds**
Click **New Embed** and choose Widget or Inline
Set the name, style, and options
Copy the generated script tag to your site
## Embed settings
Each embed can be configured with:
| Setting | Description |
| -------------- | ----------------------------------------- |
| **Name** | Internal name for your reference |
| **Type** | Widget or Inline |
| **Position** | (Widget only) Bottom-left or bottom-right |
| **Theme** | Light or dark mode |
| **Categories** | Filter which categories to show |
## Managing embeds
You can create multiple embeds for different use cases:
* One widget for your main app
* One inline embed for your marketing site
* Different category filters for different audiences
Edit or delete embeds anytime in **Settings → Developer → Embeds**.
# Styling Embeds
Source: https://docs.updates.page/embeds/styling
Customize the look and feel of your embeds
# Styling Embeds
Make your embeds match your brand with custom colors and CSS.
## Theme options
Both widget and inline embeds support light and dark themes:
| Theme | Best for |
| --------- | --------------------------------- |
| **Light** | Light-background apps and sites |
| **Dark** | Dark mode apps, dark-themed sites |
Set the theme in your embed settings or via data attribute:
```html theme={null}
```
\[TODO: ADD IMAGE - LIGHT VS DARK THEME COMPARISON]
## Widget styling
### Position
The widget button can be positioned in the bottom-left or bottom-right corner:
```html theme={null}
```
### Custom CSS
Target widget elements with these CSS selectors:
```css theme={null}
/* Widget button */
.updates-page-widget-button {
background: #your-brand-color !important;
}
/* Widget panel */
.updates-page-widget-panel {
font-family: 'Your Font', sans-serif;
}
/* Panel header */
.updates-page-widget-header {
background: #your-brand-color;
}
```
Widget styles are injected in a shadow DOM. You may need `!important` to override default styles.
## Inline styling
The inline embed is fully customizable with regular CSS. See [Inline Embed](/embeds/inline) for all available CSS classes.
### Responsive design
The inline embed is responsive by default. Customize breakpoints with media queries:
```css theme={null}
.updates-page-inline {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
@media (max-width: 768px) {
.updates-page-inline {
grid-template-columns: 1fr;
}
}
```
## Color customization
Match your brand colors:
```css theme={null}
/* Category badges */
.updates-page-category[data-category="new"] {
background: #10B981;
color: white;
}
.updates-page-category[data-category="improvement"] {
background: #3B82F6;
color: white;
}
.updates-page-category[data-category="fix"] {
background: #F59E0B;
color: white;
}
/* Links */
.updates-page-title a {
color: #your-brand-color;
}
.updates-page-title a:hover {
text-decoration: underline;
}
```
## Typography
Match your site's typography:
```css theme={null}
.updates-page-inline {
font-family: 'Inter', -apple-system, sans-serif;
font-size: 16px;
line-height: 1.6;
}
.updates-page-title {
font-family: 'Your Heading Font', serif;
font-weight: 700;
letter-spacing: -0.02em;
}
```
## Z-index
If the widget appears behind other elements, adjust the z-index:
```css theme={null}
.updates-page-widget-button,
.updates-page-widget-panel {
z-index: 99999 !important;
}
```
# Widget Embed
Source: https://docs.updates.page/embeds/widget
Add a floating changelog widget to your app
# Widget Embed
The widget embed adds a floating button to your app that opens a slide-out panel with your announcements.
\[TODO: ADD GIF - WIDGET BUTTON CLICK -> PANEL OPENS -> SCROLLING THROUGH ANNOUNCEMENTS]
## Installation
### 1. Create a widget embed
1. Go to **Settings → Developer → Embeds**
2. Click **New Embed**
3. Select **Widget** as the type
4. Configure your settings (see below)
5. Click **Create**
### 2. Copy the script
Copy the generated script tag:
```html theme={null}
```
### 3. Add to your site
Paste the script tag before the closing `
` tag on every page where you want the widget to appear.
```html theme={null}