Posts with images and covers
Images live in your repo, right next to the post that uses them. The cleanest way is a
post bundle: a folder whose name is the slug, with an index.md inside.
posts/posts-with-images/
index.md # the post (folder name = slug)
cover.png # auto-detected cover + list thumbnail
diagram.png # referenced inline from the body
Cover
Drop a cover.png (or .jpg/.webp) next to index.md and ranty uses it as the post's
hero image and its thumbnail in the list — no frontmatter needed. To name it explicitly,
or to set a cover on a flat (non-folder) post, use frontmatter:
---
title: Posts with images and covers
cover: ./cover.png # relative to the post
thumbnail: ./thumb.png # optional: a different list image
---
Inline images
Reference images with normal Markdown and a relative path:

Here is that image, served by ranty:

On sync, ranty copies the bytes into its own storage and rewrites the link to a durable, cached URL — so your images keep working even though the synced clone is temporary, and you never need external image hosting. Another one:

Flat posts
Prefer a single file? Put images in a sibling folder and point at them relatively:
posts/
my-post.md # uses cover: ./assets/my-post.png
assets/my-post.png
Limits
PNG, JPEG, WebP, GIF or AVIF (no SVG). Up to 2 MB per image, 20 images per post.
Absolute https:// images are left untouched and loaded from their origin.