2026-06-14

ทำบล็อกส่วนตัวด้วย Astro

บล็อกที่คุณกำลังอ่านอยู่นี้ทำด้วย Astro ครับ หลังจากลองมาหลายอย่าง สุดท้ายผมมาลงเอยที่ตัวนี้ — เลยอยากเล่าว่าทำไม และโครงสร้างจริงๆ ของมันเป็นยังไง

ทำไมไม่ใช้ตัวอื่น

ผมไม่ได้อยากได้ระบบบล็อกที่มีฟีเจอร์ครบ มี admin panel มี database ผมแค่อยากเขียนไฟล์ข้อความแล้วให้มันกลายเป็นหน้าเว็บ — แค่นั้นจริงๆ

WordPress ก็ใหญ่เกินไป ต้องมี server ต้องดูแลฐานข้อมูล ส่วน framework สาย React ล้วนๆ ก็โหลด JavaScript มาทั้งกองทั้งที่บล็อกผม เป็นข้อความนิ่งๆ เกือบทั้งหน้า ไม่ได้ต้องการความ interactive อะไรมาก

Astro ตอบโจทย์ตรงนี้พอดี มันออกแบบมาสำหรับเว็บที่เน้นเนื้อหา และโดย default มันส่ง JavaScript เป็นศูนย์ ไปที่ browser หน้าเว็บที่ได้คือ HTML กับ CSS ล้วนๆ เลยเร็วมากและ host ที่ไหนก็ได้

หัวใจคือ “เขียนโพสต์ = วางไฟล์ Markdown”

สิ่งที่ผมชอบที่สุดคือการเพิ่มบทความใหม่ ไม่ต้องเข้าหลังบ้าน ไม่ต้องกดปุ่มอะไรเลย แค่สร้างไฟล์ .md หนึ่งไฟล์ในโฟลเดอร์ src/content/blog/ แล้วชื่อไฟล์ก็กลายเป็น URL ของโพสต์โดยอัตโนมัติ

ข้างบนสุดของแต่ละไฟล์มีส่วนที่เรียกว่า frontmatter — เป็นข้อมูลกำกับโพสต์ อย่างหัวข้อ วันที่ คำโปรย ไอคอน เขียนคั่นด้วยขีดสามขีด:

---
title: "ชื่อบทความ"
date: 2026-06-14
excerpt: "คำโปรยสั้นๆ"
icon: "rocket"
---

เนื้อหาเขียนเป็น Markdown ต่อจากนี้ได้เลย...

Astro มีของที่ชื่อ content collection คอยดูแลโฟลเดอร์นี้ให้ ผมไปกำหนดไว้ว่าทุกโพสต์ต้องมี title มี date เป็นต้น ถ้าวันไหนผมลืมใส่ หรือพิมพ์วันที่ผิดรูปแบบ ตอน build มันจะฟ้องทันที ไม่ปล่อยให้โพสต์เสียๆ หลุดขึ้นเว็บ — เหมือนมีคนคอยตรวจการบ้านให้

อยากซ่อนโพสต์ที่ยังเขียนไม่เสร็จก็แค่ใส่ draft: true มันจะไม่ขึ้นในหน้ารวมบทความ แต่ผมยังเปิดดูตอน dev ได้ปกติ

เนื้อหาแยกออกจากหน้าตา

อีกเรื่องที่ทำให้ดูแลง่ายคือ เนื้อหากับดีไซน์มันแยกกันชัดเจน ข้อมูลตัวตนของเว็บ — ชื่อ คำแนะนำตัว ลิงก์โซเชียล รายการโปรเจกต์ — ผมเก็บรวมไว้ที่ไฟล์ config ไฟล์เดียว เวลาจะแก้ก็แก้ที่เดียวจบ ไม่ต้องไล่แก้กระจายตามหน้าต่างๆ

ส่วนธีมมืด/สว่างก็ทำด้วย CSS variables ล้วนๆ กดสลับแล้วทั้งเว็บเปลี่ยนตาม ไม่ต้องเขียน logic ซ้อนในแต่ละหน้า

ขึ้นเว็บจริงด้วย GitHub Pages

พอ build เสร็จ Astro จะได้ออกมาเป็นไฟล์ HTML นิ่งๆ ทั้งเว็บ ซึ่งเอาไป host ฟรีบน GitHub Pages ได้สบายๆ ไม่ต้องมี server เลย

ผมตั้งไว้ว่าทุกครั้งที่ push โค้ดขึ้น branch main มันจะ build แล้ว deploy ให้เองอัตโนมัติ — ผมแค่เขียนบทความ commit แล้วลืมมันได้เลย อีกสักครู่เว็บจริงก็อัปเดตตาม

สรุป

ถ้าคุณอยากมีบล็อกของตัวเอง ที่เขียนเหมือนจดบันทึกในไฟล์ข้อความ ได้เว็บเร็วๆ ไม่ต้องดูแล server และไม่เสียค่า host Astro เป็นตัวเลือกที่ผมแนะนำเลยครับ

จุดที่ทำให้ผมติดใจไม่ใช่ฟีเจอร์หวือหวา แต่เป็นความ “เบาใจ” — มันเรียบง่ายพอที่จะทำให้ผมอยากกลับมาเขียนเรื่อยๆ และนั่นคือสิ่งสำคัญที่สุดของบล็อกแล้ว

กลับไปหน้า Blog