← Back to the blog

Welcome, and how this blog works

How to publish a post by editing a Markdown file on GitHub, plus the formatting you can use.

This blog is just a folder of Markdown files. To publish something new, you add a .md file to src/content/blog/ - either on your computer or right in GitHub’s web editor - and push. The site rebuilds and deploys itself in under a minute.

No login. No database. No dashboard. Just writing.

Writing a new post

Every post starts with a small block of frontmatter between --- lines:

---
title: The title of your post
description: One or two sentences shown on the home page and in link previews.
pubDate: 2026-07-19
tags: [essays, notes]
---

Your writing starts here…

Only title and pubDate are required. Set draft: true to keep a post out of the site while you work on it.

Formatting

You can use all the usual Markdown: bold, italic, links, lists, and quotes.

The best writing feels like a letter to one person.

  • A bullet
  • Another bullet

Images

Drop an image into public/images/ and reference it with a leading slash:

![A description of the image](/images/my-photo.jpg)

Here’s a sticker, inline, to prove images work:

The beaver, thinking

Video

For video, host the file on Cloudinary (free) or embed from YouTube - see the next post for the exact steps. The syntax looks like this:

<video controls playsinline src="https://res.cloudinary.com/you/video/upload/clip.mp4"></video>

Code

Fenced code blocks are syntax-highlighted automatically:

export function hello(name) {
  return `Hello, ${name}`;
}

That’s the whole system. Write, push, done.