This article was published by committing a single markdown file to content/blog.
No code change was required — the site reads every .md file in that directory,
turns the frontmatter into post metadata, and renders the body below just like a
hand-written article.
Why markdown
Writing in markdown keeps the barrier to publishing low. An editor (or an external
tool) can draft a post, add a few frontmatter fields, and open a pull request. Once
it merges, the post appears in the blog listing and gets its own article page at
/blog/<slug> automatically.
What the frontmatter controls
Every field at the top of the file maps onto the site's blog post model:
- title and excerpt drive the card, the article header, and the page metadata.
- coverImage points at an asset in
/publicand is used for the hero and cards. - category and tags feed the category filter and the article tag list.
- author sets the byline shown on the article.
- publishedAt controls sort order — posts are always shown newest first.
- readingTime is optional; when omitted it is estimated from the word count.
How the body renders
The markdown body is converted to HTML and rendered through the same styled
article component the hand-authored posts use, so headings, bold text, lists,
links, and inline code all pick up the site's blog styling for free.
Markdown posts and TypeScript posts live side by side. If a markdown file ever reuses an existing slug, the curated TypeScript post wins.
Wrapping up
That's the whole workflow: write markdown, commit it, and it goes live as a fully styled article. If you'd like to see how we build content-driven sites, get in touch.
