Design, build, and ship modern applications.

Notes on modern tech, developer tooling, system design, and cross-platform development, based on what i’m actually building and using.

Kanata as a Text Expander — Why I Stopped Installing Extra Tools
April 8, 2026

So I was typing my email address for the hundredth time this week. Actually, I'm not even exaggerating. Forms, git configs, `.env` files, slack messages — every…

Read article
Why `onClick={() => ref.current?.submit()}` Works but `onClick={ref.current?.submit}` Doesn’t in React
November 9, 2025

In React, the difference between these two lines might look small — but it hides a subtle and important detail about *when* and *how* your code runs. ```tsx //…

Read article
📘 TypeScript → Rust Migration Cheatsheet
August 21, 2025

## 1. Basics | Concept | TypeScript | Rust | Note | | -------- | ---------------…

Read article
Understanding isLoading vs isSubmitting in React Hook Form
July 18, 2025

When we work with forms in React using **React Hook Form (RHF)**, sometimes we get confused about `isLoading` and `isSubmitting`. These two are very useful, but…

Read article
The `in` Keyword in TypeScript: Your Secret Weapon for Type Safety
June 1, 2025

Today, let's talk about a TypeScript feature that's as underrated as a ninja in a library—the `in` keyword. --- ### 🔍 What Is the `in` Keyword? In TypeScrip…

Read article