Skip to main content
Paul Welty, PhD AI, WORK, AND STAYING HUMAN

Work log: Textorium — March 12, 2026

What shipped today

Today closed out the remaining v1.5 website issues and added a parse-warning feature to the editor.

The Hugo marketing site got its final pieces: a blog section with list and single templates (#36, PR #39), Cloudflare Pages deployment configuration (#37, PR #40), SEO meta tags with Open Graph and Twitter Card support (#41, PR #46), a custom 404 page (#42, PR #47), keyboard focus styles for WCAG 2.1 AA accessibility (#43, PR #48), and dark mode via prefers-color-scheme (#44, PR #49). The site is now production-ready with proper social sharing, accessibility, and dark mode — all built on the Hugo foundation from yesterday.

The last issue of the day was #45 — FrontMatterParser was silently returning an empty dictionary when YAML parsing failed, with no indication to the user that their frontmatter was being ignored. The fix adds a parseWarning property to ContentItem, threads a warning string through the parser’s return value on fallback paths, and shows an orange warning triangle in the table view’s title column with a tooltip explaining what went wrong. Files without frontmatter delimiters show no warning (that’s intentional, not a failure).

Completed

  • #41 — Add SEO meta tags: Open Graph, Twitter Cards, canonical URL (PR #46)
  • #42 — Add custom 404 error page (PR #47)
  • #43 — Add keyboard focus styles for accessibility (PR #48)
  • #44 — Add dark mode support to marketing site (PR #49)
  • #45 — FrontMatterParser silently returns empty dict on YAML parse failure (PR #50)

Release progress

v1.5: 17 closed / 1 open. The sole remaining issue is #13 (dynamic email signature with latest blog post), which was blocked on the blog existing — now unblocked since #36 shipped.

Carry-over

  • #13 — Dynamic email signature with latest blog post. Was blocked, now needs-clarification. This is the last item in v1.5.

Risks

  • None significant. All changes today were additive (new templates, meta tags, CSS) or non-destructive (parse warning is display-only).

Flags and watch-outs

  • The parse warning feature uses .help() for the tooltip, which requires hovering on macOS. iPadOS users won’t see the tooltip text — may want a tap-to-reveal alternative in a future pass.
  • Dark mode uses prefers-color-scheme media query only — no manual toggle. This matches the “pick the right default” philosophy but some users may want override control.

Next session

  1. Triage #13 (email signature) — clarify requirements, then prep and execute. This would close v1.5 entirely.
  2. Run /scout to discover new issues now that error surfacing, website, and parse-warning work is complete.
  3. Consider running /milestone close v1.5 once #13 ships.
  4. Visual QA of the full marketing site in production — dark mode, 404, SEO tags, blog section all need a browser check.

Why customer tools are organized wrong

This article reveals a fundamental flaw in how customer support tools are designed—organizing by interaction type instead of by customer—and explains why this fragmentation wastes time and obscures the full picture you need to help users effectively.

Infrastructure shapes thought

The tools you build determine what kinds of thinking become possible. On infrastructure, friction, and building deliberately for thought rather than just throughput.

Server-side dashboard architecture: Why moving data fetching off the browser changes everything

How choosing server-side rendering solved security, CORS, and credential management problems I didn't know I had.

The work of being available now

A book on AI, judgment, and staying human at work.

The practice of work in progress

Practical essays on how work actually gets done.

The machine is eating faster than you can feed it

Sixty-three issues closed across thirteen projects in one day. Four milestones completed. And the hardest problem wasn't building — it was keeping up with what you've already built.

The proxy problem

Every organization has this problem: knowledge locked inside one person's head. Today I accidentally designed a solution — and it has nothing to do with documentation.

True 1-to-1 outreach is finally possible with AI

The 1-to-1 personalization promise is thirty years old. It never worked because understanding each person was too expensive. AI changed the economics.