Back to Blog

Selamat Jalan Planetscale

Halo PocketBase!

Fergus Hagaswara

3/20/2024

Artikel yang ditulis oleh sang CEO menandakan berakhirnya layanan free / hobby tier dari Planetscale. Hal ini juga semakin memantapkan cita-cita saya sedari dulu: host semuanya dari rumah.

PocketBase

Walaupun pada awalnya EdgeDB dan Appwrite menjadi kandidat untuk mengganti Planetscale, akhirnya pilihan saya jatuhkan kepada PocketBase dengan beberapa pertimbangan:

  • sederhana dan mudah digunakan namun memiliki fitur-fitur penting seperti file hosting dan rich text editor
  • memiliki admin dashboard built in
  • single executable yang artinya mudah dideploy, mudad dibackup, dan mudah ditransmisikan
  • paling mudah untuk diselfhost dibanding dengan kompetitornya

Self Hosting

Whitepage sendiri sebenarnya sudah sepenuhnya self hosted. Beberapa hari setelah saya mulai menggunakan whitepage, saya menyadari ada kelemahan di sistem ini. Seringkali proses revalidasi ISR tidak tereksekusi. Dugaan saya karena whitepage dan fergushaga.id menggunakan Vercel hobby tier dalam satu akun yang sama, sehingga ketika alur edit / publikasi artikel berjalan lama dan melebihi waktu eksekusi serverless function dari Vercel, revalidasi akan gagal di tengah jalan.

Akhirnya saya mendockerisasi whitepage dan memindahkannya dari Vercel ke server kecil yang ada di rumah: DELL Optiplex MFF 3060 yang saya beri nama Drasil.

Optiplex 3060 MFF

Masalah revalidasi ISR pun terselesaikan.

Hal inilah juga yang menjadi salah satu alasan saya memilih PocketBase. Server sudah tersedia, environment sudah disetup dengan baik dan sudah berjalan. Sejauh ini semuanya kelihatan mudah dan sangat bisa diwujudkan, walaupun PocketBase belum memiliki docker image resmi, tentu saja ada image komunitas yang sudah sangat layak digunakan. 

Penyesuaian

Perubahan dari Planetscale ke Pocketbase tentu saja bukan tanpa penyesuaian walaupun tidak banyak. Selama ini fergushaga.id menggunakan ucarecdn sebagai cdn gambar dan menyimpan artikel dalam bentuk markdown di database. Pocketbase sendiri memiliki fitur file hosting dan field rich editor yang memiliki RTE built in. Jadi saya harus melakukan beberapa penyesuaian di front end fergushaga.id agar bisa mengadopsi PocketBase secara penuh.

Bagaimana Dengan Whitepage?

Agak disayangkan dengan berjalan suksesnya projek ini berakibat whitepage tidak lagi digunakan untuk sementara waktu. Something lost, something gained.

Namun tentu saja tidak ada hal yang sia-sia. Selama proses dockerisasi whitepage dan memindahkannya dari Vercel ke drasil saya banyak mendapat pengetahuan baru tentang docker dan github actions.

Salah satu tantangan saat saya memutuskan untuk beralih dari Vercel adalah hilangnya kemudahan developer experience yang ditawarkan Vercel. Jujur saja saya sedikit tidak rela sehingga saya mencoba membuat CI/CD sederhana memanfaatkan docker, github actions dan server webhook di drasil. Diluar dugaan hasilnya cukup memuaskan. Saya bisa memisahkan antara production / staging deployment beradasarkan branch, melakukan deployment ke server saya di rumah setiap merge PR, dan tentu saja secret management walaupun agak verbose dan tidak semulus Vercel.

Penutup

Secara tampilan, tidak ada yang berubah dari artikel fergushaga.id. Performa SSG sedikit lebih baik dikarenakan proses parsing gambar yang lebih sederhana dibandingkan dengan sistem sebelumnya. Kemudahan dan kelengkapan fitur dari PocketBase tampaknya akan mempercepat saya menambahkan beberapa fitur baru yang selama ini selalu tertunda.

Pada akhirnya keseluruhan back end untuk fergushaga.id sudah berhasil dihosting dari rumah. Sejauh ini tidak ada kendala sama sekali dan semakin banyak ilmu yang saya dapatkan dari projek ini.