Blog System
Blog System
Verto includes a full blog alongside its documentation system. Blog posts live in their own content directory, render with a magazine-style card layout, and display tags, authors, and dates on every card. No extra configuration required. Drop an MDX file into the blog folder and it shows up.
Blog Post Frontmatter
Every blog post needs frontmatter at the top of the file. Here are the available fields:
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | The post title, displayed on the blog card and in the browser tab |
description | string | Yes | Short summary used on blog cards and in meta tags for SEO |
date | string | Yes | Publication date in "YYYY-MM-DD" format, used for sorting |
author | string | Yes | Author name shown on the blog card |
tags | string[] | Yes | List of tags displayed as badges on the card |
order | number | No | Optional ordering value for sidebar placement |
A complete frontmatter block looks like this:
---
title: "Building a Custom Remark Plugin"
description: "How we built Verto's inline comment system from scratch."
date: "2026-02-15"
author: "tsaiggo"
tags: ["remark", "mdx", "plugins"]
order: 1
---
Creating a Post
Three steps:
-
Create the file. Add a new
.mdxfile incontent/blog/. The filename becomes the URL slug, socontent/blog/my-first-post.mdxbecomes/blog/my-first-post. -
Add frontmatter. Include all required fields at the top of the file:
title,description,date,author, andtags. -
Write your content. Everything below the frontmatter is standard MDX. You can use all the same block components available in docs pages.
---
title: "My First Post"
description: "Getting started with Verto's blog."
date: "2026-03-01"
author: "tsaiggo"
tags: ["getting-started"]
---
# My First Post
Write your content here. All MDX features and block components work just like in docs.Blog Index Page
The /blog route displays all posts in a responsive card grid. Each card shows the formatted date, post title, description, and tags. Cards are sorted by date in descending order, so the newest post always appears first.
The grid uses repeat(auto-fill, minmax(320px, 1fr)), which means it adapts from a single column on mobile to multiple columns on wider screens. Cards have a subtle hover effect that highlights the border in accent blue.
Tag Display
Tags appear on each blog card as small bordered badges. They're rendered directly from the tags array in your frontmatter. There's no separate tag index or filtering page. Tags serve as visual labels that help readers scan the grid and identify topics at a glance.
URL Structure
The blog uses a straightforward two-level URL scheme:
| URL | Page |
|---|---|
/blog | Blog index with all posts in a card grid |
/blog/{slug} | Individual post, where {slug} matches the filename |
The slug comes directly from the MDX filename. A file named content/blog/custom-shiki-themes.mdx maps to /blog/custom-shiki-themes. Each post page includes full SEO metadata generated from the frontmatter fields.
Related
- MDX Authoring covers the MDX syntax and features available in blog posts
- Block Components documents the components you can use inside blog content