---
title: Blogs
description: Write a simple reader-mode blog in Markdown from the dashboard, with a logo, a name, a links page, and images.
---

# Blogs

A blog is a page whose files sherpage generates for you. You write posts
in Markdown in the dashboard and choose a few things about the look; the
result is an ordinary bundle at a `p.shebang.pro/<public-id>/` address,
so everything on this site that applies to a page — access modes,
expiry, the short link, archiving — applies to a blog too.

The design is deliberately plain: one column of text, a gentle serif on
a dark background by default, and a home page that lists every published
post from most recent to earliest. Think reader mode, not a theme.

## Creating one

On the pages screen, choose **New blog** and give it a name. That
creates the page, an empty site, and its short link. A blog starts
**public** — the page settings screen changes that like any other page.

## Writing

Each post has a title, an address (the `<slug>.html` file it becomes),
and a Markdown body. Headings, lists, links, emphasis, code blocks,
tables and images all render; raw HTML is dropped rather than passed
through, so a post can never carry script into the page.

A new post is a **draft**. Drafts are never rendered into the bundle;
publish from the post's editor when it is ready. Publishing stamps the
date shown on the home page and the post itself. Unpublishing clears it,
so a post published again later gets a fresh date.

## Images

Upload an image from a post's editor. It lands in the bundle under
`images/` and the editor inserts `![alt](images/name.png)` at the cursor;
any post on the blog can reference it. Images are png, jpg, webp, gif or
svg, up to 8 MB each. Removing an image from the editor deletes it from
the bundle — posts that still reference it will show a broken image.

## The look

- **Name and tagline** — shown in the header of every page.
- **Logo** — an uploaded image shown beside the name. Optional.
- **Font** — serif (the default) or sans-serif. Both use the reader's own
  system fonts; nothing is downloaded.
- **Background** — dark (the default) or light.
- **Links page** — a list of labels and URLs. When it has at least one
  entry, a **Links** page is generated and linked from the header.

## What the bundle contains

`index.html` (the home page), `style.css`, `links.html` when there are
links, one `<slug>.html` per published post, the logo, and `images/`.
The usual limits apply — see [limits](/reference/limits): a blog is
capped at 100 files in total, posts and images together. Every one of
these files is regenerated on each change; the logo and images are
yours and are never touched by a re-render.

Because the files are generated, the `sherpage_*` tools should not be
used to upload files into a blog page — the next edit would overwrite
them. Managing posts through the MCP server is not available yet.

## Next

[Tools](/sherpage/tools).
