สร้างบล็อกด้วย Astro + Sanity + Cloudflare แบบเร็ว แรง และดูแลรักษาง่าย
บันทึกขั้นตอนการสร้างบล็อกที่เน้นความเร็ว ความปลอดภัย และประสบการณ์การเขียนที่ดี ด้วยเครื่องมือที่เหมาะกับงานจริงในปี 2025
ช่วงปีที่ผ่านมามีโอกาสได้ลองสร้างบล็อกส่วนตัวใหม่หลายครั้ง แต่ละครั้งได้เรียนรู้ข้อผิดพลาดและข้อดีของเครื่องมือที่ต่างกัน บทความนี้สรุปชุดเครื่องมือที่ใช้งานได้จริงในปี 2024-2025 คือ Astro สำหรับฝั่งเว็บไซต์, Sanity สำหรับจัดการเนื้อหา และ Cloudflare Pages สำหรับ deploy รวมถึงเหตุผลที่เลือกทั้งสามตัวนี้มาทำงานร่วมกัน
ทำไม Astro เหมาะกับบล็อกเน้นเนื้อหา
Astro ถูกออกแบบมาเพื่อเว็บที่ content-heavy โดยเฉพาะ แนวคิด Island Architecture ทำให้ส่งเฉพาะ JavaScript ที่จำเป็นกับ component ที่ interactive จริง ๆ เท่านั้น ส่วนที่เหลือเป็น HTML ล้วน ผลคือหน้าเว็บเร็วมากตั้งแต่โหลดครั้งแรก โดยเฉพาะในมือถือที่ network ไม่เสถียร
อีกจุดที่ชอบคือการรองรับหลาย framework ในไฟล์เดียวกัน — จะเอา React, Vue หรือ Svelte มาใส่ใน .astro ไฟล์เดียวกันได้ ไม่ต้อง commit ตัวเองกับ framework ใด framework หนึ่ง ทำให้ทดลองและเปลี่ยนทีละส่วนได้ง่ายมาก
SSG เป็นค่าเริ่มต้น
บล็อกส่วนตัวไม่จำเป็นต้องมี runtime หนัก ๆ Astro สร้าง static HTML ตั้งแต่ตอน build ทำให้ deploy บน static host อย่าง Cloudflare Pages ได้ฟรีและเร็วมาก ไม่ต้องจ่ายค่า server ราย month และไม่มี cold start
Sanity: headless CMS ที่คนเขียนโค้ดใช้จริงได้
ในอดีตเคยใช้ WordPress, Ghost, แม้กระทั่ง MDX ใน repo — แต่ละแบบมีข้อจำกัดต่างกัน WordPress หนักและ UI เก่า, Ghost ดีแต่ lock-in, MDX ดีสำหรับคนเขียนโค้ดแต่เวลาเขียน content จริง ๆ จะทรมาน
Sanity คือจุดที่สมดุลที่สุดเท่าที่เคยใช้ — schema เขียนเป็น TypeScript ได้, Studio (หน้าแอดมิน) เป็น React ที่แก้ไขได้ทั้ง look & feel, เนื้อหาถูกเก็บใน Content Lake ที่เรียกผ่าน GROQ ซึ่งเป็น query language ของ Sanity ที่เรียนรู้ได้เร็วกว่า GraphQL มาก
ข้อดีที่สุดของ Sanity ในมุมของผมคือ — แก้ schema เสร็จ, content migrate ตามได้อัตโนมัติ ไม่ต้องไป write migration เอง
Portable Text: เนื้อหาที่ไม่ผูกกับ HTML
Sanity เก็บเนื้อหาเป็น Portable Text ซึ่งเป็น JSON tree ไม่ใช่ HTML เหตุผลคือ content ควรแยกออกจาก presentation เวลาจะเอาเนื้อหาเดียวกันไปขึ้น mobile app, email newsletter หรือแม้กระทั่ง voice assistant จะ render ใหม่ได้โดยไม่ต้องไป parse HTML
Cloudflare Pages: deploy ง่ายและฟรีระดับจริงจัง
ตั้งค่าเริ่มต้นเพียง connect repo กับ Cloudflare Pages แล้ว build command จะรันอัตโนมัติเมื่อ push code ขึ้น main ข้อดีคือเป็น global CDN ทันทีโดยไม่ต้อง config อะไรเพิ่ม โหลดเว็บจากไทยได้เร็วพอ ๆ กับจากยุโรป
Free tier ใจดีมาก — unlimited requests, unlimited bandwidth, 500 builds/เดือน เพียงพอสำหรับบล็อกส่วนตัวหลายร้อยปี อีกทั้งยังรวม Preview deployment บน branch ทำให้รีวิวหน้าใหม่ก่อน merge ได้โดยไม่ต้อง config อะไรเลย
ทำงานกับ Sanity ยังไง
ในตอน build Astro จะ fetch ข้อมูลจาก Sanity ผ่าน GROQ แล้วสร้าง HTML ออกมา Cloudflare Pages จึงเสิร์ฟแต่ static file ล้วน ๆ ถ้า content ใน Sanity เปลี่ยน ผมตั้ง webhook ให้ trigger rebuild — 30 วินาทีทีหลังเว็บก็อัพเดตแล้ว ไม่ต้องใช้ SSR ที่ทำให้ deploy ซับซ้อน
สรุป
ชุด Astro + Sanity + Cloudflare ตอบโจทย์บล็อกส่วนตัวและ content site ขนาดเล็ก-กลางได้เกือบสมบูรณ์: เว็บเร็ว, editor UX ดี, ค่าใช้จ่ายเกือบเป็นศูนย์, deploy workflow ง่าย ส่วนที่ต้องลงแรงหน่อยคือการออกแบบ schema ใน Sanity ให้ถูกต้องตั้งแต่แรก เพราะถ้าผิดทรงจะย้ายข้อมูลลำบากในอนาคต
ถ้าใครกำลังคิดจะเริ่มบล็อกใหม่ในปี 2025-2026 แนะนำให้ลองเซ็ตนี้ก่อน ส่วนตัวใช้มาหลายเดือนแล้วยังไม่เจอจุดที่ต้องเปลี่ยน อีกทั้ง community ของทั้ง 3 ตัวก็ active — เวลาติดปัญหาหาคำตอบได้เร็ว