บทความทั้งหมด

EP 1: ทำไมผมต้องทำ CMS เอง ? (ในวันที่ Headless CMS มีให้เลือกมากมาย)

  • Open-source
  • ผลงาน
EP 1: ทำไมผมต้องทำ CMS เอง ? (ในวันที่ Headless CMS มีให้เลือกมากมาย)

อาการ "CMS Fatigue" ที่เชื่อว่า Dev ทุกคนมักจะเจอ

ในฐานะ Web Developer ถ้าพรุ่งนี้มีโจทย์ว่าต้องทำเว็บไซต์หรือเว็บบล็อกสักตัวหนึ่ง ที่มีเนื้อหาอัปเดตเรื่อย ๆ ต้องการให้เว็บโหลดเร็วแบบสายฟ้าแลบ และอยากมีระบบหลังบ้านให้ทีมงานหรือตัวเองคอยบริหารจัดการเว็บ หรือเขียนบทความได้อย่างสบายใจ คำถามคือ "จะเลือกใช้ CMS ตัวไหน?"

พอนั่งไล่ตัวเลือกในตลาดตอนนี้ เรามักจะเจอทางแยกที่ชวนให้อึดอัดเสมอมา

tomecms-vs-headless-cms-th.webp
  1. WordPress: เครื่องมือระดับโลกที่ทำได้แทบจะทุกอย่าง พ่อทุกสถาบัน แต่ก็ต้องแลกมาด้วย Lagacy Codebase มหาศาล ปัญหาความปลอดภัยที่ต้องคอยระวัง และความรู้สึกว่า "เทอะทะ" เกินไปสำหรับ Modern Web Stack ในยุคนี้

  2. Heavyweight Headless CMS (เช่น Strapi, Payload): ยืดหยุ่น ทันสมัย แต่สำหรับ project ขนาดเล็กถึงกลาง การต้องบูต Docker container ขนาดใหญ่ แถมผูกกับ Database อันซับซ้อน และกิน memory มหาศาล เพียงเพื่อจัดการบทความและเพจเพียงไม่กี่สิบหน้า มันชวนทำให้มีความรู้สึกเหมือน "ขี่ช้างจับตั๊กแตน"

  3. SaaS Headless (เช่น Sanity, Contentful): ใช้งานง่ายก็จริง แต่ก็ต้องแลกกับ Vendor Lock-in และเมื่อ project ใหญ่หรือมีปริมาณ Traffice สูงขึ้น กำแพงค่าบริการรายเดือนก็พร้อมจะทำให้กระเป๋าเงินสะดุ้งได้ตลอดเวลา

และที่สำคัญที่สุด... ปัญหา "เว็บไซต์สองภาษา (Thai & English)"

ใครที่เคยทำเว็บในไทยจะรู้ดีเลยว่า การทำเว็บระบบสองภาษาบน Headless CMS ส่วนใหญ่มักเป็นแค่ "ฟีเจอร์เสริม" ที่ถูกแปะเข้ามาภายหลัง Dev เองต้องมานั่งคอนฟิก Schema ซ้อน Schema ปวดหัวเกี่ยวกับการจัดการพวก Routing/Slug ในภาษาไทย หรือไม่ก็ต้องพึ่งพา Plugin ที่เพิ่มภาระให้ระบบโดยไม่จำเป็น

คำถามจึงเกิดขึ้นมาในใจผมว่า "เป็นไปได้ไหมที่จะมี CMS ที่ติดตั้งง่าย เบา เร็ว มี API แบบคลีน ๆ และเข้าใจบริบทของเว็บภาษาไทย-อังกฤษอย่างแท้จริง ?"

และนี่คือจุดเริ่มต้นของ TomeCMS

ที่มาของชื่อ​ "TomeCMS"

อาจจะสงสัยว่าทำไมต้องชื่อ Tome?

ในทางภาษาคำว่า "Tome" (อ่านว่า โทม) หมายถึงหนังสือเล่มใหญ่ ตำราโบราณ หรือบันทึกความรู้ที่มีคุณค่าและผ่านการรวบรวมไว้อย่างประณีต ซึ่งเป็นภาพดั้งเดิมของการจัดการองค์ความรู้และงานเขียนของมนุษย์ (และแอบล้อกับชื่อเล่นของผมอย่างตั้งใจด้วย)

แต่ส่งที่ย้อนแย้งคือ ในยุคดิจิทัล "ตำราเล่มหนา" มักจะมาพร้อมด้วยความหนัก เทอะทะ และเปิดอ่านยาก

ผมจึงนำคำนี้มานิยามใหม่ในบริบทของซอฟต์แวร์เป็นดังนี้:

TomeCMS คือพื้นที่เก็บเรื่องราวที่มีคุณค่าเหมือน Tome แต่ตีความใหม่ให้เบา เรียบ และเข้าถึงง่าย ทั้งคนเขียนและคนอ่าน

ไม่ต้องแบกความเทอะทะของระบบยุคเก่า แต่ยังคงความหนักแน่น มั่นคง และประณีตในโครงสร้างข้อมูลไว้อย่างครบถ้วน

แนะนำ TomeCMS นิยามความเรียบง่ายด้วยพลังของ Astro

TomeCMS เป็น Open-source CMS ที่ผมพัฒนาขึ้นมาภายใต้ปรัชญา "Bespoke, Clean and Content-First" โดยตั้งใจให้เป็นเครื่องมือที่เข้ามาอุดช่องว่างระหว่าง CMS แบบดั้งเดิมที่หนักเกินไปกับ Static Site Generator ที่ขาดระบบบริหารจัดการหลังบ้าน

สิ่งที่เป็นหัวใจสำคัญของ TomeCMS จะมีอยู่ด้วยกัน 3 ส่วนหลัก:

  1. ขับเคลื่อนด้วย Astro (Built with Astro):
    แทนที่จะสร้างระบบน Framework ที่ยัดเยียด Javascript เข้าไปในทุกส่วน TomeCMS ถูกสร้างขึ้นบนสถาปัตยกรรมของ Astro ซึ่งขึ้นชื่อเรื่องประสิทธิภาพการจัดการ Content Collections ที่ยอดเยี่ยม และแนวคิดการ render ที่มีความรวดเร็วเป็นพิเศษ ทำให้ตัวระบบทั้งฝั่งเว็บและระบบจัดการมีความ clean ไม่แบก runtime เกิดความจำเป็น

  2. เกิดมาเพื่อสองภาษา (Native Thai & English Support):

    native-thai-english-support-th.webp

    TomeCMS ไม่ได้มองภาษาไทยเป็นแค่เรื่องของการแปลคำ แต่ถูกออกแบบโครงสร้างให้รองรับ content สองภาษา (Thai & English) แบบ First-class Citizen ตั้งแต่แกนของระบบ ทั้งหน้า Admin UI สลับและจัดการได้ทั้งภาษาไทยและอังกฤษอย่างเป็นธรรมชาติ ในโครงสร้างข้อมูลและ URL Routing ที่ออกแบบมาให้เป็นมิตรกับ​ SEO ทั้งภาษาไทยและโครงสร้างเว็บสากล

  3. Headless API ที่พร้อมใช้งานทันที (OpenAPI Ready):

    headless-api-open-api-ready-th.webp

    ถึงแม้ TomeCMS จะมีระบบ Admin และหน้าแสดงผลที่ปรับแต่งธีมได้ แต่มันก็ทำหน้าที่เป็น Headless CMS เต็มรูปแบบผ่าน REST API โดยข้อมูลทั้งหมดสามารถดึงไปใช้งานร่วมกับ Frontend framework ใดก็ได้ตามใจคุณ ไม่ว่าจะเป็น Next.js, TanStack Start, SvelteKit, หรือ Mobile App

TomeCMS เหมาะกับใคร? (และไม่เหมาะกับใคร)

  • TomeCMS เหมาะอย่างยิ่งกับ: นักพัฒนาหรือ Freelance ที่ต้องการส่งมอบเว็บไซต์ธุรกิจ, Portfolio,​ Blog หรือ Landing Page ที่ลูกค้าต้องการอัปเดตเนื้อหาเองได้ โดยไม่ต้องไป setup ระบบหลังบ้านให้วุ่นวาย และมีความต้องการในการทำเว็บไซต์สองภาษา (ไทย-อังกฤษ) แบบเปิดใช้งานได้ทันที อีกทั้งสามารถควบคุมข้อมูลตัวเองได้ 100% (Self-hosted) โดยไม่ต้องจ่ายรายเดือนให้ SaaS

  • TomeCMS ไม่เหมาะกับ: องค์กรขนาดใหญ่ระดับ Enterprise ที่ต้องการมี Workflow ในการทำงาน หรือที่มีความต้องการระบบจัดการสิทธิ์ระดับ Micro-roles

สิ่งที่จะเล่าในตอนถัดไป...

ใน EP 2 ของ series นี้จะเล่าเกี่ยวกับเบื้องหลังเชิงลึกของสถาปัตยกรรม (Architecture Deep Drive) ที่ใช้ในการพัฒนา TomeCMS

หากไม่อยากรอตอนต่อไป สามารถเข้าไปดูโค้ดและทดลองอ่านเอกสารอย่างละเอียดได้ที่:

ถ้าชอบไอเดียนี้ฝากกด Start ⭐️ บน GitHub เพื่อเป็นกำลังใจให้ project นี้ด้วยนะครับ