สวัสดีครับ ไม่ได้พบกันนาน ก็หลายปีแล้วที่ผมไม่ได้อัพ Blog เลย หลังจากที่ผมได้ Deploy blog ใหม่ (แต่หน้าตาเดิม) เลยอยากจะเขียนบทความว่าเหตุผลที่สร้าง Blog ใหม่คืออะไร เพื่อเป็นความความทรงจำของผมได้ย้อนกลับมาอ่านในอนาคต


ทำไมหายไปเลย?

ก็ต้องบอกว่ายุ่งส่วนหนึ่ง แต่อีกส่วนก็คือ Heroku ได้ทำงานปิดให้บริการ Heroku Dynos, Heroku Postgres, และ Heroku Data for Redis แบบ Free Plan ซึ่งทำให้ข้อมูล Blog ของผม รวมไปถึงบริการที่พ่วงมากับ Heroku เช่น Cloudinary หายไปหมดเลย จะเห็นได้ว่าถ้าเข้าเว็บผมช่วงเวลาหลังจาก 2022 พวกรูปภาพจะไม่สามารถแสดงผลได้ เนื่องจากหารูปใน CDN ไม่ได้แล้ว ซึ่งผมต้องการหา Host ที่ฟรี เพื่อทำการติดตั้ง Ghost อีกครั้ง แต่ก็หาตัวที่ถูกใจไม่ได้ สุดท้ายผมก็ปล่อยเวลามาล่วงเลยอีกประมาณ 3 ปี จนตอนนี้เป็นช่วงพักโปรเจคที่ทำงาน ผมจึงมีเวลาที่จะ Migrate จาก Stack เก่า มา Stack ใหม่ (สักที)


Stack ใหม่เป็นยังไงบ้าง

Requirement ของอาจจะมีหลายอยากแต่สิ่งที่สำคัญที่สุดคือ ฟรี!! ดังนั้นอะไรที่ต้องการ Server ในการรันอาจจะไม่ตอบโจทย์ผม ผมก็ได้ศึกษาหาข้อมูลมาจนได้ข้อสรุปว่า ใช้ SSG เหมือนเดิม แต่ source เก็บอยู่ใน Git-based System ทั้งหมดน่าจะเป็นทางเลือกที่ดีที่สุด

โดย Requirement ของผมเป็นดังนี้

เมื่อลองพิจารณาจาก Requirement ของผม ผมจึงเลือก Teck Stack ดังนี้

จริงๆตัว Gridsome อันเก่าของผมก็สามารถใช้ Source เป็น Git-based System ได้ แต่การ Query ค่อนข้างไม่เหมือนกับ Ghost ดังนั้นไหนๆก็จะต้องแก้ใหม่ทั้งหมดอยู่แล้ว เลยขอสร้างใหม่โดย Import บาง Component มาใช้ใน Astro ด้วย

มีปัญหาบ้างไหม

เนื่องจากผมไม่เคยใช้ Astro เลย ทำให้ต้องใช้เวลาในการทำความเข้าใจ Framework และวิธีเขียนอยู่พักนึง แต่พอเข้าใจแล้วก็ไม่ได้มีปัญหาใหญ่อะไรมาก มีปัญหาเล็กๆบ้าง แต่ก็สามารถทำต่อไปได้เรื่อยๆ ด้วยการเปิด Google ไปด้วย อ้อครั้งนี้ผมลอง Vibe Code ด้วยนะ บาง Component (Share Button, Paginator) ใน Blog นี้ผมลองเจนแล้วเอามาแก้นิดๆหน่อยๆ ลดเวลาใช้ได้ ค่อนข้างประทับใจ

ที่น่าปวดหัวจริงๆ คือ TinaCMS มากกว่า การติดตั้งไม่ได้ยากอะไร แต่การ Config เพื่อให้เข้ากับ Schema ของ Post กับ Astro นี้ทำเอาทำปวดหัวไปหลายวันเลย 😂


สุดท้ายนี้ ก็ขอฝาก Blog ของผมเอาไว้ด้วย ไม่ว่าจะเข้ามาอ่านเนื่องจากหลงเข้ามาหรืออะไรก็แล้วแต่ หวังว่าจะมีประโยชน์ไม่มากก็น้อยครับ ☺️

Cover Image By : Photo by Pixabay