Blog của mình build bằng Astro. Bản chất các bài viết là file Markdown (.md, .mdx) nằm trong folder src/content/blog.
Ban đầu mình viết blog bằng code editor. Cũng không có vấn đề gì - đằng nào cũng là edit file Markdown. Nhưng sau khoảng 10 bài, mình bắt đầu thấy một số điểm không ổn.
🤔 Vấn đề khi viết nhiều bài
1. Frontmatter lặp đi lặp lại
Mỗi bài viết Astro bắt buộc phải có YAML frontmatter:
---
title: "Tên bài viết"
slug: "ten-bai-viet"
pubDate: 2026-01-07
description: ""
coverImage: ""
draft: true
tags: []
categories: []
projects: []
---
Quy trình tạo bài mới:
- Mở một bài cũ
- Copy frontmatter
- Paste sang file mới
- Sửa tay từng field: title, slug, date...
Làm vài lần thì ổn, nhưng làm hoài thấy mất công ghê! Đặc biệt là phần slug và rename file - mình thường xuyên gõ sai hoặc quên format ngày tháng. Chưa kể việc phải xóa dấu tiếng Việt thủ công cho slug nữa.
2. Khó quản lý trạng thái bài viết
Khi có nhiều bài, mình không biết:
- Bài nào đang ở trạng thái nháp?
- Bài nào chưa có description?
- Bài nào thiếu cover image?
File explorer của code editor chỉ hiện danh sách các file .md. Mình phải mở từng file để kiểm tra.
3. Vẽ diagram phải dùng app khác
Khi cần vẽ ảnh minh hoạ:
- Mình mở Excalidraw.com hoặc Figma
- Vẽ xong export ảnh
- Copy vào folder
src/assets - Import ảnh vào bài viết
Mỗi lần muốn sửa lại phải lặp lại từ đầu.
4. Không đồng bộ giữa các thiết bị
Code editor chủ yếu dùng trên laptop. Muốn viết bài trên iPad hay iPhone thì mình phải vào GitHub edit trực tiếp (rất mất công), hoặc dùng app note tạm rồi về máy tính viết lại.
Trước đây mình thậm chí còn nghĩ ra workflow đăng bài qua Telegram Bot để giải quyết vấn đề này.
🛠️ Obsidian giải quyết như thế nào?
1. Tự động frontmatter với Templater
Plugin Templater giúp tự động hóa việc tạo frontmatter.
Mình tạo một file template. Khi tạo bài mới, template sẽ:
- Hỏi tiêu đề bài viết
- Tự động tạo slug từ tiêu đề (ví dụ: "Hướng dẫn Obsidian" →
huong-dan-obsidian) - Tự động điền ngày tháng hiện tại
- Tự động đổi tên file thành
YYYYMMDD-slug.md
Quy trình tạo bài mới:
- Tạo file mới
- Apply template
- Nhập tiêu đề
- Xong
Không cần copy-paste hay sửa tay nữa.
2. Quản lý với Base View
Obsidian có tính năng Base View - xem tất cả bài viết dưới dạng bảng.
Mình có thể:
- Lọc bài viết theo trạng thái:
draft = true - Sắp xếp theo ngày
- Nhóm theo category
Thay vì phải mở từng file để kiểm tra như trước.

(Chi tiết: Quản lý danh sách bài Blog với Obsidian Properties)
3. Vẽ trực tiếp với Excalidraw
Plugin Excalidraw cho Obsidian:
- Vẽ ngay trong Obsidian
- File
.excalidrawlưu trong vault - Khi cần dùng cho blog: Mở file
.excalidraw→ Copy as PNG → Dán trực tiếp vào bài viết - Muốn sửa thì chỉ cần mở file
.excalidrawsửa rồi copy-paste lại
Không cần phải chuyển qua app khác.

4. Viết trên nhiều thiết bị
Vault Obsidian mình để trong iCloud. Kết hợp với kỹ thuật .nosync (để chặn sync các folder không cần thiết như node_modules, dist, .astro), mình có thể:
- Viết và đăng bài ngay trên iPhone/iPad
- Lúc nào cần viết chi tiết hơn thì mở máy tính ra viết tiếp
Mọi thứ tự động sync với nhau dễ dàng.
(Xem thêm kỹ thuật: .nosync và Symlinks tối ưu iCloud)
🚀 Kết quả
Sau khi chuyển sang Obsidian:
- Tạo bài mới từ 2-3 phút xuống còn 10 giây (plugin Templater)
- Quản lý status rõ ràng hơn (nhờ tính năng Base View có sẵn)
- Vẽ diagram tiện hơn (plugin Excalidraw)
- Viết được trên nhiều thiết bị (iCloud sync)
Bước tiếp theo là đẩy bài lên web. Mình dùng Obsidian Git plugin để commit và push ngay trong editor.
→ Xem tiếp: Git Workflow trong Obsidian