15  14. Admin CMS — /mimoadminza

15.0.1 Admin Path

/admin → เปลี่ยนเป็น path จริงที่คุณเลือก
├── /tools          # CRUD tools
├── /guides         # CRUD guides  
├── /news           # CRUD news
├── /deals          # CRUD deals
└── /media          # Media library

⚠️ ทำไมต้องเปลี่ยน path? — เพื่อความปลอดภัย อย่าใช้ path default /admin เพราะรู้กันทั่วว่า admin อยู่ตรงนี้ ยิ่งเว็บคุณมีคนใช้เยอะ ยิ่งต้องซ่อน วิธีทำใน Next.js: ใช้ redirect ใน next.config.ts

async redirects() {
  return [{ source: "/admin", destination: "/your-secret-path", permanent: false }]
}

15.0.2 CRUD Pattern (Server Actions)

ระบบ CMS ที่ mimoth.com ใช้เป็น Mock-first approach — สร้าง mock data ก่อน, แล้วค่อยเชื่อม Supabase จริง ข้อดีคือ dev เร็วและไม่พัง production

// ตัวอย่าง Server Action สำหรับสร้าง tool ใหม่
// ทำไมต้อง Server Action? — เพราะข้อมูลต้อง validate ฝั่ง server
// ถ้า validate แค่ client side, hacker ส่ง request ตรงมาข้ามได้
"use server"

export async function createTool(formData: FormData) {
  const slug = formData.get("slug")
  const name = formData.get("name")
  // validate + save to database
}