junior.log building in public, notes, and assorted thoughts

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

  1. Write in Obsidian.
  2. Add frontmatter.
  3. Drop the file into src/content/posts.
  4. 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()}`;
}

Next post → Hello, terminal world