Jay Griffin
Design

Post Header Design with Authorship Meta

A unified post header component design with authorship attribution folded into the metadata line.

September 14, 2026

Right now authorship is announced three different ways: a bordered callout above the title on thoughts and designs, the same callout again on their index pages, and a bare ✍️ emoji on posts. The callout is the loudest element on the page — louder than the title it sits above — and it says roughly the same thing every time.

This is the alternative: one header for every content type, with provenance demoted to the meta line where the date already lives. A kind label, a title, a standfirst, and one quiet row. The full disclosure moves into a tooltip on the authorship mark — hover the dotted underline on any of these.

The header, across all four types

Post

How I Learned to Code

I'm self-taught, and the path was anything but straight.

March 1, 2026
Thought

Modeling Projects in the Database

Projects are rows; posts and docs attach through project_id.

August 31, 2026
Design

Design Gallery Mockup

A mockup of the design gallery, rendered through the gallery it mocks up.

September 13, 2026
Doc

Content Pipeline Deep Dive

How markdown and TSX files become rows in Turso.

July 12, 2026Written by hand

How the tooltip carries the note

The tooltip is where authorship_note lands. A row with no note falls back to the default wording for its type, and a row with one replaces it — same override behaviour the callout had, at a fraction of the visual weight. A row that is handwritten gets no tooltip at all, because there is nothing to disclose.

Thought

Building and Debugging a Post Creator Skill

Three failed attempts, and the failures were the interesting part.

August 28, 2026
Post

PDF Is a Dead Format

An argument with a file format I keep being handed.

June 4, 2026updated twice

Why this reads better

Provenance is metadata, not an announcement

A reader deciding whether to trust a page wants the same three facts they always want: what is this, when was it written, who wrote it. Those belong together on one line. Hoisting one of them into a bordered box above the title implies it outranks the title, which it does not.

Progressive disclosure, literally

Two words answer the question for the ninety percent who only want to know whether a model was involved. The tooltip answers how for the ten percent who care. The callout forced the long answer on everyone, every time, which is why it read as boilerplate and got skipped.

Handwritten stops being an exception

Today the emoji only appears when something is handwritten, so its absence carries the meaning — which nobody notices. Naming the authorship every time means the reader never has to infer anything from a missing icon.

Open questions

Three states or two? Above I split AI-assisted (I wrote it, a model helped) from AI-generated (a model wrote it, I reviewed it). That distinction is real and worth keeping, but it does mean every post needs the right value set rather than defaulting to silence.

Does a tooltip hide it too well? Hover is invisible on touch — Radix opens these on tap, so the content is reachable, but a phone reader has no dotted-underline affordance telling them to try. If the disclosure needs to be unmissable, it belongs on its own line under the meta row instead.

Does the kind label survive? It is genuinely useful on a page reached from search, and pure redundancy for anyone who clicked through from /thoughts.

Mockup only — the real header would live in one shared component and replace ContentDisclosure, DisclosureNotice, and HandwrittenBadge.