Blog
Nơi mình chia sẻ nhật ký và những câu chuyện nhỏ trong hành trình làm nghề.

Test type trong TypeScript — bắt lỗi kiểu ngay trong CI
Viết test cho kiểu dữ liệu bằng expectTypeOf và vitest --typecheck: bắt lỗi generic ngay ở CI, khỏi chờ tới lúc runtime nổ.

Vite dev nhanh, production build lại vỡ — vì sao?
Dev server Vite nhanh nhờ esbuild, còn build thật dùng Rollup. Hai pipeline khác nhau sinh ra lỗi chỉ hiện lúc production — và cách phòng.

Suspense + streaming — Next.js hiện dần thay vì trắng trang
Async component trong Next.js App Router vẫn chờ nhau từng tầng và để trang trắng vài giây. Cách đặt Suspense boundary để nội dung hiện dần.

Supply chain npm — CI đừng tin package mù quáng
Package độc hại trên npm ngày càng tinh vi. Cách khoá CI: lockfile, npm ci --ignore-scripts, pin version, ủ 7 ngày.