Skip to content
Ning's Blog

Jots

Short posts, quotes, and things I find interesting.

“Where words leave off, music begins.”

— Heinrich Heine

Today I learned you can inline remote images in Astro content collections using the image() schema helper. No more manual imports.

schema: ({ image }) =>
  z.object({
    ogImage: image().optional(),
  });

Game changer for authoring ergonomics.

Updated:

This Practical Typography book by Matthew Butterick is one of the best free resources on the web. Every developer who touches text should read the first four chapters.

Shibboleth

A custom, phrase, or pronunciation that distinguishes one group from another. From the Hebrew word for ear of grain or stream — used in the Book of Judges as a password test to identify Ephraimites, who couldn’t pronounce the “sh” sound.

The best design systems feel invisible. They don’t demand attention — they clear the path for attention to land on content. Every visual choice that calls out “look at me” is a choice stealing from what actually matters.

New favorite CSS trick: using columns for a masonry layout with zero JavaScript.

.masonry {
  columns: 3 280px;
  gap: 1.5rem;
}
.masonry > * {
  break-inside: avoid;
}

Three lines, no library, works everywhere.

“We are what we repeatedly do. Excellence, then, is not an act, but a habit.”

— Aristotle

Switched from ripgrep flags to ast-grep for structural code search and rewrites. Being able to match AST nodes instead of regex patterns makes refactoring feel precise rather than fragile. Highly recommend for any non-trivial codebase migration.