Posts
These commands apply to the current local project (directory with .micropage/). Posts are authored as local Markdown files in the project's posts/ folder (scaffolded by micropage projects create).
Post files
Each post is a file at posts/<name>.md: YAML front-matter followed by a Markdown body.
---
title: Hello, world
slug: hello
description: A short summary for the archive, meta description, and og tags.
visibility: listed
hero: ./hello.jpg
list: newsletter
subject: Hello, world!
preview: The first post on this site.
---
Body content goes here as standard Markdown.

| Field | Description |
|---|---|
title | Required. |
slug | Optional. Defaults to the filename minus a leading YYYY-MM-DD- date prefix. Unique per project. |
description | Web summary — shown in the /content archive, meta description, and og tags. |
visibility | listed (default, appears in the site's /content index) or unlisted (has a page but isn't listed). |
hero | Optional. A companion image file named like the post (e.g. hello.jpg next to hello.md), an asset filename, or an absolute URL. |
list | A newsletter form name — the send target. Required to email the post on publish. |
subject | Email subject. Defaults to the title. |
preview | Email preheader / inbox preview text. |
Local image references in the body () are auto-uploaded and rewritten to hosted URLs on push.
push
Save local posts as drafts. Upserts each posts/*.md file as a post row (content only) — does not publish or send email.
micropage posts push
Reports saved (draft) for posts not yet published, and saved (live) for posts already published (edits to a live post go live immediately). Remote posts with no matching local file are reported as drift but are never deleted.
publish
Put a post live on the web, and email it if it has a list:.
# Publish one post
micropage posts publish hello
# Publish all local posts
micropage posts publish
If the post's front-matter sets list:, publishing sends the newsletter email to that list. Re-running publish on an already-published post re-sends the email.
unpublish
Take a post off the web.
micropage posts unpublish hello
Removes the post's /content/<slug> page. The post itself is not deleted — it remains as a draft.
pull
Write remote posts down to local posts/*.md files.
micropage posts pull
The database is the source of truth for posts; run this before editing to avoid clobbering remote changes.
list
List the project's posts.
micropage posts list
Shows slug, title, visibility, emailed, status (Draft/Published), and created date.
rm
Delete a post entirely (remote).
micropage posts rm hello
Typical workflow
# Write a new post
nano posts/hello.md
# Save as a draft
micropage posts push
# Go live and email the list (if `list:` is set)
micropage posts publish hello
# Later: edit the file, push the update (goes live immediately)
nano posts/hello.md
micropage posts push
# Re-send the newsletter for the update
micropage posts publish hello
# Take the post down (keeps it as a draft)
micropage posts unpublish hello