This is where the full article body would live. The layout follows editorial conventions: ~70 character measure, generous leading, and pull quotes when warranted.
Each article is keyed by id. The reading progress bar fills as you scroll, giving readers a sense of how much remains.
A subhead, set in Sora
Subheads use the display family. The body returns to Inter for sustained reading at 17px / line-height 1.8.
“Good types are documentation that never goes stale.”
type Nullable<T> = T | null;
type Maybe<T> = T | null | undefined;
type NonEmptyArray<T> = [T, ...T[]];
type DeepPartial<T> = { [K in keyof T]?: DeepPartial<T[K]> };
Wrapping up. Subscribe to the journal — or don’t, but feel free to share if it helped.