อาการ "CMS Fatigue" ที่เชื่อว่า Dev ทุกคนมักจะเจอ
ถ้าพรุ่งนี้มีโจทย์ให้ทำเว็บไซต์หรือบล็อกสักตัว เนื้อหาอัปเดตเรื่อย ๆ เว็บต้องโหลดเร็ว และต้องมีระบบหลังบ้านให้ทีมงานหรือตัวเองเข้าไปจัดการเว็บและเขียนบทความได้สบาย ๆ คำถามแรกที่ Web Developer ทุกคนต้องเจอคือ "จะใช้ CMS ตัวไหนดี?"
พอนั่งไล่ดูตัวเลือกในตลาด ก็มักจะเจอทางแยกที่ชวนอึดอัดแบบเดิมทุกครั้ง
WordPress ทำได้แทบทุกอย่าง เป็นพ่อทุกสถาบัน แต่ก็ต้องแลกกับ Legacy Codebase มหาศาล ปัญหาความปลอดภัยที่ต้องคอยระวัง และความรู้สึกว่า "เทอะทะ" เกินไปสำหรับ Modern Web Stack ยุคนี้
Headless CMS ตัวใหญ่ อย่าง Strapi หรือ Payload ยืดหยุ่นและทันสมัย แต่กับ project ขนาดเล็กถึงกลาง ต้องบูต Docker container ขนาดใหญ่ ผูกกับ Database ที่ซับซ้อน และกิน memory มหาศาล แค่เพื่อจัดการบทความกับเพจไม่กี่สิบหน้า ให้ความรู้สึกเหมือน "ขี่ช้างจับตั๊กแตน"
Headless แบบ SaaS อย่าง Sanity หรือ Contentful ใช้ง่ายก็จริง แต่ต้องแลกกับ Vendor Lock-in และพอ project ใหญ่ขึ้นหรือ Traffic เยอะขึ้น ค่าบริการรายเดือนก็พร้อมทำให้กระเป๋าเงินสะดุ้งได้ทุกเมื่อ
และเรื่องที่ใหญ่ที่สุดสำหรับผม... "เว็บไซต์สองภาษา (ไทยและอังกฤษ)"
ใครเคยทำเว็บในไทยจะรู้ดีว่า Headless CMS ส่วนใหญ่มองระบบสองภาษาเป็นแค่ "ฟีเจอร์เสริม" ที่แปะเข้ามาทีหลัง Dev ต้องมานั่งคอนฟิก Schema ซ้อน Schema ปวดหัวกับ Routing และ Slug ภาษาไทย หรือไม่ก็ต้องพึ่ง Plugin ที่เพิ่มภาระให้ระบบโดยไม่จำเป็น
ผมเลยเริ่มถามตัวเองว่า "มี CMS ที่ติดตั้งง่าย เบา เร็ว มี API คลีน ๆ และเข้าใจเว็บไทย-อังกฤษจริง ๆ ได้ไหม?"
นั่นคือจุดเริ่มต้นของ TomeCMS
ที่มาของชื่อ "TomeCMS"
อาจจะสงสัยว่าทำไมต้องชื่อ Tome?
คำว่า "Tome" (อ่านว่า โทม) หมายถึงหนังสือเล่มใหญ่ ตำราโบราณ หรือบันทึกความรู้ที่รวบรวมไว้อย่างประณีต เป็นภาพดั้งเดิมของการเก็บความรู้และงานเขียนของคน (และแอบล้อกับชื่อเล่นของผมอย่างตั้งใจด้วย)
แต่ที่ย้อนแย้งคือ "ตำราเล่มหนา" มักมาพร้อมความหนัก เทอะทะ และเปิดอ่านยาก ซอฟต์แวร์หลายตัวก็เป็นแบบนั้น
ผมเลยเอาคำนี้มาให้ความหมายใหม่ในแบบซอฟต์แวร์:
TomeCMS คือพื้นที่เก็บเรื่องราวที่มีคุณค่าเหมือน Tome แต่ตีความใหม่ให้เบา เรียบ และเข้าถึงง่าย ทั้งคนเขียนและคนอ่าน
ทิ้งความเทอะทะของระบบยุคเก่าไว้ข้างหลัง แต่โครงสร้างข้อมูลข้างใต้ยังทำอย่างประณีตเหมือนเดิม
แนะนำ TomeCMS ที่สร้างบน Astro
TomeCMS เป็น Open-source CMS ที่ผมพัฒนาขึ้นโดยยึดสามคำนี้: Bespoke, Clean และ Content-First ตั้งใจให้อุดช่องว่างระหว่าง CMS แบบดั้งเดิมที่หนักเกินไป กับ Static Site Generator ที่ไม่มีระบบหลังบ้าน
TomeCMS ตั้งอยู่บน 3 เรื่องหลัก
สร้างบน Astro (Built with Astro)
Astro ไม่ยัด JavaScript เข้าไปในทุกส่วนของหน้าเว็บ และ render ได้เร็ว ทั้งฝั่งหน้าเว็บและระบบหลังบ้านจึงเบา ไม่ต้องแบก runtime เกินความจำเป็นรองรับสองภาษาตั้งแต่แกน (Native Thai & English Support)
TomeCMS ไม่ได้มองภาษาไทยเป็นแค่เรื่องการแปลคำ เนื้อหาสองภาษาเป็นส่วนหนึ่งของแกนระบบตั้งแต่แรก หน้า Admin สลับใช้ได้ทั้งไทยและอังกฤษ ส่วนโครงสร้างข้อมูลและ URL ก็ออกแบบให้เป็นมิตรกับ SEO ทั้งภาษาไทยและภาษาอังกฤษ
Headless API พร้อมใช้ (OpenAPI Ready)
TomeCMS มีระบบ Admin และธีมของตัวเอง แต่ก็เป็น Headless CMS เต็มรูปแบบผ่าน REST API ด้วย เอาข้อมูลไปใช้กับ Frontend framework ตัวไหนก็ได้ ไม่ว่าจะเป็น Next.js, TanStack Start, SvelteKit หรือ Mobile App
ให้ AI ช่วยเขียน แต่คนยังเป็นคนกดเผยแพร่ (MCP)
ทุกวันนี้ผมใช้ Claude กับ ChatGPT ช่วยงานเขียนแทบทุกวัน ที่น่ารำคาญคือต้องก๊อปข้อความไปมาระหว่างหน้าแชตกับหลังบ้านเว็บอยู่ตลอด TomeCMS เลยมีปลั๊กอิน MCP มาให้ในตัว
MCP (Model Context Protocol) เป็นมาตรฐานที่แอป AI ใช้คุยกับโปรแกรมอื่น พอเปิดปลั๊กอินนี้ Claude, ChatGPT หรือ Codex ก็อ่านบทความบนเว็บและเขียนฉบับร่าง (draft) ให้ได้โดยตรง ส่วน Gemini ตอนนี้ใช้ผ่าน Antigravity CLI ได้ เพราะ Gemini เวอร์ชันเว็บยังเปิดให้เพิ่มแอปเองได้เฉพาะบัญชีในสหรัฐฯ
สั่งงานหลังบ้านแบบที่เราทำกันอยู่แล้วได้เลย เช่น
"ในบล็อกผมเคยเขียนเรื่อง passkey ไว้ที่ไหนบ้าง ขอรายชื่อพร้อมวันที่"
"ทำฉบับภาษาอังกฤษของบทความนี้เป็นฉบับร่าง หัวข้อกับรูปให้อยู่ที่เดิม"
"ตั้งคำอธิบายสำหรับผลค้นหาให้ฉบับร่างนี้ ไม่เกิน 160 ตัวอักษร"
ฉบับแปลที่ AI สร้างจะผูกกับบทความต้นฉบับให้อัตโนมัติ เหมือนกดเพิ่มอีกภาษาจากหลังบ้านเอง
ฉบับภาษาอังกฤษของบทความนี้ก็ทำแบบนี้ ผมให้ Claude แปลผ่าน MCP ออกมาเป็นฉบับร่าง แล้วค่อยมาอ่านทวนเองอีกรอบ
ส่วนที่ผมใช้เวลาคิดนานที่สุดคือ AI ควรทำอะไรได้แค่ไหน สุดท้ายออกมาเป็นแบบนี้
AI เขียนได้แค่ฉบับร่าง เผยแพร่ ตั้งเวลา หรือลบอะไรไม่ได้ และอัปโหลดรูปเองไม่ได้ ใช้ได้เฉพาะรูปที่อยู่ใน File Manager แล้ว
แอปจะเชื่อมกับเว็บได้ก็ต่อเมื่อเจ้าของเว็บกดอนุญาตด้วย passkey และเลือกได้ว่าจะให้แอปนั้นอ่านอย่างเดียว หรือเขียนฉบับร่างได้ด้วย
ถ้าไม่ชอบสิ่งที่ AI แก้ กดปุ่ม ย้อนสิ่งที่ AI แก้ ในหน้าแก้ไข แล้วกดยืนยัน ฉบับร่างก็กลับไปเป็นอย่างเดิม
ระหว่างที่เราเปิดฉบับร่างค้างไว้ AI จะแก้ฉบับร่างนั้นไม่ได้ มันจึงไม่มีทางเขียนทับสิ่งที่เรากำลังพิมพ์อยู่
อีกเรื่องที่ควรรู้คือ ข้อมูลที่ AI อ่านไป รวมถึงฉบับร่างที่ยังไม่เผยแพร่ จะถูกส่งไปที่บริษัทผู้ให้บริการ AI นั้น ๆ ควรเชื่อมเฉพาะแอปที่ไว้ใจ และกด ตัดการเชื่อมต่อ แอปที่เลิกใช้แล้วได้จากการ์ด MCP ในหน้าปลั๊กอิน
TomeCMS เหมาะกับใคร? (และไม่เหมาะกับใคร)
TomeCMS เหมาะกับนักพัฒนาหรือ Freelancer ที่ทำเว็บไซต์ธุรกิจ Portfolio, Blog หรือ Landing Page ที่ลูกค้าต้องอัปเดตเนื้อหาเองได้ โดยไม่อยาก setup ระบบหลังบ้านให้วุ่นวาย ยิ่งถ้าเว็บต้องมีสองภาษา (ไทย-อังกฤษ) ตั้งแต่วันแรก และอยากเก็บข้อมูลไว้บนเซิร์ฟเวอร์ของตัวเอง 100% (Self-hosted) โดยไม่ต้องจ่ายรายเดือนให้ SaaS ก็ยิ่งเหมาะ
แต่ TomeCMS ยังไม่เหมาะกับองค์กรขนาดใหญ่ระดับ Enterprise ที่ต้องการ Workflow การอนุมัติหลายขั้น หรือระบบจัดการสิทธิ์ละเอียดระดับ Micro-roles
ตอนถัดไป
ใน EP 2 ผมจะเล่าเบื้องหลังสถาปัตยกรรม (Architecture Deep Dive) ที่ใช้พัฒนา TomeCMS แบบละเอียด
ถ้าไม่อยากรอ เข้าไปดูโค้ดและอ่านเอกสารได้ที่
GitHub Repository: github.com/Dhanabhon/tome-cms
Documentation: dhanabhon.github.io/tome-cms
ถ้าชอบไอเดียนี้ ฝากกด Star ⭐️ บน GitHub เป็นกำลังใจให้ project นี้ด้วยนะครับ