เปลี่ยน Stack เว็บส่วนตัว (อีกแล้ว)
เปลี่ยนเว็บเดิม ๆ เป็นเว็บใหม่
การเปลี่ยน stack เว็บส่วนตัวของผมก็เป็นสิ่งที่ผมค่อนข้างทำมาแล้วหลาย ๆ รอบ ไม่ว่าจะเป็น Gatsby, Nuxt, Gridsome, หรือ Next รอบนี้ผมลองใช้ Astro ดู และก็เปลี่ยน Hosting ด้วย
ทำไมถึงใช้ Astro
Astro เป็น static site generator ตัวใหม่ที่สามารถใส่ JavaScript framework อะไรก็ได้อย่างง่ายดายไม่ว่าจะเป็น React, Vue, Svelte หรือแม้กระทั่ง Solid ก็จะมี plugin ให้ลงอยู่
Static site generator ตัวก่อน ๆ ที่ผมใช้จะมีอยู่ 2 ประเภท
- สาย Generate HTML อย่าง Hexo, Hugo, หรือ 11ty
- สาย Frontend framework อย่าง Next, Nuxt, Gatsby หรือ Gridsome
สายแรกจะเน้นตัว content HTML และใช้ template ในการ generate ไฟล์ออกมา ข้อดีคือมันไม่ยึดติดกับ framework ไหน ๆ เลย สามารถใส่ framework อะไรก็ได้เข้าไป แต่ว่ามันทำค่อนข้างยาก เพราะว่าจะต้อง setup แยก ผมมองว่าการไปยุ่งกับเรื่องพวกนี้ไม่ค่อยคุ้มเท่าไหร่ แต่ว่ามันจะดีสำหรับเว็บที่ไม่ต้องใช้ JavaScript หนัก ๆ อย่าง web documentation หรือเว็บส่วนตัวสายอื่น ๆ ที่ไม่ได้เป็น frontend
สายสองจะใช้ JavaScript มากขึ้น จะแบ่งเป็นพวกที่ทำ application แต่ generate static site ได้อย่าง Next และก็ Nuxt กับพวกที่เน้น static site ไปเลยอย่าง Gatsby และก็ Gridsome ประเภทแรกจะค่อนข้างเหมาะกับการทำ application มากกว่า static site เพราะว่า tools ที่มีก็ไม่ได้เน้นส่วนนี้สักเท่าไหร่ และก็บางทีจะแถม JavaScript มาโดยที่ไม่จำเป็นเท่าไหร่ ส่วนประเภทที่สองก็จะแถมน้อยกว่า แต่ก็จะขึ้นกับ framework
ผมเลือก Astro เพราะว่ามันอยู่ตรงกลางระหว่างทั้งสองอย่าง ผมใช้ frontend framework ได้โดยที่ไม่ต้องกังวลเรื่องการ setup และก็ไม่ต้องกังวลเรื่อง JavaScript ที่แถมมาเพราะว่า Astro จะไม่ใส่ JavaScript มาหากว่าไม่ได้บอก พูดง่าย ๆ ก็คือ web ที่ generate ออกมาจะเป็น HTML + CSS จนกว่าผมจะบอกว่าให้ Astro รวม JavaScript เข้าไปด้วย
นอกจากเรื่อง frontend framework แล้ว ผมชอบใช้ Tailwind ในการจัดหน้าเว็บมากกว่าพวก Bootstrap ซึ่ง Tailwind ตอนที่ผมเขียนจะสามารถลงเป็น Tailwind CLI หรือว่า PostCSS หากไม่ต้องการใช้ framework เฉพาะ ไม่ว่าทางไหนก็ต้อง setup เองทั้งนั้น Astro มี plugin Tailwind ที่ลงได้ง่ายมาก ๆ และสามารถลง plugin ของ tailwind เพิ่มอีก เช่น DaisyUI ที่ผมใช้ทำปุ่มหรือการ์ด และ Tailwind Typography ที่ผมใช้จัดหน้า text ที่มาจาก Markdown (ใช่ หน้านี้ก็ใช้ Tailwind Typograhy)
แล้ว JavaScript ที่ใช้ทำอะไรล่ะ
เท่าที่ผมคิดไว้ ผมจะใช้เป็นตัวเสริมเนื้อหาภายในเว็บ เพราะว่าเว็บนี้ผมกะว่าจะมีเนื้อหาที่ค่อนข้างหลากหลายกว่า blog ใน Hashnode เช่น อาจจะลงเรื่องส่วนตัว เขียนนิยาย จิปาถะอะไรที่ไม่ค่อย technical มากนัก ถ้าใช้อะไรที่ custom ได้น่าจะเหมาะกับเนื้อหา
ยังจะเขียนลง Hashnode อยู่ไหม
ช่วงนี้ผมมีงานค่อนข้างเยอะและก็เครียดด้วย ไม่ได้เขียนแม้กระทั่ง Rules of Horror บน ReadAWrite เลยด้วยซ้ำ ถ้ามัน technical มาก ๆ ผมอาจจะเขียนลง Hashnode เป็นภาษาอังกฤษเพื่อฝึกภาษาไปด้วยในตัว
แล้วก็เว็บนี้ผมใช้ Cloudflare Pages จากที่เคยใช้ Vercel ตามปกติ เหตุผลเอาจริง ๆ ไม่ได้มีอะไรเป็นพิเศษแต่อยากลองมากกว่า พอเป็นเว็บส่วนตัวมันก็ไม่ได้เสียหายอะไรเท่าไหร่ แค่อาจจะไม่ได้ทำ SSR ไปหน้าของ Hashnode เหมือนกับอันเก่า