Alpha: Ships on npm at 7.0.0-alpha.07.0.0-alpha.0

blog

A list of posts or letters, each with a tag, a dateline and a dek.

Theme

5 pages in 4 Businesses name blog in this build.

Use blog for any page that lists dated writing: a blog, a changelog, a letter archive. One post-list carries the posts, newest first, each linking to a post page. The list holds at most 24 posts; a longer archive pages across records.

Sections in order

Vanroster /changelog, Sidework /archive

Harbor tides /blog

Fields that matter

Section typeFieldTypeBoundsRefused as
post-listhead.titlestring ≤641–64post-list.head.title
post-listposts1–24 × object1–24post-list.posts
post-listposts[].tagstring ≤201–20post-list.posts.tag
post-listposts[].titlestring ≤801–80post-list.posts.title
post-listposts[].dekstring ≤3601–360post-list.posts.dek
Every field of post-list
FieldTypeReqBoundsRefusal
head.eyebrowstring ≤28yes1–28post-list.head.eyebrow
head.titlestring ≤64yes1–64post-list.head.title
head.ledestring ≤200yes1–200post-list.head.lede
readstring ≤16yes1–16post-list.read
posts1–24 × objectyes1–24post-list.posts
posts[].hrefstring ≤160yes1–160post-list.posts.href
posts[].tagstring ≤20yes1–20post-list.posts.tag
posts[].datelineobjectyes—
posts[].dateline.datestring (pattern)yes—
posts[].dateline.readobject—
posts[].titlestring ≤80yes1–80post-list.posts.title
posts[].dekstring ≤360yes1–360post-list.posts.dek

Starter record

Sideworkpages/sidework/home.json6.0 KB blog.json
{
  "$schema": "https://next.mdxui.dev/schema.json",
  "theme": "vaultline",
  "frame": "none",
  "template": "blog",
  "title": "Sidework: one letter a week for the side business",
  "description": "A weekly letter for people who run a business beside a job. Each issue takes one task and does it in full.",
  "sections": [
    {
      "kind": "nav",
      "shell": {"inset":"bleed","density":"none","surface":"glass","sticky":true},
      "block": {
        "type": "nav",
        "menu": "overlay",
        "collapse": 820,
        "brand": {"href":"/","text":"Sidework","mark":"file-text"},
        "links": [["/archive","Archive"],["/about","About"]],
        "cta": {"href":"/subscribe","label":"Subscribe"}
      }
    },
    {
      "kind": "hero",
      "shell": {"inset":"contained","density":"hero","background":"grain"},
      "block": {
        "type": "hero",
        "layout": "centered",
        "stack": 560,
        "title": "One letter a week for the side business.",
        "lede": "Sidework is for people who run a business beside a job. Each Tuesday issue takes one task, such as a first invoice, and does it in full.",
        "actions": [
          {"href":"/subscribe","label":"Subscribe free","kind":"solid"},
          {"href":"/issues/the-first-invoice","label":"Read issue 1","kind":"ghost"}
        ],
        "fine": ["Every Tuesday at 07:00","Free, or $6 a month"]
      }
    },
    {
      "kind": "band",
      "shell": {"inset":"contained","density":"compact"},
      "block": {
        "type": "stats",
        "items": [
          {"value":"07:00","label":"Every Tuesday, Central time"},
          {"value":"24","label":"Issues since May 2026"},
          {"value":"$6","label":"A month for the paid letter"}
        ]
      }
    },
    {
      "kind": "section",
      "shell": {"inset":"contained","density":"section"},
      "block": {
        "type": "feature-grid",
        "cellHead": "icon-index",
        "head": {"eyebrow":"Inside an issue","title":"Three parts, every week."},
        "items": [
          {
            "icon": "list",
            "index": "1",
            "title": "The task",
            "text": "One job, start to finish, sized for an evening after the day job."
          },
          {
            "icon": "gauge",
            "index": "2",
            "title": "The numbers",
            "text": "Every price, fee and tax figure with its arithmetic shown."
          },
          {
            "icon": "files",
            "index": "3",
            "title": "The template",
            "text": "A file to copy into your own tools, ready to fill in."
          }
        ]
      }
    },
    {
      "kind": "section",
      "shell": {"inset":"listing","density":"listing"},
      "block": {
        "type": "post-list",
        "head": {
          "eyebrow": "Latest",
          "title": "Recent issues",
          "lede": "The newest three, and issue 1. Issue 1 is free to read; the rest come with the paid letter."
        },
        "read": "Read",
        "posts": [
          {
            "href": "/subscribe",
            "tag": "Pricing",
            "dateline": {"date":"2026-10-20","read":{"minutes":5,"unit":"min read"}},
            "title": "Pricing a rush job",
            "dek": "A rush costs your evenings twice: the work and what it pushes out. Price both, and say the rush fee first."
          },
          {
            "href": "/subscribe",
            "tag": "Work",
            "dateline": {"date":"2026-10-13","read":{"minutes":7,"unit":"min read"}},
            "title": "When to quit the day job",
            "dek": "Three numbers decide it: months of costs saved, months of revenue booked, and the hours the side work takes."
          },
          {
            "href": "/subscribe",
            "tag": "Tax",
            "dateline": {"date":"2026-10-06","read":{"minutes":6,"unit":"min read"}},
            "title": "The year-end checklist, early",
            "dek": "Twelve items to clear in October, so January holds a return and not a search for receipts."
          },
          {
            "href": "/issues/the-first-invoice",
            "tag": "Money",
            "dateline": {"date":"2026-05-12","read":{"minutes":6,"unit":"min read"}},
            "title": "The first invoice",
            "dek": "What goes on it, when to send it, and the one line that gets it paid on time."
          }
        ]
      }
    },
    {
      "kind": "band",
      "shell": {"inset":"contained","density":"section","surface":"tint"},
      "block": {"type":"statement","text":"A side business runs on evenings. *Every issue fits in one.*"}
    },
    {
      "kind": "closing",
      "shell": {"inset":"contained","density":"closing"},
      "block": {
        "type": "closing",
        "layout": "stack",
        "head": {
          "eyebrow": "Free every Tuesday",
          "title": "Get the next issue.",
          "lede": "One email a week. Every issue carries a one-click unsubscribe."
        },
        "actions": [
          {"href":"/subscribe","label":"Subscribe free","kind":"solid"},
          {"href":"/archive","label":"Browse the archive","kind":"ghost"}
        ]
      }
    },
    {
      "kind": "footer",
      "shell": {"inset":"contained","density":"footer"},
      "block": {
        "type": "footer",
        "layout": "row",
        "brand": {"href":"/","text":"Sidework","mark":"file-text"},
        "blurb": "One letter a week for people running a business beside a job.",
        "columns": [
          {"title":"Read","links":[["/archive","Archive"],["/issues/the-first-invoice","Issue 1"]]},
          {"title":"Sidework","links":[["/about","About"],["/subscribe","Subscribe"],["/terms","Terms"]]}
        ],
        "form": {
          "action": "/subscribe/sent",
          "label": "The Tuesday letter",
          "placeholder": "you@mail.example",
          "submit": "Subscribe"
        },
        "note": [
          "Sidework is a worked example on mdxui.dev, not a customer.",
          "Rendered by @mdxui/site. Forms here do not send."
        ]
      }
    }
  ]
}

Other Templates

Sidework
post

4 pages · 4 of 6 Businesses

Ledgerhouse
article

24 pages · 6 of 6 Businesses

Ledgerhouse
contact

6 pages · 6 of 6 Businesses

On this page