| applyTo | blogs/**/*.md |
|---|
Apply the following guidelines when authoring blog posts on the VS Code website.
Before you outline or draft a post, identify its primary persona, reader intent, and narrative purpose by following the documentation content-framing guidance.
The broad blog audience includes developers who use VS Code, but each post must define a more specific primary persona when role, experience, or context affects the angle. Also identify what the reader wants to understand, evaluate, or try after reading, and how the post will move them toward that outcome. If the primary persona, reader intent, or narrative purpose is ambiguous and would change the angle, ask the writer to confirm before drafting.
State the primary persona, reader intent, and narrative purpose in the proposed outline. Use them to choose the opening hook, key takeaways, examples, terminology, assumed knowledge, and call to action. After drafting, verify that each section advances the agreed narrative purpose for the primary persona.
Announce functionality only when it is publicly available in the named product channel by the post's publication date. Public Preview, Experimental, and Insiders functionality can be announced when the post identifies its lifecycle and availability clearly. Do not present planned, source-only, hidden, or internal dogfood functionality as available to readers.
A blog post must have the following metadata fields, formatted with YAML frontmatter.
---
Order: <number> # Required. Sequence number; higher = more recent. Must be unique.
TOCTitle: <string> # Required. Title for the table of contents. Keep under 30 chars.
PageTitle: <string> # Required. Title shown in the browser tab.
MetaDescription: <string> # Required. SEO description. Keep under 160 chars.
MetaSocialImage: <filename> # Required. Image filename for social sharing (relative path).
MetaSocialImageLight: <filename> # Optional. Light-theme screenshot for the blog home page.
MetaSocialImageDark: <filename> # Optional. Dark-theme screenshot for the blog home page.
Date: <YYYY-MM-DD> # Required. Publication date in ISO format.
Author: <string> # Required. Full name(s) of author(s). Separate multiple with comma.
Keywords: [<string>, ...] # Optional. Array of keywords for SEO/search purposes.
---| Field | Required | Description |
|---|---|---|
Order |
Yes | Sequence number used for sorting (higher numbers appear first). Increment from the most recent blog post. Must be unique across all posts. |
TOCTitle |
Yes | Blog post title used in the sidebar table of contents. Keep it shorter than 30 characters for display. |
PageTitle |
Yes | Full blog post title displayed in the browser tab. Can include quotes if needed. |
MetaDescription |
Yes | Short description for SEO and social previews. Keep under 160 characters. |
MetaSocialImage |
Yes | Filename of the hero/social image, stored in the same folder as the post. Use relative path (e.g., hero-image.png). |
MetaSocialImageLight |
No | Screenshot shown on the /blogs/ home page when the website is in light theme. Filename in the post folder. Only used when MetaSocialImageDark is also set. |
MetaSocialImageDark |
No | Screenshot shown on the /blogs/ home page when the website is in dark theme. Filename in the post folder. Only used when MetaSocialImageLight is also set. |
Date |
Yes | Publication date in YYYY-MM-DD format (e.g., 2025-06-30). |
Author |
Yes | Author's full name. For multiple authors, separate with comma (e.g., Jane Doe, John Smith). |
Keywords |
No | Array of keywords for search optimization (e.g., [copilot, ai, productivity]). |
Theme-aware home page images: If you provide both
MetaSocialImageLightandMetaSocialImageDark, the blog home page shows the matching screenshot for the visitor's active website theme. If you provide onlyMetaSocialImage, that single image is used in both themes (existing behavior).
---
Order: 125
TOCTitle: MCP Apps Support
PageTitle: "Giving Agents a Visual Voice: MCP Apps Support in VS Code"
MetaDescription: VS Code now supports MCP Apps, enabling AI agents to display interactive UIs for richer developer workflows.
MetaSocialImage: mcp-apps-hero.png
Date: 2026-01-26
Author: Harald Kirschner, Connor Peet
------
Order: 92
TOCTitle: Copilot Next Edit Suggestions (preview)
PageTitle: Copilot Next Edit Suggestions (preview)
MetaDescription: Announcing the Next Edit Suggestions and Agent Mode for GitHub Copilot in Visual Studio Code.
MetaSocialImage: nes-gutter-cover.png
Date: 2025-02-12
Author: Brigit Murtaugh, Burke Holland
Keywords: [nes]
---A blog post MUST be stored in the blogs folder, within a year/month/day subfolder structure. Each of the three levels of the date must be subfolder.
- The blog post title is an H1 heading.
- There must be a byline directly underneath the title, formatted as
<Month> <day>, <year> by [<author name>](<link to social media profile>)). The byline must be followed by an empty line. - The blog post must be broken into sections with H2 headings.
- Images should be included using relative paths and must have alt text.
- Links to documentation articles should use full URLs.
- Start with a brief introduction that summarizes the main points of the post.
- End with a call to action, such as encouraging readers to try out a new feature or share their thoughts in the comments.
- The blog post should end with a line saying
Happy coding! 💙
- In general, the blog post should adhere to the docs writing guidelines.
- Blog posts should be engaging and can include a more conversational tone than standard documentation.
- Use active voice and first-person plural ("we") to create a sense of community and shared experience.
- Use contractions (e.g., "it's", "we're") to make the writing feel more natural and approachable.
- The broad audience is developers who use VS Code, ranging from beginners to advanced users. Write for the post's defined primary persona.
- Use simple and clear language, avoiding jargon unless it's widely understood by the primary persona.