Welcome to the blog
This starter post ships with the template so you can see the blog pipeline render real markdown before you publish anything of your own.
Published 6 August 2026
Sample content. This post ships with the template as a working example. Delete
content/blog/welcome-to-the-blog.mdonce you have read it, then followcontent/blog/AUTHORING.mdto write your first real post.
Every post lives in content/blog/ as one markdown file, and this one doubles as a quick tour of what that markdown can do: headings, lists, a table and a code block, all rendered by the same pipeline your own posts will use.
Why this post exists
A fresh template with an empty blog is hard to judge. This post gives the index, the category archive, the tag filters, the RSS feed and llms.txt something real to show, so you can see the whole pipeline working before you write a word of your own copy.
How posts are structured
Every post is one file: a block of YAML frontmatter, then a markdown body. The frontmatter carries the metadata, the title, the category, the tags and the publish date, while the body carries everything a reader sees.
Frontmatter versus body
The build validates frontmatter before it renders anything. A missing field, an unknown category, or a tag outside the registry fails the build with the file and the field named, so a typo cannot quietly ship a broken page. Read the field-by-field rules in content/blog/AUTHORING.md.
Lists, for scannable steps
An unordered list is right for anything without a natural order:
- Frontmatter is validated at build time, not silently defaulted.
- Categories and tags come from a closed registry in
src/lib/blog/categories.ts. - Draft posts (
draft: true) render in development but never in production. - The blog, and its nav link, appear automatically once a post exists.
An ordered list is right for a sequence, such as writing your own post:
- Duplicate this file and rename it to your post's slug.
- Replace every frontmatter field, including the category and tags.
- Write the body in Markdown, starting at H2.
- Run
npm run buildand fix anything the validator flags.
A table, because comparisons need one
Markdown tables render as real HTML tables, and a wide one scrolls inside its own box rather than stretching the page:
| Markdown | Renders as |
|---|---|
## Heading |
An H2 with its own anchor link |
- item |
An unordered list |
1. item |
An ordered list |
`code` |
Inline code |
| triple-backtick fence | A preformatted code block |
[text](/path/) |
A link (external links open in a new tab automatically) |
Code blocks
A fenced code block keeps formatting and spacing intact, which is useful for anything a reader might copy, such as the shape of a post's frontmatter:
---
title: Your post title
metaTitle: A short version, 43 characters or fewer
description: One or two sentences, 160 characters or fewer
excerpt: The lede shown on the card and under the title
date: 2026-01-01
category: guides
tags: [example-tag, another-tag]
readMinutes: 4
---
Inline code works too, for a short reference like readMinutes or a file name like content/blog/AUTHORING.md.
Links, emphasis and quotes
Body text supports bold, italics, inline links, and blockquotes. An internal link, such as one to the support page, keeps its trailing slash and stays on this site. An external link, such as one to the CommonMark specification, opens in a new tab with a safe rel added automatically, so you never write that attribute by hand.
A blockquote is a good place for a callout, a pull quote, or, as at the top of this post, a note that will not survive the edit.
Replacing this post
When you are ready to publish real content, delete this file and write your first post following content/blog/AUTHORING.md. Check src/lib/blog/categories.ts for the current category and tag registry, since both are closed sets the build validates against.
Try it in Simply Zone
Simply Zone is a world clock for the Mac menu bar. Add as many time zones as you like from a 34,000-city search, read them without leaving what you are doing, and click through to a time converter, a meeting planner that writes to your calendar, a day and night world map, and a moon almanac. There is a desktop widget too. One payment, no subscription, no adverts and no tracking, and it works entirely offline.