ช่วงหลังมานี้ชื่อ Astro เริ่มผุดขึ้นมาบ่อยมากในวงการ web development ทั้ง Twitter, dev blog, และ YouTube แต่ถ้าคุณไม่ได้ติดตามข่าว tech อย่างใกล้ชิด ก็เป็นไปได้มากที่จะยังไม่รู้จักมัน
บทความนี้อธิบายตั้งแต่ต้นเลยครับ ว่า Astro คืออะไร มันแก้ปัญหาอะไร และทำไมผมถึงเอามาใช้ทำเว็บให้ลูกค้า
Astro คือ framework สำหรับสร้างเว็บ
Astro เป็น web framework (ชุดเครื่องมือสำหรับสร้างเว็บ) ที่ออกแบบมาสำหรับเว็บไซต์ที่เน้นเนื้อหาเป็นหลัก เช่น เว็บบริษัท, portfolio, blog, หรือ landing page
สิ่งที่ทำให้ Astro แตกต่างจาก framework อื่นคือ แนวคิดที่ชื่อว่า Islands Architecture ซึ่งผมจะอธิบายแบบเข้าใจง่ายแบบนี้
ลองนึกภาพเว็บหน้าหนึ่ง ส่วนใหญ่ของหน้านั้นไม่ได้ขยับ ไม่ว่าจะเป็นข้อความ รูปภาพ header หรือ footer สิ่งที่ขยับจริงๆ อาจมีแค่เมนู hamburger ที่กดแล้วเปิด หรือ form ที่รับ email
Astro จะ load JavaScript เฉพาะส่วนที่ขยับจริงๆ เท่านั้น ส่วนที่เป็นแค่ข้อความและรูป มันจะส่งมาเป็น HTML ล้วนๆ เลย ไม่มี JavaScript เกินความจำเป็น ต่างจาก framework อื่นๆ รวมไปถึง WordPress
ซึ่ง Javascript ที่ไม่จำเป็นเหล่านี้นี่แหล่ะที่ทำให้เว็บโหลดช้า
ทำไมเรื่องนี้ถึงสำคัญ
พราะ JavaScript มีน้ำหนัก
framework ยอดนิยมอย่าง React หรือ Vue นั้น browser ต้องดาวน์โหลด JavaScript มาก่อน แล้วค่อย render หน้าเว็บออกมา ซึ่งถ้าเว็บนั้นมีแค่ข้อความและรูปภาพ การแบก JavaScript ทั้งก้อนมาแค่เพื่อแสดงผลข้อความสองสามย่อหน้ามันไม่ค่อยสมเหตุสมผลเท่าไหร่
Astro คิดตรงข้ามตั้งแต่ต้นว่า JavaScript ควรเป็นสิ่งที่”เลือกมาเฉพาะจุด” ไม่ใช่ค่าพื้นฐานที่ต้องโหลดมาทั้งหมด
ผลลัพธ์ที่ได้คือเว็บที่โหลดเร็วมาก โดยเฉพาะบนมือถือหรือ network ที่ช้า และ Google ก็ชอบเว็บที่โหลดเร็ว ซึ่งหมายถึง SEO ที่ดีตามมาด้วย
เทียบกับ WordPress ตรงๆ
ถ้าเว็บของคุณเป็นแค่หน้า landing page, เว็บบริษัท, หรือ portfolio ที่เนื้อหาไม่ได้เปลี่ยนบ่อย Astro ให้ผลลัพธ์ที่ดีกว่า WordPress + Elementor ในแง่ performance ชัดเจนมาก
แต่ถ้าเว็บต้องการ editor ที่คนดูแลเว็บเข้ามาแก้เนื้อหาเองได้โดยไม่ต้องรู้ code WordPress ก็ยังได้เปรียบอยู่
และนั่นแหละคือที่มาของวิธีที่ผมชอบใช้มากที่สุด ซึ่งจะเล่าในบทความถัดไปครับ
Astro เหมาะกับใคร
ผมมองว่า Astro เหมาะมากสำหรับ
เว็บบริษัท, หน้า landing page, หรือ portfolio ที่ต้องการ performance ดีและ SEO ที่แข็งแกร่ง, blog หรือเว็บเนื้อหาที่อัปเดตไม่ถี่มาก, หรือเว็บที่อยากได้ความเร็วโหลดระดับ top แต่ไม่ต้องการความซับซ้อนของ full-stack framework
Astro ไม่เหมาะกับเว็บที่ต้องการ real-time data, ระบบ e-commerce ซับซ้อน, หรือแอปที่ user interact เยอะมาก
รวมไปถึงเว็บที่มีหน้าเดียว อาจจะเขียน code Vanilla แบบเพียวๆ ก็อาจจะเบากว่า Astro ด้วย
ถ้าคุณมีเว็บบริษัทหรือ landing page ที่โหลดช้า หรืออยากได้เว็บใหม่ที่ fast และ clean ผมรับทำเว็บด้วย Astro ครับ รวมไปถึง training สอน ติดต่อมาคุยได้เลยที่ https://thatul.me/service
บทความถัดไปจะเล่าว่าทำไมผมถึงเอา Astro กับ WordPress มาใช้ด้วยกัน และมันทำงานยังไง