Blog & articles
A blog, news section, or article hub — for a standalone writer/publication or a
content section bolted onto any business site. Wins on publishing regularly →
getting found → keeping readers (search traffic + subscribers). The platform
does the SEO plumbing automatically; you focus on structure and great posts.
What the platform does for you (don't hand-build these)
When you publish article-type posts (type: "blog" / "article" / "news"),
mcpvillage automatically:
- emits
BlogPosting + BreadcrumbList structured data on each post page,
- sets
og:type=article with published/modified dates + author,
- serves an RSS feed at
/feed.xml (auto-linked in the page <head>),
- exposes
post.reading_time, post.author, post.updated_at to
your templates, and includes posts in /sitemap.xml.
So a post just needs good content + a cover image — the SEO is handled.
How a blog wins
Readers arrive from search or a share, judge in seconds, and either bounce or
stay. So: a clean, scannable listing that sells each post (title + excerpt +
cover + date/read-time), readable post pages, and an obvious way to
subscribe so the reader comes back.
- Confirm facts —
get_site. Who's writing, the topics, the author
name(s), how often, whether this is a standalone blog or a section of a
business site, and the subscribe goal (newsletter / RSS). Ask.
- Structure (layout paradigm + core vocabulary):
- Blog index (
/blog) — the listing: {% posts type: "blog" %} rendering
each as a card (cover, title, excerpt, date, {{ post.reading_time }} min).
Add {% paginate type: "blog" per: 10 %} once there are many posts.
- Post pages — one
create_post per article (type: "blog", a
permalink like /blog/my-first-post, title, excerpt, cover_image,
body as HTML, tags, and data: {author: "..."}). The default post
template renders cleanly; write /templates/blog only to customize.
- Categories/tags — filter with
{% posts type: "blog" tag: "guides" %}.
- Subscribe — an email-capture form (the main conversion) + a link to
/feed.xml for RSS readers.
- About / author — credibility for E-E-A-T (who's writing and why trust
them); set
data.author on posts so it flows into the byline + structured
data.
- Lead form — subscribe
/_/f/subscribe: name, email. (Rolls into
contacts — the owner's reader list.)
- Trust signals — a real author with a bio + photo, consistent publishing
dates, sources/links, clear topic focus, reading time, easy subscription.
- SEO —
get_skill("seo-baseline"). Per post, set a sharp meta_title +
meta_description and a cover_image (becomes the og:image). The blog as a
whole is the business's set_seo(business_type: ...); individual posts get
BlogPosting automatically.
- Design — typography-first and readable (generous measure, strong heading
scale, comfortable line-height); let the writing breathe. See the design docs.
- Variants — Standalone blog/publication: the blog is the site; home =
the latest posts. Business blog: a
/blog section feeding the main site's
SEO; link posts back to services. News/changelog: type: "news"/"update",
dated and terse. Personal: pair with get_skill("personal-creator").
- Tell the owner the live URL, the
/feed.xml, and that they can publish a new
post, edit one, or change the byline just by telling you.
1---2name: blog3description: Run a blog, news section, or article hub on a website built with MCP Village — publishing posts regularly to get found in search and keep readers. Use when the owner wants to "start a blog", "add a news/articles section", or publish posts, whether it's a standalone publication or a content section on a business site. The platform handles the SEO plumbing; this covers structure and posts.4---56# Blog & articles78A blog, news section, or article hub — for a standalone writer/publication or a9content section bolted onto any business site. Wins on **publishing regularly →10getting found → keeping readers** (search traffic + subscribers). The platform11does the SEO plumbing automatically; you focus on structure and great posts.1213## What the platform does for you (don't hand-build these)14When you publish article-type posts (`type: "blog"` / `"article"` / `"news"`),15mcpvillage automatically:16- emits **`BlogPosting` + `BreadcrumbList`** structured data on each post page,17- sets **`og:type=article`** with published/modified dates + author,18- serves an **RSS feed at `/feed.xml`** (auto-linked in the page `<head>`),19- exposes **`post.reading_time`**, **`post.author`**, **`post.updated_at`** to20 your templates, and includes posts in `/sitemap.xml`.2122So a post just needs good content + a cover image — the SEO is handled.2324## How a blog wins25Readers arrive from search or a share, judge in seconds, and either bounce or26stay. So: a clean, scannable **listing** that sells each post (title + excerpt +27cover + date/read-time), **readable** post pages, and an obvious way to28**subscribe** so the reader comes back.29301. **Confirm facts** — `get_site`. Who's writing, the topics, the author31 name(s), how often, whether this is a standalone blog or a section of a32 business site, and the subscribe goal (newsletter / RSS). Ask.332. **Structure** (layout paradigm + core vocabulary):34 - **Blog index** (`/blog`) — the listing: `{% posts type: "blog" %}` rendering35 each as a card (cover, title, excerpt, date, `{{ post.reading_time }} min`).36 Add **`{% paginate type: "blog" per: 10 %}`** once there are many posts.37 - **Post pages** — one `create_post` per article (`type: "blog"`, a38 `permalink` like `/blog/my-first-post`, `title`, `excerpt`, `cover_image`,39 `body` as HTML, `tags`, and `data: {author: "..."}`). The default post40 template renders cleanly; write `/templates/blog` only to customize.41 - **Categories/tags** — filter with `{% posts type: "blog" tag: "guides" %}`.42 - **Subscribe** — an email-capture form (the main conversion) + a link to43 `/feed.xml` for RSS readers.44 - **About / author** — credibility for E-E-A-T (who's writing and why trust45 them); set `data.author` on posts so it flows into the byline + structured46 data.473. **Lead form** — subscribe `/_/f/subscribe`: `name`, `email`. (Rolls into48 `contacts` — the owner's reader list.)494. **Trust signals** — a real author with a bio + photo, consistent publishing50 dates, sources/links, clear topic focus, reading time, easy subscription.515. **SEO** — `get_skill("seo-baseline")`. Per post, set a sharp `meta_title` +52 `meta_description` and a `cover_image` (becomes the `og:image`). The blog as a53 whole is the business's `set_seo(business_type: ...)`; individual posts get54 `BlogPosting` automatically.556. **Design** — typography-first and readable (generous measure, strong heading56 scale, comfortable line-height); let the writing breathe. See the design docs.577. **Variants** — **Standalone blog/publication:** the blog *is* the site; home =58 the latest posts. **Business blog:** a `/blog` section feeding the main site's59 SEO; link posts back to services. **News/changelog:** `type: "news"`/`"update"`,60 dated and terse. **Personal:** pair with `get_skill("personal-creator")`.618. Tell the owner the live URL, the `/feed.xml`, and that they can publish a new62 post, edit one, or change the byline just by telling you.