Shipping fast with calm systems
The goal is not maximum speed.
The goal is repeatable speed.
TipA publishing system should reduce friction, not add ceremony.If writing a post feels heavier than writing the note itself, the workflow needs work.
Working rule
- Write in Obsidian.
- Add frontmatter.
- Drop the file into
src/content/posts. - Ship.
Sequence view
sequenceDiagram
autonumber
participant Writer as Writer
participant Notes as Obsidian
participant Frontmatter as Frontmatter
participant Repo as Blog Repo
participant Astro as Astro Build
participant Preview as Local Preview
participant Deploy as Deploy Target
participant Reader as Reader
Writer->>Notes: Draft post idea
Notes-->>Writer: Refine text, links, code, diagrams
Writer->>Frontmatter: Add title, description, tags, date
Frontmatter-->>Writer: Validate publishing metadata
Writer->>Repo: Save markdown into src/content/posts
Repo->>Astro: Trigger content sync
Astro->>Astro: Parse markdown and render components
Astro->>Preview: Generate local preview
Preview-->>Writer: Review typography, images, Mermaid, spacing
Writer->>Repo: Make final edits
Repo->>Deploy: Push production build
Deploy-->>Reader: Serve post page
Reader->>Deploy: Open article
Deploy-->>Reader: Return themed page with search, tags, nav
export function publish(post: { title: string; publishedAt: Date }) {
return `${post.title} shipped on ${post.publishedAt.toISOString()}`;
}