Skip to main content

February20265

Tested multimedia embedding in Amytis today. Since rehype-raw is enabled, standard HTML <iframe>, <video>, and <audio> tags work directly inside Markdown — no plugins needed.

A few patterns that work well:

  • YouTube / Vimeo — wrap in a padding-bottom: 56.25% container for responsive 16
  • Spotify / Apple Podcasts — fixed height iframes (152px for compact, 352px for full player)
  • HTML5 <video> — fully native, supports poster, loop, autoplay muted
  • HTML5 <audio> — great for podcast episodes or background music samples
  • Twitch — needs the parent query param set to your domain

The loading="lazy" attribute is underused — always worth adding to below-the-fold embeds to keep the initial page fast.

Spent some time digging into React Server Components today. The mental model shift is significant — components that never ship JavaScript to the client, yet can directly access databases and file systems.

Key Takeaways

  • Server Components are the default in Next.js App Router
  • Use "use client" only when you need interactivity
  • Data fetching becomes much simpler without useEffect chains

The composability of mixing server and client components in the same tree is elegant once you get used to it.

Writing up a fuller note on this: React Server Components.

Upgraded the project to Tailwind CSS v4 today. The new CSS-first configuration approach is a breath of fresh air — no more tailwind.config.js for most use cases.

The @theme directive for defining design tokens directly in CSS feels much more natural. Performance improvements are noticeable too, especially during development with faster HMR.

More detailed notes captured in Tailwind CSS v4 — particularly the breaking changes around dark mode and @apply.

Been thinking about the difference between blogs and digital gardens. Blogs are streams — chronological, finished thoughts published into the void. Gardens are networks — interconnected ideas that grow and evolve over time.

This site tries to bridge both: structured posts for polished essays, and this flow section for raw, daily observations. The garden metaphor resonates because ideas really do need tending.

The Zettelkasten Method is the underlying system that makes a garden actually work — atomic notes linked by meaning rather than filed in folders. And Digital Garden Philosophy explores why publishing half-formed ideas in public is worth the discomfort.

Switched fully to Bun for this project. The speed difference is remarkable — bun install finishes before npm install even resolves the dependency tree.

The test runner is also surprisingly capable. Compatible with Jest-style APIs but runs significantly faster. Still a few edge cases with certain packages, but for most workflows it just works.