What does it take to publish a post here? One file, and no database.

The short version: create a markdown file in `content/posts/`, give it the front matter above, and
commit. There is no admin interface, no editor to log into, and nothing to click. Your writing is
reviewed, versioned, and deployed exactly like your code.

## Why it works this way

A blog stored in the database needs an admin interface, and an admin interface needs authentication,
authorization, an editor, image uploads, and a draft workflow. That is a real product, and it is not
the product you are building.

Files skip all of it. You already have a text editor, and you already have code review.

## What you get for free

Every post published here also gets:

- A canonical URL, so search engines index one address per post.
- OpenGraph and Twitter card tags, so links unfurl properly when shared.
- `BlogPosting` structured data, so search results can show the author and date.
- An entry in `/sitemap.xml`, `/feed.xml`, `/feed.json`, and `/llms.txt`.
- A raw markdown version at `/blog/hello-world.md`, which AI crawlers can read directly.

## Writing the post itself

Standard markdown. Headings, lists, tables, and fenced code blocks all work, and code is highlighted
on the server, so no JavaScript runs on the page:

```ruby
class BlogPost
  def to_param = slug
end
```

Start your headings at `##`. The `#` level is the post title, and it is rendered from the front
matter, not from the body.

## Next

Delete this file and `writing-your-first-post.md`, then write something only you can write. The posts
that earn search traffic are the ones answering a question where you are the best available source.
