Posts
All the articles I've posted.
-
The Day Before Launch, I Overhauled Performance — And One Thing I Never Fixed
A tuning retrospective from the day before launching a solo-developed app: TTFB 3.15s → 10ms, LCP 22.1s → 1.4s. And the story of the PWA bottom system bar color I burned a whole day on but never fixed on the web.
-
The Screen Froze for a Moment When I Tapped — Tracing the Cause
Tracing an intermittent tab-switch stutter, I confused my tools (Lighthouse ≠ INP), misdiagnosed Realtime, fixed an obvious waste with little payoff, and concluded it wasn't a single bug but a structural cost of SPA navigation. A retrospective that keeps the failures in.
-
What I Added Beyond AstroPaper Defaults — Running a Blog Like a Product
This blog doesn't leave AstroPaper as-is — I keep expanding it from the perspective of a 'daily-publishing solo content system.' A record of what problems I hit and how I turned them into tools — series page (collapsible) · playground · KR/EN i18n · Sonnet 5 translation automation pipeline · internal/external link checker · local Mermaid pre-rendering · Scratch/Inbox workflow · convention for auto-hiding ended projects · security scrubbing guidelines · post-hoc markdown validator · editorial redesign that removed the sidebar · a publishing heatmap that updates daily on a static site · outcome-first portfolio cards. Each feature follows a 3-part structure: 'what was missing in the default state → how I solved it → the result.' A living document, so it will keep expanding as new features are added.
-
A Reusable Kit for Solo Development — CLAUDE.md Constitution File + 2-Agent Workflow
Solo development has no reviewer, PM, or QA. This setup encodes those roles into (1) a CLAUDE.md constitution file and (2) two sub-agents — code-writer and code-reviewer — so the machine enforces discipline. Pulled from a recent project's refined setup, keeping only the parts portable to other projects — a CLAUDE.md skeleton, a 6-step 2-agent workflow with 3 operating modes (review-only / finalize / review-and-finalize), agent prompt templates, and a project-agnostic checklist of working principles. Permission scope is deliberately split (writer has no git, reviewer has no Write) so every commit always passes through a review gate. You can drop this into a new project in 5 minutes.