Blog Studio
A full multi-site blog CMS inside Metric Vault — write, schedule and publish posts, manage media, categories, translations and newsletter subscribers, then embed the blog on your own site.
Last updated 2026-09-15
Summary#
Blog Studio is a complete blog CMS built into Metric Vault. One account can hold several websites; each has its own posts, media library, categories and tags, authors, translations, newsletter subscribers and settings. Finished posts are served to your own site through embed snippets or a public JSON, RSS and sitemap API.
Purpose#
Most Metric Vault work ends with a piece of content that has to live somewhere. Without a blog you either buy a second CMS or paste the work into a platform that knows nothing about the research behind it. Blog Studio removes that step: the research, the draft, the editorial calendar, the images and the publishing all happen in one account, and the blog itself renders on your existing website rather than on a separate domain.
Overview#
Opening the Blog rail section hands the whole screen to the studio — the tool side panel is hidden so the CMS gets full width. The studio has its own left rail with two groups.
Content holds Calendar and the post buckets: All posts, Published, Scheduled, Drafts, Pending and Trash. Each carries a live count badge. The buckets are the same posts view under a different status filter.
Studio holds AI Studio, Media, Categories & tags, Subscribers, Email template, Embed and Website Settings.
At the bottom of the rail is a Website selector listing every site on the account. It is the same switch as the one under the wordmark, so changing it here changes the active website across the whole app; every action you take is scoped to the selected website. Add a new website from that switcher under the wordmark. The top bar names the current view and, on the posts view, offers Title ideas and New post.
A brand-new account is given its first website automatically the first time the studio loads, so there is never an empty shell to configure before you can write.
Benefits#
- A real CMS — drafts, scheduling, revisions, taxonomy, media, authors — not a document list.
- Several websites on one account, each fully separate.
- AI help exactly where it belongs: drafting, cover images, excerpts, duplicate checking, fact-checking, humanising and internal linking, all inside the editor.
- Translations into twenty languages, with the translated post kept as its own draft.
- A newsletter with its own subscriber list and an editable email template.
- Embeds that render the blog inside your existing site, plus a public JSON, RSS and sitemap API if you would rather build the markup yourself.
Use Cases#
- Running a company blog end to end. Plan on the calendar, draft in the editor, schedule, publish, and embed on your marketing site.
- Agency work across clients. One website per client, each with its own posts, media, subscribers and settings.
- Multi-language content. Write once, translate into the languages you sell in, and keep each translation as its own post.
- Newsletter publishing. Collect subscribers through the signup embed and send a post to them from the same screen.
- Team editorial flow. Authors write, editors approve, the owner controls settings — enforced by role, not convention.
Requirements#
- A signed-in Metric Vault account.
- Any plan for the studio itself. Writing, scheduling, publishing, media and the embeds are not plan-gated and cost nothing.
- A paid plan for the AI actions. They draw on the monthly credit quota, and Free has none, so every AI action in the studio answers
This tool needs a paid plan…on Free. See Cost below and How credits work. - For the embeds to work: a website you can paste HTML into, and its address entered under
Website Settings.
Permissions#
Blog Studio uses its own three-role model, separate from the credit system. A team member who has accepted an invitation acts on the account owner's blog with the blog role assigned to them; everyone else is the owner of their own blog. See Roles and what each can do.
| Role | Posts | Categories, tags and authors | Media | Website settings |
|---|---|---|---|---|
owner | Write, edit and delete any post | Yes | Yes | Yes |
editor | Write, edit and delete any post | Yes | Yes | No |
author | Only their own posts | No | Yes | No |
Below-role actions return Your blog role does not allow this action (…). Creating a website returns Only the account owner can create blog sites. and saving settings returns Only the account owner can change blog settings.
Signed out, the studio shows Sign in to use the Blog. On a hard page reload it first shows Loading your websites… and waits several seconds for the session before deciding.
Cost#
The studio itself is free; its AI actions are metered. Writing, editing, scheduling, publishing, media, taxonomy, subscribers and the embeds cost nothing. The AI actions draw on the site owner's monthly credit quota, are gated before the run and charged only on success:
| AI action | Credits |
|---|---|
| Write an excerpt | 1 |
| Add internal links | 1 |
| Set up site context (once per website) | 3 |
| Title ideas | 4 |
| Generate a cover image | 4 per image returned |
| Check for duplicates | 5 with web search; free local-only (the box unticked) |
| Generate a draft | 10 |
| Humanize the draft | 10 |
| Rewrite the flagged claims (after a fact check) | 10 |
| Fact-check claims | 12 |
Every AI dialog shows its price in the header before you run it. Running out fails up front with a clear message, before any work starts. See How credits work and docs/BLOG-CREDIT-PRICING.md.
Three AI helpers need a paid plan but cost nothing. They reach a model, so they are not available on Free and stop working once you are out of credits, but they never take a credit from you:
| Helper | When it runs |
|---|---|
| Cover image prompt suggestions | When the cover image dialog opens |
| The guided prompt builder | Each round of Help me describe it |
| Filing a handed-over post into a category | By itself, when a post arrives from the AI Article Generator with no category |
They are not priced because none of them is an action you chose from a dialog with a price on it: the first two sit inside the cover image dialog, which already charges 4 credits per image, and the third runs on its own. On Free, the cover image dialog still opens and the prompt box still works — you write the prompt yourself — and a handed-over post opens unfiled instead of failing. Filing a post into a category whose name already appears in its title or keywords needs no model, so that keeps working on every plan.
Blog runs do not appear in your tool Library and are not cached in the shared result cache; posts live in the blog's own storage.
Navigation Path#
Dashboard → Blog → Blog Studio
Inputs#
| Field | Accepts | Required | Default | Validation | Notes |
|---|---|---|---|---|---|
Website selector | Any website on the account | Yes | The last one you selected | — | Switching reloads everything and toasts Switched to <name> |
| New website (switcher under the wordmark) | A name, e.g. My Shop Blog | — | — | Empty returns A name is required | Owner only |
| New post → title | Any text | Yes to save | Empty | Saving without one returns A title is required | The slug is generated from it unless you set one |
AI Studio → Topic (e.g. How to choose dog accessories) | Any topic | Yes | Empty | Empty returns Give it a topic first | — |
AI Studio → Context (optional) (Anything the writer should know) | Free text | No | Empty | — | Background the writer should use |
AI Studio → Tone | Free text | No | Professional | — | — |
AI Studio → Length | Short, Medium, Long | No | Medium | — | — |
AI Studio → Language | 20 languages | No | The first in the list | — | — |
AI Studio → Primary keyword (the one term this post is for) | A single term | No | Empty | — | Goes in the title, the opening, an H2 and the meta description |
AI Studio → Secondary keywords (comma, separated) | Comma-separated terms | No | Empty | — | Each gets a supporting section or paragraph |
| Editor → Publish at | Date and time | Only when status is Scheduled | Empty | An incomplete date returns That publish date is not complete. Finish it or clear it before saving. | Typed or picked from the calendar |
Website Settings → Your website address | A URL, e.g. https://example.com | For share links and the newsletter button | Empty | — | Without it, post share links have nothing to point at |
Website Settings → Allowed origins | Comma-separated origins | For the embeds | Empty | — | The sites allowed to read this blog, and submit signups, from a browser. Empty allows any site, which is the default. The www and non-www forms of a listed address both count |
Step-by-Step Guide#
- Open
Dashboard → Blog → Blog Studio. Your first website is created for you. - Go to
Website Settings, set the Name, Your website address and Allowed origins, then click Save settings. - Go to
Embedand paste the five snippets into your site — setup on every page, then the index, single post, language switcher and newsletter signup where you want them. - Click New post, or use
AI Studio→ Generate draft to have a first draft written and saved for you. The draft opens with a short summary paragraph at the top of the body: a 40 to 60 word direct answer to the question the title asks, which is what a search engine can lift as a featured snippet. It is separate from the excerpt, which sells the click rather than answering the question. Delete it if you do not want it. A category is chosen for you as well: an existing one from this site whenever one fits, and a new one only when none do. The same applies to a post sent over fromWrite & Optimize→ AI Article Generator with Open in Blog Studio — that tool cannot see this blog, so the category is worked out when the post arrives here rather than when it was written. - Write the post: cover image, title, subtitle or excerpt, and the body. The cover button offers four sources — Upload from your computer, Generate with AI, Free stock photos, and Media library, which picks an image this website already has.
- Open the right-hand cards to set the author, language, status, visibility and URL slug, add categories and tags, and fill the SEO title and meta description.
- Use the AI Assistant card for a cover image, an excerpt, a duplicate check, a fact check, a humanising pass or internal links.
- A draft saves itself as you work — a line under the post title reads
Unsaved changes, thenSaving…, thenSaved. Save draft still saves on demand. - Publish when it is ready — or set the status to
Scheduled, choose a Publish at time, and save. - Track everything from
Calendar, and manage the mailing list underSubscribersandEmail template.
Reading the Results#
The posts table lists Title, Status, Language, Author and Date, plus an actions column. Status is the field to work by: draft is private and unfinished, pending is waiting for review, scheduled is finished and dated, published is live, and trash is deleted but recoverable. The count badges in the rail are your queue at a glance — a large Pending count means work is sitting on an editor, and a large Drafts count means work is sitting on you.
A scheduled post goes live by itself at its Publish at time — there is no second action to take. It appears on your public blog the moment that time passes, and its status here reads published as soon as you open Blog Studio, or within 15 minutes if nobody does. Picking a time that has already gone by publishes the post straight away instead, which the editor tells you under the field before you save.
The Calendar places every post on its date, color-coded by status, with a marker on entries that carry notes. Read it for shape rather than detail: gaps and clusters show where a publishing rhythm is breaking down long before a list view would.
The editor puts the article on the left — cover, title, subtitle, body — and everything about the article in collapsible cards on the right.
- The body is a block editor. Press
Enteron an empty line and then the+button — or type into the filter box that opens with it — to add a heading, list, quote, table, code block, image or divider. Selecting text brings up the inline toolbar for bold, italic, a link,inline codeand the highlighter. An image added here uploads to the same Media library as the cover, so every image the site uses is in one place; you can also paste an image URL and it is fetched and stored rather than hotlinked, so the post survives the source taking it down. Tables and code blocks render on the published page and in the preview exactly as you build them here. - AI Assistant offers seven actions, each opening its own settings first:
Generate a draft(topic, audience, tone, length, language, and a primary and secondary keyword — see below),Generate a cover image(prompt, style and ratio, then pick from three),Write an excerpt(choose a length and how many options),Check for duplicates(against your other posts and the open web),Fact-check claims(a verdict per claim, with sources, and the offer to rewrite the ones it flags — see below),Humanize the draft(set how much to change, and the voice) andAdd internal links(three keyword links to your own pages). Each reports back in a toast — the humaniser tells you how many segments it changed, the internal linker how many links it added — and leaves the change unsaved so you can review it before committing. - The two keyword fields on
Generate a draftare ranked, not a list. The primary keyword is the one term the post is meant to rank for: the writer puts it in the title, the first hundred words, at least one H2, and the SEO title and meta description. Secondary keywords are comma-separated and get a section or a paragraph each. Both are optional. Taking a suggestion from Title ideas fills them in for you — its first keyword becomes the primary one and the rest the secondary ones. It also sets the tone and length the idea was written for, and the Tone and Length fields show exactly what will be sent. - The fact check can fix what it finds. When the report comes back with any
DisputedorUnverifiedclaims, it offers Rewrite the flagged claims. That is a separate action at its own price (10 credits) and it never runs on its own. It corrects a disputed claim against the sources the check actually found, and weakens an unverified one — attributing it, dropping the false precision, or cutting the sentence — until it is defensible. It will not invent a replacement figure or a citation, so a claim it cannot fix honestly comes back markedLeft as iswith the reason. You then get the same review screen the humaniser uses: what it did to each claim, and a strikethrough/insert diff of every passage it changed. Nothing touches the post until you press Apply the rewrite, and nothing is saved until you press Save. - Publishing holds
Author,Language, theStatussegments,Publish atwhen scheduled,Visibility(public or private) and theURL slug. The slug is the one field worth setting deliberately: it becomes the permanent public address of the post. - Categories & tags are chip pickers — type and press Enter to add. On a post written in another language the chips read in that language; the term itself is the same one, so filing stays consistent across every translation.
- Translations translates the post into another language with AI and creates a separate draft for it. The categories and tags come with it: the draft keeps the same terms, shown under their names in that language. If one already exists you are told
That translation already existedrather than getting a duplicate. - SEO holds the
SEO title(which defaults to the post title if you leave it blank) and theMeta description. Fill both before publishing. - Share builds LinkedIn, Facebook, X and email links, plus a copyable URL. These need
Your website addressset; without it you getSet your website address under Website first. - Activity shows
Created,Last updatedandPublished, orNot saved yeton a new post.
Media is the image library for the selected website, newest first, with a preview on click and per-image actions. Everything the site uploads lands here — cover images, AI-generated covers, stock picks, and images placed in the body of a post — so there is one library rather than one per entry point. It works in both directions: an image here can be pushed onto a post with Use as cover, and the editor's cover button can pull from this library with Media library, which sets the post's cover to the image already stored rather than uploading a second copy of it. Before deleting an image the studio tells you where it is used, so you find out beforehand rather than afterwards.
Subscribers lists Email, Name, Status, Source and Joined, with counts for confirmed, pending, unsubscribed and the total. Confirmed is the only number that matters for reach; a large pending count means people are signing up but never confirming, which is usually a deliverability problem rather than an interest problem. Email template edits the newsletter itself, and its preview is rendered by the same code a real send uses, so what you approve is what goes out.
Embed produces five numbered snippets — 1. Setup — every page, 2. Blog index page, 3. Single post page, 4. Language switcher and 5. Newsletter signup — plus a copyable brief you can hand to an AI coding assistant that explains all of them, and links to the three public endpoints: Posts JSON, RSS feed and Sitemap.
Website Settings shows the Site ID and Slug for the selected website beneath the editable fields.
Examples#
Example: You add a second website called Client — Riverbend Dental, set its address and allowed origins, and paste the setup and index snippets into the client's site. In AI Studio you enter the topic how often should you really get a dental cleaning, tone Warm and reassuring, length Medium, and press Generate draft. The draft is written, saved to that website and opened for editing, with a short summary paragraph leading the body. You run Check for duplicates, then Add internal links, set the SEO title and meta description, add the Patient guides category, set the status to Scheduled with a Publish at of next Tuesday at 09:00, and save. The Calendar shows it on Tuesday; the Scheduled badge in the rail goes to 1.
Screenshots#
Tips#
- Set
Your website addressbefore anything else; share links and the newsletter button are inert without it. - Leave
Allowed originsempty unless you want to restrict who may read the blog from a browser. Empty is the default and allows any site. If you do fill it in, it must include the address your embed actually runs on, or the embed will show nothing. - Use
Pendingas a real review queue rather than a second drafts folder. - Generate the cover image once per post — the options are kept for the editing session, so you can switch variations without regenerating.
- Give each client their own website rather than sharing one with categories.
- Set the slug before you publish. Changing it afterwards breaks existing links.
Best Practices#
- Give team members the narrowest blog role that lets them work:
authorfor contributors,editorfor the person who approves,owneronly where settings need changing. - Run Check for duplicates and Fact-check claims before publishing anything researched with AI.
- Resize and convert cover images in Image Resize and Image Reformat before uploading them to Media.
- Keep translations as separate posts rather than mixing languages in one.
- Schedule rather than publishing manually, and use the Calendar to keep the cadence even.
Common Mistakes#
- Publishing before setting
Your website address. Share links and the newsletter button depend on it. - Filling in
Allowed originswith the wrong address. It is enforced, so an entry that does not match where the embed runs will leave the embed empty. Leaving it blank allows every site, which is the default. - Changing a slug after publishing. The slug is the post's public address; changing it breaks every existing link to it.
- Assuming a teammate can change settings. Only the account owner can create a website or save its settings, whatever their blog role.
- Treating
Pendingas a second drafts folder. It is the review queue, and a growing count means work is stuck. - Publishing an AI draft without checking it. The duplicate check and the fact check exist for exactly that, and the fact check will rewrite what it flags.
- Expecting Blog Studio to push to WordPress. It hosts the blog itself; the external-CMS push is Publish Integrations.
- Looking for blog posts in the tool Library. They live in the blog's own storage, not in your tool result history.
Limitations#
- Autosave covers posts whose saved status is
DraftorPending. APublishedorScheduledpost is not saved in the background, because its row is the one the public blog reads and there is no separate working copy — a background save would put half-finished edits in front of readers. Editing one still showsUnsaved changes, and the change is committed when you press the publish button. Closing the tab with unsaved work warns you first. - Autosave never changes a post's status or its publish date. It saves what the post says, not whether it is published — status and Publish at are committed only by Save draft or the publish button.
- A brand-new post autosaves once it has a title, and never while an AI action is open in that editor session.
- Categories, tags, authors and media are per website and are not shared between websites on the same account.
- Only the account owner can create a website or change its settings.
- The media library loads the 100 most recent images by default and at most 200; the subscriber list loads at most 500.
- Blog posts do not appear in your tool Library and are not part of the tool result history.
- The editor loads its block tools from a public CDN. A network that blocks the CDN entirely shows
Editor failed to load; one that blocks or drops a single tool costs you that one button in the+menu and leaves the rest of the editor working. - The newsletter emails a teaser — cover, title, excerpt and a Read button — not the article body. Tables, code blocks and in-body images live on the post page the email links to; they never appear in the email itself.
- Blog Studio is separate from Publish Integrations, which pushes content to an external CMS such as WordPress. Blog Studio hosts the blog itself.
Troubleshooting#
| Symptom | Likely cause | Fix |
|---|---|---|
Sign in to use the Blog | The session did not resolve within a few seconds | Reload the page; sign in again if it persists |
Could not load the Blog | The websites request failed | Reload. If it repeats, see The dashboard is stuck loading |
Only the account owner can create blog sites. | You are a team member, not the owner | Ask the account owner to create it |
Your blog role does not allow this action (…). | Your blog role is below what the action needs | Ask the owner to raise your blog role. See Roles and what each can do |
A title is required | Saving a post with an empty title | Add a title and save again |
That publish date is not complete. Finish it or clear it before saving. | A partly-typed scheduled date | Finish the date and time, or clear the field |
Set your website address under Website first | Sharing a post before the site address is set | Set it under Website Settings |
Editor failed to load | The rich-text plugin CDN is blocked | Allow the CDN, or try a different network or browser |
Pick a website first | No website is selected | Choose one in the Website selector |
| Embeds show nothing on your site | Allowed origins is set and does not include the site | Add the exact origin, or clear the field to allow any site. The www and non-www forms of a listed address are both accepted, so only one of the two is needed |
| A scheduled post is not on your site after its time | The embed points at a different website than the one the post is on | Check the Embed snippet's site against the Website selector — they must match |
FAQs#
Does Blog Studio cost credits? The studio itself does not, but its AI actions do — each dialog shows its price before you run it (a draft is 10 credits, a fact check 12; see Cost above). Writing, scheduling, publishing and the embeds never cost anything.
Can I use the AI actions on the Free plan? No. Free includes no AI credits, so every AI action in the studio — including the three helpers that cost nothing — answers This tool needs a paid plan…. Everything else works: write, schedule, publish, upload media, run the newsletter and paste the embeds. Upgrade at /pricing.
Where does my blog actually appear? On your own website. The Embed view gives you snippets that render the index, single posts, a language switcher and a newsletter signup wherever you paste them, and there is a public JSON, RSS and sitemap API if you prefer to build the markup yourself.
How many websites can I have? Several. Add them with New website and switch with the Website selector. Only the account owner can create them.
How is this different from the AI Article Generator? AI Article Generator produces an article from research. Blog Studio is where an article is stored, edited, scheduled, categorised, translated and published — a CMS rather than a writer, with a writer built into it.
Can my team work in it? Yes. Accepted team members act on the owner's blog with a blog role of owner, editor or author, which decides what they can change.
Do I need a separate newsletter tool? No. The signup embed collects subscribers into Subscribers, and Email template edits the email they receive, previewed with the same code a real send uses.
See also
Was this article helpful?
Thanks — feedback noted for the docs team.