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
SideworkPublication
vaultlineown8 sections
VanrosterSaaS
callboardown4 sections
DiffkeelDeveloper tool
certificateown4 sections
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
Harbor tides /blog
Fields that matter
| Section type | Field | Type | Bounds | Refused as |
|---|---|---|---|---|
| post-list | head.title | string ≤64 | 1–64 | post-list.head.title |
| post-list | posts | 1–24 × object | 1–24 | post-list.posts |
| post-list | posts[].tag | string ≤20 | 1–20 | post-list.posts.tag |
| post-list | posts[].title | string ≤80 | 1–80 | post-list.posts.title |
| post-list | posts[].dek | string ≤360 | 1–360 | post-list.posts.dek |
Every field of post-list
| Field | Type | Req | Bounds | Refusal |
|---|---|---|---|---|
head | object | yes | — | |
head.eyebrow | string ≤28 | yes | 1–28 | post-list.head.eyebrow |
head.title | string ≤64 | yes | 1–64 | post-list.head.title |
head.lede | string ≤200 | yes | 1–200 | post-list.head.lede |
read | string ≤16 | yes | 1–16 | post-list.read |
posts | 1–24 × object | yes | 1–24 | post-list.posts |
posts[].href | string ≤160 | yes | 1–160 | post-list.posts.href |
posts[].tag | string ≤20 | yes | 1–20 | post-list.posts.tag |
posts[].dateline | object | yes | — | |
posts[].dateline.date | string (pattern) | yes | — | |
posts[].dateline.read | object | — | ||
posts[].title | string ≤80 | yes | 1–80 | post-list.posts.title |
posts[].dek | string ≤360 | yes | 1–360 | post-list.posts.dek |
Starter record
pages/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."
]
}
}
]
}