Latest Posts

All blog posts sorted by newest first.

[Astro] Image Optimization — Custom rehype Plugin

2026-03-29
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.
see more →

[Astro] SEO Implementation

2026-03-28
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.
see more →

[Astro] Multilingual (i18n) Implementation

2026-03-27
Sharing how to implement a multilingual system supporting Japanese, Korean, and English in Astro. Covers URL-based routing, translation system, dynamic routing, and more.
see more →

[Astro] Content Collections and Markdown Migration

2026-03-26
Sharing how to manage blog content using Astro's Content Collections, and the process of migrating markdown files from Jekyll.
see more →

[Astro] Installation and Project Setup

2026-03-25
Sharing how to install Astro and set up a blog project. Covers astro.config.mjs configuration, directory structure, SCSS setup, build scripts, and more.
see more →

[Astro] Why I Migrated from Jekyll to Astro

2026-03-24
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.
see more →

[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.
see more →

[Claude Code] How to Update Claude Code Installed via Homebrew

2026-03-19
Claude Code installed via Homebrew does not auto-update. Learn how to manually update, set up automatic updates, and switch to native installation.
see more →

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.
see more →

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.
see more →

Code Review Automation - Automated Coding Rule Checks with Linter and Semgrep

2026-03-15
Learn how to reduce code review time by automating coding style and rule checks using Linter and Semgrep.
see more →

[ESLint] react/jsx-boolean-value

2026-03-14
Learn how to write Boolean Props concisely in JSX using the ESLint react/jsx-boolean-value rule.
see more →

SHARE
Twitter Facebook RSS