> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getsurfaced.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Hosted blog

> Publishing articles on a Surfaced-hosted site, with your own domain and styling.

The hosted blog is somewhere to publish without waiting on a CMS project. Articles go live on a Surfaced-hosted site, optionally on your own domain.

## Turning it on

Enable it from workspace settings → **Blog**, with a title. Surfaced provisions a default hostname and the blog is live.

Enabling is idempotent: doing it twice returns the site you already have. It has to be done before any article can be published.

> [!NOTE]
>
> The hosted blog is not available on every workspace or every environment. If the Blog section is missing from settings, it has not been enabled for your workspace.

## Your own domain

You can serve the blog from a subdomain of your own, `blog.yourcompany.com`, instead of the default hostname. Subdomains only; an apex domain is not supported.

That is worth doing for one reason beyond appearances: a citation only counts toward your [citation rate](https://docs.getsurfaced.ai/metrics/citation-rate.md) if the domain is yours. Content on a Surfaced hostname is credited to a Surfaced hostname.

Add the domain under settings → Blog → Domains. You are given exactly two records to create: a CNAME, and a TXT verification record where one is needed. Never an A record. Surfaced then checks in the background, and you can also check on demand, once a minute. Verification gives up after 72 hours, so a typo sits there failing rather than silently retrying forever.

Up to five domains per workspace.

If you use a separate domain, add it to **Owned domains** in [workspace settings](https://docs.getsurfaced.ai/set-up/workspace.md) as well, or the citations it earns will not be counted as yours. These are two different lists and both matter.

Serving the blog under a path on your main site, `yourcompany.com/blog`, is also supported, through your own proxy, with a verification file to prove the path is yours.

## Styling

Settings cover the title, tagline, logo, accent colour, a choice of three themes, light or dark, the default language, and custom CSS.

CSS is capped and sanitised on save, and anything removed is listed back to you rather than silently dropped.

Removing the "powered by" badge and using custom CSS both require a plan that includes white-labelling. Without it the request is refused rather than quietly ignored.

## What is generated for you

Enabling the blog also produces, with no further action: a sitemap, an RSS feed, `robots.txt`, `llms.txt`, social preview images, structured data, language alternates, and Markdown versions of each post for AI agents to read.

The Markdown versions are there so the blog can be quoted by the assistants you are tracking, which is the reason to publish on it at all.

## Publishing and unpublishing

Both are per article, from [Articles](https://docs.getsurfaced.ai/content/articles.md), individually or in bulk. Publishing returns the live URL. Unpublishing removes the post and keeps the article.

An article that has not passed its draft checks cannot be published, by anyone, and the check is re-evaluated continuously rather than once. See [Articles](https://docs.getsurfaced.ai/content/articles.md) for what that means for a live page.

Three behaviours worth knowing:

* The live post is a **snapshot** taken at publish time. Editing the article afterwards changes the draft only, until you use **Update on blog**.
* **Changing a slug on a live post leaves a redirect** from the old URL, so links already shared keep working.
* **Archiving an article takes it off the blog automatically**, and restoring it does not put it back.

There is an opt-in auto-publish. It never publishes anything flagged for human review.

## What it does not do

No scheduling or editorial calendar. No per-post meta overrides, no author byline, no `noindex` toggle. The blog's own interface is English regardless of the language you publish in.

## When not to use it

If you already have a CMS your team publishes into, use it. The hosted blog is for teams who would otherwise not ship, where a page live this week on a Surfaced hostname beats a page that waits a quarter for a CMS ticket.

Avoid splitting a content programme across both without deciding which is canonical. Two versions of the same article on two domains compete with each other for the citation.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.