Latest Posts

All blog posts sorted by newest first.

[Google Play] The 500-Character Release Notes Limit and a Multilingual Trimming Strategy

2026-05-25
Google Play release notes have a 500-character per-language limit. Based on a real case where both Korean and English notes went over the limit, this post covers practical trimming strategies — which items to drop and how to group related items to compress.
see more →

How the Caret (^) in package.json Actually Works — A Docker Build Incident Caused by a Missing Lockfile

2026-05-25
One morning our Docker production build broke without any code change. The cause was a transitive package deep in the dependency tree that had published a new patch a few days earlier. This post walks through the incident and clarifies exactly how the caret range in package.json works and what role yarn.lock plays.
see more →

Blocking CDN Tampering with Subresource Integrity (SRI): Lessons from Polyfill.io

2026-05-22
The 2024 Polyfill.io incident showed how a single CDN-hosted script can infect over 100,000 sites at once. This article covers how Subresource Integrity (SRI) works, how to apply it, and how to handle dynamic CSS like Google Fonts where SRI cannot be used directly.
see more →

Validating New Dependencies at the PR Stage with GitHub Dependency Review Action

2026-05-21
How to use GitHub's dependency-review-action to prevent PRs from introducing packages with known CVEs, license violations, or risky maintainer changes — with real incident examples.
see more →

Strengthening Security Scanning with CodeQL and yarn npm audit

2026-05-20
Two threats that supply chain cooldown alone cannot stop — newly discovered CVEs in already-installed dependencies, and vulnerabilities in your own code — and how to address them with yarn npm audit and GitHub CodeQL, illustrated with real incident examples.
see more →

Gaining Dependency Visibility with SBOM: Lessons from Log4Shell

2026-05-19
If your team cannot immediately answer "are we affected?" when a new vulnerability is disclosed, your dependency visibility is insufficient. Using Log4Shell as a case study, this article explains why SBOM (Software Bill of Materials) matters and how to automate it with GitHub Dependency Submission.
see more →

Blocking Lockfile Tampering Attacks with Yarn 4 Hardened Mode

2026-05-18
Covers lockfile tampering — a gap in supply chain defenses — and explains how Yarn 4's Hardened Mode closes it by verifying resolutions and integrity hashes on every install. Includes how to enable it with a single line of configuration.
see more →

The Effectiveness and Limits of Cooldown as a Supply Chain Defense

2026-05-17
A data-driven evaluation of how effective time-based supply chain defenses — Dependabot cooldown and package manager minimum release age — actually are, using historical incident data.
see more →

3 Defense Strategies Against npm Supply Chain Attacks

2026-05-16
Three concrete strategies for defending against npm supply chain attacks. Covers GitHub Actions SHA pinning, Dependabot cooldown, and Yarn 4's npmMinimalAgeGate — step by step, with code.
see more →

How npm Supply Chain Attacks Work: The axios Case Study

2026-05-15
An analysis of the axios supply chain attack that hit the npm ecosystem in March 2026. Covers the full attack chain — maintainer account hijack, malicious dependency injection, and RAT deployment via a postinstall script — along with the structural weaknesses in npm's trust model.
see more →

[Flutter] Practical E2E Test Environment Setup Guide

2026-04-11
Learn how to set up an integration_test-based E2E test environment in a Flutter project and apply it to a real app using Firebase/GetX/SQLite.
see more →

[SDD Plugin] Applied Engineering — Analyzed Through 4 AI Engineering Paradigms

2026-04-08
Analyzing the AI engineering techniques applied to the SDD (Spec-Driven Development) Plugin for Claude Code through 4 paradigms: Prompt, Context, Agentic, and Harness. See how each paradigm is implemented in the plugin with actual code examples.
see more →

SHARE
Twitter Facebook RSS