Supabase

Backend-as-a-Service (BaaS) — แพลตฟอร์มที่รวม backend ทั้งหมดไว้ให้พร้อมใช้ โดยไม่ต้องเขียน server เอง

ถ้าเปรียบ app เหมือนร้านอาหาร — Supabase คือ ครัวสำเร็จรูป ที่มีอุปกรณ์ครบแล้ว เราแค่เอาวัตถุดิบ (data) ใส่เข้าไป


ทำไมต้องมี Supabase?

ปกติถ้าจะสร้าง app ที่มี login + เก็บข้อมูล ต้องทำเอง:

  • ตั้ง server
  • ตั้ง database
  • เขียน API
  • จัดการ login/password/token
  • ดูแล security

Supabase ทำสิ่งเหล่านี้ให้ทั้งหมด — เราแค่เชื่อมแอปเข้าไปแล้วใช้งานได้เลย


ส่วนประกอบหลัก

Database — ที่เก็บข้อมูลทั้งหมด

ใช้ PostgreSQL ซึ่งเป็น database มาตรฐานที่ใช้กันทั่วโลก — เก็บข้อมูลเป็นตาราง (rows + columns) เหมือน Excel แต่ทรงพลังกว่ามาก

Auth — ระบบ login

จัดการ user account ให้ครบ — สมัคร, login, logout, reset password, เก็บ session ไว้ในเครื่อง ทั้งหมดนี้ Supabase ทำให้โดยที่เราไม่ต้องเขียนเอง

PostgREST — API อัตโนมัติ

Supabase แปลง database ให้กลายเป็น API โดยอัตโนมัติ — แอปสามารถดึงข้อมูลจาก database ได้เลยโดยไม่ต้องมี server ตรงกลาง

Row Level Security (RLS) — กำแพงป้องกันข้อมูล

กฎที่บอกว่า “ใครอ่าน/เขียนข้อมูลได้บ้าง” — เช่น user A เห็นได้เฉพาะข้อมูลของตัวเอง ไม่เห็นของ user B แม้ข้อมูลจะอยู่ในตารางเดียวกัน

Edge Functions — โค้ดที่รันบน server

เมื่อต้องการให้บางอย่างรันฝั่ง server เช่น ส่ง notification, คำนวณ score — เขียนเป็น function แล้ว deploy ขึ้น Supabase ได้เลย (ใช้ภาษา TypeScript/Deno)

pg_cron — นาฬิกาปลุก

ระบบตั้งเวลาให้รัน function อัตโนมัติ เช่น “ทุกเที่ยงคืนให้เช็ค streak ของ user ทุกคน”

DB Triggers — ระบบตอบสนองอัตโนมัติ

กฎที่ทำงานอัตโนมัติเมื่อ database เปลี่ยนแปลง เช่น “ทันทีที่มี user สมัครใหม่ ให้สร้าง profile ให้เลย” — ไม่ต้องรอแอปมาสั่ง


เทียบกับ Firebase

ทั้งคู่คือ BaaS เหมือนกัน ต่างกันที่ database:

SupabaseFirebase
DatabaseSQL (ตาราง, JOIN ได้)NoSQL (document)
Open Source
เหมาะกับข้อมูลที่มีความสัมพันธ์กันข้อมูล realtime เรียบง่าย

NextNet ใช้ Supabase สำหรับ database + auth แต่ยังใช้ Firebase สำหรับ push notification (FCM)


ใช้ร่วมกับ

  • PostgreSQL — database engine ที่ Supabase ใช้อยู่ข้างใน
  • go_router — routing Flutter ที่เช็ค Supabase session ก่อนเปิดหน้า
  • Firebase — ใช้คู่กันในบางโปรเจกต์ (Supabase = data, Firebase = push notif)