Strapi คืออะไร และทำไมถึงได้รับความนิยมในโลกของ Headless CMS
Strapi คือโปรแกรม headless CMS ที่เป็นโอเพนซอร์ส ซึ่งนักพัฒนาสามารถนำไปใช้สร้าง API ด้วย Javascript ได้อย่างรวดเร็ว และยังเป็นบริการที่ใช้งานได้ฟรี มีความยืดหยุ่น บริหารจัดการได้ง่าย รวมถึงมีแนวโน้มสูงมากว่าจะกลายเป็นเครื่องมือที่ทรงพลังหากนักพัฒนาที่มีทักษะนำไปใช้
Headless CMS คืออะไร
ที่มา contentful.com
คุณเคยใช้ WordPress หรือโปรแกรมจัดการเนื้อหาเว็บไซต์ (CMS) เจ้าอื่นที่คล้ายกันมาก่อนไหม เพราะเจ้าเครื่องมือเหล่านี้ช่วยให้การทำ frontend backend ตลอดจนการรวมฐานข้อมูลไว้ในที่เดียวสามารถใช้งานสะดวกมากขึ้น แต่คุณจะทำอย่างไรหากระบบ frontend ทำงานช้าเกินไป แล้วคุณจะเปลี่ยนไปใช้อย่างอื่นที่เร็วกว่าได้อย่างไรหากระบบพื้นฐานถูกติดตั้งมาแบบนั้น
Headless CMS จะแยกการทำงานของ frontend, backend, และฐานข้อมูล ออกจากกันเป็นส่วนๆ ซึ่งมีประโยชน์อย่างมาก เพราะช่วยให้การทำงานหลายอย่างรวดเร็วขึ้นและทำให้นักพัฒนาจากหลายทีมสามารถแยกกันทำงานในแต่ละส่วนได้ในเวลาเดียวกัน แทนที่จะต้องรอให้อีกฝ่ายทำงานเสร็จก่อนจึงจะเริ่มลงมือได้
Headless CMS จึงทำให้คุณสามารถควบคุมการทำงานในแต่ละส่วนของโปรเจกต์ได้ดียิ่งขึ้น ยกตัวอย่างเช่น frontend เป็นต้น ซึ่งมีประโยชน์มากในการพัฒนาแอปฯ มือถือ เพราะคุณสามารถตกแต่ง frontend ให้ดูน่าตื่นตาตื่นใจได้ หรือในกรณีที่คุณอยากใช้อย่างอื่นแทน PHP ในการพัฒนา backend ก็ทำได้เช่นกัน
ทำไมถึงต้องเลือกใช้ Strapi
Strapi นั้นใช้งานง่ายในระดับที่ว่าแค่ได้เริ่มครั้งแรกก็ใช้เป็นเลย ยิ่งถ้าเป็นนักพัฒนา ส่วนใหญ่ก็สามารถใช้งานได้คล่องภายในชั่วโมงเดียว และที่จริงแล้วคุณไม่จำเป็นต้องเขียนโค้ดได้ถึงจะเข้าใจวิธีใช้มัน แน่นอนว่าการเขียนโค้ดเป็นก็ช่วยได้ แต่ว่าไม่ถึงกับจำเป็น
นอกจากนี้ Strapi ยังช่วยให้การบริหารจัดการข้อมูลและเชื่อมโยงการทำงานระหว่าง frontend และ backend ทำได้อย่างปลอดภัย
สรุปก็คือ Strapi เป็น CMS ที่ทำงานได้รวดเร็ว ใช้งานง่าย มีความปลอดภัย รวมถึงสามารถปรับขนาดให้เหมาะสมกับธุรกิจได้ และทำงานร่วมกับ framework รุ่นใหม่ส่วนใหญ่อย่างเช่น React และ Node ได้เป็นอย่างดีอีกด้วย
การบริหารจัดการคอนเทนต์ของ Strapi
Strapi มีระบบจัดการคอนเทนต์และกำหนดสิทธิ์ โดยคุณสามารถแต่งตั้งผู้ดูแลระบบและผู้ใช้เพื่อช่วยให้การจัดการคอนเทนต์มีความเป็นระเบียบมากขึ้น ยกตัวอย่างเช่น คุณสามารถกำหนดสิทธิ์ให้กับ frontend และ backend developer และยังระบุได้ว่าแต่ละคนมีสิทธิ์ในการใช้งานและการเข้าถึงความปลอดภัยอะไรได้บ้าง ซึ่งการอนุญาตสิทธิ์ใช้งานนั้นถือว่าเป็นจุดแข็งที่โดดเด่นที่สุดของ Strapi โดยเฉพาะด้านการจัดการคอนเทนต์และข้อมูล
แม้ว่า Strapi จะไม่ได้มีปลั๊กอินมากเท่า WordPress แต่ก็มีตัวเลือกอื่นอีกมากมายที่จะเติมเต็มความต้องการของคุณได้ เช่น การใช้ webhook จะช่วยกำหนดเงื่อนไขที่แตกต่างกันในการส่งข้อความตามที่คุณต้องการได้ และ cron job ก็ติดตั้งง่ายมาก
ข้อดีและข้อเสียของ Strapi
Strapi ใช้งานง่ายและทำงานร่วมกับเครื่องมืออื่นได้ดีเยี่ยม โดยเฉพาะอย่างยิ่งกับ Node นอกจากนั้น ยังมีข้อดีอีกมากมาย เช่น
สาเหตุหลักที่ผมใช้ Strapi เพราะสามารถปรับค่าต่างๆ ให้ตรงความต้องการได้ ด้วยความเป็น headless CMS ทำให้มีตัวเลือกในการทำงานมากมายนับไม่ถ้วน
ความเร็วในการพัฒนาถือว่าเป็นอีกหนึ่งจุดขาย เพราะนักพัฒนาจากทีมอื่นๆ สามารถทำงานในส่วนที่แตกต่างกันไปพร้อมๆ ได้ ช่วยให้ขยายขอบเขตของการทำโปรเจกต์ได้ง่ายและตัดปัญหาน่าปวดหัวจากการที่ต้องรอให้อีกทีมมาทำงานต่อไปได้เลย
ระบบยืนยันตัวตน ระบบรักษาความปลอดภัยที่แข็งแกร่ง และระบบกำหนดสิทธิ์ ที่ติดตั้งมาเป็นพื้นฐานอยู่ในตัว Strapi นั้นสามารถนำไปใช้กับนักพัฒนาจำนวนมากได้อย่างรวดเร็ว ทำให้ Strapi เป็นหนึ่งในตัวเลือกที่ปลอดภัยที่สุดสำหรับการพัฒนาโปรเจกต์และการรักษาความปลอดภัยข้อมูล
คู่มือการใช้ใน Strapi ตอบคำถามต่างๆ ได้ดีและมีการอธิบายข้อมูลที่ต้องการอย่างครบถ้วน ช่วยให้คุณอุ่นใจเมื่อต้องการย้อนกลับไปเริ่มต้นใหม่หากเกิดหลงทางระหว่างการทำงาน
อย่างไรก็ตาม Strapi ก็ยังมีข้อเสียที่คุณควรรู้ไว้ ดังนี้
Strapi ไม่ค่อยรองรับการทำงานของ typescript ที่กำลังได้รับความนิยมมากขึ้นอย่างรวดเร็วในการเขียนโค้ดยุคนี้
Strapi มีอัปเดตบ่อยมาก ซึ่งดูเหมือนจะเป็นเรื่องดีเพราะแก้บั๊กได้เร็ว แต่ก็เป็นอุปสรรคต่อนักพัฒนาเช่นกัน เพราะเวลาที่มีอัปเดตใหญ่แต่ละครั้งคุณจะต้องมานั่งแก้ไขอะไรบางอย่างที่เคยทำงานได้ปกติดีมาก่อนในเวอร์ชันเก่า แต่กลับใช้งานไม่ได้เมื่อมีอัปเดต และเมื่อมีอัปเดตบ่อย คุณก็อาจจะต้องมาคอยแก้แบบนี้บ่อยๆ ขึ้นอยู่กับว่าโชคร้ายแค่ไหน โดยทั่วไปแล้ว ยิ่งโปรเจกต์ใหญ่แค่ไหน คุณก็ยิ่งปวดหัวบ่อยเท่านั้น
การแก้ไข schema ก็เป็นปัญหาเช่นกัน เนื่องจากการย้ายข้อมูลจะทำได้ยากหลังจากที่เปลี่ยนแปลงแล้ว ซึ่งไม่ว่าจะย้ายเข้าหรือย้ายออกจาก Strapi ก็มีปัญหาทั้งนั้น ยกตัวอย่างเช่น การย้ายข้อมูลมาจาก WordPress นั้นยุ่งยากมาก และแม้แต่ในตัว Strapi เอง แค่ย้ายจาก Strapi เวอร์ชัน 3 มา 4 ก็ยังมีปัญหาเพราะคู่มือที่ชี้แจงรายละเอียดไม่เพียงพอว่าต้องทำอย่างไรบ้าง ซึ่งอาจกลายเป็นปัญหาใหญ่ได้ ขึ้นอยู่กับว่าคุณจะทำอะไร ถ้าแค่ย้ายข้อมูลทั่วไปก็ไม่ลำบากเท่าไร แต่ถ้ามีระบบอีคอมเมิร์ซ ระบบชำระเงิน และล็อกอินด้วย จะเป็นอะไรที่ยุ่งยากมาก
คุณควรใช้ Strapi หรือเปล่า
สรุปแล้ว คุณควรใช้ Strapi ถ้าคุณอยากได้ความยืดหยุ่นของการใช้งาน headless CMS เพราะ Strapi นั้นใช้สะดวกและจบงานได้อย่างรวดเร็วโดยที่สามารถควบคุมได้ดั่งใจ โดยเฉพาะเมื่อคุณมีทีมนักพัฒนาขนาดใหญ่ ถ้าจะให้เปรียบเทียบ Strapi กับ WordPress แบบคร่าวๆ ก็คงจะเปรียบเหมือนเครื่อง PC กับ Mac
Strapi เหมือน PC ตรงที่ PC มีตัวเลือกมากมายว่าจะปรับแต่งอย่างไร และนำไปใช้งานแบบไหน ในขณะที่ WordPress เหมือนเครื่อง Mac ตรงที่มีแพ็กเกจที่คุณน่าจะต้องการมาให้พร้อมใช้เลย
อย่างไรก็ตาม แม้ว่า Strapi ยังมีปัญหาของตัวเอง และไม่น่าจะเป็น “นักฆ่า Wordpress” ได้ แต่ผมคิดว่าข้อดีของมันสามารถเอาชนะข้อเสียได้ขาดลอย ผมจึงชอบทำงานบน Strapi มากกว่าตัวเลือกอื่นๆ ที่ม