สรุปการคุยทาง Clubhouse กลุ่มโปรแกรมเมอร์ #WordPress

แนะนำตัว พี่หมอจิม Panutat Jimmy Tejasen และจุดประสงค์การตั้ง กลุ่มโปรแกรมเมอร์ จัดกิจกรรมสัมมนากัน เพื่อแบ่งปันความรู้และทำความรู้จักกัน

แนะนำตัว เม่น Chakkrisn Menn Talawat ว่าทำบริษัทดิจิทัล เอเจนซี่ในกรุงเทพฯ หลายปี ก่อนจะย้ายมาอยู่ปายเมื่อสิบกว่าปีที่แล้ว ตอนนี้งานส่วนนึงรับทำเว็บด้วยเวิร์ดเพรส อีกส่วนคือทำธีม ปลั๊กอิน คอร์ส ขายทาง seedthemes.com และกำลังจะเปิดระบบเว็บสำเร็จรูปจากเวิร์ดเพรส ที่ seedwebs.com

1. ทำ CMS เอง

เมื่อเกือบ 20 ปีก่อน ตั้งแต่ยุค Perl, ASP, PHP พอทำเว็บ ก็จะต้องสร้างระบบให้ลูกค้ามาอัปเดตข้อมูลเองได้ ทำไปหลายๆ งานก็เริ่มเข้าใจว่า ถ้าเราไม่ใช้ซ้ำ ขายซ้ำ เราจะเป็นแค่คนขายแรงงาน ไม่ใช่โปรแกรมเมอร์ที่ขาย digital asset เลยหาทางเขียน framework เอง เป็น OOP ด้วยภาษา PHP รองรับ Multi Language ตั้งแต่ระดับ core รู้สึกว่ามันเจ๋งสุดๆ ใช้กับลูกค้าหลายๆ รายไป

การเลือกภาษาโปรแกรมที่เขียน บางทีก็กำหนดวิถีชีวิตต่อจากนั้นเหมือนกัน หลายคนเขียน Java เลยไปทำงาน Enterprise ผมเขียน PHP เลยไปทาง SME และได้รู้จัก Open Source

เม่น

2. ทำแล้วแพ้ WordPress

แต่หลังจากนั้นพอเทคโนโลยีเปลี่ยน ต้องทำระบบให้รองรับแนวทางใหม่ๆ เช่น RSS Feed / Pingback / RTL / CSS + Theme รู้สึกว่าพัฒนาเองมันช้าไป เลยไปศึกษาโครงการ Open Source และพบว่า WordPress นั้นตรงจริตเราที่สุด ทั้งการตั้งชื่อสิ่งต่างๆ การสร้าง template hierarchy เลยรู้สึกว่า สู้ไม่ได้ก็ยอมแพ้เค้าแล้วไปร่วมกับเค้าดีกว่า ตอนนั้นก็ทำธีมแจกอยู่บ้าง ทำให้ลูกค้าบ้าง และเริ่มเข้าใจแล้วว่า การทำเว็บให้ลูกค้าส่วนใหญ่ก็คือการทำธีมนั่นเอง ส่วนปลั๊กอิน ก็อาจจะใช้ของคนอื่น หรือเขียนเองบ้าง แล้วแต่โจทย์

หลังจากนั้นเริ่มมี Page Builder เข้ามา เวลาทำเว็บให้ลูกค้า ก็เริ่มลดทอนงานลง เหลือแค่เขียนโครงหลักๆ ไว้ แล้วหน้าแต่ละหน้าที่อยากให้ลูกค้าแก้เองได้ ก็ให้ใช้ Page Builder ไป แต่ถ้าบางหน้ากลัวลูกค้าแก้แล้วพัง ก็สร้าง Field ให้กรอกแทน โดยใช้ปลั๊กอิน Advanced Custom Fields (ACF) มาช่วยสร้างและเก็บข้อมูล field ต่างๆ

จนเทคโนโลยของ JavaScript เริ่มเข้ามา ตอนนั้นเจอว่า Asana เป็นโปรเจ็คเพื่อทดลองการใช้งาน Node.js ก็เลยรู้สึกว่า เฮ้ย แนวทางนี้น่าจะดีกว่าภาษาโบราณอย่าง PHP นะ

3. ทำ Headless CMS เอง

ก็เลยคุยกับฮั้นท์ (ปัจจุบันทำ jitta.com) แล้วช่วยกันทำระบบหลังบ้านที่เอาไว้เก็บข้อมูล ใครอยากได้ก็ดึงผ่าน API ตั้งชื่อโปรเจ็คว่า Sanya (สัญญา) ที่แปลว่า ความจำได้หมายรู้ (1 ในขันธุ์ 5) เพราะมองว่า เรากำลังจะสร้าง Backend ให้คนมาเก็บข้อมูล มันก็คือเก็บความจำไว้แบบนึง แล้วเปิด API ให้เว็บ หรือ Mobile App มาดึงไปใช้ตามแต่สิทธิที่มี (ตอนนั้นมีแต่ RESTFul แต่ระหว่างทำก็พบว่ามี GraphQL เกิดขึ้นมาพอดี)

คิดแนวทางธุรกิจว่า เราทำตัวเป็นหลังบ้าน ทำชุดคิทที่เป็นตัวอย่างโค้ด ทั้งแบบ PHP หรือแบบ JS ไว้ คนอื่นแค่หยิบโค้ดไปใช้ ใส่ข้อมูล ก็ได้ระบบที่เสถียร พร้อม scale น่าจะทำให้มันเวิร์คได้

หลายปีต่อมา แนวทางนี้ฝรั่งเรียกว่า Headless CMS หรือ​เป็น CMS ที่ไม่มีหัว ไม่มีหน้าบ้าน เป็นแค่หลังบ้านเก็บข้อมูล

ส่วนโปรเจ็ค Sanya ก็ล่มไป เพราะทั้งผมและฮั้นท์ก็ยุ่งกับงานลูกค้า และเข้าใจเลยว่า ทำไมคนอื่นเค้าถึงต้องออกมาทำ Startup มาระดมทุนเพื่อทำโปรเจ็คกัน เพราะถ้าเรายังวนกับการทำงานให้ลูกค้าเพื่อมีเงินสดมาเลี้ยงทีม เราจะไม่มีเวลาโฟกัสกับโปรเจ็คใดเพียงโปรเจ็คเดียวได้

4. แล้ว WordPress ก็รองรับ Headless CMS อยู่ดี

WordPress.com เริ่มทดลองโครงการ Calypso ตั้งแต่ปี 2014 คือแบ่งชิ้นระบบตัวเอง แยกส่วนที่เก็บข้อมูลเป็นชิ้นนึง ส่วน Editor เป็นอีกชิ้น (เรียกว่า Gutenberg หรือเป็น Default Editor ในปัจจุบัน) ไม่มีการ post ค่าไป save ด้วย php เข้า DB แล้ว แต่เป็นการส่งค่าผ่าน API แทน

และก็เริ่มมีคนทำปลั๊กอินให้ WordPress รองรับการเป็นแค่หลังบ้าน แล้วหน้าบ้านใช้อะไรมาดึงข้อมูลไปก็ได้ (คำค้น: WordPress Plugin Headless)

ที่ทีมผมทำแล้วเวิร์ค คือสร้างเวิร์ดเพรสโดยใช้ ACF แล้วเปิดเป็น API (แนะนำปลั๊กอิน ACF to REST API) ให้กับ Mobile App ที่สร้างด้วย Flutter – ทำให้เราไม่ต้องสร้างหลังบ้านเอง ให้ทีม Content ไปอัปเดตเองได้ตลอด เนื้อหาขึ้นบน App ได้อัตโนมัติ

ส่วนการทำ Headless CMS บนเว็บ ผมยังไม่ได้ลองจริงจัง เพราะไปเจอท่าง่ายกว่า อย่างการใช้ WP Cloudflare Super Page Cache ที่จะสร้างไฟล์ html แล้วขึ้นไป cache บน cloudflare ให้ โดยให้ cloudlfare เป็นตัวรับโหลดไป ที่เจอคือมีคนเข้า 3 แสนในช่วง 1 ชั่วโมง รับโหลดได้สบายๆ (เว็บนี้ใช้ Cloudflare Pro)

5. แบ่งปันประสบการณ์

แล้วเลยให้แทน Chawit Hinngurn ขึ้นมาแบ่งปันแนวทางการทำด้วย Vue / Nuxt.JS ที่ใช้งานจริงอยู่

กับคุณ Warrarit ก็มาสอบถามและแบ่งปันว่า ศึกษา Gatsby อยู่ ซึ่งวันก่อนเพิ่งเปิดตัว WordPress Integration ผมเลยคิดว่ามันน่าจะดีสุดละมั้ง

แต่แล้ว น้องหนุ่ม Pathompong Sangkajit ก็เข้ามาบอกว่า เค้าใช้ Frontity ซึ่ง back โดย Google และ Automattic (เจ้าของ WordPress.com) – อ่าห์ ~~~ เลิกๆๆ เลิกหาตัวเลือกอื่นแล้ว เดี๋ยวไปลอง frontity โดยพลัน


หลังจากนั้นก็มีคนอื่นๆ มาชวนคุยต่อ เกลี้ยกล่อมน้อง Top ไปว่า ทะยอยเลิกใช้ Elementor เถิด ยังไง Page Builder ก็หนักเครื่องกว่า Blocks แน่นอน ถ้าอยากได้ Blocks แบบฟีเจอร์เยอะๆ ก็แนะนำปลั๊กอิน Qubely แต่ถ้าเน้นน้อยๆ เบาๆ โดยยังไม่ต้องโค้ดอะไร ก็แนะนำ GenerateBlocks ซึ่งทั้งสองตัว มีทั้งเวอร์ชั่นฟรีและโปร

ประเด็นอื่นๆ นึกไม่ออกละครับ ใครมีอะไรมาเพิ่มเติมได้เลยนะครับผม 🙂


หมายเหตุ: คำถามผ่านเฟซบุคอาจมีการตกหล่น แนะนำให้ติดต่อผ่าน อินบ๊อกซ์ หรือ เว็บบอร์ด นะครับ