Blog Posts
Blog posts are stored in src/content/blog/ organized by locale.
Creating a Post
Section titled “Creating a Post”Create a new file in the appropriate locale folder:
src/content/blog/en/my-new-post.mdxFrontmatter Schema
Section titled “Frontmatter Schema”---title: "Your Post Title" # Required, max 100 charsdescription: "Post description" # Required, max 200 charspublishedAt: 2026-01-28 # RequiredupdatedAt: 2026-01-29 # Optionalauthor: "Author Name" # Optional, defaults to "Team"image: ./cover.jpg # Optional, relative image pathimageAlt: "Image description" # Optionaltags: # Optional - astro - tutorialdraft: false # Optional, excludes from productionfeatured: false # Optional, for featured sectionslocale: en # Required for i18n---
Your markdown content here...Field Reference
Section titled “Field Reference”| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Post title (max 100 chars) |
description | string | Yes | Meta description (max 200 chars) |
publishedAt | date | Yes | Publication date |
updatedAt | date | No | Last updated date |
author | string | No | Author name (default: “Team”) |
image | string | No | Cover image path |
imageAlt | string | No | Cover image alt text |
tags | string[] | No | Post tags for categorization |
draft | boolean | No | Hide from production |
featured | boolean | No | Mark as featured |
locale | string | Yes | Content locale (en, es, fr) |
Example Post
Section titled “Example Post”---title: "Getting Started with Velocity"description: "Learn how to build your first project with Velocity"publishedAt: 2026-01-28author: "Jane Doe"image: ./getting-started-cover.jpgimageAlt: "Velocity documentation homepage"tags: - getting-started - tutoriallocale: en---
Welcome to Velocity! In this guide, we'll walk through...
## Installation
First, clone the repository:
\`\`\`bashgit clone https://github.com/southwellmedia-dev/velocity.git\`\`\`
## Next Steps
Continue to [configuration](/configuration) to customize your site.Images
Section titled “Images”Cover Images
Section titled “Cover Images”Place images next to your post and reference with relative paths:
src/content/blog/en/├── my-post.mdx└── cover.jpgimage: ./cover.jpgInline Images
Section titled “Inline Images”Draft Posts
Section titled “Draft Posts”Mark posts as drafts to hide them in production:
draft: trueDraft posts:
- Visible in development
- Hidden in production builds
- Useful for work-in-progress content
Featured Posts
Section titled “Featured Posts”Mark posts for featured sections:
featured: trueQuery featured posts:
const featured = posts.filter(post => post.data.featured);Localization
Section titled “Localization”Organize posts by locale:
src/content/blog/├── en/ # English posts├── es/ # Spanish posts└── fr/ # French postsFilter by locale:
const enPosts = posts.filter(post => post.data.locale === 'en');