# Creating and editing posts

> The Blog panel — create posts blank or with AI, write with rich content blocks, manage metadata and SEO, publish and unpublish.

Source: https://knowledge.estage.com/blog/posts/
Part of the ESTAGE knowledge base (https://knowledge.estage.com). Full corpus: https://knowledge.estage.com/llms-full.txt

---
Once the blog is [enabled](/blog/), the **Blog panel** in the builder is your post manager.
Reach it from the page selector's **Manage posts** button (or just navigate to your blog in
the preview).

## The post list

The **Posts** tab lists everything with a status badge (**Draft** / **Published**), author and
date. You can search, filter by status, and on each post: **edit** its settings,
**publish/unpublish**, or **delete**.

## Creating a post

Click **New post**, give it a title, and pick a path:

- **Create post** — an empty draft you write yourself.
- **Generate with AI** — Genesis drafts the whole post on that title; you edit from there.

Either way the post opens as a **draft**.

## Writing the body

Open a post and **double-click its body** in the preview — the full editor opens. Beyond
text formatting (headings, bold/italic, links, lists, quotes), type **`/`** to insert content
blocks:

| Block | What it is |
| --- | --- |
| **Figure** | An image with alt text and a caption (picks from your assets) |
| **Gallery** | A multi-image grid — pick several images at once; 2, 3, or 4 columns |
| **Callout** | A highlighted note — info, warning, or success style |
| **Quote** | A pull-quote with attribution |
| **Code block** | Syntax-highlighted code with a language picker |
| **Button** | A call-to-action button — text, link, color, filled or outlined |
| **Divider** | A horizontal break |

Click any block to edit its settings (images, captions, colors, columns) in the side panel.
Your edits save when you close the editor — these blocks render on the live site exactly as
you see them while editing.

## Post settings

Each post has a settings form with two tabs:

### General

- **Title** — shown in the list, the browser tab, and as the post's heading.
- **Slug** — the URL (`/blog/your-post`). Generated from the title, and **editable** — you can
  fix a typo or shorten it later. Changing it changes the post's address, so old shared links
  and any inbound SEO for the previous URL stop matching; rename early rather than after a post
  has been circulating.
- **Written by** — pick an author (or create one inline).
- **Categories** — tick any number (or create new ones inline).
- **Visibility** — the Draft ↔ Published toggle.
- **Publish date** — defaults to "now" when you publish; can be backdated.
- **Stats** — word count and reading time, computed from the body.

### SEO

- **Page title** and **meta description** (the description doubles as the social-preview
  text, up to 220 characters).
- **Social preview image** — 1200×630 recommended; it's also used as the post's cover on the
  blog home and post page.
- **FAQ entries** — question/answer pairs for this page. They're emitted as FAQ structured data,
  which is what lets a search engine show them as expandable questions under your result.

On top of what you fill in, every published post ships full **`BlogPosting` structured data**
(headline, author, dates, image) automatically.

Changes save with the **Save** button — an "Unsaved changes" indicator reminds you when the
form is dirty.

## Publishing

Flip **Visibility** to Published (or use the publish action in the post list / ask the AI).
Publishing puts the post on `/blog`, in your RSS feed and sitemap, and makes its URL live.
Unpublishing reverses all of that — the post returns to draft.

:::note
There's no scheduled publishing — a post goes live when you publish it, regardless of the
date field (the date is display/backdating only).
:::
