Build a blog with Xodia CMS
A blog in Xodia is a CMS collection in your own repository: you write posts as forms in the Content tab, show the latest ones on any page with a Collection List, and every post gets its own page with its own title, description and share image.
Updated
Free plan. No card needed.
The Content tab: a bakery site's Journal collection in Xodia CMS, its posts with their status as Live or Draft, search, filters, Columns, CSV and New journal post.
Step by step
How to build a blog with Xodia CMS
Seven steps from an empty site to a blog with a page per post. It works on the React + Vite starter and on React sites with React Router.
- 1
Create the Blog collection
Open the Content tab, choose New collection and pick the Blog posts starter. It comes with a title, summary, cover image, category, author, a Featured switch and the post body, plus three sample posts. Keep the URL folder blog, so posts live at /blog/post-name, and choose Create collection.
- 2
Shape the fields
Open the Fields tab and make it yours: make the summary required, add a category, or turn the author into a reference to a Team collection. Each field can have help text and limits, such as a summary of at most 200 characters.
- 3
Write your posts
Open a sample post, replace its words and cover, and set it to Published, or delete the samples and add your own. To bring posts from somewhere else, choose Import CSV and match each column to a field. Drafts show in the preview but never on the live site.
- 4
List the latest posts on a page
Open your home page or blog page on the canvas, select where the list goes, and add a Collection List of Blog from the CMS category in Add elements. In its settings, sort by the published date, newest first, and set a limit of three. Each card links to its post.
- 5
Design the post page
Open Blog under Collection pages in the Pages panel. The item switcher in the address bar previews any post; bind the heading, cover and body to their fields with Content from, and style the page once for every post.
- 6
Set each post's SEO
In the Collection page tab, set the title tag to {title} | Blog and the meta description to {summary}, take the share image from the cover, and choose Article for structured data. Step through your posts in the previews to check them.
- 7
Publish
Push your changes and deploy. Your host builds one page per published post with its own title, description and content, so search engines read every post.
Fields
The fields your posts need
The Blog posts starter comes with its fields ready. Change them in the Fields tab: add a field, group them, make one required or link a post to its author in another collection.
- Text, images, dates, options, switches, references and more
- Help text and limits, so writers know what fits
- Every field type: CMS collections
The Fields tab of a Xodia collection: Basic info with the title and the locked slug, then custom fields for the summary, cover image, category, author (a reference to the Bakers collection), featured switch and body, with Add field and Add group.
On the page
The latest posts, anywhere on the site
A Collection List shows posts with your own design. Filter it to featured posts or one category, sort it, limit it, and give it an empty state for when nothing matches.
- Bind headings, images and links to fields with Content from
- Show an author or related posts with a nested list
- How binding works: Bind content on the canvas
A Collection List of journal posts selected on the Xodia canvas: the design panel sets its collection, a filter on category, the sort by published date, a limit of three and the empty state message.
Post pages
Every post with its own SEO
Write the title and description once as templates with field tokens, and every post fills them in. Published posts become real HTML pages when your host builds the site.
- Search and share previews that step through your posts
- Canonical, noindex from a switch, JSON-LD and custom code per collection
- The details: Collection page SEO and code
The Collection page tab of a Xodia collection: one page per journal post, a preview that steps through the posts, a title tag and meta description made from the post's own fields, and social sharing that follows the SEO title and description with the cover as the share image.
Questions
Questions about blogs in Xodia
Where are the posts stored?
In your site's repository: each post is a Markdown file in content/blog, next to a collection.json that lists the fields. Writers fill in forms, your code and your AI read plain files, and posts are saved, branched and restored with the rest of the site. Every field type and setting is in the docs: CMS collections.
Do I need a separate CMS for a blog?
No. Xodia CMS keeps the posts in your site's repository, so there is no other service to sign up for or pay. If your posts already live in Sanity, Contentful, Storyblok or Prismic, the Content tab edits them there instead.
I already have Markdown posts. Can I use them?
Yes. Open the folder in the Content tab and choose Turn into a Xodia collection. Xodia writes the fields from the ones your posts use, and the posts keep their content.
Can my AI write and manage posts?
Yes. Connected over MCP, it can create collections, add and update posts, and its changes are checked against your fields and wait for your review. See Connect an MCP server.
Which plans include it, and how many posts can I have?
Xodia CMS comes with every plan, with these limits: Free, 2 collections, 100 items a site; Starter, 10 collections, 2,000 items a site; Pro, 20 collections, 10,000 items a site; Agency, 40 collections, 20,000 items a site. See pricing.
Keep exploring
Related guides and pages
- Organise pages in folders, with redirectsNested addresses with links and redirects kept for you
- Plan a website you already haveA site plan made from your code, kept in sync
- Connect an MCP server to build and edit your websiteAdd Xodia to Claude Code, Cursor or any MCP app
- Xodia CMSCollections, items and collection pages
- SEOPage settings, audits and speed tests
- Content collectionsWhat a collection is