Notes

Notes

Personal notes on knowledge, experiences, and curated writings.

State Management

Cart State Hell: Tại sao giỏ hàng của bạn bị lệch giữa tab, device và server

Giỏ hàng tưởng đơn giản nhưng lại là một trong những module phức tạp nhất trong ecommerce frontend. Bài viết này đi sâu vào các vấn đề thực tế: guest vs auth cart, optimistic update, race condition và multi-tab sync.

October 1, 20252 min read
UX

Checkout Flow & Form UX — Tại sao user bỏ giỏ hàng ở bước cuối

70% người dùng bỏ giỏ hàng ở bước checkout. Phần lớn không phải vì giá, mà vì UX form tệ. Bài này phân tích từng điểm đau trong checkout flow và cách xử lý đúng.

October 8, 20252 min read
Performance

Product Listing Performance — Khi catalog 10,000 SKU làm chết trang

Render 10,000 sản phẩm cùng lúc là công thức để giết browser. Bài này phân tích virtualization, infinite scroll, URL-driven filter và cách tránh layout shift khi filter thay đổi.

October 15, 20252 min read
Architecture

Real-time Price & Stock — Xử lý dữ liệu thay đổi liên tục trên UI

Flash sale, giá thay đổi theo giờ, tồn kho cập nhật mỗi giây — UI của bạn xử lý dữ liệu real-time thế nào? Bài này so sánh Polling, WebSocket, SSE và cách tránh trải nghiệm tệ khi dữ liệu bị stale.

October 22, 20252 min read
Performance

Product Image Optimization — Tại sao ảnh sản phẩm giết LCP của bạn

Ảnh sản phẩm chiếm 60-80% bandwidth của trang ecommerce. Một lỗi lazy load sai chỗ có thể phá hỏng LCP. Bài này đi qua các kỹ thuật tối ưu ảnh từ priority loading, LQIP, CDN transform đến gallery zoom on-demand.

October 29, 20252 min read
UX

Search & Filter UX — Tại sao search ecommerce khó hơn bạn nghĩ

Search là feature được dùng nhiều nhất trên ecommerce nhưng cũng dễ bị làm sai nhất. Debounce, URL state, faceted filter, empty state và typo tolerance — đây là những gì một search UX tốt cần có.

November 5, 20252 min read
Security

Auth Edge Cases trong Checkout — Những lỗi junior hay bỏ sót

Session hết hạn giữa lúc user điền form thanh toán, OAuth callback loop, giỏ hàng bị mất sau khi đăng nhập — những edge case này hiếm nhưng khi xảy ra sẽ gây mất đơn hàng và mất khách.

November 12, 20252 min read
Architecture

i18n trong Ecommerce — Không chỉ là dịch text

Internationalization trong ecommerce sâu hơn nhiều so với thay đổi ngôn ngữ. Currency format, date locale, RTL layout, dynamic product content, và SEO per locale — mỗi thứ đều có gotcha riêng.

November 19, 20251 min read
UX

Mobile Checkout UX — Tại sao conversion rate trên mobile thấp hơn desktop

Người dùng mobile chiếm 60-70% traffic nhưng conversion rate chỉ bằng một nửa desktop. Lý do không phải vì màn hình nhỏ — mà vì những vấn đề UX kỹ thuật mà dev thường không test kỹ trên thiết bị thật.

November 26, 20251 min read
Architecture

Error Handling & Recovery — Khi payment fail, API timeout, network drop

Payment fail, API timeout, mất mạng giữa checkout — đây là những tình huống tệ nhất trong ecommerce. Xử lý sai có thể dẫn đến double charge hoặc mất đơn hàng. Bài này đi qua từng kịch bản và cách giải quyết đúng.

December 3, 20252 min read