Sharing how to implement a custom rehype plugin that automatically converts markdown images to AVIF/WebP in Astro. Covers image conversion with Sharp, caching, lazy loading, and more.
Sharing how to implement SEO (Search Engine Optimization) in an Astro blog. Covers meta tags, Open Graph, JSON-LD structured data, sitemaps, RSS, Google Analytics, and more.
Sharing how to implement a multilingual system supporting Japanese, Korean, and English in Astro. Covers URL-based routing, translation system, dynamic routing, and more.
Sharing how to install Astro and set up a blog project. Covers astro.config.mjs configuration, directory structure, SCSS setup, build scripts, and more.
After experiencing build speed issues and limitations with my Jekyll blog, I share the reasons for migrating to Astro and the background behind choosing it.
[Claude Code] Receiving Task Completion Notifications with terminal-notifier
2026-03-20
Learn how to receive macOS desktop notifications when tasks are completed by combining Claude Code's Hooks feature with terminal-notifier. Covers Stop Hook and Notification Hook setup.
Release Drafter commitish Issue — Generating Release Notes Based on the Release Branch
2026-03-19
Analyzing the release note mismatch issue when Release Drafter's commitish is fixed to main, and introducing how to split workflows into autolabel and release note generation to produce accurate release notes based on the release branch.
word-break: break-word is Deprecated — Why You Should Switch to overflow-wrap: anywhere
2026-03-18
word-break: break-word is a deprecated legacy value in the CSS spec. Its alternative, overflow-wrap: break-word, also has a pitfall where it fails on intrinsic sizing elements. Learn the recommended CSS combination (overflow-wrap: anywhere + word-break: normal + line-break: strict) and how to automate enforcement with a Stylelint custom plugin.