# Blog posts Add a `.md` file in `frontend/src/blog/posts` and it will appear on `/blog` after the Vite dev server refreshes or the site is rebuilt. Use this front matter at the top: ```md --- title: Your post title date: 2026-06-22 author: Heidi excerpt: Short one-line summary for the blog list. --- Write the post here. ``` The URL slug comes from the filename, so `new-feature.md` becomes `/blog/new-feature`. You can override it with `slug: custom-url`. ## Markdown examples Headings: ```md # Huge heading ## Section heading ### Small heading ``` Paragraphs: ```md This is a normal paragraph. Leave a blank line to start a new paragraph. ``` Bullet points: ```md - First bullet - Second bullet - Third bullet ``` Numbered lists: ```md 1. First step 2. Second step 3. Third step ``` Blockquotes: ```md > This text gets shown as a quote/callout. ``` Links: ```md [The homepage](/) [Discord](https://discord.com/) ``` Inline code: ```md Use `frontend/src/blog/posts` for blog posts. ``` Code blocks: ````md ```js console.log('hello from the blog') ``` ```` ## Images and videos Put local images and videos in `frontend/public`. Files in there are served from the site root. Example local file paths: ```txt frontend/public/images/news/screenshot.png frontend/public/videos/news/launch.mp4 ``` Embed an image: ```md ![Image caption or alt text](/images/news/screenshot.png) ``` Embed a local video: ```md @[video](/videos/news/launch.mp4) ``` Embed YouTube or Vimeo: ```md @[youtube](https://www.youtube.com/watch?v=VIDEO_ID) @[vimeo](https://vimeo.com/123456789) ``` YouTube embeds use the privacy-friendly `youtube-nocookie.com` player. Direct video files support `.mp4`, `.webm`, and `.ogg`.