
by trailbaseio

ตัวนี้คือ TrailBase โปรแกรมที่เขาโฆษณาว่าเป็น Firebase alternative แบบ open-source ที่รวมทุกอย่างไว้ในไฟล์เดียว คิดว่าเหมือน backend-as-a-service ที่เราไม่ต้องพึ่งค่ายใหญ่ มันทำงานได้เร็วระดับ sub-millisecond ก็คือตอบสนองเร็วกว่าเสี้ยววินาที ไม่ต้องพึ่ง cache แยก ข้อมูลก็ไม่ค้างหรือไม่สอดคล้องกัน ติดตั้งง่ายมาก แค่โหลดไฟล์เดียวมารันได้เลย ไม่ต้องกังวลเรื่อง dependencies หรือshared library เพี้ยน มีทั้งเวอร์ชัน binary สำหรับ Linux, MacOS, Windows และ Docker image ให้ใช้ด้วย
จุดเด่นที่เห็นชัดๆ คือความเร็วที่ว่า sub-millisecond นี่แหละ ซึ่งหมายความว่า API ตอบกลับเร็วจนแทบไม่ต้องมี cache layer แยก ทำให้ architecture ง่ายลง อีกอย่างคือมี type-safe APIs ทั้ง REST และ realtime ก็คือเราเรียก API แล้วรู้ type ตั้งแต่ compile time ไม่ต้องมานั่งเดาตอน runtime มี realtime subscriptions ด้วย แอพที่ต้องการข้อมูลอัพเดทสดๆ แบบ chat หรือ notification ทำได้สบาย แล้วก็มี auth กับ admin UI ในตัว ไม่ต้องไปตั้งระบบ authentication แยก เปิดมาก็ใช้ได้เลยนอกจากของแน่นๆ ข้างต้น ยังมี WebAssembly runtime ในตัวด้วย ก็คือเราสามารถเขียน logic ฝั่งserver เป็นภาษาอะไรก็ได้ที่ compile เป็น WASM แล้วเอามารันใน TrailBase ได้ มี geospatialsupport สำหรับแอพที่ต้องจัดการข้อมูลพิกัด GPS หรือแผนที่ รองรับ multiple databases ไม่ใช่แค่ SQLite อย่างเดียว มี SSR (Server-Side Rendering) ด้วย ทำให้ render หน้าเว็บฝั่ง server ได้ ดีต่อ SEO และ performance แถมยังมี auth UI เป็นคอมโพเนนต์เสริมที่ติดตั้งเพิ่มได้ เปิด endpoint สำหรับ login/logout ได้ทันที
เทคโนโลยีที่ใช้นี่ถือว่าเด็ด เพราะเขียนด้วย Rust ซึ่งเป็นภาษาที่เน้นความปลอดภัยและ performance สูง ไม่มี garbage collection ทำให้ latency ต่ำและ predictable ฐานข้อมูลหลักเป็น SQLite ที่เบา เร็ว และไม่ต้องตั้ง server แยก ส่วน WebAssembly runtime ใช้ Wasmtime ซึ่งเป็น runtime จาก Bytecode Alliance ที่ค่อนข้าง mature architecture โดยรวมเป็น single-executable ก็คือรวมทุกอย่างไว้ในไฟล์เดียว ไม่ต้องมี microservices หรือ container orchestration ซับซ้อน แต่ยัง extensible ได้ผ่าน WASM components สถาปัตยกรรมแบบนี้เรียกว่า "fewer moving parts" คือลดจำนวนส่วนประกอบที่ต้องดูแล
เหมาะกับคนที่ทำแอพมือถือ เว็บ หรือ desktop แล้วอยากมี backend เป็นของตัวเองแต่ไม่อยากจัดการinfrastructure ซับซ้อน ใช้ได้ตั้งแต่โปรเจกต์เล็กๆ อย่างแอพจดบันทึก แอพ todo ไปจนถึงระบบที่ต้องการ realtime อย่าง chat app, live dashboard, หรือ notification system ก็ทำได้ ถ้าเป็น startup หรือ indie hacker ที่ต้องการ ship เร็วๆ ไม่อยากเสียเวลาตั้ง server, database,auth, admin panel แยกกัน ตัวนี้ตอบโจทย์มาก หรือจะใช้เป็น backend สำหรับ IoT device ที่ต้องการเก็บข้อมูล sensor แล้วดู dashboard ก็ได้ แม้กระทั่งใช้เป็น internal tool สำหรับบริษัทเล็กๆที่ต้องการ CRUD app มี auth ครบๆ ก็ทำได้สบายข้อดีเทียบกับทางเลือกอื่นชัดเจนตรงที่เป็น single-executable ในขณะที่ Firebase หรือ Supabaseต้องพึ่ง cloud service ตัวนี้ self-host ได้เต็มรูปแบบ ข้อมูลอยู่กับเรา ไม่ต้องกลัว vendor lock-in ความเร็ว sub-millisecond ทำให้ไม่ต้องมี Redis หรือ Memcached แยก ลด complexity ลงไปอีก มี client libraries ครบทุกภาษายอดนิยมตั้งแต่ JavaScript, Dart, Rust, C#, Swift,Kotlin, Go ไปจนถึง Python ไม่ต้องเขียน SDK เอง ส่วน license เป็น OSL 3.0 ที่เขาอธิบายว่าcopyleft มีขอบเขตแค่ตัว TrailBase เอง โค้ดแอพเราไม่โดนผูกมัด ซึ่งดีกว่า GPL ทั่วไปที่อาจทำให้กังวล
ข้อจำกัดที่ควรรู้ก่อนใช้คือตอนนี้ยังเป็น alpha status ก็คือยังไม่ stable อาจมี breaking changesหรือ bug ที่ยังไม่ค้นพบ ถ้าเอาไปใช้ production ต้องยอมรับความเสี่ยงนี้ได้ อีกอย่างคือ communityยังไม่ใหญ่เท่า Firebase หรือ Supabase ถ้าติดปัญหาอาจต้องอ่าน source code หรือรอคำตอบจาก maintainer นานหน่อย แล้วก็ต้อง sign CLA ถ้าจะ contribute ซึ่งอาจทำให้บางคนไม่สบายใจ แต่เขาบอกว่าเพื่อให้โปรเจกต์ยังคงเป็น open-source ตลอดไป
สรุปว่าถ้าเพื่อนทำโปรเจกต์ส่วนตัว หรือ startup ที่ต้องการ backend ครบๆ แต่ไม่อยากจัดการ infrastructure หรือเสียค่าใช้จ่าย cloud แพงๆ ตัวนี้น่าลองมาก โดยเฉพาะถ้าชอบ Rust หรืออยากได้ความเร็วสูงๆ แบบไม่ต้องพึ่ง cache แยก ลองโหลดมาเล่นดูก่อนก็ได้ มี demo ออนไลน์ให้ทดลอง แค่เข้าเว็บแล้ว login ด้วย admin@localhost / secret ก็จะเห็นหน้าตา admin UI แล้ว ถ้าชอบก็ฝากกด star ให้เขาด้วยนะ เขากำลังสร้างอยู่ ยังต้องการกำลังใจจาก community