All posts

ProductGuides1 min read

How to add a post

One file in the content folder is one post. Fields, categories, tags, covers, and drafts.

A Markdown file mockup with the heading “New post” and lines of text.

A post is a .md or .mdx file in a language folder: src/content/blog/en-US/, ru-RU/, or kk-KZ/. The file name becomes the URL: en-US/how-to-write.md opens at /en-US/posts/how-to-write/.

Fields

---
title: Post title
description: One or two sentences for the card and search engines.
pubDate: 2026-10-03
category: product
tags:
  - guides
cover: ./images/cover.jpg
coverAlt: What the cover shows
author: Author name
draft: true
---

title, description, pubDate, and category are required. The build fails with a clear error if a field is missing, the category is not in the list, or a tag is not in the shared list.

Categories and tags

The lists live in src/consts.ts. A category is a section of the feed and a page at /en-US/category/<key>/. Tags are shared: the same tag can appear on posts from different categories. A tag page opens at /en-US/tag/<tag>/, and together with a category at /en-US/category/<category>/<tag>/.

tags is optional. An empty list and a missing field mean the same thing.

Covers

The cover path is relative to the post file. Raster images are compressed at build time and cut for different screens. SVG stays vector. Without a cover, the card shows a neutral plate with the category name.

Drafts

A post with draft: true is visible only while running locally. It is left out of the build, the feed, and RSS.

Keep reading