Handling `unknown` in TypeScript… isn't it painful?
Handling the `unknown` type in TypeScript can be challenging. This article explores the difficulties and provides insights on how to effectively work with `unknown` using is-kit.
is-kit vs Zod: A Practical Comparison from 3 Perspectives
A practical comparison of is-kit and Zod from three different perspectives, highlighting their strengths and weaknesses. Where do you enforce type safety in your design?
Building a Browser Game with React: What Doesn’t work well (Run Away From Work)
I built a browser game called “Run Away From Work” using React. In this article, I share the challenges I faced and what did not work well during the development process.
Run Away From Work — Stopped Using React for the Game Loop
Run Away From Work is a browser game built with React. This article shares the journey of optimizing the game loop by moving away from React, and the lessons learned along the way.
I Built a “Run Away From Work” Browser Game with React and TypeScript
A browser game where you play as a character trying to escape from work, built using React and TypeScript.
Running a SPA inside ChatGPT using MCP Apps (Step-by-Step Guide)”
How to run a Single Page Application (SPA) inside ChatGPT using MCP Apps, with a step-by-step guide.
2025: I Shipped 3 OSS Projects — “This Was Actually Fine”
Introduce is-kit, changelog-bot, and divider as my open source projects in 2025.
I Tried Reading React's Source Code and Flow Beat Me Up. So Let's Learn
Flow basics and type checking for reading React source code. Such as mixed, empty, and more.
Generate CHANGELOG.md Automatically
Introduce changelog-bot, a tool that automatically generates a polished CHANGELOG.md from your release notes!
Understanding Variance in TypeScript: Flow, Covariant, Contravariant, Invariant, Bivariant
A deep dive into variance concepts in TypeScript and their practical implications
Escaping the Forest of if Statements
Building Logical Type Guards with is-kit
Compose Type Guards Like Building LEGO Blocks: Reusable Logic with is-kit
Design TypeScript type guards as reusable, composable building blocks using is-kit
Introduce my favorite frontend library: mise / Typedoc / tsd
An introduction to my favorite frontend libraries and their use cases
Introduce is-kit
An introduction to the is-kit library and its features
Technical Debt Grows from “Just for Now” — A Real-World Code Walkthrough
Understanding the fundamentals of technical debt
How Does Technical Debt Pile Up? — Looking at “Just for Now” Examples (Structure Edition)
Analyzing the structure of technical debt in software projects
What the Heck is Technical Debt?
Examining code-level technical debt and its implications
Introducing `divider`
A handy utility to split strings and arrays
FSD * LangChain * Remix * AI portfolio site
How to build a portfolio site using FSD, LangChain, Remix, and AI
FSD (Feature-Sliced Design) overview
An overview of Feature-Sliced Design principles