1.0Easy CMS 1.0 is out: stable from here on

CMS ที่ทีมไทย ใช้ได้ทั้งทีม

หน้า admin ภาษาไทยครบทุกหน้าจอ เอกสารภาษาไทยทุกหน้า บทบาท, SSO และ audit log ฟรีภายใต้ MIT ติดตั้งในแอป Next.js หรือ Nuxt แล้วรันบน server และฐานข้อมูลของคุณเอง ไม่มีค่าใช้จ่ายต่อที่นั่ง

$npm create easy-cms@latest
หรือ deploy starter ในคลิกเดียว: Deploy ไป Vercel Deploy ไป Netlifydeploy แล้วได้อะไร
ฟรีทุกฟีเจอร์ (MIT)admin และเอกสารภาษาไทยครบNext.js 15+ · Nuxt
localhost:3000/admin
แดชบอร์ดของ Easy CMSแดชบอร์ดของ Easy CMS
app/page.tsxServer Component
const cms = await getEasyCMS(config)
const { docs } = await cms.find('posts')
// docs: Post[] ได้ type จาก config ของคุณ
ใช้ร่วมกับ
  • Next.js 15+
  • Nuxt
  • PostgreSQL
  • SQLite · Turso
  • PGlite
  • S3 · R2 · MinIO
  • Vercel · Netlify
ฝังในแอป ไม่ใช่บริการแยก

ไม่ต้องมี server ตัวที่สองให้ดูแล จ่ายเงิน หรือคอย sync

headless CMS ทั่วไปเป็นอีกบริการหนึ่งที่มีฐานข้อมูลและ API key ของตัวเอง Easy CMS เป็นแพ็กเกจ npm ที่แอปของคุณติดตั้งเข้าไป เนื้อหาจึงไปพร้อมกับโค้ดที่แสดงผลมัน

headless CMS แบบบริการแยก

สองแอป สองฐานข้อมูล

แอป Next.js ของคุณ
pagesfetch()
บริการ CMSdeploy แยก
ฐานข้อมูล CMSไม่ใช่ของคุณ
  • schema อยู่ในหน้าเว็บ ไม่ได้อยู่ใน repo
  • ต้องสร้าง type แยกอีกขั้น
  • ทุกหน้าต้องเรียกข้ามเครือข่าย
Easy CMS

แอปเดียว ฐานข้อมูลเดียว

แอป Next.js ของคุณ
pages → getEasyCMS()/admin/api/cms
@easy-cms/next@easy-cms/core
ฐานข้อมูลของคุณPostgres หรือ SQLite · ใช้แค่ตาราง ecms_
  • โครงสร้างเนื้อหาอยู่ใน easy-cms.config.ts และ review ใน PR ได้
  • type มาจาก config โดยตรง ไม่ต้อง build
  • deploy ได้ทุกที่ที่แอปของคุณรันอยู่แล้ว
Code-first

สามไฟล์ แอปของคุณก็มี CMS

กำหนด collection และ field ด้วย TypeScript ฟอร์มใน admin การตรวจข้อมูล สิทธิ์การเข้าถึง และ API ที่มี type ถูกสร้างจากไฟล์เดียวนี้

import { defineConfig } from '@easy-cms/core'
import { postgres } from '@easy-cms/db-postgres'
import { seoPlugin } from '@easy-cms/plugin-seo'

export default defineConfig({
  secret: process.env.EASY_CMS_SECRET!,
  db: postgres({ url: process.env.DATABASE_URL! }),
  localization: { locales: ['en', 'th'], defaultLocale: 'en' },
  collections: [
    {
      slug: 'posts',
      drafts: true, versions: true, schedule: true,
      useAsTitle: 'title',
      fields: [
        { name: 'title', type: 'text', required: true, localized: true },
        { name: 'slug', type: 'slug', from: 'title' },
        { name: 'body', type: 'richText', localized: true },
      ],
    },
  ],
  plugins: [seoPlugin({ collections: ['posts'] })],
})
มีให้ในตัว

สิ่งที่ editor ต้องการ และสิ่งที่นักพัฒนา review ได้

ฉบับร่างและประวัติเวอร์ชัน

แก้บทความที่เผยแพร่แล้วได้โดยหน้าเว็บจริงไม่เปลี่ยน เทียบเวอร์ชันและกู้คืนเวอร์ชันใดก็ได้

ตัวอย่างสด

หน้าเว็บจริงแสดงข้างฟอร์ม และเปลี่ยนตามที่ editor พิมพ์ ก่อนจะเผยแพร่

เนื้อหาหลายภาษา

แต่ละภาษามีค่าของตัวเอง และทุกรายการบอกสถานะการแปล หน้า admin ใช้ได้ทั้งไทยและอังกฤษ

บทบาทและ single sign-on

ติ๊กว่าแต่ละบทบาททำอะไรได้ใน admin ลงไปถึงระดับ field และ login ด้วย Google, Microsoft หรือ GitHub

คลังไฟล์ที่มีโฟลเดอร์

โฟลเดอร์ อัปโหลดหลายไฟล์พร้อมกัน ไฟล์ส่วนตัวพร้อมลิงก์ที่มีลายเซ็น และเก็บไฟล์บน S3, R2 หรือ Vercel Blob

Audit log และการสำรองข้อมูล

บันทึกที่มีลายเซ็นว่าใครแก้อะไร และสำรองฐานข้อมูลได้เองหรือตั้งเวลาจากหน้า admin

ตั้งเวลาเผยแพร่

เผยแพร่หรือยกเลิกตามเวลาที่ตั้ง งานที่ถึงเวลารันทุกนาทีบน server ที่คุณมีอยู่แล้ว

SEO พร้อมใช้

sitemap, hreflang, JSON-LD และ llms.txt จากเนื้อหาที่มีอยู่แล้ว

API ที่มี type, REST และ GraphQL

Local API ที่มี type ในโค้ดฝั่ง server, REST สำหรับ client ทุกแบบ และ GraphQL กับ MCP เป็น plugin

วัดผลที่ขนาดใหญ่

ยังเร็วที่ล้านเอกสาร

ทุกคืนมี load test รัน Easy CMS กับบทความ 1,000,000 รายการ เวลาด้านล่างเป็น p95: 95% ของ request เสร็จเร็วกว่านี้

บทความใน collection เดียว
1,000,000
อ่านบทความตาม id หรือ slug
27ms
หน้าถัดไปด้วย cursor ลึกแค่ไหนก็ได้
37ms
ค้นข้อความภาษาไทยด้วย trigram index
79ms

Easy CMS 1.15 · มัธยฐานของ 3 รอบ · Postgres 17 · GitHub runner 4 core · request พร้อมกัน 20 · 28 ต.ค. 2026

ยังไม่ได้เร็วทุกอย่าง: เปิดหน้าตามเลขหน้าลึกๆ ใช้เวลาหลายวินาที (ใช้ cursor แทน) และ query ภายในบล็อกก็เช่นกัน ผลทั้งหมดบอกไว้ครบ

Plugin ทางการ

เพิ่มฟีเจอร์ด้วยบรรทัดเดียวใน plugins

แต่ละ plugin เพิ่ม collection หน้า admin และ API route ของตัวเอง พร้อม migration และเขียน plugin เองได้ด้วย hook ชุดเดียวกัน

@easy-cms/plugin-seo

field สำหรับ meta, sitemap, hreflang และ JSON-LD

seo
@easy-cms/plugin-form-builder

editor สร้างฟอร์มเอง ข้อมูลที่ส่งมาถูกตรวจ เก็บ และ export เป็น CSV ได้

forms
@easy-cms/plugin-redirects

redirect แบบ 301 ถึง 308 สร้างให้อัตโนมัติเมื่อหน้าเปลี่ยนที่อยู่

seo
@easy-cms/plugin-nested-docs

หน้าย่อยในหน้า พร้อม path และ breadcrumb แยกตามภาษา

pages
@easy-cms/plugin-multi-tenant

หลายเว็บหรือหลายลูกค้าใน CMS เดียว แต่ละแห่งมีสมาชิกและเนื้อหาของตัวเอง

0.44
@easy-cms/plugin-ecommerce

สินค้า ตะกร้า และชำระเงินด้วย Stripe, PromptPay หรือโอนเงิน

0.46
@easy-cms/plugin-graphql

GraphQL API ที่ใช้สิทธิ์การเข้าถึงเดียวกับ REST

0.43
@easy-cms/plugin-mcp

MCP server ให้ผู้ช่วย AI ทำงานกับเนื้อหาของคุณ

ai
หน้า admin

หน้า admin ที่ editor ของคุณจะชอบใช้

สร้างจาก config ของคุณ มีทั้งธีมสว่างและมืด ภาษาไทยและอังกฤษ ไม่ต้องออกแบบหรือ host เอง

your-site.com/admin
แดชบอร์ดของ Easy CMSแดชบอร์ดของ Easy CMS
สลับธีมของเว็บเพื่อดูหน้า admin แบบสว่างหรือมืด· admin.locale: 'en' | 'th'
1.0

เสถียรตั้งแต่ 1.0

  • breaking change มาเฉพาะใน major release และมีคู่มืออัปเกรดทุกครั้ง
  • API ที่เปลี่ยนชื่อยังใช้ได้จนถึง major ถัดไป พร้อมคำเตือน
  • ทุกการเปลี่ยนแปลงทดสอบกับฐานข้อมูลที่สร้างจาก release เก่า ทั้ง SQLite และ Postgres
  • major ก่อนหน้ายังได้ security fix ต่ออีกหกเดือนหลัง major ถัดไปออก
สัญญานี้ครอบคลุมอะไรบ้าง

ส่งเนื้อหาไปพร้อมกับโค้ดที่แสดงผลมัน

สร้างโปรเจกต์ Next.js หรือ Nuxt พร้อม Easy CMS ได้ในราวหนึ่งนาที ใช้สัญญาอนุญาต MIT และรันบนโครงสร้างของคุณเอง