Mình vừa làm một đợt refactor lớn cho chiếc blog này: đổi từ blog cá nhân tổng hợp sang portfolio build-in-public. Bài này ghi lại quá trình — không phải để khoe kết quả, mà để chốt lại cách mình nghĩ khi làm.
Vì sao đổi
Blog cũ trộn quá nhiều thứ: nhật ký đời thường, ghi chú học, workflow... lướt vào không biết mình là ai. Mình muốn nó nói rõ một điều: một PM/Solopreneur học bằng cách làm, build sản phẩm công khai. Định hướng mới: cho thấy cách mình nghĩ, không chỉ thứ mình ship.
Nguyên tắc: soft relaunch, không đập đi xây lại
Cám dỗ lớn nhất là reset sạch và làm blog mới. Mình không làm vậy. Build-in-public sống bằng chiều dài thời gian — xoá lịch sử là xoá độ tin cậy. Nên mình chọn tái dùng + mở rộng:
- Giữ nguyên nền Astro SSR + Cloudflare + D1 vừa migrate xong.
- Giữ design system có sẵn, chỉ gia cố (thêm type scale, vẫn giữ màu vàng đặc trưng).
- Tái sinh component đang "mồ côi" thay vì viết mới.
Những thứ đã làm
- Homepage đổi từ feed cuộn vô tận sang curated: giới thiệu ngắn → dự án đang build → vài note gần đây. Feed đầy đủ chuyển sang trang riêng.
- Sidebar gọn lại 4 mục (Search / Home / About / Projects), social icon dồn xuống đáy, nền sáng kiểu Notion cho dễ đọc.
- Trang dự án thành case study thật: bảng metadata (status, vai trò, stack, links/demo), các phần Bối cảnh → Cách tiếp cận → Bài học → Kết quả, rồi một timeline gọn các bài build-log.
- List view cho dự án: thumbnail + status badge, đồng bộ với Gallery.
Sai ở đâu, học được gì
- Lặp UI nhiều vòng hơn mình tưởng. Một cái list view mình sửa tới 4-5 lần mới ưng. Bài học: với UI, một screenshot thật đáng giá hơn mười dòng mô tả — mình bắt đầu verify bằng ảnh thay vì đoán.
- HMR đánh lừa. Có lúc giao diện trông như vỡ, hoá ra chỉ là dev server cache CSS cũ. Mất kha khá thời gian nghi oan cho code. Restart sạch là xong.
- Không bịa số. Mục metrics chỉ hiện cái có thật (Lighthouse, dung lượng CSS); cái chưa có (user, doanh thu) thì để trống, không phịa cho đẹp.
Còn lại
Phần nền đã xong. Việc khó nhất nằm ở phía trước và không phải kỹ thuật: sắp xếp lại nội dung cũ theo 3 nhóm (Build Log / Teardown / Learning), và quan trọng nhất — giữ nhịp đăng đều. Portfolio đẹp tới đâu mà im lặng vài tháng thì cũng đọc là "bỏ dở".
Cái blog này, từ giờ, chính là một build log sống.