Episode ini membahas deployment Nuxt di edge runtime: konsep edge network, fungsi serverless dengan server Nitro, perbedaan runtime dan pertimbangan environment, serta kasus penggunaan edge versus serverless untuk berbagai tipe aplikasi.

Setelah berhasil di-deploy, pertanyaan berikutnya: di mana sebaiknya aplikasi berjalan? Episode 21 membahas dua model utama — edge runtime dan serverless — serta bagaimana Nuxt dan Nitro menjembatani keduanya.
Perbedaannya penting karena menentukan latensi, harga, dan batasan lingkungan eksekusi. Aplikasi yang butuh respons super cepat untuk seluruh dunia cocok di edge; aplikasi dengan workload berat atau kebutuhan fitur Node.js lengkap lebih nyaman di serverless tradisional. Nuxt membuat perpindahan di antara keduanya hanya soal mengganti preset.
Edge network menempatkan server di banyak lokasi di seluruh dunia. Kode berjalan di lokasi terdekat dengan pengguna, sehingga latensinya sangat rendah — ideal untuk halaman yang membutuhkan respons cepat dari mana pun.
Nuxt mendukung edge melalui preset Nitro, contohnya Cloudflare:
export default defineNuxtConfig({
nitro: {
preset: "cloudflare_pages",
},
})Preset cloudflare_pages menerjemahkan aplikasi Nuxt menjadi bentuk yang berjalan di edge network Cloudflare. Build lalu di-deploy melalui dashboard atau CLI mereka.
Edge runtime tidak menjalankan Node.js secara penuh. Beberapa hal yang perlu diperhatikan:
Uji aplikasi di preset edge sejak awal, bukan di akhir. Kalian bisa menulis kode yang sadar-lingkungan sehingga tidak bergantung pada fitur Node.js tertentu.
Dengan preset serverless seperti vercel atau netlify, seluruh server Nuxt diterjemahkan menjadi fungsi serverless. Setiap server route menjadi function endpoint:
export default defineEventHandler(async (event) => {
const body = await readBody(event)
return { status: "diterima", id: buatId() }
})Server route ini otomatis menjadi fungsi serverless di platform target. Tidak ada perubahan kode — kalian tetap menulis defineEventHandler seperti biasa.
Serverless menangani skala dengan baik: platform menambah instance otomatis saat traffic naik, dan mengecil ke nol saat sepi. Kalian membayar per eksekusi, bukan per jam server. Ini membuat serverless cocok untuk workload dengan traffic yang tidak menentu.
Ketiga runtime berbeda dalam hal yang penting:
Kode harus mempertimbangkan lingkungannya. Jangan menulis kode yang hanya bisa jalan di Node jika targetnya edge:
if (process.env.NODE_ENV === "production") {
console.log("mode produksi aktif")
}process.env.NODE_ENV tersedia di sebagian besar runtime. Namun untuk mengakses storage di edge, pakai API yang disediakan preset — misalnya useStorage dengan backend KV yang didukung.
Perhatikan juga: ukuran deployment, durasi eksekusi, dan variabel environment berbeda antar platform. Dokumentasikan asumsi lingkungan di README agar tim paham batasan yang harus dijaga.
Edge paling unggul untuk:
Jika sebagian besar halaman bisa di-cache, edge memberikan kecepatan maksimal dengan biaya minimal.
Serverless lebih nyaman untuk:
Kombinasi juga umum: halaman publik di edge, sedangkan endpoint API transaksional di serverless. Nuxt memungkinkan granularitas ini lewat konfigurasi per route di beberapa platform.
Episode 21 menjelaskan pilihan runtime kalian: edge untuk latensi terendah dengan batasan lingkungan, serverless untuk fleksibilitas Node.js yang hampir penuh dengan skala otomatis, dan Node server untuk kontrol penuh. Dengan Nitro, perpindahan antar runtime cukup mengganti preset.
Inti yang harus dibawa pulang:
Di episode 22 selanjutnya kita akan membahas observability dan monitoring — memantau performa frontend dan server, pelacakan error dengan Sentry, real user monitoring dan analytics, serta dukungan produksi dan penanganan insiden.